Jaki adres będzie zawierał rejestr edx po wykonanych instrukcjach

0

Witam, jestem uczniem technikum nie jestem żadnym programistą, zwracam się do was z prośbą (niestety nikt ze znajomych nie wie o co tu chodzi) . Jak mogę dojść do tego co będzie zawierał rejestr edx ? (mam vs2010 a tam nie jestem w stanie sprawdzic stanu rejestrów ). Dziwnie to zabrzmi ale wiem mniej wiecej co robia poszczegolne instrukcje ale mimo to nie jestem w stanie wywnioskowac co będzie zawierał rejestr edx.

 
        mov eax,0f0f0f0fh;
		mov edx,12345678h;
		not ax;
		inc dx;
		and edx,eax;

Jakby ktoś z was mógl chociaż dać jakąś wskazówkę proszę!

2

mov eax,0f0f0f0fh;
ładuje do eax podaną wartość czyli binarnie 00001111000011110000111100001111
mov edx,12345678h;
jw.
not ax
neguje wszystkie bity ax, czyli dolne 16 bitów eax więc teraz w eax masz wartość 00001111000011111111000011110000 lub inaczej 0F0FF0F0. Jak nie trudno zauważyć dwa górne bajty są bez zmian (0f0f) a dwa dolne bajty zamienić łatwo bo F zamieni się w 0 a 0 zamieni się w F.
inc dx;
podnosi wartość dx o 1, więc teraz mamy w edx 12345679h
and edx,eax;
zapisuje w edx bitowy and pomiedzy wartością w eax oraz w edx czyli:
00010010001101000101011001111001
AND
00001111000011111111000011110000
Co w wyniku daje nam 1 tam gdzie w obu wierszach jest 1:
00000010000001000101000001110000
czyli
2045070h

0

Bardzo ci dziękuję ! :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1