版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安电子科技大学计算机学院2ARM指令集简述指令集简述ARM指令格式指令格式ARM指令集编码指令集编码ARM寻址方式寻址方式ARM指令介绍指令介绍Thumb指令介绍指令介绍西安电子科技大学计算机学院3Load/Store 结构结构q在通用寄存器中进行操作;qload/store 从存储器中读某个值,操作完后再将其放回存储器中。指令分类(指令分类(6类)类)q数据处理指令qload/store指令q跳转指令qCPSR处理指令q异常产生指令q协处理器指令西安电子科技大学计算机学院4ADD R2, R1, R0 加法指令,R1R0R2ADDS R1, R1, #1 加法指令,R11R1 影响CPSR
2、寄存器(带有S)LDR R0, R1 读取R1地址上的存储器单元内容,执行条件ALBEQ DATAEVEN 跳转指令,执行条件EQ,即相等则跳转到DATAEVENSUBNES R1, R1, #0 x0D条件执行减法运算(NE),R1-0 x0D=R1,影响CPSR寄存器(带有S)西安电子科技大学计算机学院5基本格式基本格式S ,说明说明qopcode 指令助记符,如LDR,STR 等qcond执行条件,如EQ,NE 等qS是否影响CPSR 寄存器的值qRd 目标寄存器qRn 存放第一操作数的寄存器qoperand2 第二个操作数注:为可选项西安电子科技大学计算机学院6西安电子科技大学计算机学
3、院7西安电子科技大学计算机学院8ARM状态时,几乎所有的指令均根据状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条中条件码的状态和指令的条件域有条件的执行件的执行q条件满足时,指令被执行,q否则指令被忽略(相当于NOP指令)。条件码可用条件码可用2个字符表示个字符表示q可以添加在指令助记符的后面和指令同时使用条件码占指令码的高条件码占指令码的高4位位q16种条件标志中,只有15种可用(如图),第16种(1111)为系统保留。西安电子科技大学计算机学院9寻址方式是根据指令编码中给出的地址码字段来寻址方式是根据指令编码中给出的地址码字段来寻找真实操作数的方法寻找真实操作数的方法
4、分类分类q立即寻址q寄存器寻址q寄存器移位寻址q基址寻址q变址寻址q相对寻址q块拷贝寻址q堆栈寻址西安电子科技大学计算机学院10也叫立即数寻址也叫立即数寻址q操作数就包含在指令的32位编码中q如:ADDR0,R0,#1 ANDR3,R4,#0 xFF只有第二源操作数可用立即数只有第二源操作数可用立即数立即数要以立即数要以“”为前缀,为前缀,“”后加后加“0 x”或或“&”表示表示16 进制,进制,“0b”表示二进表示二进制,制,“0d”或缺省表示十进制。或缺省表示十进制。西安电子科技大学计算机学院11立即数不能占用立即数不能占用32位指令编码空间的全部位指令编码空间的全部比特位。比特位
5、。qARM指令为单周期指令,也不可能再取指一次用用12位数据表示位数据表示32位数据空间位数据空间q指令编码中留给立即数的空间只有12位每个立即数都由一个每个立即数都由一个8位常数循环右移偶数位常数循环右移偶数位得到位得到q8 (常数)+ 4(偶数移位个数)= 12西安电子科技大学计算机学院12合法的立即数合法的立即数q0 xF200 (0b1111_0010_0000_0000)q0 x110000(0b0001_0001_0000_0000_0000_0000)q0 x12800(0b0001_0010_1000_0000_0000_0000)非法的立即数非法的立即数q0 x1010 (0
6、b0001_0000_0001_0000)q0 x00102(0b0000_0000_0001_0000_0010)q0 xFF1000(0b1111_1111_0001_0000_0000_0000)西安电子科技大学计算机学院13操作数的值在寄存器中,指令中的地址码操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直字段指出的是寄存器编号,指令执行时直接取出寄存器值操作。接取出寄存器值操作。q如:MOV R1,R2; R2 - R1q SUBR0,R1,R2;R1 - R2 - R0西安电子科技大学计算机学院14寄存器移位寻址是寄存器移位寻址是ARM指令集指令集特有特有的
7、寻址的寻址方式,是寄存器寻址方式的增强形式方式,是寄存器寻址方式的增强形式q如:MOV R0,R2,LSL #3;R2 的值左移3 位,结果放入R0,即R0 = R2 * 8qANDS R1,R1,R2,LSL R3 ;R2 的值左移R3 位,然后和R1 相与操作,结果放入R1注:第注:第2操作数的操作数的12位编码空间有冗余位位编码空间有冗余位西安电子科技大学计算机学院15LSL (Logical Shift Left) 逻辑左移逻辑左移LSR (Logical Shift Right) 逻辑右移逻辑右移ASL (Arithmetic Shift Left) 算术左移算术左移ASR (Ari
8、thmetic Shift Right) 算术右移算术右移ROR (Rotate Right) 循环右移循环右移RRX (Rotate Right Extended by 1 Place)带扩展的带扩展的循环右移,连同循环右移,连同C标志循环右移标志循环右移一一位。位。西安电子科技大学计算机学院16西安电子科技大学计算机学院17移位位数可以用立即数移位位数可以用立即数(5位位)或寄存器方式或寄存器方式给出给出q如:ADDR3,R2,R1,LSR #2 ADDR3,R2,R1,LSR R4 西安电子科技大学计算机学院18Load/Store指令的寻址方式指令的寻址方式利用一个寄存器的值作为存储器
9、地址利用一个寄存器的值作为存储器地址q如:LDR R0,R1 STRR0,R1西安电子科技大学计算机学院19Load/Store指令的寻址方式指令的寻址方式存储器地址由两部分组成存储器地址由两部分组成q基址寄存器q地址偏移量地址偏移量的形式地址偏移量的形式q立即数q寄存器q寄存器及一个移位常数存储器地址为基址寄存器值加上存储器地址为基址寄存器值加上/减去立即减去立即数偏移量数偏移量U控制位为控制位为1时加上偏移量;时加上偏移量;U控制位为控制位为0时时减去偏移量减去偏移量偏移量占偏移量占12bit(offset_12)例子:例子:qLDR R0,R1,#4qLDR R0,R1,#-4西安电子科
10、技大学计算机学院20存储器地址为基址寄存器值加上存储器地址为基址寄存器值加上/减去索引减去索引寄存器的值寄存器的值U控制位为控制位为1时加上索引寄存器的值;时加上索引寄存器的值;U控控制位为制位为0时减去索引寄存器的值时减去索引寄存器的值例子:例子:qLDR R0,R1,R2qLDR R0,R1,-R2西安电子科技大学计算机学院21存储器地址为基址寄存器值加上存储器地址为基址寄存器值加上/减去一个减去一个地址偏移量地址偏移量U控制位为控制位为1时加上偏移量;时加上偏移量;U控制位为控制位为0时时减去偏移量减去偏移量该偏移量由索引寄存器通过移位得到该偏移量由索引寄存器通过移位得到q移位的方法如“
11、寄存器移位寻址”方式例子:例子:qLDR R0,R1,R2,LSL #2西安电子科技大学计算机学院22西安电子科技大学计算机学院23前变址模式前变址模式qLDRR0,R1,#4 ;R0 - mem32R1+4自动变址模式(事先更新方式)自动变址模式(事先更新方式)qLDRR0,R1,#4!;R0 - mem32R1+4 ;R1 - R1+4后变址模式(事后更新方式)后变址模式(事后更新方式)qLDRR0,R1 ,#4;R0 - mem32R1 ;R1 - R1+43种地址偏移格式种地址偏移格式q立即数q寄存器q寄存器及一个移位常数3种变址模式种变址模式q前变址q自动变址q后变址可以组合出总共可
12、以组合出总共9种类型的变址寻址方式种类型的变址寻址方式西安电子科技大学计算机学院24西安电子科技大学计算机学院25变址寻址的一种变通变址寻址的一种变通其基址寄存器是程序计数器其基址寄存器是程序计数器PC主要用于分支指令主要用于分支指令例子:例子:BLSUBR ;转移到SUBR;返回到此处SUBR;子程序入口MOV PC,R14;返回西安电子科技大学计算机学院26块拷贝寻址是多寄存器传送指令块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式的寻址方式寄存器组可以是寄存器组可以是16个通用寄存器的任意子集个通用寄存器的任意子集地址增长顺序地址增长顺序qIA (Increment After)qI
13、B (Increment Before)qDA (Decrement After)qDB (Decrement Before)西安电子科技大学计算机学院27西安电子科技大学计算机学院28堆栈是一块用于保存数据的连续内存堆栈是一块用于保存数据的连续内存堆栈操作的特点是先进后出堆栈操作的特点是先进后出堆栈增长方式堆栈增长方式q向上增长(递增)q向下增长(递减)堆栈指针指向的数据位置堆栈指针指向的数据位置q满堆栈q空堆栈西安电子科技大学计算机学院29满递增:指令如满递增:指令如LDMFA,STMFA 等等空递增:指令如空递增:指令如LDMEA,STMEA 等等满递减:指令如满递减:指令如LDMFD,
14、STMFD 等等空递减:指令如空递减:指令如LDMFD,STMFD 等等符号含义:符号含义:qFD (Full Decrement)qED (Empty Decrement)qFA (Full Aggrandizement)qEA (Empty Aggrandizement)西安电子科技大学计算机学院30西安电子科技大学计算机学院31ARM指令中的堆栈形式指令中的堆栈形式qSTMFDSP!R1-R7,LRqLDMFD SP!R1-R7,LRq注:一定要带有!Thumb指令中的堆栈形式指令中的堆栈形式qPUSH R1-R7,LRqPOP R1-R7,PC堆栈和块拷贝都是利用批量堆栈和块拷贝都是利
15、用批量Load/Store指令指令的寻址方式,有时也可归为一类的寻址方式,有时也可归为一类西安电子科技大学计算机学院325.1 数据处理指令数据处理指令q主要完成寄存器中数据的算术和逻辑运算操作q数据宽度:所有操作数都是32位宽度q寻址方式 立即数寻址 寄存器寻址 寄存器移位寻址q分类 数据传送指令 算术、逻辑运算指令 比较、测试指令 乘法指令西安电子科技大学计算机学院33单寄存器存取指令(单寄存器存取指令(LDR和和STR)q加载/存储字(32位对齐)q加载/存储半字H(16位对齐)q加载/存储字节B(8位对齐)多寄存器存取指令(多寄存器存取指令(LDM 和和STM)q可以实现在一组寄存器和
16、一块连续的内存单元之间传输数据q堆栈操作和块拷贝存储器和寄存器交换指令存储器和寄存器交换指令SWPq使用SWP可实现信号量操作寻址方式:基址寻址、变址寻址寻址方式:基址寻址、变址寻址西安电子科技大学计算机学院34Bq跳转到指定的地址执行程序BLq将下一条指令的地址拷贝到链接寄存器(R14/LR)中,然后跳转到指定地址运行程序BXq带状态切换的跳转指令BLXq带连接和状态切换的跳转指令注:跳转的范围是注:跳转的范围是32MB寻址方式:相对寻址寻址方式:相对寻址西安电子科技大学计算机学院35状态寄存器与通用寄存器之间的传送指令状态寄存器与通用寄存器之间的传送指令qMRSqMSR异常产生指令异常产生
17、指令qSWI 软件中断指令qBKPT断点中断指令 (ARMv5以上)协处理器指令协处理器指令西安电子科技大学计算机学院36Thumb指令集是针对代码密度的问题而提出的。指令集是针对代码密度的问题而提出的。可以看作是可以看作是ARM指令集的子集。指令集的子集。所有所有Thumb指令均有对应的指令均有对应的ARM指令,而指令,而Thumb编程模型也对应于编程模型也对应于ARM模型。模型。Thumb是一个不完整的体系结构,不能指望处理是一个不完整的体系结构,不能指望处理器只执行器只执行Thumb代码而不支持代码而不支持ARM指令集。一般指令集。一般Thumb代码只需支持通用功能,必要时可以借助代码只
18、需支持通用功能,必要时可以借助于于ARM指令集(例:所有异常自动进入指令集(例:所有异常自动进入ARM模式)模式)应用程序可以灵活的将应用程序可以灵活的将ARM指令和指令和Thumb程序混程序混合,以便提高性能和代码密度。同时达到降低功合,以便提高性能和代码密度。同时达到降低功耗、节约成本和提高性能的目的。耗、节约成本和提高性能的目的。西安电子科技大学计算机学院37在任何时刻,对指令流的解释取决于在任何时刻,对指令流的解释取决于CPSR的第的第5位,即位位,即位T,若,若T置位,则认置位,则认为指令流为为指令流为16位的位的Thumb指令;否则为标指令;否则为标准的准的ARM指令。指令。并不是所有的并不是所有的ARM处理器都支持处理器都支持Thumb指令。只有在命名中有字母指令。只有在命名中有字母T的才支持,的才支持,例如以上提到的例如以上提到的ARM7TDMI。西安电子科技大学计算机学院38进入进入Thumb模式模式q复位后,ARM启动并执行ARM指令。转向执行Thumb指令的通常方法是执行一条交换转移指令BX。若BX指令指定的寄存器的最低位为1,则将T置位,并将程序计数器切换为寄存器其它位给出的地址q异常返回也可以将微处理器从ARM状态转换为Thumb状态。通常这种指令用于返回到进入异常前所执行的指令流,而不是特地用于转换到Thumb模式西安电子科技大学计算机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 两个人创业合同范本
- 产品专利保密协议书
- 兄弟共同股份协议书
- 住房装修托管协议书
- 个人分摊协议书范本
- 买卖钩机合同协议书
- 书阅览装修合同范本
- 中学暑假安全协议书
- 高效压铸模具设计与应用方案
- 代理商框架合同范本
- 《学前心理学》课件-任务四 掌握学前儿童的感觉和知觉的发展
- 大脑的奥秘:神经科学导论学习通超星课后章节答案期末考试题库2023年
- 环境保护税课件
- 课本剧林教头风雪山神庙剧本
- 中医外科学课件章第十三章泌尿男性疾病
- 延长离心机滤布使用寿命
- GB/T 985.1-2008气焊、焊条电弧焊、气体保护焊和高能束焊的推荐坡口
- 个人资料表(美国-DS-160新表格)
- 甲状腺微创消融治疗手术知情同意书
- GA/T 1356-2018国家标准GB/T 25724-2017符合性测试规范
- 建筑之偷面积课件
评论
0/150
提交评论