-2

鉴于“...当算术或逻辑运算的结果生成零结果时设置零标志 (ZF)”,那么 cmp 指令如何与 ZF 交互?

鉴于以下代码片段,

mov eax, 0
mov edx, 1
cmp eax, edx

cmp 如何评估两个操作数以及 ZF 设置为什么?如果操作数反转(cmp edx, eax),那么 ZF 是否设置为与原始语句中相同的值?

如果我要比较两个相同的值, cmp 如何评估操作数以及 ZF 设置为什么?

cmp eax, eax
4

1 回答 1

3

cmp 如何评估两个操作数?

直接从手册

比较是通过从第一个操作数中减去第二个操作数,然后以与 SUB 指令相同的方式设置状态标志来执行的。


如果操作数反转(cmp edx, eax),那么 ZF 是否设置为与原始语句中相同的值?

对于采埃孚,是的。对于其他标志,不一定,因为减法不是可交换的。

于 2016-05-18T21:09:31.780 回答