数据处理指令之:CMP 比较指令
6.11 CMP 比较指令1.指令的编码格式CMP(Compare)比较指令使用寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中相应的条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。
指令的编码格式如图6.12 所示。
图6.12 CMP 指令编码格式
2.指令的语法格式CMP{cond} Rn,shifter_operand
①cond
为指令编码中的条件域。
它指示指令在什么条件下执行。
当cond 忽略时,
指令为无条件执行(cond=AL(Alway))。
②Rn
指定第一个源操作数寄存器。
③shifter_operand
详见TST 指令。
3.指令操作的伪代码指令操作的伪代码如下面程序段所示。
If ConditionPassed{cond} then
ALU_out = Rn -shifter_operand
N Flag = ALU_out[31]
Z Flag = if ALU_out==0 then 1 else 0
C Flag =NOT BorrowFrom{Rn-shifter_operand}
V Falg=OverflowFrom{Rn-shifter_operand}。