How does the `test` instruction work?

dpington picture dpington · Dec 16, 2010 · Viewed 13.2k times · Source

If we have:

test dword ptr [eax], 2000h
je label1:

Is there any value other than 0 in dword ptr [eax] that would make the jump take place?

Answer

GJ. picture GJ. · Dec 16, 2010

Instruction test works like and instruction, the only difference is that result is not stored back in to the destination operand. So the answer is yes. All binary numbers which not have set the 13th bit on memory address [eax], or all numbers present like b'xxxxxxxx xxxxxxxx xx0xxxxx xxxxxxxx', where x is 0 or 1, there is exactly 2^31 numbers.