ARM汇编指集1

上传人:大米 文档编号:501741224 上传时间:2022-11-22 格式:DOC 页数:7 大小:74KB
返回 下载 相关 举报
ARM汇编指集1_第1页
第1页 / 共7页
ARM汇编指集1_第2页
第2页 / 共7页
ARM汇编指集1_第3页
第3页 / 共7页
ARM汇编指集1_第4页
第4页 / 共7页
ARM汇编指集1_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《ARM汇编指集1》由会员分享,可在线阅读,更多相关《ARM汇编指集1(7页珍藏版)》请在金锄头文库上搜索。

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

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

3、2SUB R0, R1 ,R2 LSL#1 ;R0(R1)- (R21)2.4 带进位减法指令SBCSUBS R0, R3, R6 ;减最低位字节,不带进位SBCS R1, R4, R7 ;减第二个字,带进位SBCS R2, R5, R8 ;减第三个字,带进位;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减2.5 不带进位逆向减法指令RSBRSB R0, R1, R2 ;R0(R2)- (R1)RSB R0, R1, #112 ;R0 112- (R1)RSB R0, R1, R2, LSL#1 ;R0(R2 #0X10转到TAG标号处2.14 负数比较指令

4、CMNCMN R0, #1 ;判断R0中的值是否为1的补码,是则置标志位Z为13逻辑运算指令3.1 “与”指令 ANDMOV R0, 0XFFAND R0, R0, #3 ;取出R0的最低2bit3.2 “或”指令 ORRMOV R0, 0XFF ORR R0, R0, #3 3.3 “异或”指令 EORMOV R0, 0XFFEOR R0, R0, #3 ;R0(R0)(0X03)3.4 位清除指令 BICMOV R0, 0XFFBIC R0, R0, #B11 ;寄存器R0的低2bit被清零3.5 测试比较指令 TSTTST R1, #b11 ;测试寄存器R1中的第0位和第1位,更新CPS

5、R中标志位,应用中会在TST指令后加一条跳转指令。3.6 异或测试指令 TEQTEQ R0, R1 ;R1和R0中的值按位异或,更新CPSR,实际应用中用TEQ指令测试两个寄存器中的数值是否相等。4 存储器访问指令4.1 字加载指令LDRLDR R1, R0, #0X08 ;读取R0+0X08地址处的数据,保存到R1 ;完成后R0中的数据保持不变LDR R1, R0LDR R1, R0, R2LDR R1, R0, R2, LSL#2 ;读取R0+ (R22)地址处的数据,保存到R1LDR R1, LABEL ;LABEL 为程序标号,必须是当前指令的4KBLDR R1, R0, #0X04L

6、DR R1, R0, #0X04 ;读取R0地址处的数据,保存到R1 ;指令执行后R0中值变为R0+0X04注意:使用LDR指令时字节地址是4的倍数4.2 字存储指令 STRSTR R0, R1, #4 ;将R0中的数据保存到内存地址(R0)+4中4.3 字节加在指令 LDRB (低8位)LDRB R0, R1, #4 ;将地址(R1)+4处的1字节存储到寄存器R0的低;位,并将R0的高24位清零4.4 字节存储指令 STRBSTRB R1, R0, #0X04 ;将R1的低8位存到地址R0+0X04处 ;执行后R0中数据不变4.5 半字加载指令 LDRH (低16位)LDRH R0, R1,

7、 #8 ;将R1+8地址处的16位数据送R0中LDRH R0, R1, R2 ;将R1+R2地址处的数据送寄存器R0中4.6 半字存储指令 STRHSTRH R1, R0, #0X04 ;将R1的低16bit数据存到地址R0+0X04处4.7 用户模式数据加载存储指令 用户模式数据加载存储指令功能描述LDRT功能和LDR指令相同,当微处理器在特权模式下使用此指令时,内存系统将该操作当做一般用户模式下的内存访问指令STRT同上LDRBT同上STRBT同上4.8 有符号字节加在指令 LDRSB (带符号 &低8位)LDRSB R0, R1, R2 ;将地址R1+R2上的8位数值送R0 ;R0的高2

8、4位用符号位扩展4.9 有符号半字加载指令 LDRSH (带符号 &低16位)LDRSH R0, R1 ;将地址R1上的低16位数据送R0 ;R0的高16位用符号位扩展4.10 批量数据加载/存储指令LDM/STMLDM/STM指令地址模式选择 指令操作数据传送起始地址IA先传送数据,后基址加4(Rn)IB先基址加4,后传送数据(Rn)+4DA先传送数据,后基址减4(Rn)DB先基址减4,后传送数据(Rn)-4 基址地址数据0X0000002C0X0000002C0X000000280X000000280X000000240X000000240X000000200X00000020R0 0X0000001C 0X00

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号