I see this information on the site,
在否定(NEG)期间,除非操作数为零,否则将设置进位标志,在这种情况下,将其清除。
但是,这并不能帮助我说明进位标志。为什么会这样,NEG如何触发一个标志着应该表示结转的标志。
In this answer they quote the manual,
如果源操作数为0,则CF标志设置为0;否则,将CF标志设置为0。否则设置为1。
在我的脑海中,我看到这一点的方式解释了我是按位求反,然后加一个。为什么设置进位标志?有没有什么程序可以帮助我在不了解上述规则的情况下完成此任务。
答案 0 :(得分:2)
在减法上的进位标志表示借位。如果您对x
求反,则(实际上)从0中减去x
,这需要借位,除非x
为0。
因此,除非您减去0,否则设置进位标志是有意义的。
3位2秒恭维
cf
[0]000 value = 0
[0]011 SUB 3
---
Requires borrow.
cf
[1]111 0 after carry (cf=1)
011 SUB 3
------
[1]100
+1 2cp
101
您可以将心理视为逐位否定。