ARM汇编指令.ppt

ARM汇编指令.ppt

ID:48416392

大小:781.50 KB

页数:38页

时间:2020-01-19

ARM汇编指令.ppt_第1页
ARM汇编指令.ppt_第2页
ARM汇编指令.ppt_第3页
ARM汇编指令.ppt_第4页
ARM汇编指令.ppt_第5页
资源描述:

《ARM汇编指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、8.1ARM寻址方式1.立即数寻址操作数由指令直接给出MOVR0,#0xFF;R0←0xFFADDR0,R0,#300;R0←3002.寄存器寻址操作数存放在寄存器中ADDR0,R1,R2;R0←R1+R23.寄存器移位寻址寄存器中数据移位后形成操作数ADDR0,R1,R2LSR#2;R0←R1+R2×44.寄存器间接寻址操作数地址由寄存器给出〖例〗MOVR2,#0xC0000018STRR1,[R2]…………0x000053A1…………0xC00000100xC00000140xC00000180xC0000

2、01C0xC00000200xC0000018R20x000053A1R15.基址变址寻址寄存器内容与指令给出的偏移量相加形成操作数地址LDRR0,[R1,#4];R0←[R1+4]LDRR0,[R1],#4;R0←[R1],R1←R1+4LDRR0,[R1,R2];R0←[R1+R2]偏移量由12位表示,即范围4K6.多寄存器寻址完成多个寄存器传送(多达16个寄存器)LDMIAR0,{R1,R3-R5};R1←[R0],R3←[R0+4];R4←[R0+8],R5←[R0+12]数据A数据B数据C数据D数据A

3、数据B数据C数据D0x00100200R00x001002000x001002040x001002080x0010020CR1R3R4R57.相对寻址PC为基地址,指令中地址标号为偏移量,二者相加形成操作数有效地址。BLnext8.堆栈寻址SP指示栈顶位置,4种堆栈操作………0x12345678空SP→栈底满递减堆栈空递减堆栈………0x12345678空SP→栈底地址递增空0x12345678………SP→栈底空递增堆栈空0x12345678………SP→栈底满递增堆栈8.2ARM指令格式基本指令格式

4、>[][s],,[]操作码条件域(执行该指令要满足的条件)要否影响程序状态寄存器(CPSR)目的寄存器第一源操作数,必须是寄存器第二源操作数1[<参数>]可选2指令长度32bit3数据处理类指令通过寄存器移位寻址实现移位操作,ARM不单独提供移位指令4除Load/Store类指令,其余指令均不能涉及存储器操作数说明[][s],,[]操作码条件助记符标志含义0000EQZ=1相等0001NEZ=0不相等0010CS/HSC

5、=1无符号数大于或等于0011CC/LOC=0无符号数小于0100MIN=1负数0101PLN=0正数或零0110VSV=1溢出0111VCV=0没有溢出1000HIC=1,Z=0无符号数大于1001LSC=0,Z=1无符号数小于或等于1010GEN=V有符号数大于或等于1011LTN!=V有符号数小于1100GTZ=0,N=V有符号数大于1101LEZ=1,N!=V有符号数小于或等于1110AL任何无条件执行(指令默认条件)1111NV任何从不执行(不要使用)对应的汇编代码:CMPR0,R1;比较R0(a)与

6、R1(b)ADDHIR0,R0,#1;若R0>R1,则R0=R0+1ADDLSR1,R1,#1;若R0≤R1,则R1=R1+1C代码:If(a>b)a++;Elseb++;[][s],,[]中的32位立即数是由8位常数在32位宽度经过偶数次循环右移得到(指令解码后中保存该常数和移位信息);能通过上述算法得到的立即数是有效的,否则无效。关于数据处理指令中的有三种形式:#imm(立即数寻址)Rm(寄存器寻址)Rmshift(寄存器移

7、位寻址)cond001opcodesRnRdRotate_immImmed_84414448关于移位操作移位不额外花费时间,且Rm不受影响移位次数由立即数或Rs决定桶形移位器ALURd预处理第一源操作数RmRnMSBRmLSB0MSBRmLSB0MSBRmLSBMSBRmLSBCMSBRmLSBRm,shift的具体形式LSLASRLSRRORRRXCCC桶形移位器的操作助记符功能移位值LSL#imm/Rs逻辑左移#0~31orRsLSR#imm/Rs逻辑右移#0~31orRsASR#imm/Rs算术右移#0~

8、31orRsROR#imm/Rs循环逻辑右移#1~31orRsRRX扩展循环右移1ADDR1,R1,R1,LSL#3;R1=R1+R1←←3SUBR1,R1,R2,LSRR3;R1=R1-R2→→R3ARM指令一般格式condopcodesRnRdRotate_immImmed_8条件域代码域第一操作数(基址寄存器)目的寄存器第二操作数312827212019161512110数据处理

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。