第3章 ARM处理器的指令系统.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 ARM处理器的指令系统.ppt

* 会跳到THUMBFUN的地址 ADRL伪指令 * * 用于用户程序调用操作系统的系统服务 操作系统管理计算机的资源 用户从用户模式变换到管理模式,跳到SWI异常入口 * * MSR可以切换处理器模式 * (2)清除R0的第7位。 (3)影响控制域 控制域清零使能中断 用BIC和ORR只影响要修改的位 * 可以用一个伪指令让arm完成多条指令 * * 某个标号给寄存器赋值,只能使用伪指令 * * LDR R0, =0* * * * * * * 逆向减法对一个数取反 RSB r0,r1,#0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * B,BL根本不管地址最低两位 * * 只有load-store指令才能通过寄存器间址,访问存储器 MOV ADD都不可使用 * * LDMIB LDMIA R1寄存器调整都是一致的,区别在于把哪块内存单元的内容给到了各个寄存器 * * * * Ascending Decending * * * * * * ADD R1,R2,#12 ADD r1,r2,r3 ADD r1,r2, r3,LSL #3 * 0x0003 * * * * * * * 回写前变址 LDR r0,[r1,#4]!基址寄存器变 前变址,基址寄存器不变LDR r0,[r1,#4] 后变址 LDR r0,[r1],#4基址寄存器变 * * * * * * * * (p++)=; * * 助记符 说明 操作 条件码位置 MUL Rd,Rm,Rs 32位乘法指令 Rd←Rm*Rs (Rd≠Rm) MUL{cond}{S} MLA Rd,Rm,Rs,Rn 32位乘加指令 Rd←Rm*Rs+Rn (Rd≠Rm) MLA{cond}{S} UMULL RdLo,RdHi,Rm,Rs 64位无符号乘法指令 (RdLo,RdHi) ←Rm*Rs UMULL{cond}{S} UMLAL RdLo,RdHi,Rm,Rs 64位无符号乘加指令 (RdLo,RdHi) ←Rm*Rs+(RdLo,RdHi) UMLAL{cond}{S} SMULL RdLo,RdHi,Rm,Rs 64位有符号乘法指令 (RdLo,RdHi) ←Rm*Rs SMULL{cond}{S} SMLAL RdLo,RdHi,Rm,Rs 64位有符号乘加指令 (RdLo,RdHi) ←Rm*Rs+(RdLo,RdHi) SMLAL{cond}{S} 64位无符号乘法指令——UMULL指令将Rm和Rs中的值作无符号数相乘,结果的低32位保存到RdLo中,而高32位保存到RdHi中。指令格式如下: UMULL{cond}{S} RdLo,RdHi,Rm,Rs 应用示例: UMULL R0,R1,R5,R8 ; (R1、R0)=R5×R8 3.5.2 乘法指令(续) 助记符 说明 操作 条件码位置 MUL Rd,Rm,Rs 32位乘法指令 Rd←Rm*Rs (Rd≠Rm) MUL{cond}{S} MLA Rd,Rm,Rs,Rn 32位乘加指令 Rd←Rm*Rs+Rn (Rd≠Rm) MLA{cond}{S} UMULL RdLo,RdHi,Rm,Rs 64位无符号乘法指令 (RdLo,RdHi) ←Rm*Rs UMULL{cond}{S} UMLAL RdLo,RdHi,Rm,Rs 64位无符号乘加指令 (RdLo,RdHi) ←Rm*Rs+(RdLo,RdHi) UMLAL{cond}{S} SMULL RdLo,RdHi,Rm,Rs 64位有符号乘法指令 (RdLo,RdHi) ←Rm*Rs SMULL{cond}{S} SMLAL RdLo,RdHi,Rm,Rs 64位有符号乘加指令 (RdLo,RdHi) ←Rm*Rs+(RdLo,RdHi) SMLAL{cond}{S} 64位无符号乘加指令——UMLAL指令将Rm和Rs中的值作无符号数相乘,64位乘积与RdHi、RdLo相加,结果的低32位保存到RdLo中,而高32位保存到RdHi中。指令格式如下: UMLAL{cond}{S} RdLo,RdHi,Rm,Rs 应用示例: UMLAL R0,R1,R5,R8 ;(R1、R0)=R5×R8+(R1、R0) 3.5.2 乘法指令(续) 助记符 说明 操作 条件码位置 MUL Rd,Rm,Rs 32位乘法指令 Rd←Rm*Rs (Rd≠Rm) MUL{cond}{S} MLA Rd,Rm,

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档