Asembler x86/Funkcje/GNU AS: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Zachowane rejestry: akapity |
→Wywoływanie funkcji: błąd |
||
Linia 75:
====Wywoływanie funkcji====
Aby wywołać funkcję zakodowaną w języku C najpierw musimy przekazać jej argumenty poprzez stos, przy czym przekazujemy je w odwrotnej kolejności (od końca) w stosunku do kolejności przedstawionej w jej prototypie. Dodatkowo po wywołaniu funkcji musimy zwolnić miejsce zajmowane przez argumenty na stosie dodając do rejestru ESP odpowiednią wartość (przesuwając tym samym szczyt stosu i uszczuplając stos). Oto przykładowe wywołanie funkcji C:
<source lang="
void funkcja(short a, char b);
...
pushl $05h
call far funkcja
add $3, %esp
|