2017-06-18 131 views
1

处理器:MSP430 16位RISCCMP和进位标志

有人可以解释CMP指令的时候,进位标志实际设置在下面。从上面说的手动,

CMP(.B)SRC,DST ..... DST - SRC

如果SRC不等于DST,将进位标志设置?

cmp r15, r11 
jnc #1234 
+2

取决于被更大...如果'R11 Jester

+0

在这种情况下,进位标志只在减法(dst-src)aka(r11-r15)产生负值时才设置? –

+0

是的,这是正确的。请注意,无符号算术。 – Jester

回答

2

用户手册说:

说明
源操作数从目的操作数中减去。这是通过向目的地添加源+1的1s补码 来完成的。结果仅影响SR中的状态 位。
[...]
状态位
C:如果存在来自MSB进位置位,复位否则

换言之,如果存在一个无符号的溢出C设定。如果JNC(如果没有进位则跳转)和JLO(如果低位跳转)是相同的指令,则JC(跳转如果进位)和JHS(跳转,如果更高或相同) 。

       如果R5≥R6(无符号),则程序继续到Label2的。

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