previous next Up Title Contents Index

Aliohjelmamekanismin toteutus pinon avulla

Pinosegmenttiä hyödynnetään aliohjelmamekanismin yhteydessä:

Pinossa säilytetään aliohjelmien paikalliset muuttujat ja parametrit.

Jos kyseessä on arvoparametri, pinossa on todellisen parametrin arvon kopio.
Mikäli kyseessä on muuttujaparametri, pinoon viedään parametrin osoite.
Pinoon talletetaan myös funktion kutsukohtaa seuraava paluuosoite eli se kohta, johon kontrolli palaa kutsutun funktion suorituksen jälkeen.

Tämä tieto on välttämätön, jotta aikanaan osataan palata siihen kohtaan, mistä funktioon tultiin.
Jos funktiolla on paluuarvo, se kopioidaan ennen paluuta johonkin yleisrekisteriin:

(Intel-arkkitehtuurissa käytetään AX-rekisteriä).
Pitkässä kutsuketjussa pinon pohjalle jäävät aiemmin kutsuttujen funktioiden ympäristöt (= paikalliset muuttujat ja parametrit).
Päällimmäisenä ympäristönä on aina viimeksi kutsutun (=suorituksessa olevan) funktion ympäristö.
Funktiosta palattaessa oma ympäristö vapautetaan ja siirrytään seuraavaan alempaan ympäristöön.
Pinon käsittely toteutetaan käytännössä konekielen tason käskyillä, jotka kääntäjä generoi suoritettavaan konekoodiin.

Esim

previous next Up Title Contents Index