8
1 1.3. Načini Adresiranja Kod ne nuladresnih formata instrukcijska, instrukcijska reč sadrži delove bitova u kome se specifira lokacija skladišnog opredanda, koji može da se nalazi ili u memoriji ili u registrima procesora. Dakle, bitovi u instrukciji koji određuju odakle pocesor treba uzeti podadak – izvorišni operand (SRC) ili uskladišititi podatak – odredišni operand (DST) predstavljaju adrese operanda u adresnom delu instrukcijske reči. Pošto je dužina adresne operanda nedovoljna da bi pokirla sve lokacije registra i memorije, koriste se se određeni načini adresiranja. Primer 1. Jednoadresna instrukcija dužine 16-bita je organizovana tako da prvih 8-bita predstavlja kod instrukcije, a drugih 8-bita predstavlja adresu operanda. Ako se zna da se operandi nalaze samo u memoriji i da svih 8-bita u adresnom delu instrukcije predstavljaju broj adrese u kome se nalazi operanad, naći maksimalan broj memorijskih lokacija kojima može da pristupa procesor. Rešenje: Dužina adresnog dela je 8-bita. Sa 8-bita dužine možemo predstaviti ukupno memorijskih lokacija. Dakle, ako je memorija kapaciteta veća od 256. memorijskih lokacija, procesor će moći da pristupa samo privh 256. Deo memorije će ostati neiskorišćen usled nedovoljne dužine adresnog dela instrukcije. ----------- Zbog toga je potrebno u adresnom delu instrukcije specifirati određenim načinom adresiranja pristup svim lokacijam gde se čuvaju podaci. Postoje više metoda kako se iz adesnog dela instrukcije pronalazi operanad tokom faze izvršavanja instrukcije formiranje adrese i čitanje operanda. Zbog toga, da bi processor prepoznao koji je način adresiranja u pitanju, prvih nekoilo bitova (AM) u adresnom delu instrukcije zadaje način adresiranja, dok ostali deo bita specifira adresu operanda na osnovu načina adresiranja Sl. 1.3.1. Slika 1.3.1.

1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

1

1.3. Načini Adresiranja

Kod ne nuladresnih formata instrukcijska, instrukcijska reč sadrži delove bitova u kome se

specifira lokacija skladišnog opredanda, koji može da se nalazi ili u memoriji ili u registrima

procesora. Dakle, bitovi u instrukciji koji određuju odakle pocesor treba uzeti podadak –

izvorišni operand (SRC) ili uskladišititi podatak – odredišni operand (DST) predstavljaju

adrese operanda u adresnom delu instrukcijske reči.

Pošto je dužina adresne operanda nedovoljna da bi pokirla sve lokacije registra i memorije,

koriste se se određeni načini adresiranja.

Primer 1.

Jednoadresna instrukcija dužine 16-bita je organizovana tako da prvih 8-bita predstavlja kod

instrukcije, a drugih 8-bita predstavlja adresu operanda. Ako se zna da se operandi nalaze

samo u memoriji i da svih 8-bita u adresnom delu instrukcije predstavljaju broj adrese u

kome se nalazi operanad, naći maksimalan broj memorijskih lokacija kojima može da

pristupa procesor.

Rešenje:

Dužina adresnog dela je 8-bita. Sa 8-bita dužine možemo predstaviti ukupno

memorijskih lokacija. Dakle, ako je memorija kapaciteta veća od 256. memorijskih lokacija,

procesor će moći da pristupa samo privh 256. Deo memorije će ostati neiskorišćen usled

nedovoljne dužine adresnog dela instrukcije.

-----------

Zbog toga je potrebno u adresnom delu instrukcije specifirati određenim načinom adresiranja

pristup svim lokacijam gde se čuvaju podaci.

Postoje više metoda kako se iz adesnog dela instrukcije pronalazi operanad tokom faze

izvršavanja instrukcije formiranje adrese i čitanje operanda. Zbog toga, da bi processor

prepoznao koji je način adresiranja u pitanju, prvih nekoilo bitova (AM) u adresnom delu

instrukcije zadaje način adresiranja, dok ostali deo bita specifira adresu operanda na osnovu

načina adresiranja Sl. 1.3.1.

Slika 1.3.1.

Page 2: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

2

1.3.1. Registarsko direktno adresiranje

Registarsko direktno adresiranje je adresiranje kod koga se operand nalazi u jednom od

registara podataka (DR) Sl.1.3.2. U delu specifikacija ardese nalazi se redni broj datog registra,

gde u našem slučaju stoji binarni broj 3. Dakle, prema vrednosti iz specifikacije adrese, podatak

se nalazi u trećem DR3 registru.

Slika 1.3.2.

Kada je operand izvorišni (SCR1), podatak iz datog DR ide u pomoćni prihvatni registar X

artimetičke logičke jedinice ALU. Ako je podatak odredišni (DST) onda se datom DR registru

stavlja rezultat iz pomoćnog izlaznog registra Z.

1.3.1.1. Simboličko označavanje

Instrukcije su nizovi bitova koje kao celina predstavljaju logičke rečenice koje se čitaju u

procesoru i na osnovu očitanog konteksta pocesor vrši određene radnje. Instrukcije se, kao

nizovi bitova, čuvaju u memorijskim lokacijama. Ovi nizovi bitova se sastoje od dva osnovna

dela, koda instrukcije (OC) koja govori šta pocesor treba da uradi tokom izvršavanja date

instukcije i adresnog dela koji pokazuju na podatak, ako se tokom izvršavanja zahteva obrada

nekih podataka. Tokom analize i programiranja instrukcija pogodno je datim delovima

instrukcije (OC i adrese operanda), pridružiti simboličko značenje, gde dati simboli predstavljaju

Page 3: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

3

korespodentni niz bitova koje razume procesor. Simboličko označavanje instrukcija pogrameru

daje uvid u sadržaj date instrukcije.

Primer 2.

Dati pocesor ima jednoadresni format instrukcije. Arhitektura pocesora je takva da postoje samo

instrukcije koje izvršavaju atimetičke operacije +, -, * i / kao i instrukcije čitanja/upisivanja

akumulatora u/iz memoriju. Koliko je potrebno bitova za kod instrukcije (OC)? Projektovati

skup koda instrukcija i svakom dodeliti simboličko znčenje. Simboličko napisati jednu

instrukciju, gde za simboličko adresiranje koristiti redni broj adrese u memoriji ili proizvoljnu

simboličku oznaku za adresu operanda (podatak je u memoriji) ili oznaku datog registra (podatak

je u registru).

Rešenje: (vidi zadatak 2.)

-----------

Dakle, kad je podatak u registru onda pišemo oznaku registra, ako je podatak u memoriji onda

pišemo samu vrednost rednog broja adrese ili njenu simboličku vrednost.

Kod direktnog registarskog adresiranja pišemo oznaku samog registra podatka za simboličko

adresiranje oprenada, npr:

LOAD DR0 SUB DR7, DR8.

1.3.2. Registarsko indirektno adresiranje

Registarsko indirektno adresiranje je adresiranje kod koga se operand nalazi u jednoj od

memorijskih lokacija, a adresa memorijske lokacije se nalazi u jednom od adresnih registara

(AR). U specifikacionom delu se čuva redni broj adresnog registra čiji sadržaj predstavlja adresu

u memoriji u kojoj se nalazi operand Sl.1.3.3. Dakle, da bi se operand usladištili u prihvatni

registar ALU jedinice, potrebno je:

1. preneti sadržaj datog AR registra u MAR registar,

2. pa zatim upravljačim signalima R dati zahtev za čitanje na magistrli, ako je operand

izvorišni (SRC1), pa kad se ciklus čitanja na magistrali završi,

3. upisati u prihvatni regisar X ALU-a sadržaj iz MDR registra.

Ili:

2'. Ako je operand odredišni (DST), onda prvo treba upisati sadržaj koji se šalje u memoriju

u MDR registar iz pomoćnog registra Z,

Page 4: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

4

3'. pa onda tražimo zahtev za upis na magistrali određenim upravljačkim signalom W. Posle

cilkusa upisa podatak koji se nalazi u MDR je uskladišten na adresi koja se nalazi u

datom AR registru.

Slika 1.3.3.

1.3.2.1.Simboličko označavanje

Kod indirktnog adresiranja simboličku adresu stavljamo između malih zagrada. Na taj način

prepoznajemo da registar AR sadrži adresu lokacije u kojoj se čuva operanada, npr:

STORE (AR4) DIV (AR3), (AR0).

1.3.3. Memorijsko direktno adresiranje

Memorijsko direktno adresiranje je adresiranje kod koje se u specifikaciji adrese nalazi redni

binarni broj adrese podatka u memoriji Sl. 1.3.4. Razlika u odnosu na indirektno registrasko

adresiranje je taj što se adresa operanda iz specifikacije adrese, određenim načinom, direktno

postavlja u MAR registar, dok se, kod registarskog indirektnog ardesiranja, sadržaj iz AR

registra postavlja u MAR registar. Ostali pocesi traženja opranda su potpuno slični za ova dva

načina adresiranja.

Page 5: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

5

Slika 1.3.4.

Kod ovog načina adresiranja u simboličkom označavanju, operanadi se predstavljaju rednim

brojem adrese memoriske lokacije u kojoj se nalaze (npr. 1002h). Sve brojne vrednosti u

simboličkom označavanju instrukcija predstavljaćemo u heksadecimalnom zapisu, pa u indeksu

broja stoji oznaka h. Takođe, adresu memorijske lokacije u memoriji možemo predstaviti preko

znakovnog simbola, gde simbolička vrednost znakovnog simbola predstavlja redni broj adrese u

memoriji gde se nalazi operand:

MUL a1, 1002h ADD cena, poskupljenje.

1.3.4. Memorijsko indirektno adresiranje

Kod ovog načina adresiranja u specifikaciji stoji adresa memorijske lokacije u kojoj se čuva

adresa operanda. Da bi pristupili podatku potrebno je:

1. sadržaj specifikacije prebaciti u MAR registar.

2. Zatim, izvršiti ciklus čitanja sa magistrale kako bi adresu operanda iz memorije prebacili

u MDR registar.

3. Adresu operanda, sada, stavljamo u MAR registar kako bi mogli da joj pristupimo.

4. Posle toga na osnovu sadržja iz MAR-a registra, operand se prihvata iz date memorijske

lokacije i stavlja u MDR registar ako je operand izvorišni (SRC1),

Page 6: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

6

5. pa se zatim, sadržaj MDR registra prosleđuje pomoćnom X registru.

Ili:

4'. Ako je operand odredišni (DST), onda se prvo iz pomoćnog Z registra ALU-a, podatak

prenosi u MDR registar.

5'. Pa onda, vrši se ciklus upisa podatka iz MDR registra u memorijsku lokaciju na koju

pokazuje sadržaj MAR registra.

Simbolička oznaka memorijskog indirektong adresiranja:

STORE (a1), LOAD (boja), ADD (0020h), (b3).

Dakle, da bi razgraničili od memorijskog direktnog adresiranja, adresu stavljamo unutar malih

zagrada.

1.3.5. Relativno adresiranje sa pomerajem

Relativno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi u jednoj od

memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadržaja

programskog brojača PC i sadržaja specifikacije.

Simboličko označavanje:

LOAD PC(05h) ADD PC(00h), PC(ffh),

Gde heksadecimalni broj u zagradi predstavlja pomeraj.

Page 7: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

7

Slika 1.3.6.

1.3.6. Neposredno adresiranje

Neposredno adresiranje je adresiranje kod koga se operand nalazi neposredno u samoj

instrukciji. U specifikaciji adrese u adresnom delu instrukcije čita se direktno operand. Ako je

instrukcija operacije artmitike ili logike, operand se direktno iz instrukcije upisuje u prihvatne

registre ALU. Dakle, ne gubi se vreme na traženju adrese operanda i njegovom čitanju iz registra

ili memorije. Sama vrednost adrese specifikacije predstavlja operand instrukcije, a tip operanda

je definisan kodom same instrukcije. Pošto neposredno adresiranje ne pokazuje adresu, već je

sam podatak, operandi za ovakav način adresiranja mogu biti samo izvorišni operandi (SRC).

Ukoliko bi se pokušalo upisati podatak u operand (DST) sa neposrednim načinom adresiranja

došlo bi do greške pri adresiranju.

Pošto su kod simboličkog adresiranja, brojne vrednosti rezeravisane za označavanje rednog broja

adrese u memoriskoj lokaciji u kojoj se nalazi podatak, koristimo simbol '#' ispred brojne

vrednosti kako bi označili da je to vrednost operanda, a ne adresa u memoriji u kojoj se nalazi

operand. Slično, kad za oznaku adrese operanda koristimo simbol, da bi razgraničili da vrednost

simbola predstavlja samu vrednost operanda, stavljamo ispred njega oznaku '#'.

LOAD #03h, LOAD #b.

Page 8: 1.3. Načini Adresiranjaetsntesla.edu.rs/dokumenti/pajo/Materijali/Teorija/1.3. Nacini Adresiranja.pdf · STORE (a1), LOAD (boja), ADD (0020 h), (b3). Dakle, da bi razgraničili od

8

1.3.7.

Primer 3.

Neka adresa u memoriji 01h sadrži vrednost 0fh. Uzmimo da je simbolička oznaka za ovu adresu

adr1. Koji sadržaj u akumulatoru će biti posle izvršene instrukcije.

a) LOAD adr1

b) LOAD #adr1

Rešenje:

a) 0fh

b) 01h