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

Usunięta treść Dodana treść
DrJolo (dyskusja | edycje)
DrJolo (dyskusja | edycje)
Linia 174:
 
==Wstrzymanie wykonania==
W przypadku dłuższych i bardziej skomplikowanych algorytmów wykonywanie krok po kroku może być uciążliwe i czasochłonne. Aby usprawnić ten proces możemy ustawić pułapkę (tzw. ''breakpoint'') tylko w miejscu, w którym chcielibyśmy wykonanie programu wstrzymać, by odczytać jego stan i następnie prześledzić krok po kroku, w którym miejscu następuje błąd wykonania.
 
Przykładowo poniższy program miał za zadanie wyświetlenie zawartości rejestru EAX w systemie dziesiętnym.
 
<source lang=asm>
;; decimalPrint.asm
;; Wypisuje zawartość EAX w systemie dziesiętnym
;;
 
segment .text
global _start
_start:
mov eax,0xffff
call _printEAXdecimal
;wyjscie
mov eax,1
mov ebx,5
int 0x80
 
 
 
segment .data
msg db ' '
 
segment .text
 
_printEAXdecimal:
push edx
push ecx
push ebx
push eax
 
mov ebx,10
mov ecx,10
xor edx,edx
N1:
div ebx
add edx,48
dec ecx
mov [msg+ecx],dl
cmp ecx,0
jne N1
 
mov eax,4
mov ebx,1
mov ecx,msg
mov edx,10
int 0x80
 
pop eax
pop ebx
pop ecx
pop edx
ret
</source>