CMP和携带标志

时间:2017-06-18 23:07:24

标签: assembly msp430 isa

处理器:MSP430 16位RISC

有人可以根据以下实际设置进位标志来解释CMP指令。从手册中说,

CMP(.B)src,dst ..... dst - src

如果src不等于dst,是否会设置进位标志?

cmp    r15, r11
jnc    #1234

1 个答案:

答案 0 :(得分:3)

用户指南说:

  

<强>描述
  从目标操作数中减去源操作数。这是通过添加   源1的1s补码到目的地的1。结果仅影响状态   SR中的位。
  [...]
  状态位
  C:设置MSB是否有进位,否则重置

换句话说,如果存在无符号溢出,则设置C.

这也可以在跳转指令中看到:JC(如果进位则跳转)和JHS(如果更高或相同则跳转)是相同的指令,JNC(如果没有进位则跳转)和JLO(如果更低则跳转)。

  

示例如果R5≥R6(无符号),程序将继续在Label2。

CMP R6,R5        ; Is R5 >= R6? Info to C
JHS Label2       ; Yes, C = 1
...              ; No, R5 < R6. Continue