2.2.4批量LoadStore指令的寻址方式.doc

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

ARM体系结构与编程(第2版) 第2章 ARM指令分类及其寻址方式  PAGE 60  PAGE 59 第2章 ARM指令分类及其寻址方式 在本章中,将介绍ARM指令分类以及各类指令对应的寻址方式。 2.1 ARM指令集概要介绍 在本节中,将介绍ARM指令相关的一些基本概念,包括指令的分类、指令的一般编码格式以及ARM指令中的条件码。 2.1.1 ARM指令的分类 ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令和异常中断产生指令6类。 2.1.2 ARM指令的一般编码格式 ARM指令字长为固定的32位。一条典型的ARM指令编码格式如下: 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0 cond0 0 1opcodeS Rn Rdshifter_operand 其中的符号及参数说明如下。 opcode:指令操作符编码。 cond:指令执行的条件编码。 S:决定指令的操作是否影响CPSR的值。 Rd:目标寄存器编码。 Rn:包含第1个操作数的寄存器编码。 shifter_operand:表示第2个操作数。 一条典型的ARM指令语法格式如下所示: opcode{cond}{S} Rd,Rn,shifter_operand 其中的符号及参数说明如下。 opcode:是指令助记符,如ADD表示算术加操作指令。 {cond}:表示指令执行的条件。 {S}:决定指令的操作是否影响CPSR的值。 Rd:表示目标寄存器。 Rn:表示包含第1个操作数的寄存器。 shifter_operand:表示第2个操作数。 2.1.3 ARM指令的条件码域 大多数ARM指令都可以有条件地执行,也就是根据CPSR中的条件标志位决定是否执行该指令。当条件满足时执行该指令,条件不满足时该指令被当作一条NOP指令,这时处理器进行判断中断请求等操作,然后转向下一条指令。 在ARMv5之前的版本中,所有的指令都是有条件执行的,从ARMv5版本开始,引入了一些必须无条件执行的指令。 每一条ARM指令包含4位的条件码,如下所示: 31 28 27 0 cond 条件码共有16个,各条件码的含义和助记符如表2.1所示。可条件执行的指令可以在???助记符的扩展域加上条件码助记符,从而在特定的条件下执行。 表2.1 指令的条件码 条件码 cond条件码 助记符含 义CPSR中条件标志位值0000EQ相等Z=10001NE不相等Z=00010CS/HS无符号数大于/等于C=10011CC/LO无符号数小于C=00100MI负数N=10101PL非负数N=00110VS上溢出V=10111VC没有上溢出V=01000HI无符号数大于(Higher)C=1且Z=01001LS无符号数小于等于C=0或Z=11010GE带符号数大于等于N=1且V=1 或N=0且V=01011LT带符号数小于N=1且V=0 或N=0 且V=11100GT带符号数大于Z=0且N=V1101LE带符号数小于/等于Z=1或N!=V1110AL无条件执行1111NV该指令从不执行ARMv3之前未定义该指令执行结果不可预知ARMv3及ARMv4AL该指令无条件执行ARMv5及以上版本 2.2 ARM指令的寻址方式 ARM指令的寻址方式有以下几种,分别进行讨论: 数据处理指令的操作数的寻址方式。 字及无符号字节的Load/Store指令的寻址方式。 杂类Load/Store指令的寻址方式。 批量Load/Store指令的寻址方式。 协处理器Load/Store指令的寻址方式。 2.2.1 数据处理指令的操作数的寻址方式 通常数据处理指令的格式如下所示: opcode{cond}{S} Rd,Rn,shifter_operand 其中的符号及参数说明如下。 opcode:是指令助记符,如ADD表示算术加操作指令。 {cond}:表示指令执行的条件。 {S}:决定指令的操作是否影响CPSR的值。 Rd:表示目标寄存器。 Rn:表示包含第1个操作数的寄存器。 shifter_operand:表示第2个操作数。 shifter_operand通常有下

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档