TEST ECX,3未测试ECX指向的值

Duk*_*kem 0 testing x86 assembly ollydbg

我有这个:

TEST ECX, 3
Run Code Online (Sandbox Code Playgroud)

ECX包含包含该字符的地址内存'a'.

但是,经过测试,ZF设置为1!这怎么可能?

以下是截图之前之后的指令.

cad*_*luk 5

ZF表示最后一条指令的结果是否为零.您的代码行根据结果有效地设置标志,包括ZF

0x42AA8C AND 0x03
Run Code Online (Sandbox Code Playgroud)

这是0x00因为0b1100 AND 0b0011 = 0x00.
因此,设置零标志.

有关TEST其他x86指令的更多信息,请查看此处.