ARM汇编指令集.doc

ARM汇编指令集.doc

ID:49653152

大小:72.00 KB

页数:13页

时间:2020-03-03

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

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

1、ARM汇编指令集1跳转指令1.1跳转指令B:BLABLE;跳转到标号LABEL处B0X1111;跳转到绝对地址0X1111处1.2带连接的跳转指令BL:START…BLNEXT;跳转到标号NEXT处,同时保存当前PC到R14中…;返回地址…NEXT…;子程序入口MOVPC,R14;返回1.3带状态切换的跳转指令BX:MOVR0,#0X0201BXR0;程序跳转到0x0200处,微处理器切换到Thumb状态(地址必须是4的倍数,否则产生不可预知的后果)2算术运算指令2.1不带进位加法指令ADD13ADDR0,R1,R2;R0←(R1)+(R2)ADDR

2、0,R1,#112;R0←(R1)+112ADDR0,R1,R2,LSL#1;R0←(R1)+(R2<<1);将R2中的值左移1位,再与R1值相加,结果送R02.2带进位加法指令ADCADDSR0,R3,R6;加最低位字节,不带进位ADCSR1,R4,R7;加第二个字,带进位ADCSR2,R5,R8;加第三个字,带进位;三句话实现了96bit加法运算,由于ARM寄存器宽度只有32bit所以分三次相加2.3不带进位减法指令SUB;S—进位标志SUBR0,R1,R2;R0←(R1)-(R2)SUBR0,R1,#112;R0←(R1)-112SUBR0,R

3、1,R2LSL#1;R0←(R1)-(R2<<1)2.4带进位减法指令SBCSUBSR0,R3,R6;减最低位字节,不带进位SBCSR1,R4,R7;减第二个字,带进位SBCSR2,R5,R8;减第三个字,带进位;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减132.5不带进位逆向减法指令RSBRSBR0,R1,R2;R0←(R2)-(R1)RSBR0,R1,#112;R0←112-(R1)RSBR0,R1,R2,LSL#1;R0←(R2<<1)-R12.6带进位逆向减法指令RSCRSBSR0,R6,R3;减最低字节

4、的字,不带进位RSCSR1,R7,R4;减第二个字,带进位RSCSR2,R8,R5;减第三个字,带进位;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减2.732位乘法指令MULMULR0,R1,R2;R0←(R1)X(R2)MULSR0,R1,R2;R0←(R1)X(R2);更新CPSR标志位2.8乘-累加指令MLAMLAR0,R1,R2,R3;R0←(R1)X(R2)+(R3)MLASR0,R1,R2,R3;R0←(R1)X(R2)+(R3);更新CPSR标志位2.9无符号数长乘指令UMULLMOVR5,#0X01

5、MOVR8,#0X02UMULLR0,R1,R5,R8;(R1)(R0)←(R5)X(R8);UMULL指令实现64bit无符号数乘法2.10无符号长乘-累加指令UMLAL13MOVR0,#0X01MOVR1,#0X02MOVR5,#0X01MOVR8,#0X02UMLALR0,R1,R5,R8;R0←(R0)+(R5)X(R8)低字节;R1←(R1)+(R5)X(R8)高字节;UMLAL指令为64位无符号乘-累加指令2.10有符号长乘指令SMULLMOVR5,#0X01MOVR8,#0X02SMULLR0,R1,R5,R8;(R1)(R0)←(R5

6、)X(R8);SMULL指令实现64bit有符号数乘法2.12有符号长乘-累加指令SMLALMOVR0,#0X01MOVR1,#0X02MOVR5,#0X01MOVR8,#0X02SMLALR0,R1,R5,R8;R0←(R0)+(R5)X(R8)低字节;R1←(R1)+(R5)X(R8)高字节;SMLAL指令为64位有符号乘-累加指令2.13比较指令CMPCMPR1,#0X10;比较13BGTTAG;R1>#0X10转到TAG标号处……2.14负数比较指令CMNCMNR0,#1;判断R0中的值是否为1的补码,是则置标志位Z为13逻辑运算指令3.1“

7、与”指令ANDMOVR0,0XFFANDR0,R0,#3;取出R0的最低2bit3.2“或”指令ORRMOVR0,0XFFORRR0,R0,#33.3“异或”指令EORMOVR0,0XFFEORR0,R0,#3;R0←(R0)^(0X03)3.4位清除指令BICMOVR0,0XFFBICR0,R0,#B11;寄存器R0的低2bit被清零3.5测试比较指令TSTTSTR1,#b1113;测试寄存器R1中的第0位和第1位,更新CPSR中标志位,应用中会在TST指令后加一条跳转指令。3.1异或测试指令TEQTEQR0,R1;R1和R0中的值按位异或,更新C

8、PSR,实际应用中用TEQ指令测试两个寄存器中的数值是否相等。4存储器访问指令4.1字加载指令LDRLDRR

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

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

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