在理解CPU Flags寄存器中C和V标志的指示时遇到问题。
对于C-Flag,当我们在MSB上生成进位或借位时它的设置。我想我已经知道它是如何产生的。但是,我知道它对任何算术计算结果的指示都有问题。
我的导师说如果C = 1,那么如果我们处理的是无符号数,则加法或减法的结果是错误的。
我仍然不知道哪个是无符号数。它是被添加或减少的两个数字中的一个吗?如果其中一个是负数并且我们生成C = 1,这是被引用的数字怎么办?或者是结果?
我不知道为什么在这种情况下生成V-Flag
90 - 55
0101 1010
- 1100 1001 (two's complement of 55)
-------------------
1001 0001 (-111)
N = 1, Z = 0, C = 1, V = 1
答案 0 :(得分:0)
好吧,它总是由程序员决定,汇编代码中的程序决定何时根据任何二进制操作发出的标志提供正确的答案。