Arh Procesora 2011

Embed Size (px)

DESCRIPTION

sva prava pripadaju autoru

Citation preview

  • 5/28/2018 Arh Procesora 2011

    1/65

    JOVAN OREVI

    ARHITEKTURA

    IORGANIZACIJA

    RAUNARA

    ARHITEKTURA RAUNARA

    BEOGRAD, 2011.

  • 5/28/2018 Arh Procesora 2011

    2/65

  • 5/28/2018 Arh Procesora 2011

    3/65

    DJM

  • 5/28/2018 Arh Procesora 2011

    4/65

  • 5/28/2018 Arh Procesora 2011

    5/65

    1

    PREDGOVOROva knjiga je napisana kao osnovni udbenik iz arhitekture i organizacije raunara i pokriva

    osnovne koncepte iz arhitekture i organizacije procesora, memorije, ulaza/izlaza i magistrale.Sistemi.

    Autor

    Beograd

    novembra 2011.

  • 5/28/2018 Arh Procesora 2011

    6/65

  • 5/28/2018 Arh Procesora 2011

    7/65

    3

    SADRAJPREDGOVOR.................................................................................................................................................1

    SADRAJ ........................................................................................................................................................3

    1 ARHITEKTURA RAUNARA .............................................................................................................7

    1.1 PROGRAMSKIDOSTUPNIREGISTRI .........................................................................................71.2 TIPOVIPODATAKA ................................................................................................................... 16

    1.2.1 Opte napomene ....................................................................................................................... 161.2.2 Predstavljanje podataka ........................................................................................................... 16

    1.2.2.1 CELOBROJNE VELIINE ........................................................................................................... 161.2.2.2 VELIINE U POKRETNOM ZAREZU ........................................................................................ 17

    1.3 FORMATIINSTRUKCIJA ........................................................................................................... 181.3.1 OPERACIJA I TIP PODATKA.................................................................................................. 191.3.2 IZVORINI I ODREDINI OPERANDI ............... ..................... .................... ..................... ....... 19

    1.3.2.1 Broj eksplicitno specificiranih operanada ...................................................................................... 191.3.2.2 Mogue lokacije operanada ........................................................................................................... 231.4 NAINIADRESIRANJA ............................................................................................................. 24

    1.4.1 Registarsko direktno adresiranje ................ ........................ ..................... .................... ............. 241.4.2 Registarsko indirektno adresiranje ................... ..................... ..................... .................... .......... 251.4.3 Memorijsko direktno adresiranje ................ ........................ ..................... .................... ............. 271.4.4 Memorijsko indirektno adresiranje ................... ..................... ..................... .................... .......... 281.4.5 Bazno adresiranje sa pomerajem ................ ........................ ..................... .................... ............. 291.4.6 Indeksno adresiranje sa pomerajem........................ ..................... .................... ..................... .... 301.4.7 Registarsko indirektno adresiranje sa pomerajem ................................ .................... ................ 311.4.8 Bazno-indeksno adresiranje sa pomerajem ................ ........................ ................. ...................... 321.4.9 Registarska indirektna adresiranja sa autoinkrement i autodekrementiranjem ......................... 341.4.10 Relativno adresiranje sa pomerajem ............... ..................... .................... ..................... ....... 351.4.11 Neposredno adresiranje ................. .................... ..................... .................... ..................... .... 35

    1.5 SKUPINSTRUKCIJA................................................................................................................... 371.5.1 STANDARDNE INSTRUKCIJE ................................................................................................ 37

    1.5.1.1 INSTRUKCIJE PRENOSA............................................................................................................ 371.5.1.2 ARITMETIKE INSTRUKCIJE ................................................................................................... 391.5.1.3 LOGIKE INSTRUKCIJE ............................................................................................................ 501.5.1.4 INSTRUKCIJE POMERANJA ...................................................................................................... 521.5.1.5 INSTRUKCIJE SKOKA ................................................................................................................ 541.5.1.6 MEOVITE INSTRUKCIJE .......................................................................................................... 58

    1.5.2 NESTANDARDNE INSTRUKCIJE .................................. ..................... .................... ................ 581.6 MEHANIZAMPREKIDA............................................................................................................. 59

    1.6.1 Opsluivanje zahteva za prekid .................... .................... ..................... .................... ................ 601.6.2 Povratak iz prekidne rutine ...................................................................................................... 61

  • 5/28/2018 Arh Procesora 2011

    8/65

    4

  • 5/28/2018 Arh Procesora 2011

    9/65

    5

  • 5/28/2018 Arh Procesora 2011

    10/65

  • 5/28/2018 Arh Procesora 2011

    11/65

    7

    1ARHITEKTURA RAUNARAU ovoj glavi se razmatraju elementi arhitekture raunara koju ine programski dostupni

    registri, tipovi podataka, formati instrukcija, naini adresiranja, skup instrukcija i mehanizamprekida.

    1.1 PROGRAMSKI DOSTUPNI REGISTRIProgramski dostupni registri procesora su registri u koje je mogue programskom putem

    izvravanjem instrukcija procesora upisivati vrednosti i iz kojih je mogue programskom putemizvravanjem instrukcija procesora oitavati vrednosti. U instrukcijama kojima se pristupa ovimregistrima se registar u koji treba upisati vrednost ili iz koga treba o itati vrednost specificira ilieksplicitno nekim od adresnih polja instrukcije ili implicitno kodom operacije instrukcije. Oviregistri su namenjeni da se u njih nekom od instrukcija upie neka vrednost, pa da se tavrednost nekim kasnijim instrukcijam ita. Ovi registri su deo arhitekture raunara.

    Ove registre treba razlikovati od registara procesora koje projektant procesora ubacuje dabi prema nekom svom pristupu projektovanja procesora obezbedio uvanje neophodnihsadraja prilikom prolaska kroz sve korake iz kojih se sastoji izvravanje jedne instrukcije.Vrednost koja se u neki od ovih registara upisuju u nekom od koraka izvravanja instrukcijekoriste se u nekom ili nekim kasnijim koracima izvravanja te iste instrukcije, ali ne neke odsledeih instrukcija. Upisivanje vrednosti u ove registre i itanje vrednosti iz ovih registara jenemogue specificirati instrukcijama. To je odreeno usvojenim algoritmima izvravanja svakeinstrukcije posebno. Ovi registri su deo organizacije raunara.

    Funkcije i broj programski dostupnih registara se razlikije od procesora do procesora. Ovdese daju oni programski dostupni registri koji se esto sreu kod komercijalno raspoloivihprocesora i to programski brojaPC, registri podataka DR, adresni registri AR, bazni registri

    BR, indeksni registri XR, registri opte namene GPR, programska statusna rePSW, ukazivana vrh steka SP i ukazivana okvir steka FP.

    Programski broja PC je standardni programski broja procesora ija se vrednostimplicitno koristi kao adresa memorijske lokacije sa koje se ita instrukcija. Vrednostprogramskog brojaa PC se menja i to implicitno prilikom svakog itanja instrukcije kada sevri inkrementiranje programskog brojaa PC (odeljak 1.3) i eksplicitno instrukcijama skokakada se u programski brojabrojaPC upisuje nova vrednost (odeljak 1.5.1.5).

    Registri podatakaDR se koriste kod registarskog direktnog adresiranja (odeljak 1.4.1).Registrima podataka se pristupa programskim putem instrukcijama prenosa (odeljak 1.5.1.1) iaritmetikim (odeljak 1.5.1.2), logikim (odeljak 1.5.1.3) i pomerakim instrukcijama (odeljak1.5.1.4). Registri podataka se uvode da bi se ubrzao pristup podacima, tako to bi se tokomizvravanja programa pristupalo podacima u registrima podataka procesora umesto umemorijskim lokacijama, a rezultat je injenice da je pristup registrima skoro za red veliinebri od pristupa memorijskim lokacijama. Korienje registara podataka radi ubrzavanjapristupa podacima ima smisla ukoliko se u toku nekog raunanja javi potreba da se via putakoristi neki podatak. U ovom sluaju, mogue je, najpre, dati podatak, programskim putemizvravanjem instrukcije prenosa, prebaciti iz memorijske lokacije u neki od registara podataka,a zatim, kad god postoji potreba za datim podatkom, podatak itati iz registra podatka.Ubrzanje se postie time to umesto da se svaki put kada postoji potreba za datim podatkom

  • 5/28/2018 Arh Procesora 2011

    12/65

    8

    ide u memorijsku lokaciju ide se u registar podatka. Pored toga mogue je meurezultateraunanja ostavljati u registrima podataka, da bi kasnije, kada oni budu potrebni, njima mogloda se pristupa itanjem odgovarajuih registara podataka. Ubrzanje se postie time to semeurezultat ne smeta u memorijsku lokaciju i to kasnije kada postoji potreba za njimumesto da se ide u memorijsku lokaciju ide se u registar podatka. Konane rezultate raunanjatreba na kraju, programskim putem izvravanjem instrukcija prenosa, prebaciti iz registara

    podataka u memorijske lokacije. Ovakvo korienje registrima podataka ima opravdanja iz dvarazloga. Prvi je uoeni vremenski lokalitet prilikom rada sa skalarnim veliinama koji ukazujeda ako se jedanput pristupilo nekom podatku postoji velika verovatnoa da e se posle togavie puta javiti potreba za pristup istom podatku. Drugi je sekvencijalna priroda raunanja zakoju je karakteristino da se razultat jedne operacije veoma esto koristi kao podatak za druguoperaciju.

    Adresni registri AR se koriste kod registarskog indirektnog adresiranja (odeljak 1.4.2) iautoinkrement i autodekrement naina adresiranja (odeljak 1.4.9). Adresnim registrima sepristupa programskim putem instrukcijama prenosa (odeljak 1.5.1.1) i aritmetikim (odeljak1.5.1.2), logikim (odeljak 1.5.1.3) i pomerakim instrukcijama (odeljak 1.5.1.4) kada sesadraj adresnog registra koristi kao adresa memorijske lokacije sa koje se ita ili u koju se

    upisuje podatak, kao i instrukcijom skoka JMPIND (odeljak 1.5.1.5) kada se sadraj adresnogregistra koristi kao adresa skoka koju treba upisati u programski brojaPC. Adresni registri seuvode da bi se ubrzao pristup adresama, tako to bi se tokom izvravanja programa pristupaloadresama u adresnim registrima procesora umesto u memorijskim lokacijama, a rezultat jeinjenice da je pristup registrima skoro za red veliine bri od pristupa memorijskimlokacijama. Adresni registar i odgovarajue adresiranje se koriste u situacijama kada tokomizvravanja programa treba najpre sa nekoliko instrukcija izraunati adresu elementa nekesloene strukture podataka i smestiti je u neki od adresnih registara, pa onda ili instrukcijomprenosa ili aritmetikom, logikom ili pomerakom instrukcijom sadraj adresnog registrakoristiti kao adresu memorijske lokacije sa koje se ita ili u koju se upisuje podatak. Adresniregistar i odgovarajue adresiranje se koriste i u situacijama kada tokom izvravanja programa

    treba najpre sa nekoliko instrukcija izraunati adresu skoka, pa onda instrukcijom skokaJMPIND sadraj adresnog registra koristiti kao adresu skoka koju treba upisati u programskibroja PC. U oba sluaja je mogue sraunatu adresu upisati umesto u adresni registar umemorijsku lokaciju i do te adrese doi memorijskim indirektnim adresiranjem.

    Bazni registri BR se koriste kod baznog (odeljak 1.4.5) i bazno-indeksnog adresiranja(odeljak 1.4.8). Zbir sadraja specificiranog baznog registra i pomeraja kod baznog adresiranja,odnosno baznog registra, indeksnog registra i pomeraja kod bazno-indeksnog adresiranja,predstavlja adresu memorijske lokacije na kojoj se nalazi izvorini ili odredini operand.

    Indeksni registri XR se koriste kod indeksnog (odeljak 1.4.6) i bazno-indeksnogadresiranja (odeljak 1.4.8). Zbir sadraja specificiranog indeksnog registra i pomeraja kodindeksnog adresiranja, odnosno baznog registra, indeksnog registra i pomeraja kod

    bazno-indeksnog adresiranja, predstavlja adresu memorijske lokacije na kojoj se nalaziizvorini ili odredini operand.

    Registri opte namene GPR se koriste na isti nain kao registri podataka, adresni registri,bazni registri i indeksni registri. Registri opte namene GPR se javljaju kod onih procesora kodkojih ne postoje posebni registri podataka, adresni registri, bazni registri i indeksni registri. Zarazliku od procesora sa posebnim registrima podataka, adresnim registrima, baznim registrima iindeksnim registrima, gde se registri iz svake grupe registara koriste samo uz odgovarajua

  • 5/28/2018 Arh Procesora 2011

    13/65

    9

    adresiranja, procesori sa registrima opte namene mogu da koriste bilo koji od registara uz bilokoje adresiranje.

    Registar PSWje standardna programska statusna reprocesora sastavljena od odreenogbroja bitova, koji se obino nazivaju indikatori. Bitovi programske statusne rei PSW senezavisno postavljaju i koriste po pravilima definisanim posebno za svaki bit. Meutim, uodreenim situacijama, kao kada se skae na prekidnu rutinu i vraa iz nje, sa bitovimaprogramske statusne rei PSW se postupa na isti nain, pa se zato uzima da oni predstavljajurazrede jednog registra. U programskoj statusnoj rei PSW postoje dve grupe bitova i to bitovistatusnog i bitovi upravljakog karaktera (slika 1). Ovi bitovi se nazivaju i indikatori.

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    I - - - - - - - - - - - V C Z N

    Slika 1 Struktura registra PSW

    Bitovi statusnog karaktera su: Nbit koji se postavlja na 1 u sluaju da je rezultat operacije negativan, Zbit koji se postavlja na 1 u sluaju da je rezultat operacije jednak 0,

    Cbit koji se postavlja na 1 u sluaju prenosa/pozajmice u aritmetici celobrojnihveliina bez znaka i Vbit koji se postavlja na 1 u sluaju prekoraenja u aritmetici celobrojnih veliina sa

    znakom (odeljak 1.5.1.2).

    Bit upravljakog karaktera je: Ibit koji je jednak 1 ako treba da budu dozvoljeni maskirajui prekidi (odeljak 1.6).

    Bitovi statusnog karaktera N, Z, C i V, se postavljaju hardverski na osnovu rezultataizvravanja instrukcija (odeljak 1.5.1.2, 1.5.1.3 i 1.5.1.4), a proveravaju softverskiinstrukcijama uslovnog skoka (odeljak 1.5.1.5). Bitovi upravljakog karaktera se postavljajusoftverski kao rezultat izvravanja posebnih instrukcija (odeljak 1.5.1.6), a proveravajuhardverski u saglasnosti sa algoritmom izvravanja instrukcija (odeljak 1.6).

    Registar SP je ukazivana vrh steka kada je stek je organizovan u operativnoj memoriji.Registar SP se pojavljuje u procesorima kao podrka za realizaciju LIFO strukture podataka.Prilikom upisa u LIFO strukturu podataka ili itanja iz LIFO strukture podataka sadrajregistra SP se koristi kao adresa memorijske lokacije u koju treba upisati podatak ili iz kojetreba oitati podatak. Tom prilikom se vri i auriranje i to inkrementiranje ili dekrementiranjesadraja registra SP. LIFO strukturu podataka je mogue realizovati na etiri naina uzavisnosti od toga da li se kod upisa vri inkrementiranje ili dekrementiranje sadraja registraSP, pa se kae da stek raste prema viim ili prema niim lokacijama, i da li sadraj registra SPukazuje na zadnju zauzetu lokaciju ili prvu slobodnu lokaciju. Realizacija upisa na stek i itanjasa steka za etiri mogue realizacije steka su prikazane u daljem tekstu.

    Stek raste prema viim lokacijama a registar SP ukazuje na zadnju zauzetu lokaciju

    Kod upisa na stek najpre se vri inkrementiranje registra SP, pa sa posle toga sadrajregistra SP koristi kao adresa memorijske lokacije u koju se upisuje. Kod itanja sa steka najrese sadraj registra SP koristi kao adresa memorijske lokacije sa koje se ita sadraj, pa se posletoga vri dekrementiranje sadraja registra SP. Upisa na stek i itanje sa steka za ovakvurealizaciju steka su ilustrovani na slici 2 .

  • 5/28/2018 Arh Procesora 2011

    14/65

    10

    SP=0151

    0153

    0152

    0151

    01500149

    posle PUSH R5pocetno stanje

    ADRESE

    STEK STANJE I

    SADRZAJ

    R5=1234

    R7=5555

    R5=1234

    R7=5555

    R5=1234

    R7=1234

    SP=0151

    0153

    0152

    0151

    01500149

    1234

    ADRESE

    STEK STANJE III

    SADRZAJ

    SP=0152

    0153

    0152

    0151

    01500149

    1234

    ADRESE

    STEK STANJE II

    SADRZAJ

    pre POP R7

    posle POP R7

    pre PUSH R5 krajnje stanje Slika 2 Stek raste prema viim lokacijama i registar SP ukazuje na zadnju zauzetu lokaciju

    Kao poetno stanje pre izvrenja instrukcije PUSH R5 je uzeto da se u registru R5 nalazivrednost 1234, u registru R7 vrednost 5555 i da registar SP ukazuje na memorijsku lokaciju naadresi 0151. Uzeto je da se najpre instrukcijom PUSH R5 sadraj registra R5 stavlja na vrhsteka. U okviru izvravanja instrukcije PUSH R5 sadraj 0151 registra SP se najpreinkrementira pa se posle njegov sadraj 0152 koristi kao adresa memorijske lokacije u koju seupisuje sadraj 1234 registra R5. Potom se instrukcijom POP R7 skida sadraj sa vrha steka iupisuje u registar R7. U okviru izvravanja instrukcije POP R7 sadraj 0152 registra SP sekoristi kao adresa memorijske lokacije sa koje se najpre ita sadraj 1234 i upisuje u registarR7, pa se posle sadraj registra SP dekrementira na vrednost 0151.

    Stek raste prema viim lokacijama a registar SP ukazuje na prvu slobodnu lokacijuKod upisa na stek najpre se sadraj registra SP koristi kao adresa memorijske lokacije u

    koju se upisuje, pa se posle toga vri inkrementiranje registra SP. Kod itanja sa steka najre sevri dekrementiranje sadraja registra SP, pa se posle toga sadraj registra SP koristi kaoadresa memorijske lokacije sa koje se ita sadraj. Upisa na stek i itanje sa steka za ovakvurealizaciju steka su ilustrovani na slici 3.

    Kao poetno stanje pre izvrenja instrukcije PUSH R5 je uzeto da se u registru R5 nalazivrednost 1234, u registru R7 vrednost 5555 i da registar SP ukazuje na memorijsku lokaciju naadresi 0151. Uzeto je da se najpre instrukcijom PUSH R5 sadraj registra R5 stavlja na vrhsteka. U okviru izvravanja instrukcije PUSH R5 najpre se sadraj 0151 registra SP koristi kaoadresa memorijske lokacije u koju se upisuje sadraj 1234 registra R5, pa se posle njegovsadraj inkrementira na vrednost 0152. Potom se instrukcijom POP R7 skida sadraj sa vrhasteka i upisuje u registar R7. U okviru izvravanja instrukcije POP R7 sadraj 0152 registra SP

    se najpre dekrementira na vrednost 0151, pa se posle koristi kao adresa memorijske lokacije sakoje se ita sadraj 1234 i upisuje u registar R7.

  • 5/28/2018 Arh Procesora 2011

    15/65

    11

    SP=0151

    0153

    0152

    0151

    01500149

    posle PUSH R5pocetno stanje

    ADRESE

    STEK STANJE I

    SADRZAJ

    R5=1234

    R7=5555

    R5=1234

    R7=5555

    R5=1234

    R7=1234

    SP=0151

    0153

    0152

    0151

    01500149

    1234

    ADRESE

    STEK STANJE III

    SADRZAJ

    SP=0152

    0153

    0152

    0151

    01500149

    1234

    ADRESE

    STEK STANJE II

    SADRZAJ

    pre POP R7

    posle POP R7

    pre PUSH R5 krajnje stanje Slika 3 Stek raste prema viim lokacijama i registar SP ukazuje na prvu slobodnu lokaciju

    Stek raste prema niim lokacijama a registar SP ukazuje na zadnju zauzetu lokacijuKod upisa na stek najpre se vri dekrementiranje registra SP, pa sa posle toga sadraj

    registra SP koristi kao adresa memorijske lokacije u koju se upisuje. Kod itanja sa steka najrese sadraj registra SP koristi kao adresa memorijske lokacije sa koje se ita sadraj, pa se posletoga vri dekrementiranje sadraja registra SP. Upisa na stek i itanje sa steka za ovakvurealizaciju steka su ilustrovani na slici 4 .

    SP=0151

    0153

    0152

    01510150

    0149

    posle PUSH R5pocetno stanje

    ADRESE

    STEK STANJE I

    SADRZAJ

    R5=1234

    R7=5555

    R5=1234

    R7=5555

    R5=1234

    R7=1234

    SP=0151

    0153

    0152

    01510150

    0149

    1234

    ADRESE

    STEK STANJE III

    SADRZAJ

    SP=0150

    0153

    0152

    01510150

    0149

    1234

    ADRESE

    STEK STANJE II

    SADRZAJ

    pre POP R7

    posle POP R7

    pre PUSH R5 krajnje stanje

    Slika 4 Stek raste prema niim lokacijama i registar SP ukazuje na zadnju zauzetu lokacijuKao poetno stanje pre izvrenja instrukcije PUSH R5 je uzeto da se u registru R5 nalazi

    vrednost 1234, u registru R7 vrednost 5555 i da registar SP ukazuje na memorijsku lokaciju naadresi 0151. Uzeto je da se najpre instrukcijom PUSH R5 sadraj registra R5 stavlja na vrhsteka. U okviru izvravanja instrukcije PUSH R5 sadraj 0151 registra SP se najpredekrementira pa se posle njegov sadraj 0150 koristi kao adresa memorijske lokacije u koju seupisuje sadraj 1234 registra R5. Potom se instrukcijom POP R7 skida sadraj sa vrha steka iupisuje u registar R7. U okviru izvravanja instrukcije POP R7 sadraj 0150 registra SP se

  • 5/28/2018 Arh Procesora 2011

    16/65

    12

    koristi kao adresa memorijske lokacije sa koje se najpre ita sadraj 1234 i upisuje u registarR7, pa se posle sadraj registra SP inkrementira na vrednost 0151.

    Stek raste prema niim lokacijama a registar SP ukazuje na prvu slobodnu lokacijuKod upisa na stek najpre se sadraj registra SP koristi kao adresa memorijske lokacije u

    koju se upisuje, pa se posle toga vri dekrementiranje registra SP. Kod itanja sa steka najre sevri inkrementiranje sadraja registra SP, pa se posle toga sadraj registra SP koristi kao adresamemorijske lokacije sa koje se ita sadraj. Upisa na stek i itanje sa steka za ovakvurealizaciju steka su ilustrovani na slici 5 .

    SP=0151

    0153

    0152

    0151

    0150

    0149

    posle PUSH R5pocetno stanje

    ADRESE

    STEK STANJE I

    SADRZAJ

    R5=1234

    R7=5555

    R5=1234

    R7=5555

    R5=1234

    R7=1234

    SP=0151

    0153

    0152

    0151

    0150

    0149

    1234

    ADRESE

    STEK STANJE III

    SADRZAJ

    SP=0150

    0153

    0152

    0151

    0150

    0149

    1234

    ADRESE

    STEK STANJE II

    SADRZAJ

    pre POP R7

    posle POP R7

    pre PUSH R5 krajnje stanje Slika 5 Stek raste prema niim lokacijama i registar SP ukazuje na prvu slobodnu lokaciju

    Kao poetno stanje pre izvrenja instrukcije PUSH R5 je uzeto da se u registru R5 nalazivrednost 1234, u registru R7 vrednost 5555 i da registar SP ukazuje na memorijsku lokaciju naadresi 0151. Uzeto je da se najpre instrukcijom PUSH R5 sadraj registra R5 stavlja na vrh

    steka. U okviru izvravanja instrukcije PUSH R5 najpre se sadraj 0151 registra SP koristi kaoadresa memorijske lokacije u koju se upisuje sadraj 1234 registra R5, pa se posle njegovsadraj dekrementira na vrednost 0150. Potom se instrukcijom POP R7 skida sadraj sa vrhasteka i upisuje u registar R7. U okviru izvravanja instrukcije POP R7 sadraj 0150 registra SPse najpre inkrementira na vrednost 0151, pa se posle koristi kao adresa memorijske lokacije sakoje se ita sadraj 1234 i upisuje u registar R7.

    Stek se koristi kao upravljaki stek i kao aritmetiki stek. Upravljaki stek se koristi kodskoka na potprogram i skoka na prekidnu rutinu za uvanje informacija neophodnih zapovratak iz potprograma i povratak iz prekidne rutine. Aritmetiki stek se koristi kod nula-adresnih ili stek procesora kao implicitno izvorite i odredite operanada. Postoje realizacijekod kojih se jedan stek koristi i kao upravljaki stek i kao aritmetiki stek, a postoje i

    realizacije kod kojih postoje posebno upravljaki stek i posebno aritmetiki stek.

    Jedna od situacija kada se stek koristi kao upravljaki stek prikazana je na slici 6. Uzeto jeda stek raste prema viim lokacijama i da registar SP ukazuje na zadnju zauzetu lokaciju.

    Tokom izvravanja glavnog programa dolazi se na instrukciju JSR 0115 sa adrese 0046kojom treba da se realizuju skok na potprogram I koji poinje od adrese 0115. Stanje na steku

    je oznaeno sa stek stanje I. Pri itanju instrukcije sa adrese 0046 programski broja PC jeinkrementiran i ima vrednost 0047, pa se pri izvravanju instrukcije JSR 0115 na vrh steka

  • 5/28/2018 Arh Procesora 2011

    17/65

    13

    stavlja 0047 i u programski broja PC upisuje vrednost 0115. Stanje na steku po skoku napotprogram I je oznaeno sa stek stanje II.

    0044

    ADRESE

    00450046

    0047

    0048

    INSTRUKCIJE

    JSR 0115

    GLAVNI PROGRAM

    0115

    ADRESE

    0123

    0124

    0125

    INSTRUKCIJE

    JSR 0237

    POTPROGRAM I

    0237

    ADRESE

    0241

    INSTRUKCIJE

    RTS

    POTPROGRAM II

    0129 RTS

    SP=0515

    0518

    ADRESE

    0517

    0516

    05150514

    SADRZAJ

    STEK STANJE I

    SP=0516

    0518

    ADRESE

    0517

    0516

    05150514

    SADRZAJ

    STEK STANJE II

    SP=0517

    0518

    ADRESE

    0517

    0516

    05150514

    SADRZAJ

    STEK STANJE III

    0047 0047

    0125

    SP=0515

    0518

    ADRESE

    0517

    0516

    0515

    0514

    SADRZAJ

    STEK STANJE V

    SP=0516

    0518

    ADRESE

    0517

    0516

    0515

    0514

    SADRZAJ

    STEK STANJE IV

    0047

    01250125

    0047

    Slika 6 Upravljaki stek

    Tokom izvravanja potprograma I dolazi se na instrukciju JSR 0237 sa adrese 0124 kojomtreba da se realizuju skok na potprogram II koji poinje od adrese 0237. Stanje na steku jeoznaeno sa stek stanje II. Pri itanju instrukcije sa adrese 0124 programski broja PC jeinkrementiran i ima vrednost 0125, pa se pri izvravanju instrukcije JSR 0237 na vrh stekastavlja 0125 i u programski broja PC upisuje vrednost 0237. Stanje na steku po skoku napotprogram II je oznaeno sa stek stanje III.

    Tokom izvravanja potprograma II dolazi se na instrukciju RTS sa adrese 0241 kojom trebada se realizuju povratak na potprogram I i to na instrukciju sa adrese 0125. Stanje na steku jeoznaeno sa stek stanje III. Pri izvravanju instrukcije RTS sa vrha steka se skida 0125 iupisuje u programski brojaPC. Stanje na steku po povratku na potprogram I je oznaeno sastek stanje IV.

    Tokom izvravanja potprograma I dolazi se na instrukciju RTS sa adrese 0129 kojom trebada se realizuju povratak na glavni program i to na instrukciju sa adrese 0047. Stanje na steku jeoznaeno sa stek stanje IV. Pri izvravanju instrukcije RTS sa vrha steka se skida 0047 i

  • 5/28/2018 Arh Procesora 2011

    18/65

    14

    upisuje u programski brojaPC. Stanje na steku po povratku na glavni program je oznaeno sastek stanje V.

    Jedna od situacija kada se stek koristi kao aritmetiki stek prikazana je na slici 6. Uzeto jeda stek raste prema viim lokacijama i da registar SP ukazuje na zadnju zauzetu lokaciju.

    SP=0150

    ADRESE

    STEK STANJE I

    SADRZAJ

    0319

    03180317

    0316

    0315

    0010

    0020

    0153

    0152

    0151

    0150

    0149

    SP=0151

    ADRESE

    STEK STANJE II

    SADRZAJ

    0319

    03180317

    0316

    0315

    0010

    0020

    0153

    0152

    0151

    0150

    0149

    SP=0152

    ADRESE

    STEK STANJE III

    SADRZAJ

    0319

    03180317

    0316

    0315

    0010

    0020

    0153

    0152

    0151

    0150

    0149

    SP=0151

    ADRESE

    STEK STANJE IV

    SADRZAJ

    0319

    03180317

    0316

    0315

    0010

    0020

    0153

    0152

    0151

    0150

    0149

    SP=0150

    ADRESE

    STEK STANJE V

    SADRZAJ

    0319

    03180317

    0316

    0315

    0010

    0020

    0153

    0152

    0151

    0150

    0149

    0030

    0010 0010

    0020

    0030

    posle PUSH 0316 posle PUSH 0317 posle ADD posle POP 0318pocetno stanje

    0052

    ADRESE

    0053

    0054

    0055

    0056

    INSTRUKCIJE

    GLAVNI PROGRAM

    0057

    PUSH 0316

    ADD

    PUSH 0317

    POP 0318

    0020 0020

    0030

    Slika 7 Aritmetiki stek

    Tokom izvravanja glavnog programa dolazi se na instrukciju PUSH 0316 sa adrese 0053kojom treba da se na vrh steka stavi sadraj 0010 memorijske lokacije sa adrese 0316. Stanjena steku je oznaeno sa stek stanje I. Pri izvravanju instrukcije PUSH 0316 najpre se sadrajregistra SP inkrementira sa vrednosti 0150 na vrednost 0151, zatim se sadraj 0010memorijske lokacije sa adrese 0316 ita i na kraju se u memorijsku lokaciju na adresi 0151odreenoj sadrajem registra SP upisuje sadraj 0010. Po izvravanju instrukcije PUSH 0316stanje na steku je oznaeno sa stek stanje II.

    Sledea instrukcija glavnog programa je instrukcija PUSH 0317 sa adrese 0054 kojom

    treba da se na vrh steka stavi sadraj 0020 memorijske lokacije sa adrese 0317. Stanje na stekuje oznaeno sa stek stanje II. Pri izvravanju instrukcije PUSH 0317 najpre se sadraj registraSP inkrementira sa vrednosti 0151 na vrednost 0152, zatim se sadraj 0020 memorijskelokacije sa adrese 0317 ita i na kraju se u memorijsku lokaciju na adresi 0152 odreenojsadrajem registra SP upisuje sadraj 0020. Po izvravanju instrukcije PUSH 0317 stanje nasteku je oznaeno sa stek stanje III.

    Potom dolazi instrukcija glavnog programa ADD sa adrese 0055 kojom treba sa vrha stekada se skine najpre sadraj 0020, pa sadraj 0010, izvri njihovi sabiranje i na vrh steka stavi

  • 5/28/2018 Arh Procesora 2011

    19/65

    15

    sadraj 0030. Stanje na steku je oznaeno sa stek stanje III. Pri izvravanju instrukcije ADDnajpre se sadraj 0020 ita sa adrese 0152 odreene sadrajem registra SP i sadraj registra SPdekrementira sa vrednosti 0152 na vrednost 0151, zatim se sadraj 0010 ita sa adrese 0151odreene sadrajem registra SP i sadraj registra SP dekrementira sa vrednosti 0151 navrednost 0150, potom se sabiranjem sadraja 0020 i 0010 dobija suma 0030 i na kraju sesadraj registra SP inkrementira sa vrednosti 0150 na vrednost 0151 koja predstavlja adresu

    memorijske lokaciju u koju se upisuje dobijena suma 0030. Po izvravanju instrukcije ADDstanje na steku je oznaeno sa stek stanje IV.

    Na kraju glavnog programa je instrukcija POP 0318 sa adrese 0056 kojom treba sa vrhasteka da se skine sadraj 0030 i upie u memorijsku lokaciju sa adrese 0318. Stanje na steku jeoznaeno sa stek stanje IV. Pri izvravanju instrukcije POP 0318 najpre se sadraj 0030 ita saadrese 0151 memorijske lokacije odreene sadrajem registra SP, sadraj registra SPdekrementira sa vrednosti 0151 na vrednost 0150 i oitani sadraj upisuje u memorijskulokaciju na adresi 0318. Po izvravanju instrukcije POP 0318 stanje na steku je oznaeno sastek stanje V.

  • 5/28/2018 Arh Procesora 2011

    20/65

    16

    1.2 TIPOVI PODATAKAU ovom poglavlju se, najpre, daju neke opte napomene vezane za razliite naine

    predstavljanja podataka u raunaru, a zatim i mogui naini predstavljanja podataka.

    1.2.1 OPTE NAPOMENEPodatke je mogue predstaviti na vie razliitih naina, kao, na primer, celobrojna veliina

    bez znaka, celobrojna veliina sa znakom, koja dalje moe da se predstavi kao znak i veliina,prvi komplement i drugi komplement, zatim pokretni zarez, alfanumeriki niz, numeriki nizdecimalnih brojeva itd. Pored toga za svaki nain predstavljanja mogue je da podaci budupredstavljeni na razliitim duinama. Kao primer se moe uzeti celobrojna veliina bez znakakoja se u savremenim raunarima veoma esto predstavlja na duinama 8, 16, 32 i 64 bita,ime se postiu razliiti opsezi predstavljanja celobrojnih veliina bez znaka i to od 0 do 2 8-1,od 0 do 216-1, od 0 do 232-1 i od 0 do 264-1.

    Kao posledica predstavljanja podataka na vie razliitih naina jedna ista kombinacija 0 i 1predstavljae razliite vrednosti podataka. Kao primer se moe uzeti binarna re 10000011koju je mogue interpretirati na vie naina. To je

    +131, ako se inerpretira kao celobrojna vrednost bez znaka,-3, ako se interpretira kao celobrojna vrednost sa znakom u nainu predstavljanja znak i

    veliina,-125, ako se interpretira kao celobrojna veliina sa znakom u nainu predstavljanja prvi

    komplement,-124, ako se interpretira kao celobrojna veliina sa znakom u nainu predstavljanja drugi

    komplement i+83, ako se interpretira kao numeriki niz binarno kodiranih decimalnih brojeva bez znaka.

    Podatak ija je duina vea od duine adresibilne memorijske lokacije smeta se u nizsusednih memorijskih lokacija. Pri tome se kao adresa takvog podatka zadaje adresa samo

    jedne i to najnie memorijske lokacije. Kao primer se moe uzeti podatak duine 4 bajta za kojise kao adresa zadaje 55, pri emu je irina memorijske rei 1 bajt. Ovaj podatak se smeta umemorijske lokacije na adresama 55, 56, 57 i 58, a kao njegova adresa zadaje se 55. Stvar jerealizacije procesora da u sluaju podatka duine 4 bajta za koji se kao adresa zadaje 55 oita 4bajta sa adresa 55, 56, 57 i 58.

    Podaci duine vee od duine adresibilne memorijske lokacije mogu da se u memorijismetaju na dva naina. Kod prvog naina, na najnioj adresi je najstariji bajt podatka, a naviim adresam redom mlai bajtovi podatka. Ovakav nain smetanja se naziva big-endian. Koddrugog naina, na najnioj adresi je najmlai bajt podatka, a na viim adresam redom starijibajtovi podatka. Ovakav nain smetanja se naziva little-endian.

    1.2.2 PREDSTAVLJANJE PODATAKATipovi podataka predstavljaju razliite naine predstavljanja podataka binarnim reima.

    Najee korieni tipovi podataka su celobrojne veliine, veliine u pokretnom zarezu,alfanumeriki niz i numeriki niz.

    1.2.2.1 CELOBROJNE VELIINECelobrojne veliinine mogu da budu bez znaka i sa znakom.

  • 5/28/2018 Arh Procesora 2011

    21/65

    17

    Ako se binarna reduine n bitova, u kojoj su bitovi oznaeni sa an-1an-2...a1a0, interpretirakao celobrojna veliina bez znaka, onda ona predstavlja podatak A ija se vrednost izraunavapomou izraza

    A =

    =

    1n

    0ii

    i a2

    Uz takav nain interpretiranja bitova binarne rei, predstavljaju se celobrojne veliine bezznaka u opsegu 0 do 2n1.

    Meutim, ako se ista binarna re intrpretira kao celobrojna veliina sa znakom u drugomkomplementu, onda ona predstavlja podatak A ija se vrednost izraunava pomou izraza

    A = 2n-1an-1 +

    =

    2n

    0ii

    i a2

    Uz ovakav nain interpretiranja bitova binarne rei, predstavljaju se celobrojne vrednosti saznakom u opsegu 2n-1do 2n-11.

    Binarne rei koje predstavljaju celobrojne veliine se mogu interpretirati i na druge naine

    kao, na primer, celobrojne veliine sa znakom predstavljene kao znak i veli

    ina, celobrojneveliine sa znakom u prvom komplementu itd.

    Celobrojne veliine se u raunarima obino predstavljaju na fiksnim duinama od 8, 16, 32 i64 bita i njihova duina i nain intrpretacije su odreeni poljem koda operacije instrukcije.

    1.2.2.2 VELIINE U POKRETNOM ZAREZUVeliine u pokretnom zarezu imaju polje znaka (s), polje eksponenta (e) i mantise (f). Po

    standardu duine veliina u pokretnom zarezu su 32 i 64 bita. U sluaju veliine u pokretnomzarezu duine 32 bita, ta veliina je predstavljena kao na slici 8.31 30 ... 23 22 ... 0

    s e f

    Slika 8 Veliina u pokretnom zarezu

    Vrednost v se dobija na sledei nain:1. za e=255 i f0, v je Not a Number bez obzira na s,2. za e=255 i f=0, v=(-1)s,3. za 0

  • 5/28/2018 Arh Procesora 2011

    22/65

    18

    1.3 FORMATI INSTRUKCIJAFormatom instrukcije se specificiraju dve vrste informacija neophodne za izvravanje

    instrukcija programa i to: operacija i tip podatka sa kojim operacija treba da se realizuje i izvorini i odredini operandi.

    Za izvravanje instrukcija programa treba da se zna i odakle uzeti sledeu instrukcije pozavretku izvravanja tekue instrukcije. U svim daljim razmatranjima pretpostavie se danasuobiajeni pristup da je to odreeno tekuom vrednou programskog brojaa PC. Kod ovogpristupa kod itanja instrukcije kao adresa memorijske lokacije uvek se koristi tekua vrednostprogramskog brojaa PC, koja se tom prilikom inkrementira. Kao rezultat ovakvog pristupainstrukcije se mogu jedino sekvencijalno itati i izvravati.

    Meutim, u programima kojima se reavaju odreeni problemi veoma esto postoji potrebada se na osnovu rezultata raunanja realizuju grananja u programu. To ima za posledicu da unekim situacijam ne treba prei na itanje i izvravanje prve sledee instrukcije u sekvenci, vena neku instrukciju van sekvence, to je mogue postii jedino ako se u programski brojaupie adresa memorijske lokacije sa koje treba produiti sa itanjem i izvravanjem instrukcijaprograma. To se postie posebnim instrukcijama skokova, koje treba da se ubace u deloveprograma kada treba odstupiti od sekvencijalnog izvravanja programa. Jedini efekatinstrukcija skokova je upisivanje nove vrednosti u programski brojaPC.

    Ubacivanje instrukcija skokova na mestima na kojima treba realizovati grananja u programupoveava ukupan broj instrukcija u programima, pri emu instrukcije skokova ne uestvuju uraunanjima problema koji se reava, ve samo obezbeuju korektan redosled izvravanjainstrukcija programa. Statisatika izvravanja instrukcija pokazuje da u proseku posle 5 do 7instrukcija izvrenih u sekvenci treba odstupiti od sekvencijalnog izvravanja programa. Sobzirom da u svakoj takvoj situaciji treba ubaciti instrukciju skoka, u proseku se ukupan brojinstrukcija u programu poveava za oko 15%.

    Bilo je pokuaja i sa pristupom kod koga je u formatu instrukcije, pored informacija ooperaciji i tipu podatka sa kojim operacija treba da se realizuje i izvorinim i odredinimoperandima, bila i informacija o sledeoj instrukciji. Kod tog pristupa adresa sledee instrukcijekoju treba itati i izvravati nije odreena tekuom vrednou programskog brojaa, vevrednou dela instrukcije sa informacijom o sledeoj instrukciji. To zahteva da u sluaju kadatreba produiti sa sekvencijalnim izvravanjem instrukcija informacija o sledeoj instrukcijibude adresa prve sledee instrukcije u sekvenci, dok u situaciji kada treba odstupiti odsekvencijalnog izvravanja instrukcija informacija o sledeoj instrukciji bude adresa memorijskelokacije na kojoj se nalazi prva instrukcija programa na koji treba skoiti. U tom sluaju nemapotrebe za instrukcijama skoka.

    Meutim, zbog izraene sekvencijalnosti u izvravanju instrukcija programa i injenice da u

    proseku tek posle 5 do 7 instrukcija izvrenih u sekvenci postoji potreba za odstupanjem odsekvencijalnog izvravanja instrukcija, instrukcije koje se izvravaju sekvencijalno imale bi kaoinformaciju o sledeoj instrukciji adresu instrukcije koja je sledea u sekvenci, dok bi samoinstrukcija posle koje se odstupa sa sekvencijalnim izvravanjem instrukcija imala kaoinformaciju o sledeoj instrukciji adresu instrukcije koja nije sledea u sekvenci ve je prvainstrukcija programa na koji treba skoiti. Ukoliko se uzmu sadanji kapaciteti operativnememorije koji su nekoliko giga rei, tada je potrebno tridesetak bitova za specifikaciju adrese

    jedne memorijske lokacije. To bi kod ovog pristupa zahtevalo da svaka instrukcija zboginformacije o sledeoj instrukciji bude dua tridesetak bitova. Zbog toga je danas uobiajen

  • 5/28/2018 Arh Procesora 2011

    23/65

    19

    pristup da u formatu instrukcije ne postoji informacija o sledeoj instrukciji veda se tokomsekvencijalnog izvravanja instrukcija implicitno kao adresa sledee instrukcije koristi tekuavrednost programskog brojaa koja se inkrementira posle svakog itanja instrukcije, a da sekada treba odstupiti od sekvencijalnog izvravanja instrukcija eksplicitno instrukcijom skokavri upis adrese sledee instrukcije u programski broja PC. Interesantno je da se umikroprogramima kod mikroprogramskih realizacija upravljakih jedinica skokovi u

    mikroprogramu javljaju u proseku posle svake druge ili tree mikroinstrukcije, pa je stogadosta uobiajeno da u formatu mikroinstrukcije pored dela kojim se specificira kojemikrooperacije treba da se realizuju postoji i deo sa adresom mikroinstrukcije na koju trebaprei u sluaju da se odstupa od sekvencijalnog izvravanja mikroinstrukcija.

    Informacije i operaciji i tipu podatka sa kojim operacija treba da se realizuje i izvorinim iodredinim operandima se specificiraju odgovarajuim poljima instrukcije. U zavisnosti od togakako se ove dve vrste informacija specificiraju, zavisi kakve je struktura polja u formatuinstrukcije. Na osnovu toga se govori o razliitim formatim instrukcija. U daljim razmatranjimase daju funkcije i struktura najpre polja sa specifikacijom operanda i tipa operacije, a zatim ipolja sa specifikacijom izvorinih i odredinih operanada.

    1.3.1 OPERACIJA I TIP PODATKAOvim poljem, koje se obino naziva polje koda operacije, se specificira operacija koju treba

    izvriti i tip podatka nad kojim datu operaciju treba izvriti. Pod operacijom se misli naoperacije iz skupa instrukcija, kao to su operacije prenosa, aritmetike operacije, logikeoperacije, operacije pomeranja i rotiranja i upravljake operacije. Pod tipom podatka se misli izkoliko susednih memorijskih lokacija treba proitati binarne i na koji, od vie moguih naina,ih treba interpretirati.

    Stoga je neophodno procesor tako realizovati da se na osnovu vrednosti koda operacijeutvruje

    - iz koliko susednih memorijskih lokacija, poev od one koja je specificirana poljem saspecifikacijom izvorinih i odredinih operanada, treba oitati memorijskih rei da bi se dobiooperand potrebne duine,

    - kako oitane binarne vrednosti treba interpretirati i- koju operaciju treba realizovati.

    Kao ilustracija ovog pristupa moe se uzeti da u procesoru koji od tipova podatak podrava- celobrojne veliine bez znaka duine 8, 16, 32 i 64 bita,- celobrojne veliine sa znakom predstavljene u drugom komplementu duine 8, 16, 32 i 64

    bita i- veliine u pokretnom zarezu duine 32 i 64 bita

    mora da postoji 10 kodova operacija za operaciju mnoenja.

    1.3.2 IZVORINI I ODREDINI OPERANDIOvim poljem se eksplicitno specificiraju operandi. Postoje vie varijanti ovog polja koje

    nastaju kao posledica sledea dva elementa:- broj eksplicitno specificiranih operanada i- mogue lokacije operanada.

    1.3.2.1 BROJ EKSPLICITNO SPECIFICIRANIH OPERANADAU sluaju binarnih operacija, kao to su aritmetike i logike operacije, potrebne su dve

    izvorine i jedna odredina lokacija. U zavisnosti od toga koliko se lokacija eksplicitno definieu formatu instrukcije, procesori se dele na troadresne, dvoadresne, jednoadresne i nulaadresneprocesore. Kod procesora kod koji se u formatu instrukcije eksplicitno ne definiu sve tri

  • 5/28/2018 Arh Procesora 2011

    24/65

    20

    lokacije, za one lokacije kojih nema eksplicitno definisanih u formatu instrukcije zna seimplicitno gde su.

    Kod procesora sa troadresnim formatom instrukcija (slika 9) eksplicitno su poljima A1, A2 iA3 definisane sve tri lokacije. Kod nekih procesora polja A1 i A2 definiu adrese izvorinihlokacija, a A3 adresu odredine lokacije. Meutim, ima procesora kod kojih polja A2 i A3definiu adrese izvorinih lokacija, a A1 adresu odredine lokacije.

    OC A1 A2 A3

    Slika 9 Troadresni format instrukcije

    Ukoliko u procesoru sa troadresnim formatom instrukcije treba sraunati izrazC

  • 5/28/2018 Arh Procesora 2011

    25/65

    21

    u kojima su simboliki sa MOV i ADD oznaene vrednosti polja koda operacija prenosa isabiranja, respektivno, a sa A, B i C adrese eksplicitno definisanih izvorinih i odredinihlokacija. Tokom izvravanja instrukcije prenosa MOV iz memorijske lokacija sa adrese A itase operand i smeta u memorijsku lokaciju na adresi C. Tokom izvravanja instrukcije sabiranjaADD iz memorijskih lokacija sa adresa C i B itaju se operandi, izvrava operacija sabiranja irezultat smeta u memorijsku lokaciju na adresi C.

    Dobra strana dvoadresnog formata u odnosu na troadresni format je da je instrukcija kra a.Meutim, sada su potrebne dve instrukcije da se realizuje sraunavanje istog izraza. Zbog togato je za instrukciju ADD memorijska lokacija C i izvorina i odredina lokacija, potrebno je dase najpre instrukcijom MOV prebaci sadraj memorijske lokacije A u memorijsku lokaciju C ida se zatim instrukcijom ADD iz memorijskih lokacija sa adresa C i B itaju operandi, izvrioperacija sabiranja i rezultat smesti u memorijsku lokaciju na adresi C. Sadraji u memorijskimlokacijama A, B i C su identini pre i posle sraunavanja izraza i za procesor sa dvoadresnim iza procesor s troadresnim formatom instrukcija, a razlika je u nainu kako se u memorijskojlokaciji C formira suma sadraja memorijskih lokacija A i B. Meutim, i pored skraivanjainstrukcije za duinu specifikacije jednog operanda, jo uvek je velika duina instrukcije, pa,mada neto blai, ostaju problemi veliine memorijskog prostora potrebnog za smetanje

    programa i vremena potrebnog za itanje instrukcija.Kod procesora sa jednoadresnim formatom instrukcija (slika 11) eksplicitno se poljem A1

    definie jedna izvorina lokacija. Kod ovih procesora postoji poseban registar procesora koji seobino naziva akumulator koji predstavlja jedno implicitno izvorite i implicitno odredite.

    OC A1

    Slika 11 Jednoadresni format instrukcije

    Ukoliko kod procesora sa jednoadresnim formatom instrukcija treba sraunati izrazC

  • 5/28/2018 Arh Procesora 2011

    26/65

    22

    identini pre i posle sraunavanja izraza za procesore sa jednoadresnim, dvoadresnim itroadresnim formatom instrukcija, a razlika je u nainu kako se u memorijskoj lokaciji Cformira suma sadraja memorijskih lokacija A i B. Meutim, i pored skraivanja instrukcije zaduinu specifikacije dva operanda, ima onih koji smatraju da je jo uvek je velika duinainstrukcije, pa, mada jo neto blai, ostaju problemi veliine memorijskog prostora potrebnogza smetanje programa i vremena potrebnog za itanje instrukcija.

    Kod procesora sa nulaadresnim formatom instrukcija (slika 12) u formatu instrukcije postojisamo polje koda operacije i ne postoji ni jedno polje kojim bi se eksplicitno definisale izvorinei odredine lokacije. Kod ovih procesora vrh steka je implicitno izvorite za oba operanda iimplicitno odredite za rezultat. Izuzetak su dve jednoadresne instrukcije i to instrukcija PUSHkojom se sadraj iz neke memorijske lokacije smeta na vrh steka i instrukcija POP kojom sesadraj sa vrha steka smeta u neku memorijsku lokaciju.

    OC

    OC A1

    Slika 12 Nulaadresni format instrukcije

    Ukoliko kod procesora sa nulaadresnim formatom instrukcija treba sraunati izrazC

  • 5/28/2018 Arh Procesora 2011

    27/65

    23

    osnogu meukoda generiu kod za svaki konkretan procesor. Meukod se obino daje u oblikuinverzne poljske notacije. Kod koji se od meukoda generie za procesore sa troadresnim,dvoadresnim i jednoadresnim formatima instrukcija nije efikasan i primenom optimizatora kodamogue ga je poboljati i do tri puta. Meutim, u sluaju procesora sa nulaadresnim formatominstrukcija generisanje koda je jednostavno i uvek se dobija najefikasniji mogui kod.

    U skupu instrukcija pored instrukcija kojima se realizuju binarne operacije, kao to suaritmetike i logike operacije, postoje i instrukcije kojima se realizuju operacije pomeranja,kao i instrukcije prenosa i upravljake instrukcije. Razmatranim troadresnim, dvoadresnim,

    jednoadresnim i nulaadresnim formatima instrukcija mogu da se predstave instrukcije kojima serealizuju operacije pomeranja i instrukcije prenosa. Meutim, upravljake instrukcijepredstavljaju poseban sluaj u odnosu na razmatrane formate instrukcija i realizuju se na istinain za sve razmatrane formate instrukcija.

    1.3.2.2 MOGUE LOKACIJE OPERANADAMogue lokacije operanada su memorijske lokacije, registri procesora i neposredne veliine

    u instrukciji. Ima vie varijanti realizacije ovog polja instrukcije, a motivi kod njegovogdefinisanja su da:

    da ovaj deo bude krai da bi se manje memorije zauzimalo za programe i bre oitavaleinstrukcije (adresa memorije, neposredna veliina ili adresa registra), da se bre dolazi do operanada (memorije, neposredna veliina ili registar) i da se prui podrka za moguu primenu nekih tehnika realizacije procesora (pipeline).Na osnovu moguih lokacija operanada razlikuju se tri vrste arhitektura: memorija memorija, memorija registar i registar registar.

    U sluaju arhitekture memorija memorija, svi operandi sa kojima se radi, i to i izvorini iodredini, su iskljuivo u memoriji. Postoje i troadresni i dvoadresni i jednoadresni inulaadresni formati ove arhitekture.

    U sluaju arhitekture memorija registar, jedan izvorini operand je uvek registar, drugiizvorini operand je memorija, a odredite ili registar ili memorija. Postoji obino dvoadresniformat ove arhitekture.

    U sluaju arhitekture registar registar, svi operandi sa kojima se radi, i to i izvorini iodredini, su iskljuivo u registrima, a memorijskim lokacijama se iskljuivo pristupainstrukcijama load i store. Postoje obino troadresni format ove arhitekture.

    Ovo je neka osnovna podela, pri emu i u odnosu na nju ima varijanti. Najdrastiniji primersu procesori koji su u osnovi memoria memorija, ali koji dozvoljavaju da se kroz adresiranjaspecificira za svaki od operanada ne samo memorija, vei registar i neposredna veliina. Timese pokrivaju sve varijante.

  • 5/28/2018 Arh Procesora 2011

    28/65

    24

    1.4 NAINI ADRESIRANJANaini adresiranja odreuju da li je operand sadraj neke memorijske lokacije, nekog od

    registara podataka ili registara opte namene procesora ili neposredna veliina u samojinstrukciji. Naini adresiranja speciificiraju i kako treba formirati adresu memorijske lokacijeukoliko je operand sadraj neke memorijske lokacije. Najei naini adresiranja su registarsko

    direktno adresiranje, registarsko indirektno adresiranje, memorijsko direktno adresiranje,memorijsko indirektno adresiranje, bazno adresiranje sa pomerajem, indeksno adresiranje sapomerajem, registarsko indirektno adresiranje sa pomerajem, bazno-indeksno adresiranje sapomerajem, postdekrement adresiranje, preinkrement adresiranje, relativno adresiranje sapomerajem i neposredno adresiranje.

    1.4.1 REGISTARSKO DIREKTNO ADRESIRANJERegistarsko direktno adresiranje je adresiranje kod koga se operand nalazi u jednom od

    registara podataka (slika 13) ili registara opte namene procesora (slika 14). Kod onihprocesora kod kojih postoje posebno registri podataka (DR), adresni registri (AR), bazniregistri (BR) i indeksni registri (XR), operand se nalazi u jednom od registara podataka (DR),dok kod onih procesora kod kojih postoje samo registri opte namene (GPR), operand senalazi u jednom od registara opte namene. U oba sluaja u adresnom delu instrukcije u komese specificira operand, pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji igrupa bitova kojima se zadaje adresa registra podatka ili registra opte namene (dr).

    OC AM

    DR

    AR

    BR

    XR

    IR

    PC

    SRC/DST

    dr123

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 13 Registarsko direktno adresiranje

  • 5/28/2018 Arh Procesora 2011

    29/65

    25

    OC AM

    GPR

    IR

    PC

    SRC/DST

    dr123

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 14 Registarsko direktno adresiranje

    Registarsko direktno adresiranje moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se registarsko direktno adresiranje koristi za izvorinioperand, tada se sa zadate adrese (dr) operand ita iz registra podatka ili registra opte namenei upisuje u neki od prihvatnih registara podataka procesora, a ukoliko se registarsko direktnoadresiranje koristi za odredini operand, tada se na zadatoj adresi u registar podatka (DR) iliregistar opte namene (GPR) upisuje podatak iz nekog od prihvatnih registara podatakaprocesora. Na slikama je uzeto da se operand koji se ita upisuje u prihvatni registar podatkaprocesora X na ulazu ALU, a da se podatak koji se upisuje uzima iz prihvatnog registrapodatka procesora Z na izlazu ALU.

    Na slikama je, takoe, uzeto i da zbog nekih drugih naina adresiranja duina adresnog delainstrukcije vea od one koja je potrebna za registarsko direktno adresiranja, pa se zato nekibitovi adresnog dela instrukcije ne koriste u sluaju registarskog direktnog adresiranja. Tibitovi su na slikama rafirani. Kod nekih procesora, zbog toga to je iz odreenih razlogavano da duina instrukcije bude fiksna, adresni delovi instrukcija su fiksni i dimenzionisaniprema sluaju kada je broj potrebnih bitova najvei. Tada se, kao to je i dato na slikama nekiod bitova ne koriste. U ovom sluaju oitavanje instrukcija je jednostavno, ali instrukcijezauzimaju vei memorijski prostor.

    Kod nekih drugih procesora, zbog toga to je iz odreenih razloga vano da duinainstrukcija bude to je mogue vie kraa, adresni delovi instrukcija su promenljive duine isadre samo onoliko bitova koliko zadati nain adresiranja zahteva. Tada obine nema bitova

    koji se ne koriste. U ovom sluaju instrukcije zauzimaju manji memorijski prostor, ali jeoitavanje instrukcija je sloeno.

    1.4.2 REGISTARSKO INDIREKTNO ADRESIRANJERegistarsko 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(slika 15) ili registara opte namene procesora (slika 16). Kod onih procesora kod kojihpostoje posebno registri podataka (DR), adresni registri (AR), bazni registri (BR) i indeksniregistri (XR), adresa memorijske lokacije se nalazi u jednom od adresni registri (AR), dok kod

  • 5/28/2018 Arh Procesora 2011

    30/65

    26

    onih procesora kod kojih postoje samo registri opte namene (GPR), adresa memorijskelokacije se nalazi u jednom od registara opte namene. U oba sluaja u adresnom deluinstrukcije u kome se specificira operand, pored grupe bitova kojima se zadaje nainadresiranja (AM), postoji i grupa bitova kojima se zadaje adresa adresnog registra ili registraopte namene (ar).

    OC AM

    DR

    AR

    BR

    XR

    IR

    PC

    SRC/DST

    ar123

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 15 Registarsko indirektno adresiranje

    Registarsko indirektno adresiranje moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se registarsko indirektno adresiranje koristi za izvorinioperand, tada se sa zadate adrese (ar) ita sadraj adresnog registra ili registra opte namene iprebacuje u adresni registar memorije (MAR), iz memorijske lokacije odreene sadrajemadresnog registra memorije ita se operand i prihvata u prihvatni registar podatka memorije(MDR) i iz njega upisuje u neki od prihvatnih registara podataka procesora. Ukoliko seregistarsko indirektno adresiranje koristi za odredini operand, tada se sa zadate adrese (ar)ita sadraj adresnog registra ili registra opte namene i prebacuje u adresni registar memorije

    (MAR), iz nekog od prihvatnih registara podataka procesora se podatak upisuje u prihvatniregistar podatka memorije (MDR) i iz njega upisuje u memorijsku lokaciju odreenu sadrajemadresnog registra memorije. Na slikama je uzeto da se operand koji se ita upisuje u prihvatniregistar podatka procesora X na ulazu ALU, a da se podatak koji se upisuje uzima izprihvatnog registra podatka procesora Z na izlazu ALU.

    Objanjenje za rafiranu grupu bitova u adresnom delu instrukcije je isto kao i za registarskodirektno adresiranje.

  • 5/28/2018 Arh Procesora 2011

    31/65

    27

    OC AM

    GPR

    IR

    PC

    SRC/DST

    ar123

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 16 Registarsko indirektno adresiranje

    1.4.3

    MEMORIJSKO DIREKTNO ADRESIRANJEMemorijsko direktno adresiranje je adresiranje kod koga se operand nalazi u jednoj od

    memorijskih lokacija, a u adresnom delu instrukcije u kome se specificira operand, pored grupebitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitova kojima se zadaje adresamemorijske lokacije (adr) (slika 17). Memorijsko direktno adresiranje se javlja i kod onihprocesora kod kojih postoje posebno registri podataka (DR), adresni registri (AR), bazniregistri (BR) i indeksni registri (XR) i kod onih procesora kod kojih postoje samo registriopte namene (GPR). U oba sluaja adresa memorijske lokacije se formira na identian nain.

    OC AM

    IR

    PC

    SRC/DST

    adr14444244443

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 17 Memorijsko direktno adresiranje

    Memorijsko direktno adresiranje moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se memorijsko direktno adresiranje koristi za izvorinioperand, tada se iz adresnog dela instrukcije ita adresa memorijske lokacije (adr) i prebacuje uadresni registar memorije (MAR), iz memorijske lokacije odreene sadrajem adresnog registramemorije ita se operand i prihvata u prihvatni registar podatka memorije (MDR) i iz njegaupisuje u neki od prihvatnih registara podataka procesora. Ukoliko se memorijsko direktnoadresiranje koristi za odredini operand, tada se iz adresnog dela instrukcije ita adresa

  • 5/28/2018 Arh Procesora 2011

    32/65

    28

    memorijske lokacije (adr) i prebacuje u adresni registar memorije (MAR), iz nekog odprihvatnih registara podataka procesora se podatak upisuje u prihvatni registar podatkamemorije (MDR) i iz njega upisuje u memorijsku lokaciju odreenu sadrajem adresnogregistra memorije. Na slikama je uzeto da se operand koji se ita upisuje u prihvatni registarpodatka procesora X na ulazu ALU, a da se podatak koji se upisuje uzima iz prihvatnogregistra podatka procesora Z na izlazu ALU.

    1.4.4 MEMORIJSKO INDIREKTNO ADRESIRANJEMemorijsko indirektno adresiranje je adresiranje kod koga se operand nalazi u jednoj od

    memorijskih lokacija, a u adresnom delu instrukcije u kome se specificira operand, pored grupebitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitova kojima se zadaje adresamemorijske lokacije (adr) na kojoj se nalazi adresa operanda (slika 18). Memorijsko indirektnoadresiranje se javlja i kod onih procesora kod kojih postoje posebno registri podataka (DR),adresni registri (AR), bazni registri (BR) i indeksni registri (XR) i kod onih procesora kodkojih postoje samo registri opte namene (GPR). U oba sluaja adresa memorijske lokacije seformira na identian nain.

    OC AM

    IR

    PC

    SRC/DST

    adr14444244443

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 18 Memorijsko indirektno adresiranje

    Memorijsko indirektno adresiranje moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se memorijsko indirektno adresiranje koristi za izvorinioperand, tada se iz adresnog dela instrukcije ita adresa memorijske lokacije (adr) i prebacuje uadresni registar memorije (MAR), iz memorijske lokacije odreene sadrajem adresnog registramemorije ita se adresa memorijske lokacije operanda i prihvata u prihvatni registar podatkamemorije (MDR), iz njega upisuje u adresni registar memorije (MAR), iz memorijske lokacijeodreene sadrajem adresnog registra memorije ita se operand i prihvata u prihvatni registarpodatka memorije (MDR), iz njega upisuje u neki od prihvatnih registara podataka procesora.

    Ukoliko se memorijsko direktno adresiranje koristi za odredini operand, tada se izadresnog dela instrukcije ita adresa memorijske lokacije (adr) i prebacuje u adresni registarmemorije (MAR), iz memorijske lokacije odreene sadrajem adresnog registra memorije itase adresa memorijske lokacije operanda i prihvata u prihvatni registar podatka memorije(MDR) i iz njega upisuje u adresni registar memorije (MAR), iz nekog od prihvatnih registarapodataka procesora se podatak upisuje u prihvatni registar podatka memorije (MDR) i iz njegaupisuje u memorijsku lokaciju odreenu sadrajem adresnog registra memorije. Na slikama jeuzeto da se operand koji se ita upisuje u prihvatni registar podatka procesora X na ulazu

  • 5/28/2018 Arh Procesora 2011

    33/65

    29

    ALU, a da se podatak koji se upisuje uzima iz prihvatnog registra podatka procesora Z naizlazu ALU.

    1.4.5 BAZNO ADRESIRANJE SA POMERAJEMBazno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi u jednoj od

    memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadraja jednog od

    baznih registara i pomeraja (slika 19). U adresnom delu instrukcije u kome se specificiraoperand, pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitovakojima se zadaje adresa baznog registra (br) i pomeraj. Bazno adresiranje sa pomerajem se

    javlja kod onih procesora kod kojih postoje posebno registri podataka (DR), adresni registri(AR), bazni registri (BR) i indeksni registri (XR). Slian nain formiranja adrese memorijskelokacije postoji i kod onih procesora kod kojih postoje samo registri opte namene (GPR).Kod njih se adresa adresa memorijske lokacije dobija sabiranjem sadraja jednog od registaraopte namene (GPR) i pomeraja, a adresiranje se obino naziva registarsko indirektnoadresiranje sa pomeraje.

    OC AM

    DR

    AR

    BR

    XR

    IR

    PC

    SRC/DST

    br pom123 14243

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 19 Bazno adresiranje sa pomerajem

    Bazno adresiranje sa pomerajem moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se bazno adresiranje sa pomerajem koristi za izvorinioperand, tada se ita sadraj baznog registra na osnovu zadate adrese (br) iz adresnog delainstrukcije i pomeraj (pom) iz adresnog dela instrukcije, formira njihova suma i prebacuje uadresni registar memorije (MAR), iz memorijske lokacije odreene sadrajem adresnog registramemorije ita se operand i prihvata u prihvatni registar podatka memorije (MDR) i iz njegaupisuje u neki od prihvatnih registara podataka procesora.

  • 5/28/2018 Arh Procesora 2011

    34/65

    30

    Ukoliko se bazno adresiranje sa pomerajem koristi za odredini operand, tada se ita sadrajbaznog registra na osnovu zadate adrese (br) iz adresnog dela instrukcije i pomeraj (pom) izadresnog dela instrukcije, formira njihova suma i prebacuje u adresni registar memorije (MAR),iz nekog od prihvatnih registara podataka procesora se podatak upisuje u prihvatni registarpodatka memorije (MDR) i iz njega upisuje u memorijsku lokaciju odreenu sadrajemadresnog registra memorije. Na slikama je uzeto da se operand koji se ita upisuje u prihvatni

    registar podatka procesora X na ulazu ALU, a da se podatak koji se upisuje uzima izprihvatnog registra podatka procesora Z na izlazu ALU.

    Objanjenje za rafiranu grupu bitova u adresnom delu instrukcije je isto kao i za registarskodirektno adresiranje.

    1.4.6 INDEKSNO ADRESIRANJE SA POMERAJEMIndeksno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi u jednoj od

    memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadraja jednog odindeksnih registara i pomeraja (slika 20). U adresnom delu instrukcije u kome se specificiraoperand, pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitovakojima se zadaje adresa indeksnog registra (xr) i pomeraj. Indeksno adresiranje sa pomerajem

    se javlja kod onih procesora kod kojih postoje posebno registri podataka (DR), adresni registri(AR), bazni registri (BR) i indeksni registri (XR). Slian nain formiranja adrese memorijskelokacije postoji i kod onih procesora kod kojih postoje samo registri opte namene (GPR).Kod njih se adresa adresa memorijske lokacije dobija sabiranjem sadraja jednog od registaraopte namene (GPR) i pomeraja, a adresiranje se obino naziva registarsko indirektnoadresiranje sa pomeraje.

    Indeksno adresiranje sa pomerajem moe da se koristi i za izvorini operand (SRC) i zaodredini operand (DST). Ukoliko se indeksno adresiranje sa pomerajem koristi za izvorinioperand, tada se ita sadraj indeksnog registra na osnovu zadate adrese (xr) iz adresnog delainstrukcije i pomeraj (pom) iz adresnog dela instrukcije, formira njihova suma i prebacuje uadresni registar memorije (MAR), iz memorijske lokacije odreene sadrajem adresnog registra

    memorije ita se operand i prihvata u prihvatni registar podatka memorije (MDR) i iz njegaupisuje u neki od prihvatnih registara podataka procesora.

    Ukoliko se indeksno adresiranje sa pomerajem koristi za odredini operand, tada se itasadraj indeksnog registra na osnovu zadate adrese (br) iz adresnog dela instrukcije i pomeraj(pom) iz adresnog dela instrukcije, formira njihova suma i prebacuje u adresni registarmemorije (MAR), iz nekog od prihvatnih registara podataka procesora se podatak upisuje uprihvatni registar podatka memorije (MDR) i iz njega upisuje u memorijsku lokaciju odreenusadrajem adresnog registra memorije. Na slikama je uzeto da se operand koji se ita upisuje uprihvatni registar podatka procesora X na ulazu ALU, a da se podatak koji se upisuje uzima izprihvatnog registra podatka procesora Z na izlazu ALU.

    Objanjenje za rafiranu grupu bitova u adresnom delu instrukcije je isto kao i za registarsko

    direktno adresiranje.

  • 5/28/2018 Arh Procesora 2011

    35/65

    31

    OC AM

    DR

    AR

    BR

    XR

    IR

    PC

    SRC/DST

    pom12314243

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    xr

    Slika 20 Indeksno adresiranje sa pomerajem

    1.4.7 REGISTARSKO INDIREKTNO ADRESIRANJE SA POMERAJEMRegistarsko indirektno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi ujednoj od memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadraja

    jednog od registara opte namene i pomeraja (slika 21). U adresnom delu instrukcije u kome sespecificira operand, pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji igrupa bitova kojima se zadaje adresa registra opte namene (gpr) i pomeraj (pom). Registarskoindirektno adresiranje sa pomerajem se javlja kod procesora kod kojih postoje registri optenamene (GPR). Slian nain formiranja adrese memorijske lokacije postoji i kod onihprocesora kod kojih postoje posebno registri podataka (DR), adresni registri (AR), bazniregistri (BR) i indeksni registri (XR). Kod njih se adresa adresa memorijske lokacije dobijasabiranjem sadraja jednog od baznih registara (BR) ili indeksnih registara (XR) i pomeraja, aadresiranje se obino naziva bazno adresiranje sa pomerajem ili indeksno adresiranje sapomerajem, respektivno.

    Registarsko indirektno adresiranje sa pomerajem moe da se koristi i za izvorini operand(SRC) i za odredini operand (DST). Ukoliko se registarsko indirektno adresiranje sapomerajem koristi za izvorini operand, tada se ita sadraj registra opte namene na osnovuzadate adrese (gpr) iz adresnog dela instrukcije i pomeraj (pom) iz adresnog dela instrukcije,formira njihova suma i prebacuje u adresni registar memorije (MAR), iz memorijske lokacijeodreene sadrajem adresnog registra memorije ita se operand i prihvata u prihvatni registarpodatka memorije (MDR) i iz njega upisuje u neki od prihvatnih registara podataka procesora.

  • 5/28/2018 Arh Procesora 2011

    36/65

    32

    OC AM

    GPR

    IR

    PC

    SRC/DST

    gpr pom123 14243

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 21 Registarsko indirektno adresiranje sa pomerajem

    Ukoliko se registarsko indirektno adresiranje sa pomerajem koristi za odredini operand,tada se ita sadraj registra opte nemen na osnovu zadate adrese (gpr) iz adresnog delainstrukcije i pomeraj (pom) iz adresnog dela instrukcije, formira njihova suma i prebacuje uadresni registar memorije (MAR), iz nekog od prihvatnih registara podataka procesora sepodatak upisuje u prihvatni registar podatka memorije (MDR) i iz njega upisuje u memorijskulokaciju odreenu sadrajem adresnog registra memorije. Na slikama je uzeto da se operandkoji se ita upisuje u prihvatni registar podatka procesora X na ulazu ALU, a da se podatakkoji se upisuje uzima iz prihvatnog registra podatka procesora Z na izlazu ALU.

    Objanjenje za rafiranu grupu bitova u adresnom delu instrukcije je isto kao i za registarskodirektno adresiranje.

    1.4.8 BAZNO-INDEKSNO ADRESIRANJE SA POMERAJEMBazno indeksno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi u

    jednoj od memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadrajajednog od baznih registara, jednog od indeksnih registara i pomeraja (slika 22) ili sabiranjemsadraja dva registra opte namene procesora i pomeraja (slika 23). Kod onih procesora kodkojih postoje posebno registri podataka (DR), adresni registri (AR), bazni registri (BR) iindeksni registri (XR), u formiranju adrese memorijske lokacije uestvuje jedan od baznihregistara (BR) i jedan od indeksnih registara (XR), dok kod onih procesora kod kojih postojesamo registri opte namene (GPR), u formiranju adrese memorijske lokacije uestvuju dva odregistara opte namene (GPR), pri emu jedan ima funkciju baznog registra a drugi funkcijuindeksnog registra. U oba sluaja u adresnom delu instrukcije u kome se specificira operand,pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitova kojima se

    zadaje adresa baznog registra ili registra opte namene koji ima funkciju baznog registra (br),adresa indeksnog registra ili registra opte namene koji ima funkciju indeksnog registra (xr) ipomeraj (pom). Bazno indeksno adresiranje sa pomerajem moe da se koristi i za izvorinioperand (SRC) i za odredini operand (DST).

    Ukoliko se bazno indeksno adresiranje sa pomerajem koristi za izvorini operand, tada seita sadraj baznog registra ili registra opte namene na osnovu zadate adrese (br) iz adresnogdela instrukcije, sadraj indeksnog registra ili registra opte namene na osnovu zadate adrese(xr) iz adresnog dela instrukcije i pomeraj (pom) iz adresnog dela instrukcije, formira njihova

  • 5/28/2018 Arh Procesora 2011

    37/65

    33

    suma i prebacuje u adresni registar memorije (MAR), iz memorijske lokacije odreenesadrajem adresnog registra memorije ita se operand i prihvata u prihvatni registar podatkamemorije (MDR) i iz njega upisuje u neki od prihvatnih registara podataka procesora.

    OC AM

    DR

    AR

    BR

    XR

    IR

    PC

    SRC/DST

    br xr pom123123 14243

    ADD

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 22 Bazno indeksno adresiranje sa pomerajem

    OC AM

    GPR

    IR

    PC

    SRC/DST

    br xr pom123123 14243

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    ZADD

    Slika 23 Bazno indeksno adresiranje sa pomerajem

  • 5/28/2018 Arh Procesora 2011

    38/65

    34

    Ukoliko se bazno indeksno adresiranje sa pomerajem koristi za odredini operand, tada seita sadraj baznog registra ili registra opte namene na osnovu zadate adrese (br) iz adresnogdela instrukcije, sadraj indeksnog registra ili registra opte namene na osnovu zadate adrese(xr) iz adresnog dela instrukcije i pomeraj (pom) iz adresnog dela instrukcije, formira njihovasuma i prebacuje u adresni registar memorije (MAR), iz nekog od prihvatnih registarapodataka procesora se podatak upisuje u prihvatni registar podatka memorije (MDR) i iz njega

    upisuje u memorijsku lokaciju odreenu sadrajem adresnog registra memorije. Na slikama jeuzeto da se operand koji se ita upisuje u prihvatni registar podatka procesora X na ulazuALU, a da se podatak koji se upisuje uzima iz prihvatnog registra podatka procesora Z naizlazu ALU.

    1.4.9 REGISTARSKA INDIREKTNA ADRESIRANJA SA AUTOINKREMENT IAUTODEKREMENTIRANJEM

    Registarska indirektna adresiranja sa autoinkrementiranjem i autodekrementiranjem suveoma slina registarskom indirektnom adresiranju, jer se i kod ovih adresiranja kao i kodregistarskog indirektnog adresiranja operand nalazi u jednoj od memorijskih lokacija, a adresamemorijske lokacije se nalazi u jednom od adresnih registara (slika 15) ili registara optenamene procesora (slika 16). Sve to vai za registarsko indirektno adresiranje vai i zaregistarska indirektna adresiranja sa autoinkrementiranjem i autodekrementiranjem. Jedinarazlika je u tome da se kod registarskih indirektnih adresiranja sa autoinkrementiranjem iautodekrementiranjem tom prilikom vri ili inkrementiranje ili dekrementiranje adresnogregistra ili registra opte namene.

    U zavisnosti od toga da li se prvo inkrementira registar pa posle toga njegov sadraj koristikao adresa memorijske lokacije ili se prvo sadraj registra koristi kao adresa memorijskelokacije pa se posle toga inkrementira, registarsko indirektno adresiranje saautoinkrementiranje se javlja kao preinkrement adresiranje i postinkrement adresiranje,respektivno. Sluna je situacija i sa registarskin indirektnim adresiranjem saautodekrementiranjem koje se javlja kao predekrement adresiranje i postdekrement adresiranjeu zavisnosti od toga da li se prvo dekrementira registar pa posle toga njegov sadraj koristi kaoadresa memorijske lokacije ili se prvo sadraj registra koristi kao adresa memorijske lokacije pase posle toga dekrementira, respektivno. Uobiajene oznake za ova adresiranja su +(R) zapreinkrement, (R)+ za postinkrement, -(R) za predekrement i (R)- za postdekrement. Procesorisa ovim adresiranjima se obino tako realizuju da ukoliko ukoliko postoji -(R) tada postoji i(R)+ adresiranje, a ukoliko postoji +(R) tada postoji i (R)-. Time se omoguava realizacijasteka bez korienja registra SP.

    Kod procesora kod kojih postoji -(R) i (R)+ mogue je realizovati stek koji raste navie iukazuje na prvu slobodnu lokaciju, kao i stek koji raste nanie i ukazuje na zadnju zauzetu.Ukoliko stek koji raste navie i ukazuje na prvu slobodnu lokaciju tada radi upisa na pozicijiodredita treba koristiti (R)+ i radi itanja na poziciji izvorita treba koristiti -(R). Ukolikostek raste nanie i ukazuje na zadnju zauzetu, tada radi upisa na poziciji odredita trebakoristiti -(R) i radi itanja na poziciji izvorita treba koristiti (R)+ .

    Kod procesora kod kojih postoji +(R) i (R)- mogue je realizovati stek koji raste navie iukazuje na zadnju zauzetu lokaciju, kao i stek koji raste nanie i ukazuje na prvu slobodnulokaciju. Ukoliko stek raste navie i ukazuje na zadnju zauzetu lokaciju tada radi upisa napoziciji odredita treba koristiti +(R) i radi itanja na poziciji izvorita treba koristiti (R)-.Ukoliko stek raste nanie i ukazuje na prvu slobodnu lokaciju, tada radi upisa na pozicijiodredita treba koristiti (R)- i radi itanja na poziciji izvorita treba koristiti +(R).

  • 5/28/2018 Arh Procesora 2011

    39/65

    35

    1.4.10 RELATIVNO ADRESIRANJE SA POMERAJEMRelativno adresiranje sa pomerajem je adresiranje kod koga se operand nalazi u jednoj od

    memorijskih lokacija, a adresa memorijske lokacije se dobija sabiranjem sadraja programskogbrojaa PC i pomeraja (slika 24). U adresnom delu instrukcije u kome se specificira operand,pored grupe bitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitova kojima sezadaje pomeraj (pom). Relativno adresiranje sa pomerajem se javlja i kod onih procesora kodkojih postoje posebno registri podataka (DR), adresni registri (AR), bazni registri (BR) iindeksni registri (XR) i kod onih procesora kod kojih postoje samo registri opte namene(GPR). U oba sluaja adresa memorijske lokacije se formira na identian nain. Relativnoadresiranje sa pomerajem moe da se koristi i za izvorini operand (SRC) i za odredinioperand (DST).

    OC AM

    IR

    PC

    SRC/DST

    pom14243

    ADD

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 24 Relativno adresiranje sa pomerajem

    Ukoliko se relativno adresiranje sa pomerajem koristi za izvorini operand, tada se sabiraju

    sadraj programskog brojaa PC i pomeraj (pom) iz adresnog dela instrukcije i njihova sumaprebacuje u adresni registar memorije (MAR), iz memorijske lokacije odreene sadrajemadresnog registra memorije ita se operand i prihvata u prihvatni registar podatka memorije(MDR) i iz njega upisuje u neki od prihvatnih registara podataka procesora.

    Ukoliko se relativno adresiranje sa pomerajem koristi za odredini operand, tada se sabirajusadraj programskog brojaa PC i pomeraj (pom) iz adresnog dela instrukcije i njihova sumaprebacuje u adresni registar memorije (MAR), iz nekog od prihvatnih registara podatakaprocesora se podatak upisuje u prihvatni registar podatka memorije (MDR) i iz njega upisuje umemorijsku lokaciju odreenu sadrajem adresnog registra memorije. Na slikama je uzeto dase operand koji se ita upisuje u prihvatni registar podatka procesora X na ulazu ALU, a da sepodatak koji se upisuje uzima iz prihvatnog registra podatka procesora Z na izlazu ALU.

    Objanjenje za rafiranu grupu bitova u adresnom delu instrukcije je isto kao i za registarskodirektno adresiranje.

    1.4.11 NEPOSREDNO ADRESIRANJENeposredno adresiranje je adresiranje kod koga se operand nalazi neposredno u samoj

    instrukciji (slika 25). U adresnom delu instrukcije u kome se specificira operand, pored grupebitova kojima se zadaje nain adresiranja (AM), postoji i grupa bitova kojima se zadajeoperand (immed). Neposredno adresiranje se javlja i kod onih procesora kod kojih postoje

  • 5/28/2018 Arh Procesora 2011

    40/65

    36

    posebno registri podataka (DR), adresni registri (AR), bazni registri (BR) i indeksni registri(XR) i kod onih procesora kod kojih postoje samo registri opte namene (GPR). U oba sluajado operand se dolazi na identian nain. Neposredno adresiranje moe da se koristi samo zaizvorini operand (SRC), dok se za odredini operand (DST) ne koristi.

    OC AM

    IR

    PC

    SRC

    immed14444244443

    144424443

    ALU

    MAR MBR

    X Y

    MEMORIJA

    Z

    Slika 25 Neposredno adresiranje

    Ukoliko se neposredno adresiranje koristi za izvorini operand, tada se operand (immed) izadresnog dela instrukcije ita i upisuje u neki od prihvatnih registara podataka procesora. Naslici je uzeto da se operand koji se ita upisuje u prihvatni registar podatka procesora X naulazu ALU,

    Neposredno adresiranje se ne koristi za odredini operand, jer bi trebalo, ukoliko bi sekoristilo, da se podatak iz nekog od prihvatnih registara podataka procesora upie u grupubitova predvienu za operand (podatak) iz adresnog dela instrukcije. Praksa je da se radizatite od moguih greaka dozvoljava da se iz onog dela memorije gde se nalaze instrukcije

    samo ita a ne i upisuje. Zbog toga se procesori obino tako realizuju da se pokuaj upisakorienjem neposrednog adresiranja za odredini operand detektuje i generie unutranjiprekid greke u adresiranju.

  • 5/28/2018 Arh Procesora 2011

    41/65

    37

    1.5 SKUP INSTRUKCIJASkup instrukcija specificira operacije koje mogu da se izvravaju u procesoru. Skup

    instrukcija ine standardne instrukcije i nestandardne instrukcije.

    1.5.1 STANDARDNE INSTRUKCIJEStandardne instrukcije ukljuuje operacije ijim kombinovanjem svaki problem koji treba da

    se rei u raunaru moe da se predstavi programom. Standardne instrukcije se u nekom vidunalaze u svakom procesoru. Skup standardnih instrukcija ine instrukcije prenosa, aritmetikeinstrukcije, logike instrukcije, instrukcije pomeranja i rotiranja, instrukcije skoka i meoviteinstrukcije.

    1.5.1.1 INSTRUKCIJE PRENOSAPodaci se nalaze u memorijskim lokacijama, registrima procesora i u instrukciji. Zbog toga

    mora da postoje instrukcije prenosa za prebacivanje podataka izmeu lokacija na kojima moguda se nau. Treba napomenuti da podaci mogu da budu i u registrima kontrolera periferija, priemu se njima pristupa na dva naina. Kod nekih procesora registri kontrolera periferija se neizdvajaju kao posebno mesto gde mogu da budu podaci ve se tretiraju na isti nain kao imemorijske lokacije, pa ne postoje posebne instrukcije za prenos podatak u i iz registarakontrolera periferija vese registrima kontrolera periferija pristupa istim instrukcijama kojimase pristupa memorijskim lokacijama. Kod ovih procesora se kae da je ulazno izlazni adresniprostor memorijski preslikan. Kod drugih procesora registri kontrolera periferija se izdvajajukao posebno mesto gde mogu da budu podaci i postoje posebne instrukcije za prenos podataku i iz registara kontrolera periferija. Kod ovih procesora se kae da su ulazno izlazni imemorijski adresni prostori razdvojeni.

    Pored toga kod procesora sa jednoadresnim formatom instrukcija akumulator je implicitnoizvorite i odredite. Zato postoji potreba za instrukcijom prenosa kojom bi podatak preneo uakumulator i dalje mogao da koristi kao izvorini operand. Akumulator je i implicitnoodredite, pa postoji potreba za instrukcijom prenosa kojom bi se podatak prebacio izakumulatora u eljenu lokaciju. Slina je sitiacija i kod procesora sa nulaadresnim formatominstrukcija kod kojih je vrh steka implicitno izvorite i odredite. Zato postoji potreba zainstrukcijom prenosa kojom bi podatak preneo na vrh steka i dalje mogao da koristi kaoizvorini operand. Vrh steka je i implicitno odredite, pa postoji potreba za instrukcijomprenosa kojom bi se podatak prebacio sa vrha steka u eljenu lokaciju.

    U daljem tekstu se razmatraju mogue instrukcije prenosa.

    MOV a, bOva instrukcija se javlja kod procesora sa dvoadresnim formatom instrukcija. Sa MOV je

    simboliki oznaeno polje koda operacije, a sa a i b specifikacije jednog izvorinog i jednogodredinog operanda. U daljim razmatranjima e se uzeti da je aizvorite, a bodredite, mada

    moe da bude i obrnuto. U zavisnosti od specificiranog naina adresiranja a moe da buderegistar procesora, memorijska lokacija (a kod procesora kod kojih je ulazno izlazni prostormemorijski preslikan i registar kontrolera periferije) i neposredna veliina u instrikciji. Slina jesituacije i sa b, pre emu, zbog toga to se radi o odreditu, b samo ne moe da budeneposredna veliina u instrukciji. Specificiranjem odgovarajuih adresiranja mogue jerealizovati prenose iz memorije (registra kontrolera periferije) u memoriju (registar kontroleraperiferije), iz memorije (registra kontrolera periferije) u registar procesora, iz registraprocesora u memoriju (registar kontrolera periferije), iz registra procesora u registar

  • 5/28/2018 Arh Procesora 2011

    42/65

    38

    procesora, neposredno iz instrukcije u memoriju (registar kontrolera periferije) i neposredno izinstrukcije u registar procesora.

    Kod procesora sa troadresnim formatom instrikcija sve je isto, samo to se polje zaspecifikaciju drugog izvorita ne koristi.

    IN regper, regproc

    OUT regproc, regperOve instrukcije se javljaju kod procesora sa dvoadresnim formatom instrukcija, ukoliko suulazno izlazni i memorijski adresni prostori razdvojeni. Sa IN je simboliki oznaeno poljekoda operacije za prenos iz registra kontrolera periferije u registar procesora, pri emu je saregper direktno data adresa registra kontrolera periferije, dok je sa regproc direktno dataadresa registra procesora. Sa OUT je simboliki oznaeno polje koda operacije za prenos izregistra procesora u registar kontrolera periferije, pri emu regproc i regper imaju identinoznaenje kao i u sluaju instrukcije IN. Uobiajeno je kod ovih instrukcija da su prenosi samoizmeu registara kontrolera periferija i registara procesora i da se njihove adrese direktno daju.

    IN regperOUT regper

    Ove instrukcije se javljaju kod procesora sa jednoadresnim formatom instrukcija, ukoliko suulazno izlazni i memorijski adresni prostori razdvojeni. Oznake IN, OUT i regper imajuidentino znaenje kao i u sluaju procesora sa dvoadresnim formatom instrukcija. Kodinstrukcije IN prenos je iz registra kontrolera periferije ija je adresa direktno data sa regperiakumulatora koji je implicitno odredite, dok je kod instrukcije OUT prenos iz akumulatorakoji je implicitno izvorite i registra kontrolera periferije ija je adresa direktno data sa regper.

    LOAD aSTORE bOve instrukcija se javlja kod procesora sa jednoadresnim formatom instrukcija. Sa LOAD i

    STORE je simboliki oznaeno polje koda operacije, a sa a i b specifikacije izvorinog iodredinog operanda, respektivno. Instrukcijom LOAD se operand sa izvorita a prenosi u

    akumulator kao implicitno odredite, dok se instrukcijom STORE sadraj akumulatora kaoimplicitno izvorite prenosi u odredite b. U zavisnosti od specificiranog naina adresiranja amoe da bude registar procesora, memorijska lokacija (a kod procesora kod kojih je ulaznoizlazni prostor memorijski preslikan i registar kontrolera periferije) i neposredna veliina uinstrukciji. Slina je situacije i sa b, pre emu, zbog toga to se radi o odreditu, b samo nemoe da bude neposredna veliina u instrukciji. U sluaju instrukcije LOAD specificiranjemodgovarajuih adresiranja za izvorite amogue je u akumulator preneti operand iz memorije(registra kontrolera periferije), iz registra procesora i neposredno iz instrukcije. U sluajuinstrukcije STORE specificiranjem odgovarajuih adresiranja za odredite b mogue je izakumulator preneti operand u memoriju (registar kontrolera periferije) i registar procesora,dok prenos u instrukciju korienjem neposrednog adresiranja nije dozvoljen.

    PUSH aPOP bOve instrukcija se javlja kod procesora sa nulaadresnim formatom instrukcija. Sa PUSH i

    POP je simboliki oznaeno polje koda operacije, a sa a i b specifikacije izvorinog iodredinog operanda, respektivno. Instrukcijom PUSH se operand sa izvorita a prenosi nastek kao implicitno odredite, dok se instrukcijom POP sadraj sa steka kao implicitnoizvorite prenosi u odredite b. U zavisnosti od specificiranog naina adresiranja a moe dabude registar procesora, memorijska lokacija (a kod procesora kod kojih je ulazno izlazniprostor memorijski preslikan i registar kontrolera periferije) i neposredna veliina u instrukciji.

  • 5/28/2018 Arh Procesora 2011

    43/65

    39

    Slina je situacije i sa b, pre emu, zbog toga to se radi o odreditu, bsamo ne moe da budeneposredna veliina u instrukciji. U sluaju instrukcije PUSH specificiranjem odgovarajuihadresiranja za izvorite amogue je na stek preneti operand iz memorije (registra kontroleraperiferije), iz registra procesora i neposredno iz instrukcije. U sluaju instrukcije POPspecificiranjem odgovarajuih adresiranja za odredite bmogue je sa steka preneti operand umemoriju (registar kontrolera periferije) i registar procesora, dok prenos u instrukciju

    korienjem neposrednog adresiranja nije dozvoljen.

    1.5.1.2 ARITMETIKE INSTRUKCIJEAritmetikim instrukcijama se realizuju standardne aritmetike operacije sabiranja,

    oduzimanja, mnoenja i deljenja.

    ADD a, b,cOvo je format instrukcije sabiranja kod procesora sa troadresnim formatom instrukcija. Sa

    ADD je simboliki oznaeno polje koda operacije, a sa a, b i c specifikacije dva izvorina ijednog odredinog operanda. U daljim razmatranjima e se uzeti da su a i b izvorita, a codredite, mada se esto deava i da je aodredite, a b i c izvorita. Tokom izvravanja oveinstrukcije sa lokacija specificiranih sa a i bnajpre se itaju dva izvorina operanda, zatim senad njima realizuje operacija sabiranja i na kraju se dobijeni rezultat smeta u lokacijuspecificiranu sa c. U zavisnosti od nezavisno specificiranih naina adresiranja za ai b, izvorinioperandi mogu da budu bilo koja kombinacija registara procesora, memorijskih lokacija (a kodprocesora kod kojih je ulazno izlazni prostor memorijski preslikan i registara kontroleraperiferije) i neposrednih veliina u instrukciji. Slina je situacija i sa c, pri emu, zbog toga tose radi o odreditu, c samo ne moe da bude neposredna veliina u instrukciji. Neke odmoguih kombinacija su:

    - a, b i c su memorijske lokacije (a kod procesora kod