(MSP430 16 位)
CLR[.W] R14
CMP[.W] #0x0200, R14
JC #1234
我怎么知道是否会设置进位标志?
可以CMP[.W] #0x0200, R14
设置进位标志吗?
查看文档会有所帮助。MSP430x2xx 系列用户指南
的第 3.4.6.14 节说:
语法
CMP src,dst
或CMP.W src,dst
说明
从目标操作数中减去源操作数。[…] 两个操作数不受影响,结果不存储;只有状态位受到影响。状态位
[…]
C:如果结果的 MSB 有进位,则设置,否则重置
因此,如果从零中减去 0x200 需要进位,则将设置进位标志。
进位标志的这个含义在 JC/JHS 的文档第 3.4.6.24 节中更清楚地说明:
描述
[…] JC(如果进位/更高或相同则跳转)用于比较无符号数(0 到 65536)。示例
R5 与 15 进行比较。如果内容更高或相同,则跳转到 LABEL。CMP #15,R5 JHS LABEL ; Jump is taken if R5 >= 15 ...... ; Continue here if R5 < 15