处理器:MSP430 16位RISC
有人可以根据以下实际设置进位标志来解释CMP指令。从手册中说,
CMP(.B)src,dst ..... dst - src
如果src不等于dst,是否会设置进位标志?
cmp r15, r11
jnc #1234
答案 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