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

Pitanje za Asistenta (generisanje koda)

by Marko Jagodic
četvrtak, 08. decembar 2005 - 16:34.

U zadacima 9 i 10 fajla GenerisanjeKoda-2.doc imamo sledece MJ opcode-s:

get_local
put_local

dok se u mikro javi oni ne spominju..

Da li je to tu samo da bi naznacilo da se radi o lokalnim parametrima procedure/funkcije a u stvari se koristi:

load
store

posto svaka procedura/funkcija ima svoj frame i load i store imaju operande relativne u odnosu na fp


Kako da radimo na ispitu?



PRILOG ZADATKA 9:

Prikazati generisani kod za telo funkcije prikazano na listingu.



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);

}





Rešenje:



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