文档详情

《ARM汇编指令集》.doc

发布:2016-09-11约4.1千字共8页下载文档
文本预览下载声明
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, #0X0201 BX R0 ;程序跳转到0x0200处,微处理器切换到Thumb状态(地址必须是4的倍数,否则产生不可预知的后果) 2算术运算指令 2.1不带进位加法指令ADD ADD R0, R1, R2 ;R0← (R1)+(R2) ADD R0, R1, #112 ;R0← (R1)+ 112 ADD R0, R1, R2, LSL #1 ;R0←(R1)+(R21) ;将R2中的值左移1位,再与R1值相加,结果送R0 2.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)- 112 SUB R0, R1 ,R2 LSL#1 ;R0←(R1)- (R21) 2.4 带进位减法指令SBC SUBS R0, R3, R6 ;减最低位字节,不带进位 SBCS R1, R4, R7 ;减第二个字,带进位 SBCS R2, R5, R8 ;减第三个字,带进位 ;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减 2.5 不带进位逆向减法指令RSB RSB R0, R1, R2 ;R0←(R2)- (R1) RSB R0, R1, #112 ;R0← 112- (R1) RSB R0, R1, R2, LSL#1 ;R0←(R21)-R1 2.6 带进位逆向减法指令RSC RSBS R0, R6, R3 ;减最低字节的字,不带进位 RSCS R1, R7, R4 ;减第二个字,带进位 RSCS R2, R8, R5 ;减第三个字,带进位 ;三句话实现了96bit减法运算,由于ARM寄存器宽度只有32bit所以分三次相减 32位乘法指令MUL MUL R0, R1, R2 ;R0←(R1) X(R2) MULS R0, R1, R2 ;R0←(R1) X(R2) ;更新CPSR标志位 乘-累加指令 MLA MLA R0, R1, R2, R3 ;R0←(R1) X(R2)+(R3) MLAS R0, R1, R2, R3 ;R0←(R1) X(R2)+(R3) ;更新CPSR标志位 2.9 无符号数长乘指令 UMULL MOV R5, #0X01 MOV R8, #0X02 UMULL R0, R1, R5, R8 ;(R1) (R0)←(R5)X(R8) ;UMULL指令实现64bit无符号数乘法 无符号长乘-累加指令 UMLAL MOV R0, #0X01 MOV R1, #0X02 MOV R5, #0X01 MOV R8, #0X02 UMLAL R0, R1, R5, R8
显示全部
相似文档