- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM指令系统和汇编程序设计
第4章 ARM指令系统与汇编程序设计
4.1 ARM指令集概述
4.1.1 ARM指令集主要特征
ARM指令集所具有的主要特征归纳如下:
1.ARM处理器中包含大量寄存器,这些寄存器在指令集中都可用于多种用途(目的寄存器、源寄存器、地址指针等);
2.ARM指令集中所有指令均可条件执行,即依据条件域设定条件满足与否来决定是否执行;
3.ARM处理器采用Load/Store体系结构(指令集为加载/存储型),即ARM指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,存储器访问需要通过专门的加载/存储指令来实现;
4.ARM指令集均为“3地址”指令,指令中有两个源操作数寄存器和一个结果寄存器,且均可独立设定;
5.ARM处理器的ALU操作和移位操作可同时完成,即在单时钟周期内执行单条指令可同时完成一项普通的移位操作和一项普通ALU操作。
6.ARM处理器可通过协处理器指令使ARM指令集得以扩展,包括在编程模式下增加新的寄存器和数据类型;
7.ARM处理器在Thumb体系结构中以高密度16位压缩形式表示指令集(Thumb指令集)。
4.1.2ARM指令基本格式
ARM指令的助记符格式为:
opcode{cond}{S} Rd,Rn,op2; 注释
举例:ADDEQS R1,R2,#5; R1=R2+5
其中,opcode表示“操作码”(如ADD),后缀{cond}表示“条件域”(如EQ表示该指令只有当CPSR中Z标志置位才执行),后缀{S}表示指令执行结果将影响CPSR寄存器值;空格之后的Rd表示“目的寄存器”(如R1),第一个逗号之后Rn表示“第一操作数1(操作数1)”(如R2),第二个逗号之后的op2表示“第二操作数(操作数2)”(如#5表示立即数5)。分号之后为“注释”,由文字和符号组成(如R1=R2+5)。
4.1.3ARM指令条件码域
当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。每一条ARM指令包含4位条件码,位于指令的最高4位[31:28],可表示16种条件,每一种条件用两个英文字符(大写)表示,作为指令助记符的后缀。例如,跳转指令B加上后缀EQ之后变为BEQ,表示“相等则跳转”(即当CPSR中的Z标志置位时发生跳转)。16种条件标志码中只有15种(表4.1)可供使用,第16种(1111)为暂时不能使用(系统保留)。
表4.1 ARM指令条件码(15项)
条件码
助记符后缀
标 志
含 义
0000
EQ
Z 置位
相等
0001
NE
Z 清零
不相等
0010
CS
C 置位
无符号数大于或等于
0011
CC
C 清零
无符号数小于
0100
MI
N 置位
负数
0101
PL
N 清零
正数或零
0110
VS
V 置位
溢出
0111
VC
V 清零
未溢出
1000
HI
C 置位,Z 清零
无符号数大于
1001
LS
C 清零,Z 置位
无符号数小于或等于
1010
GE
N 等于V
带符号数大于或等于
1011
LT
N 不等于V
带符号数小于
1100
GT
Z 清零(且N等于V)
带符号数大于
1101
LE
Z 置位(或N不等于V)
带符号数小于或等于
1110
AL
忽略
无条件执行
4.2 ARM寻址方式
所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。目前ARM指令系统支持如下9种寻址方式。
4.2.1 立即寻址
立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如:
ADD R0, R0, #0x3f; R0←R0+0x3f
该指令的第二个源操作数即为立即数,须以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”之后加上“0x”或“”标识符。
4.2
寄存器寻址即寄存器中的数值作为操作数,这种寻址方式是各类处理器都采用的一种方式,也是一种执行效率较高的寻址方式。例如:
ADD R0, R1, R2; R0←R1+R2
该指令的所有操作数均在寄存器中,实际执行效果是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。
4.2.3 寄存器移位寻址
寄存器移位寻址的操作数由寄存器的数值做相应移位而得到。移位操作在指令中以助记符形式给出,而移位的位数可用立即数或寄存器寻址方式表示。ARM处理器支持的移位操作共有5种,分别是逻辑左移(LSL)、逻辑右移(LSR)、算术右移(ASR)、循环右移(ROR) 和带扩展的循环右移(RRX),括号内为相应操作的助记符,各种移位操作所实现的功能详见本节4
您可能关注的文档
- 2010~2011学年第二学期《汽车底盘构造和维修10汽车运用3班》期终试题(A).doc
- 2010泰安物理中考样卷和答案.doc
- 2011冬季电气本部高职电气工程和其自动化实习安排表.doc
- 2011届高三地理一轮复习试题:地球公转和其地理意义.doc
- 2011届高考地理一轮同步训练3:地球运动—自转.doc
- 2011届高考地理一轮复习同步课时训练3:地球运动—自转.doc
- 2011届高考物理(运动合成与分解 平抛物体运动).doc
- 2011年专四作文作业和修改标准.doc
- 2011年广东高考作文“回到原点”导写和例文.doc
- 2011年四川省泸州市中考语文试题和答案.doc
- 安徽省阜阳市(新版)2024小学语文统编版(五四制)小升初真题(备考卷)完整试卷(含答案).docx
- 云南省保山市(新版)2024小学语文部编版小升初质量检测(综合卷)完整试卷(含答案).docx
- 湖南省益阳市(新版)2024小学语文统编版(五四制)小升初摸底(提分卷)完整试卷(含答案).docx
- 江苏省无锡市(新版)2024小学语文苏教版小升初测试(提分卷)完整试卷(含答案).docx
- 福建省南平市(新版)2024小学语文部编版小升初考试(综合卷)完整试卷(含答案).docx
- 新疆哈密地区(新版)2024小学语文部编版小升初测试(评估卷)完整试卷(含答案).docx
- 湖南省长沙市(新版)2024小学语文部编版小升初质量检测(强化卷)完整试卷(含答案).docx
- 西藏拉萨市(新版)2024小学语文统编版(五四制)小升初真题(强化卷)完整试卷(含答案).docx
- 内蒙古锡林郭勒盟(新版)2024小学语文部编版小升初摸底(自测卷)完整试卷(含答案).docx
- 广东省珠海市(新版)2024小学语文人教版小升初质量检测(巩固卷)完整试卷(含答案).docx
文档评论(0)