Stos przekazanie argumentów do wywoływane] funkcji
Wain:
push eax szachowanie na stosie / push ebx ;wart. rej. których /
push ecx .będzie używała funkcja / push arg3;umieszczenie arg. fun./ push arg2 /
cali funkcja ;zach. adr. pow i Wyw. fun.
add esp. 12 <*-________
;zwoln. pamieci{3 argumenty 4 bajtowe) pop ecx
pop ebx Stos: eax
pop eax ebx
ecx arg3 arg2 argl
adres powrotu ebp
lokalna2 lokalna 1
funkcja:
push ebp ;zachcwanie starej ramki mov ebp,esp ;nowa=esp sub esp.8 :alłok. pam. na 2 zmn lok. (po 4 bajty) mov eax.[ebp+8] .odczyt argl mov ebx.[ebp+12] ;odczyt arg2 mov ecx,[ebp+163; odczyt arg3
mov esp.ebp 'zwolnienie pam. po zmn. lok. push ebp przywrócenie starej ramki ret; powrót ściągnięcie adresu powrotu i skok ;do kolejnej instrukcji po cali
Po co ta „ramka stosu"?
- stały punkt odniesienia
(np. wygodne pobranie arg fun.)
SP - może zmieniać położenie
- proste zwalnianie miejsca po zmn. lok.