Konwencja cdecl - funkcja wywoływana
Podprogram może swobodnie modyfikować rejestry EAX, ECX, EDX pozostałe po wyjściu z podprogramu powinny być niezmienione.
- Odkładamy na stosie wartość EBP, a wartość ESP zapisuje w EBP. Nie jest to konieczne jeżeli funkcja nie korzysta ze stosu.
- Do argumentów odnosimy się relatywnie do EBP. Pierwszy znajduje się pod [EBP+8].
- Zmiejszamy ESP rezerwując pamięć na stosie dla zmiennych lokalnych. Odnosimy się do nich ponownie relatywnie do EBP.
- Odkładamy na stos wartości rejestrów, które są w podprogramie modyfikowane (poza EAX, ECX, EDX).
- Wykonujemy kod podprogramu
- Jeżeli chcemy zwrócić wartość to umieszczamy ją w rejestrze EAX (wartości zmienno-przecinkowe umieszczamy w ST0).
- Odtwarzamy wartość rejestrów.
- Odtwarzamy wartość ESP z EBP i ściągamy ze stosu poprzednią wartość EBP
- Wracamy z funkcji przez instrukcję RET