鉴于“...当算术或逻辑运算的结果生成零结果时设置零标志 (ZF)”,那么 cmp 指令如何与 ZF 交互?
鉴于以下代码片段,
mov eax, 0
mov edx, 1
cmp eax, edx
cmp 如何评估两个操作数以及 ZF 设置为什么?如果操作数反转(cmp edx, eax),那么 ZF 是否设置为与原始语句中相同的值?
如果我要比较两个相同的值, cmp 如何评估操作数以及 ZF 设置为什么?
cmp eax, eax
cmp 如何评估两个操作数?
直接从手册:
比较是通过从第一个操作数中减去第二个操作数,然后以与 SUB 指令相同的方式设置状态标志来执行的。
如果操作数反转(cmp edx, eax),那么 ZF 是否设置为与原始语句中相同的值?
对于采埃孚,是的。对于其他标志,不一定,因为减法不是可交换的。