«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2005

zna li neko zasto je ovo ovako

by Bojana Lukovic
četvrtak, 07. jul 2005 - 22:56.

Da li bi neko mogao da mi pojasni zasto ovde u resenju stoje instrukcije
get_local, put_local i put_static u kodu generisanom za telo funkcije.
U cemu je problem sa load i store instrukcijama, zasto nisu one koriscene, vec
neke koje nisu u instruction setu MJ bar ne onom koji smo dobili.
Neka me neko ispravi ako gresim ali enter instrukcija ce valjda pokupiti sa
expression stacka stvarne parametre i upisati ih u aktivacioni zapis metode u
prostor predvidjen za formalne parametre. U cemu je problem da im se pristupi sa
load i store ?

Hvala unapred svakome ko pomogne
Pozdrav

Zadatak 9. Generisanje koda-2.doc

Prikazati generisani kod za telo funkcije prikazano na listingu. Prikazati
redosled masinskih instrukcija koje se izvrsavaju pri pozivu funkcije m.

int p = 5,q =6;
void m (int i, int j) int k;
{
p = j;
k = i;
return k;
}
void main ()
{
q = m(p,1);
}

Resenje:
enter 2,3
get_local 1 // p = j;
put_static 0
get_local 0 // k = i;
put_local 2
get_local 2 // return k;
exit
return

getstatic 0 // m(p,1);
const_1
call -20
putstatic 1 //k = result