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

Re: Pitanja za asistenta

by Igor Stojkovic
četvrtak, 06. jul 2006 - 20:49.

On 7/6/06, Rade Martinovic <rocky303@gmail.com> wrote:



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 moguće da sam pogrešno razumeo šta su to blokovi u programu?


Dobro pitanje.


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




Međutim, u tom koraku pozivanje funkcije getreg je izbacilo iz adr.
deskriptora promenljive b registar AX, i AX je dodeljeno na korišćenje
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 moguće da ova instrukcija nije potrebna?


Ako pazljivo procitas algoritme u GenerKodax86.doc i ovom fajlu odmah
iznad zadatka videces da se razlikuju i da ni jedan nije potpun. U
GenerKodax86.doc se kaze da se uklanjaju samo adresni deskriptori za
promenljivu b ali registarski deskriptori se ne spominju pa bi prema
tome trebalo da posle ove instrukcije ostane AX: a,b iako b nije vise
u AX. U fajlu gde je ovaj zadatak algoritam ne spominje uklanjanje
deskriptora nigde za ovakvu situaciju. Ako pretpostavis da se u
GenerKodax86.doc podrazumeva da se uklanjaju i registarski deskriptori
zajedno sa adresnim onda je ova tvoja logika dobra.

Ovo bi profesor i asistent trebali da razjasne.


3)U vezi sa paskaloidnim programima i obradom poziva funkcija statičkim
okruženjem sa displejima.

Pošto je u vežbama više od jednom napravljen aktivacioni zapis glavnog
programa, a statičke 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 statičkim promenljivama može pristupati u statičkoj memoriji?

Ja bih radio sa statickim promenljivama.

--
Pozdrav,
Igor Stojkovic mailto: stojkovic.igor@gmail.com