不太了解CPU标志



Am在理解CPU标志寄存器中C和V标志的指示时遇到问题。

对于C-Flag,当我们在MSB上生成进位或借位时,它的集合。我想我了解它是如何产生的。然而,我有一个问题,知道它对任何算术计算的结果意味着什么。

我的导师说,如果C=1,那么如果我们处理的是一个无符号数,那么加法或减法的结果是错误的。

我仍然不知道哪个是无符号数字。它是被加还是被减的两个数字之一?如果其中一个是负的,我们生成C=1,这是被引用的数字,该怎么办?还是结果?

我不明白为什么在这种情况下会生成一个V标志

90 - 55
  0101 1010  
- 1100 1001 (two's complement of 55) 
-------------------
  1001 0001 (-111)
N = 1, Z = 0, C = 1, V = 1

好吧,这将始终由程序员决定,也就是说,汇编代码中的程序将根据任何二进制操作发出的标志来决定何时提供正确的答案。

最新更新