«« ( Date ) »» // «« ( Thread ) »» // nastava - 2003

Re: prevodioci 204

by Bratislav Milic
utorak, 09. decembar 2003 - 23:49.

pocinjem da se ponavljam, ali slazem se i u ovome sa tobom. dopunio bih jos da kod MOV b, R0 stoji 1+2. mislim da treba 1+1 (jedan za instrukciju i jedan za pristup lokaciji b). negde na internetu sam izbunario da neko pominje da se zbog toga sto treba dohvatiti i adresu operanda povecava duzina instrukcije pa onda to dodatno opterecuje cenu (to bi objasnilo 1+2). no to je na nekom opstem nivou na kom mi posmatramo vrlo neugodno za razmatrati - sta ako je adresa promenljive duza od jedne reci? onda bi bila jos veca cena te instrukcije

za ovo zeleno - jos jedna greska u odgovorima...

3.

Nikola Novakovic wrote:

------------------------------------------------------------------------
Pitanje 204: Prikazati cenu instrukcije i to prikazati jednim primerom.
- svaka instrukcija kosta 1
- svaki nacin adresiranja ima svoju cenu
(direktno-1,
registarsko R-0,
indexno X(R)-1,
indirektno registarsko R-0?(1),
indirektno indexno registarsko *X(R) –1 )
1) cena kostanja pristupa(uvek postoji)
2) cena kostanja adresiranja naredbi
_primer:_
-a,b,c su u OM:
a:=b+c MOV b,R_0 1+2
ADD c,R_0 1+2
MOV R_0 ,a 1+2
-ako je a u R_0 , b u R_1 i c u R_2 :
MOV *R_1 , *R_0 1+2 MOV *R_2 , *R_0 1+2
Cena kostanja zavisi od broja obracanja memoriji i od vrste adresiranja.
------------------------------------------------------------------------
Plavo sporno:
Pretpostavljam da se cena koštanja instrukcije računa ovako:
- svako dohvatanje istrukcije ima cenu 1
- cena pristupa promenljivoj zavisi od načina adresiranja:
a) direktno memorijsko - adresa operanda je u nekom od polja instrukcije, znači mora se još jedanput 'otići' do memorije da se dohvati operand, znači cena je *1*
b) registarsko - operand je u nekom od registara koji je specificiran instrukcijom, znači ne treba da se ide do memorije i cena je *0*
c) indeksno - adresa operanda je zbir registra R i pomeraja X. Mora se skočiti do memorije da se operand dohvati, pa je cena *1*
d) indirektno registarsko - adresa operanda je u registru specificiranom instrukcijom. Mora se skočiti do memorije da se operand dohvati, pa je cena *1*
e) indirektno indeksno registarsko - adresa operanda je u memoriji, na adresi datoj zbirom registra R i pomeraja X. Mora se ići do memorije da se dohvati adresa operanda a zatim sam operand, pa je cena načina adresiranja (po mom izuzetno skromnom mišjenju) jednaka *2*
Zeleno sporno:
Piše da su operandi u registrima, a instrukcije su sa registarskim indirektnim adresiranjem?
N