清采NOTE

理解他人 善待自己

用户工具

站点工具


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(来自低位运算)