EMPUCh3指令系统.pptVIP

  1. 1、本文档共245页,可阅读全部内容。
  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文档。上传文档
查看更多
EMPUCh3指令系统

第3章 ARM指令集;ARM指令系统;第3章 目录;第3章 目录;3.1 ARM指令集概述;3.1.1 ARM指令集编码;ARM指令集编码表;ARM指令集编码表;操作码;操作码;操作码;操作码;操作码;ARM指令集——基本格式;ARM指令集——举例;ARM指令集可以分为六大类: 数据处理指令 Load/Store指令 跳转指令 程序状态寄存器处理指令 协处理器指令 异常产生指令。;ARM指令的基本格式如下:;Opcode:操作码;助记符,如AND=0000。 Cond: 条件码;助记符,如EQ=0000。 S: 更新码;若指定“S”,则指令执行后,自动更新CPSR中的Cond。 Rd: 目的寄存器;如R0=0000。 Rn: 第1源操作数;是寄存器; 如R1=0001。 Op2: 第2源操作数;可为立即数/寄存器,变形式多样。 ;ARM指令集——ARM指令格式举例;ARM指令集——operand2;ARM指令集——operand2= #immed;3.1.3 指令分类及指令格式;ARM指令集——operand2 = Rm;ARM指令集——operand2 = Rm shift;operand2 = Rm shift 移位操作含义 LSL:逻辑左移,空出的最低有效位用0填充。 LSR:逻辑右移,空出的最高有效位用0填充。 ASL:算术左移,由于左移空出的有效位用0填充,因此 它与LSL同义。 ASR:算术右移,算术移位的对象是带符号数,移位过程中必须保持操作数的符号不变。如果源操作数是正数,空出的最高有效位用0填充,如果是负数用1填充。 ROR:循环右移,移出的字的最低有效位依次填入空出的最高有效位。 RRX:带扩展的循环右移。将寄存器的内容循环右移1位,空位用原来C标志位填充。;operand2 = Rm shift 移位方式:图示;operand2 = Rm shift 实例: ADD R1,R1,R1,LSL #3 ;R1=R1+R1*8=9R1 SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3) ;第3章 目录;3.2 ARM处理器寻址方式;3.2 ARM处理器寻址方式;定义: 在立即寻址指令中,只能用Operand2表示立即数!也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。 立即寻址指令举例如下: SUBS R0,R0,#1 ;R0减1,结果放入R0,并且影响标志位 MOV R0,#0xFF000 ;将立即数0xFF000装入R0寄存器 ;3.2.1 立即寻址;3.2.1 立即寻址;3.2.1 立即寻址;3.2.2寄存器寻址;格式: 操作数的值在寄存器中,指令中的地址码???段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去R2的值 ;结果保存到R0 ;格式: Opcode Rd, Rn, Rm,{shift} Rm:第二操作数寄存器; shift:移位类型(LSL,LSR,ASL,ASR,ROR或RRX)和移位位数(#rimm_5或Rs)。 在指令执行时将移位后的内容作为第二操作数参与运算。但是,Rm保持不变。 ADD R3,R2,R1,LSR #2;R3—R2 + R1÷4;移位位数为立即数: ADD R3,R2,R1,LSR #2 ;R3 —R2 + R1÷4 寄存器R1的内容逻辑右移2位(亦即R1÷4),再与寄存器R2的内容相加,结果放入R3中。 移位位数为寄存器: ADD R3,R2,R1,LSR R4 ;R3 —R2 + R1÷2R4 寄存器R1的内容逻辑右移[R4]位(亦即R1÷2R4),再与寄存器R2的内容相加,结果放入R3中。 ;移位位数为立即数: MOV R1, #02 ADD R1,R1,R1,LSL #3 ;R1=R1+R1*8=9R1 移位位数为寄存器: MOV R1, #02 MOV R2, #08 MOV R3, #03 SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3) ;定义: 寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。 寄存器间接寻址指令举例如下: LDR R0,[R2] ;将R2指向的存储单元的数据读出 ;保存在R1中 ;定义: 基址加偏移寻址又称变址寻址。基址加偏址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。基址寻址用于访问基址附近的存储单元,常用于查表、数组

文档评论(0)

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

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

1亿VIP精品文档

相关文档