CMPXCHG 如何影响 FLAGS 寄存器?

问题描述 投票:0回答:1

Intel官方文档说:“如果目标操作数和寄存器AL、AX或EAX中的值相等,则ZF标志被设置;否则被清除。CF、PF、AF、SF和OF标志根据比较操作的结果。” 然而,在 Randall Hyde 的汇编语言艺术中,它说只有 ZF 标志受到影响。

事实上,在 DosBOX 中只有 ZF 标志受到影响。 英特尔是否为更新的处理器做了一些改变?

assembly x86 intel instruction-set compare-and-swap
1个回答
0
投票

记录的

CMPXCHG
行为,自80486首次引入该指令以来,一直是根据比较结果设置标志。 请参阅 80486 程序员参考手册(大 PDF)。

所以看来这是 Hyde 书中的一个错误,也是 DOSBox 中的一个错误。

© www.soinside.com 2019 - 2024. All rights reserved.