Escolar Documentos
Profissional Documentos
Cultura Documentos
Adresni modovi
NEPOSREDNO ADRESIRANJE
DIREKTNO ADRESIRANJE
INDIREKTNO ADRESIRANJE
ADRESIRANJA SA POMERAJEM
Adresni modovi:
adresiranja sa pomerajem
bazno adresiranje
indeksno adresiranje
bazno-indeksno adresiranje
relativno adresiranje
Neposredno adresiranje (1)
Neposredno adresiranje je adresiranje kod koga se operand nalazi
unutar same instrukcije.
Primer:
adresni operand
X
mod
LOAD #500 R1
ALU R1 500
Primer:
memorija
LOAD 500 R1
X MDR Z MDR
Registarsko direktno adresiranje (1)
Registarsko direktno adresiranje je adresiranje kod koga se operand
nalazi u registru podataka ili registru opšte namene čija se adresa navodi
u instrukciji.
Primer:
LOAD DR R1 DR 482
R1 482
Registarsko direktno adresiranje (2)
izvorišni operand odredišni operand
X ALU Z
ALU
Memorijsko indirektno adresiranje (1)
Memorijsko indirektno adresiranje je adresiranje kod koga se u instrukciji
navodi adresa memorijske lokacije koja sadrži adresu memorijske
lokacije u kojoj se nalazi operand.
Primer:
memorija
LOAD (500) R1 adresa mem.lok.
500 702
... operand
702 -33
R1 -33
Memorijsko indirektno adresiranje (2)
izvorišni operand odredišni operand
adresa adresa
adresni adresni
mem.lok. mem.lok.
mod mod
MAR MAR
X MDR Z MDR
Registarsko indirektno adresiranje (1)
Registarsko indirektno adresiranje je adresiranje kod koga se u instrukciji
navodi adresa adresnog registra ili registra opšte namene koji sadrži
adresu memorijske lokacije u kojoj se nalazi operand.
Primer:
memorija
LOAD (AR) R1 AR 609 operand
609 1000
adresa mem.lok.
R1 1000
Registarsko indirektno adresiranje (2)
izvorišni operand odredišni operand
adresa adresa
adresni adresni
registra registra
mod mod
ALU AR AR
ALU
X MAR MAR
Z
memorija Preinkrementiranje
memorija Postinkrementiranje
AR 321
321 450 R1 450
322 322 480
Adresiranje sa autodekrementiranjem (1)
Registarsko indirektno adresiranje sa autodekrementiranjem je
adresiranje kod koga se u instrukciji navodi adresa adresnog registra
ili registra opšte namene koji sadrži adresu memorijske lokacije u
kojoj se nalazi operand koja se dekrementira.
AR 321
320 111 R1 111
320 321 13
memorija Postdekrementiranje
kod procesora koji nemaju bazne registre, već samo registre opšte
namene, sa pomerajem se sabira sadržaj nekog registra opšte
namene; ovakvo adresiranje se naziva registarsko indirektno
adresiranje sa pomerajem
adresni adresni
mod mod
BR BR
ALU ALU
+ +
X Z
MAR MAR
kod procesora koji nemaju bazne registre, već samo registre opšte
namene, sa pomerajem se sabira sadržaj nekog registra opšte
namene; ovakvo adresiranje se naziva registarsko indirektno
adresiranje sa pomerajem
adresni adresni
mod mod XR
ALU XR ALU
+
+
X Z
MAR MAR
MDR Memorija
MDR Memorija
Bazno-indeksno adresiranje (1)
Bazno-indeksno adresiranje sa pomerajem je adresiranje kod koga se
u instrukciji navode adresa baznog registra, adresa indeksnog
registra i pomeraj. Sabiranjem sadržaja baznog registra, indeksnog
registra sa pomerajem dobija se adresa memorijske lokacije u kojoj
se nalazi operand.
+ +
X Z
MAR MAR
pomeraj pomeraj
adresni adresni
mod mod
ALU ALU
+ PC + PC
X Z
MAR MAR
Relativno adresiranje
korisno pri skokovima, jer se tipični skokovi izvode na obližnje
instrukcije
kod je poziciono nezavisan, tj. može se smestiti u memoriji bilo gde
bez potrebe za podešavanjem adresa
Primena (2)
Adresiranje sa autoinkrementiranjem/autodekrementiranjem
koristi se kada se u registru nalazi adresa koja ukazuje na neku
tabelu u memoriji, pa pre svakog pristupa tabeli treba
inkrementirati/dekrementirati sadržaj registra
Primena (3)
Indeksno adresiranje
koristi se za indeksiranje elemenata niza
Bazno adresiranje
koristi se za pristup poljima neke strukture ili nekog objekta
(BR: adresa strukture, ofset: polje u strukturi)
Bazno-indeksno adresiranje
koristi se pri radu sa dvodimenzionalnim nizovima
(ofset: adresa niza, BR: adresa vrste, IR: element u vrsti – indeks kolone)
koristi se pri radu sa nizovima čiji su elementi strukture (ili objekti)
(BR: adresa niza, IR: relativna adresa strukture, ofset: polje u strukturi)