1.分别为数据处理指令 (完成CPU内部的计算)
2. Load/Store指令 (完成CPU与内存 IO外设之间的数据传输)
3. 跳转指令 (完成程序的跳转)
4. 程序状态寄存器处理指令 (完成 CPSR的管理 )
5. 协处理器指令 (完成CPU扩展功能的实现)
6. 异常产生指令 (用户程序异常触发)
一、数据处理指令
1、数据传送指令MOV、MVN
MOV 指令格式 MOV{cond}{S} Rd,operand2
MVN 指令格式 MVN{cond}{S} Rd,operand2
2、算术运算指令ADD、SUB、ADC、RSB、SBC、RSC
ADD:加法运算指令 eg:ADD R1,R1,R2 ;R1=R1+R2
SUB :减法运算指令 eg:SUBS R2,R1,R2 ;R2=R1-R2
ADC:带进位加法指令 eg:(使用ADC实现64位加法,结果存于R1、R0中)
ADDS R0,R0,R2 ;R0等于低32位相加,并影响标志位
ADC R1,R1,R3 ;R1等于高32位相加,并加上低位进位
SBC:带进位减法指令 eg:(使用SBC实现64位减法,结果存于R1、R0中)
SUBS R0,R0,R2 ; 低32位相减,并影响标志位
SBC R1,R1,R3 ;高32位相减,并减去低位借位
RSB:逆向减法指令 eg: RSB R3,R1,#0xFF00 ;R3=0xFF00-R1
RSBS R1,R2,R2,LSL #2 ;R1=(R2<<2)-R2=R2×3
RSC:带进位逆向减法指令 eg: (使用RSC指令实现求64位数值的负数) RSBS R2,R0,#0 RSC R3,R1,#0
3、逻辑运算AND、ORR、EOR、BIC
AND : 逻辑与操作指令 eg: ANDS R0,R0,#0x01 ;R0=R0&0x01,取出最低位数据 AND R2,R1,R3 ;R2=R1&R3
ORR : 逻辑或操作指令 eg: ORR R0,R0,#0x0F ;将R0的低4位置1
MOV R1,R2,LSR #24 ;使用ORR指令将R2的高8位
ORR R3,R1,R3,LSL #8 ;数据移入到R3低8位中
EOR : 逻辑异或操作指令 eg: EOR R1,R1,#0x0F ;将R1的低4位取反 EOR R2,R1,R0 ;R2=R1^R0
EORS R0,R5,#0x01 ; 将R5和0x01进行逻辑异或 ;结果保存到R0,并影响标志位
<