ARM汇编指令集_第1页
ARM汇编指令集_第2页
ARM汇编指令集_第3页
ARM汇编指令集_第4页
ARM汇编指令集_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM汇编程序指令集1跳跃命令1.1跳转命令b :B LABLE; 跳到标签LABELB 0X1111; 跳到绝对地址0X11111.2带连接的跳跃指令BL:开始BL NEXT; 跳转到标签NEXT,将当前PC保存到R14中归还地址下一个; 子程序入口。PS PS、PS 14; 返回1.3带状态切换的跳跃指令BX:MOV R0、#0X0201BX R0; 程序跳至0x0200,微处理器已切换成Thumb状态(该地址必须是4的倍数)。 不这样做会产生无法预测的结果)。2算术运算指令2.1无进位加法指令ADD添加r0、R1、R2; R0 (R1) (R2)添加r0、R1、#112; R0 (R1) 112添加r0、R1、R2、LSL #1; 将R0(R1) (R21) R2的值向左移位1位,将与R1的值相加的结果发送到R02.2带进位加法指令的ADCADDS R0、R3、R6; 将最低字节无位数相加ADCS R1、R4、R7; 放入第二个字,进位ADCS R2、R5、R8; 加上第三个字,进位三句实现96位相加,ARM寄存器宽度只有32位,所以分3次进行相加2.3进位减法命令无SUB s-进位标志辅r 0、R1、R2; R0(R1)- (R2)辅r 0、R1、#112; R0(R1)- 112辅r 0、R1、R2 LSL#1; R0(R1)- (R21 )2.4带进位减法命令SBCSUBS R0、R3、R6; 减少最低字节,无进位SBCS R1、R4、R7; 减少第二个单词,进行进位SBCS R2、R5、R8; 引用第三个单词,进行进位三句实现了96比特减法,ARM寄存器宽度只有32比特,所以分3次进行减法。2.5无进位逆减法指令RSBRSB R0、R1、R2; R0(R2)- (R1)RSB R0、R1、#112; R0 112- (R1)RSB R0、R1、R2、LSL#1; R0(R21)-R12.6带进位反减法指令RSCRSBS R0、R6、R3; 在不进位的情况下减少最低字节的单词RSCS R1、R7、R4; 减少第二个单词,进行进位RSCS R2、R8、R5; 引用第三个单词,进行进位三句实现了96比特减法,因为ARM寄存器宽度只有32比特,所以分3次进行减法。2.7 32位乘法指令MULMUL R0、R1、R2; R0(R1) X(R2)。MULS R0、R1、R2; R0(R1) X(R2) CPSR标志位的更新2.8乘法-累计指令MLAPS r0、R1、R2、R3; R0(R1) X(R2) (R3)。PS r0、R1、R2、R3; R0(R1) X(R2) (R3) CPSR标志位的更新2.9无符号数长乘法指令UMULLMOV R5、#0X01MOV R8、#0X02UMULL R0、R1、R5、R8; (R1) (R0)(R5)X(R8)。 UMULL指令实现64位无符号乘法2.10无符号长乘法-累计指令UMLALMOV R0、#0X01MOV R1、#0X02MOV R5、#0X01MOV R8、#0X02UMLAL R0、R1、R5、R8; R0(R0) (R5)X(R8)低位字节 R1(R1) (R5) X(R8)高位字节 UMLAL指令是64位无符号乘法-累积指令有2.11码长乘法命令SMULLMOV R5、#0X01MOV R8、#0X02SMULL R0、R1、R5、R8; (R1) (R0)(R5)X(R8)。 SMULL指令实现了64位有符号乘法有2.12码长乘法-累计命令svmlMOV R0、#0X01MOV R1、#0X02MOV R5、#0X01MOV R8、#0X02s大规模r 0、R1、R5、R8; R0(R0) (R5)X(R8)低位字节 R1(R1) (R5) X(R8)高位字节 SMLAL指令是64位有符号乘法-相加指令2.13比较指令CMPCMP R1、#0X10; 比较PS标签; R1 #0X10移动到TAG标签2.14负比较指令CMNCMN R0、#1; 判断R0的值是否是1的补数,在“是”的情况下,将标志位置z设为1三逻辑运算指令3.1与命令与PS R 0,0x PS与R0、R0、#3; 取出R0的最低2比特3.2或命令orPS R 0,0x PSORR R0、R0、#33.3异或指令EORPS R 0,0x PSEOR R0、R0、#3; R0(R0)(0X03 )3.4位清除指令BICPS r0,0x PSBIC R0、R0、#b1; 清除寄存器R0的低位2比特3.5测试比较指令TSTTST R1、#b1; 测试寄存器R1的第0位和第1位更新CPSR的标志位,在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是程序标签,必须是当前指令的4KBLDR R1,R0,#0X04LDR 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,#8; 将r8地址的16位数据发送到R0LDRH R0,R1,R2; 将R1 R2地址的数据传送到寄存器R04.6半字存储指令STRHSTRH R1,R0,#0X04; 将R1的低位16bit数据保存到地址R0 0X04中4.7用户模式数据加载存储指令用户模式数据加载存储指令功能的说明PPS功能与LDR指令相同,微处理器在特权模式下使用此指令时,内存系统会将此操作视为正常用户模式下的内存访问指令PS公司同上LDRBT同上STRBT公司同上4.8有符号字节被加到指令LDRSB (有符号低位8位)上LDRSB R0,R1,R2; 将地址R1 R2上的8位数值发送到R0r0的高度24位用符号位扩展4.9有符号半字加载指令LDRSH (有符号低位16位)LDRSH R0、R1; 把地址R1上的低位16位数据发送给R0r0的高位16位用符号位扩展4.10批量数据加载/存储指令LDM/STMLDM/STM指令地址模式选择指令操作数据传输开始地址PS族首先传输数据,然后在基础地址上加4(PS )PS首先在基本地址上加4,然后传输数据(Rn) 4PS首先传输数据,然后减去基本地址4。(PS )数码宝贝首先从基本地址中减去4,然后传输数据(Rn)-4基本地址地址数据0XC0XC0X0X0X0X0X0XR0 0XC 0XC0XC0X0X0X0X0X0XLDMIA R0!R2-R4; R0=0X R2=0XC R3=0X R4=0XLD PS PS K 0!R2-R4; R0=0X R2=0X R3=0X R4=0XLDMDA R0!R2-R4; R0=0X R2=0XC R3=0X R4=0XPS PS K K K ,R2-R4; R0=0X R2=0X R3=0X R4=0X4.11寄存器存储器字交换指令SWPMOV R0、#0X10MOV R1、#0X11MOV R2、#0X12SWP R0,R1,R2将地址0X12的值设为0XFF,命令执行后设为R0=0XFF、R1=0X11、R2=0X12存储器地址0X12的值为0X114.12寄存器存储器字节交换指令SWPB (高位24比特填充0低位8比特数据)MOV R0、#0X10MOV R1、#0XFF11MOV R2、#0X12SWPB R0,R1,R2将地址0X12的值设为0XFF,在命令执行后设为R0=0XFF、R1=0XFF11、R2=0X12地址0X12中值0XFF115数据传输命令5.1数据传输指令MOVMOV R0、#1MOV R0、R1; R0 (R1)MOV R0、R1、LSL#3; R0 (R135

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论