×

Thumb数据处理指令

消耗积分:1 | 格式:rar | 大小:0.3 MB | 2017-10-19
  Thumb数据处理指令
数据处理指令是指那些操作寄存器中数据的指令。Thumb指令集中的数据处理指令是ARM指令集数据处理指令的一个子集,其中包括MOV指令、算术指令、移位指令、逻辑指令、比较指令和乘法指令。表11.3列出了Thumb数据处理指令。
 
表11.3 Thumb状态数据处理指令
助  记  符 说    明 操    作
ADC  Rd,Rm 带进位的32位加 Rd:=Rd+Rm+C flag
ADD  Rd,Rn,Rm 32位加 Rd:=Rn+Rm
ADD  Rd,Rn,#0~#7 32位加 Rd:=Rn+3_bit_immed
ADD  Rd,#0~#277 32位加 Rd:=Rn+8_bit_immed
AND  Rd,Rm 逻辑与 Rd:=Rd AND Rm
ASR  Rd,Rm,#1~#32 算术右移 Rd:=Rm ASR 5_bit_immed
ASR  Rd,Rs 算术右移 Rd:=Rm ASR Rs
BIC  Rd,Rm 位清零 Rd:=Rd AND NOT Rm
CMN  Rn,Rm 32位取负比较 Rn+Rm 并设置标志位
CMP  Rn,#0~#255 32位整数比较 Rn-8_bit_immed 并设置标志位
CMP  Rn,Rm 32位整数比较 Rn-Rm 并设置标志位
EOR  Rd,Rm 异或 Rd:=Rd EOR Rm
LSL  Rd,Rm,#0~#31 逻辑左移 Rd:=Rm LSL 5_bit_immed
LSL  Rd,Rs 逻辑左移 Rd:=Rd LSL Rs
LSR  Rd,Rm,#1~#32 逻辑右移 Rd:=Rm LSR 5_bit_immed
LSR  Rd,Rs 逻辑右移 Rd:=Rd LSR Rs
MOV  Rd,#0~#255 将数据送入寄存器 Rd:=8_bit_immed
MOV  Rd,Rn 将数据送入寄存器 Rd:=Rn
MUL  Rd,Rm Rd:=Rm*Rd
MVN  Rd,Rm 将32位数的“反”送入寄存器 Rd:=NOT Rm
NEG  Rd,Rm 求反 Rd:=0-Rm
ORR  Rd,Rm 逻辑或 Rd:=Rd OR Rm
ROR  Rd,Rs 逻辑右移 Rd:=Rd ROR Rs
SBC  Rd,Rm 带进位减 Rd:=Rd-Rm-NOT(Carry Flag)
SUB  Rd,Rn,Rm Rd:=Rn-Rm
SUB  Rd,Rn,#0~#7 Rd:=Rn-3_bit_immed
SUB  Rd,#0~#255 Rd:=Rn-8_bit_immed
TST  Rn,Rm 位测试指令 Rn AND Rm 并更新标志位
 
Thumb的数据处理指令与等价的ARM指令使用相同的格式。所有对r0~r7低8个寄存器操作的数据处理指令都更新条件标志位,对r8~r14和PC高8个寄存器操作的指令除MOV指令外,其他指令均不改变条件标志位。这些指令包括:
 
·  MOV  Rd,Rn
·  ADD  Rd,Rm
·  CMP  Rn,Rm
·  ADD  sp,#0~#508
·  SUB  sp,#0~#508
·  ADD  Rd,sp,#0~#1020
·  ADD  Rd,pc,#0~#1020
评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !