int f(int a, int b){ int c = a+b; return c; }
; zwraca sumę a+b f: push ebp ; zachowujemy starą wartość ebp mov ebp, esp sub esp, 4 ; przydzielamy pamięć na zmienna lokalna c mov eax, [ebp+8] ; mov eax, [a] add eax, [ebp+12] ; add eax, [b] mov [ebp-4], eax ; mov [c], eax ; wynik jest juz w eax mov esp, ebp ; zwolnienie pamięci na stosie pop ebp ; przywrócenie poprzedniej wartości ebp ret ; powrót
Zawartość stosu
[ebp+12] b [ebp+8] a [ebp+4] adres powrotu z funkcji [ebp] poprzednia wartość ebp [ebp-4] zmienna lokalna c