【发布时间】:2013-07-20 12:04:51
【问题描述】:
“将 NEG 指令应用于非零值”是什么意思 操作数总是设置进位标志。”
为什么1减2会设置进位标志?
00000001 (1)
+ 11111110 (-2) [in 2-complement form]
---------------------
CF:1 11111111 (-1) [ why is the carry flag set here???]
【问题讨论】:
-
因为规范说确实如此。 (您所做的是从零中减去 1。这会导致“借”到高位。借和进位是相同的,只是不同。)
-
当运算结果太大而无法放入您正在使用的寄存器时,会设置进位标志。
-
我不明白为什么在这种情况下它太大了。
-
"你正在做的是从零中减去 1。"我将 1 加到零以得到八个 1 ;)
-
对于减法,进位标志充当借位标志。由于
1 - 2为负数,因此会导致借位 - 因此设置了进位标志。
标签: assembly x86 carryflag eflags