Az Assembly programozási nyelv

Alprogramok, modulok

Eljárások Az assembly eljárásai a call utasítással hívhatók, belőlük visszatérni a ret utasítással lehet.
call proc1 ... proc1 proc ;eljárás kódja ret proc1 endp
Ebből rögtön látszik, hogy nem lehet paramétereket megadni az eljárásoknak, és nincs visszatérési értékük sem. Általában a bemenő paramétereket a verem teteje pótolja. Tehát azok az értékek számítanak paraméternek, amit közvetlenül az eljárás hívása előtt teszünk a verembe.
;paraméterek elhelyezése a verembe push 1 push 2 ;eljárás hívása call proc1

A fenti példában az 1 és 2 számok közvetlenül proc1 eljárás meghívása előtt kerülnek a verembe. Fontos hangsúlyozni, hogy ez nem feltétlenül jelenti azt, hogy proc1 eljárást két paraméterrel hívtuk meg, csupán konvenció, hogy ha ezek után proc1 bemenő paramétereket keres, akkor a verem tetején fogja keresni, így az 1 és 2 értékeket fogja találni. Ennek az a hátránya, hogy az assembler nem ismeri fel fordítási időben, ha nem megfelelő mennyiségű paraméterrel hívtuk meg az eljárást. Ezt a hibát leginkább makróval lehet feloldani.
A paraméterátadás módja a fentiek alapján érték szerinti, hiszen a paraméterek értéke bemásolódik a verembe. Valójában mivel pointert is lehet érték szerint átadni, könnyen megoldható a cím szerinti paraméterátadás is. Visszatérési értéknek regisztereket, leginkább az AX/EAX regisztert szokás használni.