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

unsubscribe ri4pp

by Vojislav Tanaskovic
petak, 02. jun 2006 - 08:58.



----- Original Message ----
From: Jovan Popovic <jovan@etf.bg.ac.yu>
To: ri4pp@rti.etf.bg.ac.yu
Sent: Friday, June 2, 2006 8:17:25 AM
Subject: Re: [ri4pp] poziv funkcije - veeeliko neslaganje


Kada generisete poziv funkcije iza instrukcije call se nalayi relativna
adresa funkcije tj. razlika prave adrese funkcije i trenutne pozicije na
kojoj se nalazi instrukcija call.
Pogledajte primere generisanog koda - projekat samples. Tu mozete naci
primere gde se generise poziv funkcije koji radi. Na primer u fajlu
sample1.Sample.java mozete videti:

current = Code.pc;
Code.put(Code.call);
Code.put2(adrF - current);

Znaci uzima se trenutna pozicija, generise se CALL pa se generise
relativni pomeraj.
Pazite generisu se dva bajta iza instrukcije CALL.

Pozdrav,
Jovan

> checkFunctionCall algoritam ima jednu bitnu razliku u odnosu na ono sto
> ocekuje mjvm (to je ona java VM za mikro javu),
>
> u skripti pise
>
> put(Code.call)
>>
> put4(f.adr);
>>
> a ja sam dobio korektno izvrsavanje tek kada sam napisao:
>
> put(getOpcode("call"));
> put2(fun.getAddress() - (pc-1));
>
> Molim samo potvrdu od asistenta da je greska u skripti (da ne bude posle
> da
> se pojavi neka nova vm kod koje ce ono sto je u skripti napisano da radi
> :)
>
> poz, Milan
>



-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ri4pp
-----------------------------------------------------------------