处理器: MSP430 16位RISC
有人能解释一下CMP指令在什么时候实际设置了进位标志。从手册上说,
CMP(.B) src,dst .dst - src
如果src不等于dst,会设置进位标志吗?
cmp r15, r11
jnc #1234发布于 2017-06-19 06:46:27
用户指南说:
描述 从目标操作数中减去源操作数。这是通过将源+1的1s补码添加到目的地来实现的。结果只影响SR中的状态位。 … 状态位 C:如果有来自MSB的进位设置,否则重置
换句话说,如果存在无符号溢出,则设置C。
在跳转指令中也可以看到这一点: JC (跳转如果进位)和JHS (跳高或相同)是相同的指令,JNC (跳转如果没有进位)和JLO (跳转如果较低)。
示例表示,如果R5≥R6 (无签名),该程序将在Label2继续进行。 CMP R6,R5;R5 >= R6吗?给C JHS Label2的信息;是的,C=1.;不,R5 < R6。继续
https://stackoverflow.com/questions/44620368
复制相似问题