繁体   English   中英

CMP和进位标志

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM