previous next Up Title Contents Index

Esimerkki

Tarkastellaan seuraavaa ohjelmaa ja pinon tilaa ohjelman eri suoritusvaiheissa:

 

    int itseisarvojen_summa(int x, int y);
    void itseisarvo(int *z);

    void main(void)
    {
        int a=-8;
        int b=-10;
        int s=0;
        ...
        s = itseisarvojen_summa (a,b);
        ...
    }

    int itseisarvojen_summa(int x, int y)
    {
        int sum;
        itseisarvo (&x);
        itseisarvo (&y);
        sum=x+y;
        return sum;
    }
    void itseisarvo(int *z)
    {
        if (*z<0)
        {
            *z=-*z;
        }
    }

Pinon tila ennen itseisarvojen_summa()-funktion kutsua:

   
   

s: 0

 

b: -10

Pääohjelman ympäristö

a: -8

 

Pinon tila itseisarvojen_summa()-funktion kutsun jälkeen:

   
   

sum: ?

 

paluukohta main():ssa

itseisarvojen_summa()-

y: -10

funktion ympäristö

x: -8

 

s: 0

 

b: -10

pääohjelman ympäristö

a: -8

 


Pinon tila ensimmäisen itseisarvo()-funktion kutsun jälkeen:

   
   

paluukohta its...summa():ssa

itseisarvo()-funktion

z: x:n osoite

ympäristö

sum: ?

 

paluukohta main():ssa

itseisarvojen_summa()-

y: -10

funktion ympäristö

x: -8

 

s: 0

 

b: -10

Pääohjelman ympäristö

a: -8

 

Pinon tila itseisarvo()-funktion 1. suorituskerran jälkeen:

   
   

sum: ?

 

paluukohtamain():ssa

itseisarvojen_summa()-

y: -10

funktion ympäristö

x: 8 (muuttunut)

 

s: 0

 

b: -10

pääohjelman ympäristö

a: -8

 

Pinon tila itseisarvo()-funktion 2. suorituskerran jälkeen:

   
   

sum: ?

 

paluukohtamain():ssa

itseisarvojen_summa()-

y:10(muuttunut)

funktion ympäristö

x: 8

 

s: 0

 

b: -10

Pääohjelman ympäristö

a: 8

 

Pinon tila juuri ennen itseisarvojen_summa()-funktiosta paluuta:

   
   

sum: 18

 

paluukohta main():ssa

itseisarvojen_summa()-

y: 10

funktion ympäristö

x: 8

 

s: 0

 

b: -10

Pääohjelman ympäristö

a: -8

 


Pinon tila itseisarvojen_summa()-funktion suorituksen jälkeen:

(Paluuarvo 18 siirretään AX-rekisterin kautta pääohjelman s-muuttujan arvoksi.)

 

 
   

s:18

 

b:-10

Pääohjelman ympäristö

a:-8

 

Ohjelma on palannut muistinkäytön kannalta lähtötilaansa. Kun ohjelmasta poistutaan, käyttöjärjestelmä poistaa ohjelman loputkin tilanvaraukset.

previous next Up Title Contents Index