![嵌入式系统4(ARM指令系统)_第1页](http://file4.renrendoc.com/view/9032d6ee2ca0cb7d24f566618d42b964/9032d6ee2ca0cb7d24f566618d42b9641.gif)
![嵌入式系统4(ARM指令系统)_第2页](http://file4.renrendoc.com/view/9032d6ee2ca0cb7d24f566618d42b964/9032d6ee2ca0cb7d24f566618d42b9642.gif)
![嵌入式系统4(ARM指令系统)_第3页](http://file4.renrendoc.com/view/9032d6ee2ca0cb7d24f566618d42b964/9032d6ee2ca0cb7d24f566618d42b9643.gif)
![嵌入式系统4(ARM指令系统)_第4页](http://file4.renrendoc.com/view/9032d6ee2ca0cb7d24f566618d42b964/9032d6ee2ca0cb7d24f566618d42b9644.gif)
![嵌入式系统4(ARM指令系统)_第5页](http://file4.renrendoc.com/view/9032d6ee2ca0cb7d24f566618d42b964/9032d6ee2ca0cb7d24f566618d42b9645.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统第四讲ARM指令系统西安电子科技大学计算机学院2本节内容ARM指令集简述ARM指令格式ARM指令集编码ARM寻址方式ARM指令介绍Thumb指令介绍西安电子科技大学计算机学院31.ARM指令集简述Load/Store结构在通用寄存器中进行操作;load/store–从存储器中读某个值,操作完后再将其放回存储器中。指令分类(6类)数据处理指令load/store指令跳转指令CPSR处理指令异常产生指令协处理器指令西安电子科技大学计算机学院4举例ADDR2,R1,R0加法指令,R1+R0=>R2ADDSR1,R1,#1加法指令,R1+1=>R1影响CPSR寄存器(带有S)LDRR0,[R1]读取R1地址上的存储器单元内容,执行条件ALBEQDATAEVEN跳转指令,执行条件EQ,即相等则跳转到DATAEVENSUBNESR1,R1,#0x0D条件执行减法运算(NE),R1-0x0D=>R1,影响CPSR寄存器(带有S)西安电子科技大学计算机学院52.ARM指令格式基本格式<opcode>{<cond>}{S}<Rd>,<Rn>{,<operand2>}说明opcode 指令助记符,如LDR,STR等cond 执行条件,如EQ,NE等S 是否影响CPSR寄存器的值Rd 目标寄存器Rn 存放第一操作数的寄存器operand2第二个操作数注:{}为可选项西安电子科技大学计算机学院63.ARM指令集编码西安电子科技大学计算机学院7条件码西安电子科技大学计算机学院8条件码ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行条件满足时,指令被执行,否则指令被忽略(相当于NOP指令)。条件码可用2个字符表示可以添加在指令助记符的后面和指令同时使用条件码占指令码的高4位16种条件标志中,只有15种可用(如图),第16种(1111)为系统保留。西安电子科技大学计算机学院94.ARM寻址方式寻址方式是根据指令编码中给出的地址码字段来寻找真实操作数的方法分类立即寻址寄存器寻址寄存器移位寻址基址寻址变址寻址相对寻址块拷贝寻址堆栈寻址西安电子科技大学计算机学院104.1立即寻址也叫立即数寻址操作数就包含在指令的32位编码中如: ADD R0,R0,#1 AND R3,R4,#0xFF只有第二源操作数可用立即数立即数要以“#”为前缀,“#”后加“0x”或“&”表示16进制,“0b”表示二进制,“0d”或缺省表示十进制。西安电子科技大学计算机学院11立即数的表示立即数不能占用32位指令编码空间的全部比特位。ARM指令为单周期指令,也不可能再取指一次用12位数据表示32位数据空间指令编码中留给立即数的空间只有12位每个立即数都由一个8位常数循环右移偶数位得到8(常数)+4(偶数移位个数)=12西安电子科技大学计算机学院12例子合法的立即数0xF200 (0b1111_0010_0000_0000)0x110000(0b0001_0001_0000_0000_0000_0000)0x12800 (0b0001_0010_1000_0000_0000_0000)非法的立即数0x1010 (0b0001_0000_0001_0000)0x00102 (0b0000_0000_0001_0000_0010)0xFF1000(0b1111_1111_0001_0000_0000_0000)西安电子科技大学计算机学院134.2寄存器寻址操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值操作。如: MOV R1,R2; R2->R1
SUB R0,R1,R2;R1-R2->R0
西安电子科技大学计算机学院144.3寄存器移位寻址寄存器移位寻址是ARM指令集特有的寻址方式,是寄存器寻址方式的增强形式如:MOVR0,R2,LSL#3; R2的值左移3位,结果放入 R0,即R0=R2*8 ANDS R1,R1,R2,LSLR3;
R2的值左移R3位,然后和R1 相与操作,结果放入R1注:第2操作数的12位编码空间有冗余位西安电子科技大学计算机学院15移位方式LSL(LogicalShiftLeft)逻辑左移LSR(LogicalShiftRight)逻辑右移ASL(ArithmeticShiftLeft)算术左移ASR(ArithmeticShiftRight)算术右移ROR(RotateRight)循环右移RRX(RotateRightExtendedby1Place)带扩展的循环右移,连同C标志循环右移一位。西安电子科技大学计算机学院16移位操作西安电子科技大学计算机学院17移位位数移位位数可以用立即数(5位)或寄存器方式给出 如: ADD R3,R2,R1,LSR #2
ADD R3,R2,R1,LSRR4
西安电子科技大学计算机学院184.4基址寻址Load/Store指令的寻址方式利用一个寄存器的值作为存储器地址 如: LDR R0,[R1]
STR R0,[R1]西安电子科技大学计算机学院194.5变址寻址Load/Store指令的寻址方式存储器地址由两部分组成基址寄存器地址偏移量地址偏移量的形式立即数寄存器寄存器及一个移位常数4.5.1偏移量为立即数存储器地址为基址寄存器值加上/减去立即数偏移量U控制位为1时加上偏移量;U控制位为0时减去偏移量偏移量占12bit(offset_12)例子:LDR R0,[R1,#4]LDR R0,[R1,#-4]西安电子科技大学计算机学院204.5.2偏移量为寄存器存储器地址为基址寄存器值加上/减去索引寄存器的值U控制位为1时加上索引寄存器的值;U控制位为0时减去索引寄存器的值例子:LDR R0,[R1,R2]LDR R0,[R1,-R2]西安电子科技大学计算机学院214.5.3寄存器及移位常数存储器地址为基址寄存器值加上/减去一个地址偏移量U控制位为1时加上偏移量;U控制位为0时减去偏移量该偏移量由索引寄存器通过移位得到移位的方法如“寄存器移位寻址”方式例子:LDR R0,[R1,R2,LSL#2]西安电子科技大学计算机学院22西安电子科技大学计算机学院234.5.4变址模式前变址模式LDR R0,[R1,#4];R0<-mem32[R1+4]自动变址模式(事先更新方式)LDR R0,[R1,#4]!;R0<-mem32[R1+4] ;R1<-R1+4后变址模式(事后更新方式)LDR R0,[R1],#4;R0<-mem32[R1] ;R1<-R1+4变址寻址的类型3种地址偏移格式立即数寄存器寄存器及一个移位常数3种变址模式前变址自动变址后变址可以组合出总共9种类型的变址寻址方式西安电子科技大学计算机学院24西安电子科技大学计算机学院254.6相对寻址变址寻址的一种变通其基址寄存器是程序计数器PC主要用于分支指令例子: BL SUBR ;转移到SUBR ;返回到此处 SUBR ;子程序入口 …… MOV PC,R14 ;返回西安电子科技大学计算机学院264.7块拷贝寻址块拷贝寻址是多寄存器传送指令LDM/STM的寻址方式寄存器组可以是16个通用寄存器的任意子集地址增长顺序IA(IncrementAfter)IB(IncrementBefore)DA(DecrementAfter)DB(DecrementBefore)西安电子科技大学计算机学院27例子西安电子科技大学计算机学院284.8堆栈寻址堆栈是一块用于保存数据的连续内存堆栈操作的特点是先进后出堆栈增长方式向上增长(递增)向下增长(递减)堆栈指针指向的数据位置满堆栈空堆栈西安电子科技大学计算机学院29ARM支持的堆栈形式满递增:指令如LDMFA,STMFA等空递增:指令如LDMEA,STMEA等满递减:指令如LDMFD,STMFD等空递减:指令如LDMFD,STMFD等符号含义:FD(FullDecrement)ED(EmptyDecrement)FA(FullAggrandizement)EA(EmptyAggrandizement)西安电子科技大学计算机学院30堆栈寻址和块拷贝寻址的联系西安电子科技大学计算机学院31堆栈操作ARM指令中的堆栈形式STMFD SP! {R1-R7,LR}LDMFD SP! {R1-R7,LR}注:一定要带有!Thumb指令中的堆栈形式PUSH {R1-R7,LR}POP {R1-R7,PC}堆栈和块拷贝都是利用批量Load/Store指令的寻址方式,有时也可归为一类西安电子科技大学计算机学院325.ARM指令介绍5.1数据处理指令主要完成寄存器中数据的算术和逻辑运算操作数据宽度:所有操作数都是32位宽度寻址方式立即数寻址寄存器寻址寄存器移位寻址分类数据传送指令算术、逻辑运算指令比较、测试指令乘法指令西安电子科技大学计算机学院335.2Load/Store指令单寄存器存取指令(LDR和STR)加载/存储字(32位对齐)加载/存储半字H(16位对齐)加载/存储字节B(8位对齐)多寄存器存取指令(LDM和STM)可以实现在一组寄存器和一块连续的内存单元之间传输数据堆栈操作和块拷贝存储器和寄存器交换指令SWP使用SWP可实现信号量操作寻址方式:基址寻址、变址寻址西安电子科技大学计算机学院34
5.3跳转指令B跳转到指定的地址执行程序BL将下一条指令的地址拷贝到链接寄存器(R14/LR)中,然后跳转到指定地址运行程序BX带状态切换的跳转指令BLX带连接和状态切换的跳转指令注:跳转的范围是±32MB寻址方式:相对寻址西安电子科技大学计算机学院355.4杂项指令状态寄存器与通用寄存器之间的传送指令MRSMSR异常产生指令SWI 软件中断指令BKPT 断点中断指令(ARMv5以上)协处理器指令西安电子科技大学计算机学院366Thumb指令集Thumb指令集是针对代码密度的问题而提出的。可以看作是ARM指令集的子集。所有Thumb指令均有对应的ARM指令,而Thumb编程模型也对应于ARM模型。Thumb是一个不完整的体系结构,不能指望处理器只执行Thumb代码而不支持ARM指令集。一般Thumb代码只需支持通用功能,必要时可以借助于ARM指令集(例:所有异常自动进入ARM模式)应用程序可以灵活的将ARM指令和Thumb程序混合,以便提高性能和代码密度。同时达到降低功耗、节约成本和提高性能的目的。西安电子科技大学计算机学院376.1Thumb指令集的执行在任何时刻,对指令流的解释取决于CPSR的第5位,即位T,若T置位,则认为指令流为16位的Thumb指令;否则为标准的ARM指令。并不是所有的ARM处理器都支持Thumb指令。只有在命名中有字母T的才支持,例如以上提到的ARM7TDMI。西安电子科技大学计算机学院386.2Thumb状态切换进入Thumb模式复位后,ARM启动并执行ARM指令。转向执行Thumb指令的通常方法是执行一条交换转移指令BX。若BX指令指定的寄存器的最低位为1,则将T置位,并将程序计数器切换为寄存器其它位给出的地址异常返回也可以将微处理器从ARM状态转换为Thumb状态。通常这种指令用于返回到进入异常前所执行的指令流,而不是特地用于转换到Thumb模式西安电子科技大学计算机学院396.2Thumb状态切换退出Thumb模式执行ThumbBX指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中期贷款合同协议书范本
- 个人汽车分期付款购销合同范本
- 人与自然:动物领养合同(三)
- 业务拓展合同合作协议
- 个人借款合同模板-民间借贷标准版
- 临时借调人员服务合同范本
- 产品采购合同保密协议
- 中外合资经营企业合同(新能源发电项目)
- 公司向个人借款协议书范本
- 消防灭火器购销合同
- 教育部《中小学校园食品安全和膳食经费管理工作指引》知识培训
- 建设用地报批服务投标方案(技术方案)
- 2023年11月英语二级笔译真题及答案(笔译实务)
- 籍贯对照表完整版
- 毕业生就业推荐表word模板
- a320飞机刹车系统原理及故障分析
- GB 5009.228-2016食品安全国家标准食品中挥发性盐基氮的测定
- 并联电容器课件
- 彼得圣吉:第五项修炼课件
- 色素性皮肤病
- 《社会主义市场经济理论(第三版)》第二章社会主义市场经济改革论
评论
0/150
提交评论