Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does the `test` instruction work?

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?

like image 374
dpington Avatar asked Dec 16 '10 07:12

dpington


1 Answers

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.

like image 90
GJ. Avatar answered Sep 30 '22 08:09

GJ.