为什么按位不影响 ZF 位或任何其他标志?



NOT在保存二进制11111111的寄存器上将产生00000000,但ZF仍然具有其旧值,因此即使输出值全部为零,也可能不是1

XOR reg, -1将做同样的事情,但根据结果设置FLAGS。

为什么按位NOT不影响ZF位?希望有人能解释一下为什么,否则它最初是这样设计的。

实际上,我们可以让8086的设计者Steve Morse自己来回答这个问题。我希望他能原谅我引用他的书, 8086/8088 Primer,他已经在他的网站上提供了。以下内容摘自第98页:

在影响标志的布尔指令列表中缺少一条布尔指令NOT。NOT不影响旗子。这是定义处理器时疏忽的结果(我犯了错!)。

相关内容

最新更新