1
处理器:MSP430 16位RISCCMP和进位标志
有人可以解释CMP指令的时候,进位标志实际设置在下面。从上面说的手动,
CMP(.B)SRC,DST ..... DST - SRC
如果SRC不等于DST,将进位标志设置?
cmp r15, r11
jnc #1234
处理器:MSP430 16位RISCCMP和进位标志
有人可以解释CMP指令的时候,进位标志实际设置在下面。从上面说的手动,
CMP(.B)SRC,DST ..... DST - SRC
如果SRC不等于DST,将进位标志设置?
cmp r15, r11
jnc #1234
用户手册说:
说明
源操作数从目的操作数中减去。这是通过向目的地添加源+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
取决于被更大...如果'R11
Jester
在这种情况下,进位标志只在减法(dst-src)aka(r11-r15)产生负值时才设置? –
是的,这是正确的。请注意,无符号算术。 – Jester