Asembler x86/Funkcje/GNU AS: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
→‎Inne języki: rozwinięcie
Linia 87:
Jako że do funkcji przekazaliśmy argumenty o łącznej wielkości 3 bajtów, po wywołaniu funkcji zwalniamy zajęte miejsce przesuwając szczyt stosu.
====Konwencja szybkiego wywołania====
Konwencja szybkiego wywołania, tak jak sama nazwa wskazuje, jest wyjątkiem, gdyż przyjmuje argumenty poprzez rejestry procesora ECX-EDX. W przeciwieństwie do zwykłej konwencji __cdecl robi to w kolejności zgodnej z własnym zapisem, tzn. od początku do końca. Dodatkowo nie jesteśmy zmuszeni do zwalniania miejsca stosu zajętego przez przekazane argumenty, za to musimy ilość bajtów podać za nazwą funkcji po znaku @, zaś na początku musimy dodać @. Oto przykład:
Istnieje konwencja wywołania __fastcall (szybkie wywołanie), przekazująca argumenty w ECX-EDX. Oto przykład:
<source lang="asm">