Asembler x86/Funkcje/GNU AS: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Inne języki: rozwinięcie |
→Konwencja szybkiego wywołania: 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:
<source lang="asm">
|