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

Re: Re: Za asistena ili ako neko zna

by Ivan Mitic
nedelja, 11. jun 2006 - 00:44.

Hvala! Mislim da je to to.

On 6/10/06, Milan Aleksic <milanaleksic@gmail.com> wrote:

load_0 ti je uzimanje adrese objekta od this, a getfield ti je fizicki
pristup polju objekta cija je adr malopre postavljena na stek. To uvek
radis tako ili getfield dize stack underflow. procitaj uputstvo za
opkodove, tamo sve pise na ovu temu.
E sad, zanimljiviji deo je kako ces da nateras komp da prepozna da je
u pitanju polje i da pre getfield postavi this... samo prodji kroz
tabelu!
poz

On 6/10/06, Ivan Mitic <mitkebgd@gmail.com> wrote:
> Imam jedan problem koji nikako ne uspevam da resim.
>
> Kako da iz metode pristupim lokalnim clanovima klase tj. kako da
generisem
> kod. U kontekstu sa ovim ne znam sta da radim sa parametrom(literalom)
> 'this' kada naidjem na njega. Ako mozete da okacite neki kod ili da
ukratko
> objasnite sta da radim.
>
> Evo npr. kod iz primera5
>
> class X{
> int x,y,z;
> void printX()
> { print(x);
> }
> }
> kod koji se generise je
> 0: enter 1 1
> //print(x);<=>print(this.x);
> 3: load_0
> 4: getfield 1
> 7: const_0
> 8: print
> 9: exit
> 10: return
>
> Mi kada pozivamo metodu, na stek postavljamo adresu objekta i ostale
> parametre sto ustvari predstavlja prvi parametar funkcije(this) i
ostatak
> parametara pa je u ovom primeru jasno zasto load_0. Da li to sada znaci
da
> kada generisemo kod za operacije metoda uvek stavljamo load_0 pre
koriscenja
> lokalnih polja klasa ili mi je ceo koncept pogresan?
> stvarno bi bilo dobro da okacite primer u kome se malo vise koriste
lokalna
> polja klasa!
>
>
> Pozdrav
>
>


--
Milan Aleksić
WebGrafit: http://galeb.etf.bg.ac.yu/~aleksicm/webgrafit.php
email+jabber: milanaleksic@gmail.com
web: http://drop.to/goblin
ICQ: 53177884

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