courses:embedded_system:数据处理指令
数据处理指令
数据传送
MOV Rd, operand2 ; 数据传送 MNV Rd, operand2 ; 数据取反后传送
算术运算
ADD Rd, Rn, operand2 ; 加法 ADC Rd, Rn, operand2 ; 带进位的加法 SUB Rd, Rn, operand2 ; 减法 SBC Rd, Rn, operand2 ; 带借位的减法 RSB Rd, Rn, operand2 ; 逆向减法 RSC Rd, Rn, operand2 ; 带借位的逆向减法
逻辑运算
AND Rd, Rn, operand2 ; 逻辑与 ORR Rd, Rn, operand2 ; 逻辑或 EOR Rd, Rn, operand2 ; 逻辑异或 BIC Rd, Rn, operand2 ; 位清除
比较与测试
CMP Rn, operand2 ; 比较 CMN Rn, operand2 ; 负数比较 TST Rn, operand2 ; 位测试 TEQ Rn, operand2 ; 相等测试
乘法
MUL Rd, Rm, Rs ; 32位乘法,Rd = Rm*Rs MLA Rd, Rm, Rs, Rn ; 32位乘加,Rd = Rm*Rs + Rn UMULL RdL0, RdHi, Rm, Rs ; 64位无符号数乘法,(RdLo, RdHi) = Rm*Rs UMLAL RdL0, RdHi, Rm, Rs ; 64位无符号数乘加 ; RdLo = (Rm*Rs)[31:0] + RdLo ; RdHi = (Rm*Rs)[63:32] + RdHi + Carry(来自低位运算) SMULL RdL0, RdHi, Rm, Rs ; 64位有符号数乘法,(RdLo, RdHi) = Rm*Rs SMLAL RdL0, RdHi, Rm, Rs ; 64位有符号数乘加 ; RdLo = (Rm*Rs)[31:0] + RdLo ; RdHi = (Rm*Rs)[63:32] + RdHi + Carry(来自低位运算)