6

Jeśli mamy:Jak działa instrukcja `test`?

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

Czy istnieje jakakolwiek wartość inna niż 0 w dword ptr [eax], które sprawiają, że skok miała miejsce?

+0

znaczy 2000h, nie 0 –

+0

Nie 2000h nie zadziała Spróbowałem, to nie jest cmp. Jednak w przypadku 0 flaga zerowa jest ustawiona na wyzwalaczach. –

Odpowiedz

9

Instruction Test działa jak i instrukcji, jedyną różnicą jest to, że wynik nie jest zapisywany z powrotem do docelowego argumentu. Odpowiedź brzmi: tak. Wszystkie liczby binarne, które nie ustawiły 13-tego bitu na adres pamięci [eax], lub wszystkie liczby obecne jak b'xxxxxxxx xxxxxxxx xx0xxxxx xxxxxxxx ', gdzie x to 0 lub 1, jest dokładnie 2^31 liczb.

+0

A co robi test eax, eax? – BlackBear

+1

@BlackBear: ** test eax, eax ** ustawi flagę zerową, jeśli ** eax ** = 0 jako instrukcja ** i eax, eax ** (wpływają również na flagę znaku i parzystości oraz jasne przenoszenie i przepełnienie flagi). –

+0

dzięki. ;) (limit znaków ...) – BlackBear

Powiązane problemy