Odovzdávanie parametrov

Volanie adresou znamená, že volajúci odovzdá volanému podprogramu adresu parametra.
Volanie hodntou znamená, že volajúci odovzdá volanému hodnotu parametra.

Var parametre sa vždy volajú adresou.

Const parametre a parametre bez uvedenia spôsobu volania sa volajú hodnotou okrem týchto prípadov:


Odovzdávanie výsledku funkcie

Hodnoty dĺžky 1 bajt sa odovzdávajú v AL, hodnoty dĺžky 2 bajty sa odovzdávajú v AX a hodnoty dĺžky 4 bajty sa odovzdávajú v EAX.
Platia tieto výnimky:


Typy volaní

register
prvé tri, ktoré sa dajú sú v EAX, ADX a ECX, ostatné ako pascal

pascal
v zásobníku - push v poradí, zásobník čístí volaný

cdecl
v zásobníku - push v opačnom poradí, zásobník čístí volajúci

stdcall
v zásobníku - push v opačnom poradí, zásobník čístí volaný


Uchovávanie registrov

Procedúra musí zachovať registre EBX, ESI, EDI a EBP - teda po návrate musia mať rovnakú hodnotu ako na začiatku procedúry.
Registre EAX, ECX a EDX môže procedúra ľubovoľne meniť.
Príznak DF registra EFLAGS je vždy pri vstupe vynulovaný a pri výstupe musí byť taktiež vynulovaný.