装配测试说明

Vah*_*and 1 x86 assembly

我想知道这个操作意味着什么?

Test EDX, 200
Run Code Online (Sandbox Code Playgroud)

DWORD有价值EDX:

1A1B1C00
Run Code Online (Sandbox Code Playgroud)

当我做test EDX, 200 ,然后a JE,跳跃.为什么?EDX不等于200.

我想更多地了解Test EDX, 200意义.

cni*_*tar 5

A test执行a AND而不修改操作数(它只修改一些标志,如ZFet al).一个je简单的测试ZF(零标志),如果设置跳跃.

因此,Test EDX, 200AND在价值EDX0x200并设置ZF1如果这个结果AND0.在您的情况下,将给我们:

0x1A1B1C00 AND 0x00000200 -> 0x00000000
Run Code Online (Sandbox Code Playgroud)

由于0x02000000 0010 0000 0000二进制,该指令的目的Test EDX, 200是测试的价值EDX,看看第9位(从0开始计数的权利9位)是01,并采取跳跃,如果它是一个零.