我读过 TEST 对两个参数按位执行。我还读到 jz 和 je 都是等价的,如果设置了零标志,则跳转。所以这就是我正在努力解决的问题。考虑(相当无用)以下代码:
mov ax, 0x2
test ax, 0x2
je equal
mov ax, 0x0
jmp done
equal:
mov ax, 0x1
done:
从逻辑上讲,“如果相等则跳转”应该跳转,但 0x2 & 0x2 不应设置零标志。据我了解,如果设置了零标志,jz/je 将跳转,这意味着 je 在逻辑上没有做它所暗示的(“如果相等则跳转”)。在实践中,代码会失败并将 ax 设置为 0x0,而不是跳转并将 ax 设置为 0x1。
谁能解释一下我的理解哪里出了问题?显然我没有正确理解某些东西。
谢谢!
