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

Pitanja za asistenta

by Rade Martinovic
četvrtak, 06. jul 2006 - 20:18.

1) Globalna analiza.doc 4. zadatak
U vezi broja blokova u datom segmentu programa. Navedeno je da postoji 6 blokova, i za svaki od njih su dati def i use skupovi. Medjutim u datom segmentu postoje samo tri bloka i to:
1. a := 0
2. L:b := a+1
c := c+b
a := b+2
if a<100 goto L
3. return c

Ili je možda moguce da sam pogrešno razumeo šta su to blokovi u programu?

2) Lokalna analiza.doc 4. zadatak
Kada se generiše kod za naredbu 6. a = b+1, generišu se naredbe
MOV b, AX
ADD AX, 1

Medutim, u tom koraku pozivanje funkcije getreg je izbacilo iz adr. deskriptora promenljive b registar AX, i AX je dodeljeno na korišcenje promenljivoj a. U trenutku kada se proverava da li se prvi operand instrukcije nalazi u lokaciji koju je vratila getreg funkcija, ne može se nikako ustanoviti da se vrednost promenljive b nalazi u registru AX, jer je ta informacija izbrisana iz adr. deskriptora promenljive b, pa se onda ustanovljava da se prvi operand NE nalazi u registru AX, pa je potrebno i generisati instrukciju
MOV AX, b.
Kako je moguce da ova instrukcija nije potrebna?

3)U vezi sa paskaloidnim programima i obradom poziva funkcija statickim okruženjem sa displejima.
Pošto je u vežbama više od jednom napravljen aktivacioni zapis glavnog programa, a staticke promenljive su bile smeštene u taj zapis glavnog programa na mesto lokalih promenljivih, postavlja se pitanje da li u stat. okr. sa displejima postoji nekakav Display0, koji ukazuje na polje kontrolne veze u aktivacionom zapisu glavnog programa.
Da li na ispitu je potrebno crtati aktivacioni zapis za glavni program, ili se statickim promenljivama može pristupati u statickoj memoriji?


Unapred hvala na odgovorima.

--
Pozdrav,
Rade mailto:rocky303@gmail.com