Cortex-A7 常用汇编指令

一、处理器内部数据传输指令

常用数据传输指令
指令 目的 描述
MOV R0 R1 将R1里面的数据复制到R0中。
MRS R0 CPSR 将特殊寄存器CPSR里面的数据复制到R0中。
MSR CPSR R0 将R1里面的数据复制到特殊寄存器CPSR中。

二、存储器访问指令

存储器访问指令
指令

描述

LDR Rd, [Rn, #offset] 从存储器Rn+offset的位置读取数据存放到Rd中。
STR Rd, [Rn, #offset] 将Rd中的数据写入到存储器中的Rn+offset位置。

三、压栈和出栈指令

压栈和出栈指令
指令 描述
PUSH 将寄存器列表存入栈中。
POP 从栈中恢复寄存器列表。

四、跳转指令

跳转指令
指令 描述
B 跳转到label,如果跳转范围超过了+/-2KB,可以指定B.W
BX 间接跳转,跳转到存放Rm中的地址处,并且切换指令集。
BL 跳转到标号地址,并将返回地址保存在LR中。
BLX   结合BX和BL的特点,跳转到Bm指定的地址,并将返回地址保存在LR中,切换指令集。

五、算术运算指令

常用运算指令
指令 计算公式 备注
ADD Rd,Rn,Rm Rd=Rn+Rm 加法运算,指令为ADD
ADD Rd,Rn,#Immed Rd=Rn+#immed
ADC Rd,Rn,Rm Rd=Rn+Rm+进位 带进位的加法运算,指令为ADC
ADC Rd,Rn,#Immed Rd=Rn+#immed+进位
SUB Rd,Rn,Rm Rd=Rn-Rm 减法
SUB Rd,#immed Rd=Rd-#immed
SUB Rd,Rn,#immed Rd=Rn-#immed
SUC Rd,Rn,#immed Rd=Rn-#immed-借位 带借位的减法
SUC Rd,Rn,Rm Rd=Rn-Rm-借位 
MUL Rd,Rn,Rm Rd=Rn*Rm 乘法(32位)
UDIV Rd,Rn,Rm Rd=Rn/Rm 无符号除法
SDIV Rd,Rn,Rm Rd=Rn/Rm 有符号除法

六、逻辑运算指令
 

逻辑运算指令
指令 计算公式 备注
AND Rd,Rn Rd=Rd&Rn 按位与
AND Rd,Rn,#immed Rd=Rn&#immed
AND Rd,Rn,Rm Rd=Rn&Rm
ORR Rd, Rn Rd = Rd | Rn 按位或
ORR Rd, Rn, #immed Rd = Rn | #immed 
ORR Rd, Rn, Rm Rd = Rn | Rm
BIC Rd, Rn Rd = Rd & (~Rn) 位清除
BIC Rd, Rn, #immed Rd = Rn & (~#immed)
BIC Rd, Rn , Rm Rd = Rn & (~Rm)
ORN Rd, Rn, #immed Rd = Rn | (#immed) 按位或非
ORN Rd, Rn, Rm Rd = Rn | (Rm)
EOR Rd, Rn Rd = Rd ^ Rn 按位异或
EOR Rd, Rn, #immed Rd = Rn ^ #immed
EOR Rd, Rn, Rm Rd = Rn ^ Rm

 

你可能感兴趣的:(汇编)