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

Re: Pitanje za Asistenta (generisanje koda)

by Jovan Popovic
četvrtak, 08. decembar 2005 - 16:57.

Na ispitu cete koristiti standardne mikrojava instrukcije (one iz
OpCodes.pdf).Moguce je da sam stavio pogresne instrukcije u taj zadatak.

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