第2章 AM指令分类及寻址方式.pptVIP

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 ARM指令分类及寻址方式 ARM指令的分类 跳转指令、数据处理指令、程序状态传输指令、Load/Store指令、协处理器和异常中断产生指令6类 2.1 ARM指令的一般格式 ??说明?? Cond?? 指令执行的条件编码?? Opcode?? 指令操作符编码?? S?? 决定指令的操作是否影响CPSR的值?? Rd?? 操作目标寄存器编码?? Rn?? 包含第一操作数的寄存器编码?? Shifter_operand?? 表示第二操作数 2.1 ARM指令的一般格式 一条指令代码的举例: ADDEQ R5,R7,R3,LSL #2 ;若条件满足Z=1,将R3左移2位与R7相加放入R5 这条指令的二进制编码是: 2.1 ARM指令的一般格式 ARM指令集——条件码 2.1 ARM指令的一般格式 ARM指令——条件码 2.1 ARM指令的一般格式 ARM指令——条件码 2.1 ARM指令的一般格式 ARM指令——指令格式 2.2 ARM处理器寻址方式 寻址方式分类 2.2 ARM处理器寻址方式 寻址方式分类 在一条ARM指令中获得一个合法的立即数 〈immediate〉= immed_8 循环右移(2 X rotate_imm) 练习 下面哪些立即数是数据处理指令中有效的数据? a) 0x000003FC b) 0x000001FE c) 0xF0000000 d) 0x0000FFFF e) 0xF0000001 f) 0xF0000010 24页书上 立即数(2) 装载32 bit常数 为允许装载较大的立即数,汇编器提供了一条伪指令:?? LDR Rd, =const?? 推荐使用这种方法把常数装入寄存器 如, LDR R1,=0XFFFFFF00 Rm——寄存器方式 可以采取的移位操作如下: LSL:逻辑左移(Logical Shift Left) LSR:逻辑右移(Logical Shift Right) ASR:算术右移(Arithmetic Shift Right) ROR:循环右移(ROtate Right) RRX:扩展为1的循环右移(Rotate Right eXtended by 1 place ) 寄存器移位寻址 2.2 ARM处理器寻址方式 寻址方式分类 2.2 ARM处理器寻址方式 寻址方式分类 2.2.2 字及无符号字节的Load/Store指令的寻址方式 Load指令用于从存储器(包括内存和外存)中读取数据加载到寄存器中; Store指令用于将寄存器的数据保存到存储器。 各种类型的Load/Store指令的寻找的地址由两部分组成: 1〉基址寄存器:一般使用通用寄存器 2〉地址偏移量:立即数、寄存器、寄存器及一个移位常数。 需要的地址=基址寄存器+地址偏移量 2.2.2 字及无符号字节的Load/Store指令的寻址方式 变址寻址 偏移量方法 LDR R0,[R1,R2,LSL #2];R0←[R1+R2*4],R1不变 事先更新基址(前索引)(前变址) LDR R0,[R1,R2,LSL #2]! ;R0←[R1+R2*4] ,更新R1为R1+R2*4 事后更新基址(后索引)(后变址) LDR R0,[R1] ,R2,LSL #2;R0←[R1],更新R1为R1+R2*4 Pre or Post Indexed store寻址 I=0,立即数偏移 I=1,寄存器偏移 P=1,偏移量/前索引 P=0,后索引 U=1,加偏移 U=0,减偏移 W=1,后缀有! 回写基址寄存器 W=0,后缀无!不回写基址寄存器 2.2 ARM处理器寻址方式 寻址方式分类 2.2 ARM处理器寻址方式 寻址方式分类 批量Load/Store指令的寻址方式 多(批量)寄存器寻址 先增加地址(IB):STMIB,LDMIB;每次传送前指针加4 后增加地址(IA):STMIA,LDMIA;每次传送后指针加4 先减少地址(DB):STMDB,LDMDB;每次传送前指针减4 后减少地址(DA):STMDA,LDMDA;每次传送后指针减4 I:Increment D:Decrement B:Before A:After 2.2 ARM处理器寻址方式 寻址方式分类——堆栈寻址 2.2 ARM处理器寻址方式 寻址方式分类——堆栈寻址 2.2 ARM处理器寻址方式 寻址方式分类——堆栈寻址 2.2 ARM处理器寻址方式 多(批量)寄存器寻址和堆栈寻址之间的关系 2.2 ARM处理器寻址方式 STMFA r13!, {r0-r5}; ← Push onto a

文档评论(0)

bm5044 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档