[英]CMP and carry flag
处理器:MSP430 16位RISC
有人可以根据何时实际设置进位标志来解释CMP指令。 从手册上说,
CMP(.B)src,dst ..... dst-src
如果src不等于dst,是否设置进位标志?
cmp r15, r11
jnc #1234
用户指南说:
描述
从目标操作数中减去源操作数。 这是通过将源+ 1的补码加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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.