数据处理指令之:SUB减操作指令

数据处理指令之:SUB减操作指令

数据处理指令之:SUB减操作指令

6.3 SUB 减操作指令1.指令的编码格式SUB(Subtract)减操作指令,从寄存器Rn 中减去shifter_operand 表示的数值,并将结果保存到目标寄存器Rd 中,并根据指令的执行结果设置CPSR 中相应的标志位。

指令的编码格式如图6.4 所示。

图6.4 EOR 指令的编码格式

2.指令的语法格式SUB{cond}{S} Rn,Rn,shifter_operand

①cond

为指令编码中的条件域。它指示指令在什么条件下执行。当cond 忽略时,

指令为无条件执行(cond=AL(Alway))。

②S

S 位(bit[20])决定指令的执行是否影响CPSR 中的条件域。当S 位清0 时,指令执行不影响CPSR。当S 位置位时(并且不是r15),则有以下规则。

- 如果结果为负,则标志位N 置位;否则清0(也就是说N 等于结果的第31 位)。

- 如果结果为0,则标志位Z 置位;否则清0。

- 当操作定义为算术操作(ADD、ADC、SUB、SBC、RSB 或RSC)时,标志位C 设置为ALU 的进位输出;否则设置为移位器的进位输出。如果不需要

移位,则保持C。

- 在非算术操作中,标志位V 保持原值。在算术操作中,如果有从第30 位到第31 位的溢出,则置位;如果不发生溢出,则清0。仅当算术操作中操作数被认为是2 的补码的有符号数时,这个标志位才有意义,而且指示结果超出范

相关主题
相关文档
最新文档