Frage zu einen Source Code
-
Hallo ich habe hier zu eine Frage und zwar:
Wofür ist: TEST AL,AL
Wieso wird dieser Teil nicht aufgerufen vom Debugger:0040148E |> \E8 35FFFFFF CALL abc.004013C8
WENN
ich hier einen Breakpoint setze
0040147E |. E8 45CE0300 CALL abc.0043E2C8
0040147E |. E8 45CE0300 CALL abc.0043E2C8
00401483 |. 84C0 TEST AL,AL
00401485 |. 74 07 JE SHORT abc.0040148E
00401487 |. E8 04FFFFFF CALL abc.00401390
0040148C |. EB 05 JMP SHORT abc.00401493
0040148E |> E8 35FFFFFF CALL abc.004013C8
00401493 |> C70424 705444>MOV DWORD PTR SS:[ESP],abc.00445470
0040149A |. E8 25680200 CALL abc.00427CC4
0040149F |. B8 00000000 MOV EAX,0
004014A4 |. C9 LEAVE
004014A5 \. C3 RETN
-
test r, r (2x der gleiche Operand) setzt Flags entsprechend des Registerinhalts.
Ist das so getestete Register 0, wird zB. das Zero-Flag gesetzt, was in diesem Fall zB. auch als naechstes abgefragt wird. Das ist auch der haeufigste Einsatzzweck.Im vorliegenden Fall wuerde die genannte Funktion zB. nicht aufgerufen, wenn al != 0 ist. ... ... In den FAQ gibt es immer noch tolle Anfaengertutorials...
