Asembler x86/Jak używać debuggera ALD: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
krok-po-kroku niezbyt jakoś dobrze brzmi
Linia 312:
</source>
 
Przede wszystkim interesują nas zawartości rejestrów EAX i EBX. Na tym etapie nie widać żadnych potencjalnych problemów, możemy więc kontynuować wykonanie programu linia po linii używając poleceniaklawisza '''n'''ENTER:
 
<source lang=bash>
 
n
# eax = 0x00000000 ebx = 0x0000000A ecx = 0x0000000A edx = 0x00000007
# esp = 0xBFC9251C ebp = 0x00000000 esi = 0x00000000 edi = 0x00000000
Linia 343:
</source>
 
Na pierwszy rzut oka tym razem również wszystko jest w porządku. Jednak po wnikliwej analizie zawartości rejestrów zauważymy, że w rejestrze EDX znajdują się pozostałości z poprzedniego obiegu pętli. Aby uniknąć błędnych wyników, należy poprawić kod tak, aby zerowanie rejestru EDX przeprowadzać na początku każdego obiegu pętli przed wykonaniem operacji dzielenia. Spróbujemy mimo wszystko kontynuować działanie programu linia po linii używając klawisza ENTER.
 
Widzimy, że operacja przesunięcia nie została wykonana.