arhitrktura_racunara ftn ns

Upload: aleksandar-stjepanovic

Post on 05-Apr-2018

247 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    1/275

    ARHITEKTURA RAUNARA(pregled principa i evolucije)

    Miroslav Hajdukovi

    ELEKTRONSKO IZDANJEVERZIJA 2

    NOVI SAD, 2004.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    2/275

    PREDGOVOR

    Cilj ove knjige je da stvori funkcionalno zaokruenu sliku o radu raunara.Zbog toga je akcenat stavljen na pregled celine, a ne na razradu detalja. Knjiga se,zato, zaustavlja na logikom niovu i ne uputa se u razmatranje digitalnih sklopova,prisutnih ispod tog nivoa.

    Za izlaganje, po autorovom miljenju, sutinskih principa funkcionisanjaraunara, koristi se hipotetski raunar KONCEPT. Njegov razvoj je voen idejomda se na to jednostavniji nain podri izvravanje programa, izraenih procedurnimprogramskim jezicima. Izlaganje kree od funkcionalnog opisa procesora, nastavljase opisom njegovog korienja na asemblerskom nivou i zavrava se izlaganjem

    osnova funkcionisanja ostalih delova hipotetskog raunara KONCEPT.Da italac ove knjige ne bi ostao samo na poznavanju principa funkcionisanja

    hipotetskog raunara, izloena je i evolucija elektronskih raunara, sa posebnimosvrtom na karakteristike raunara u pojedinim evolucionim fazama i na faktorekoji su usmeravali ovu evoluciju. Posebna panja je posveena raunarima koji suizvrili znaajan uticaj na trite i ija upotreba nije bila ograniena samo napojedina podruja primene.

    Autor se zahvaljuje svom saradniku arku ivanovu za uloeni naporprilikom izrade crtea, za paljivo itanje rukopisa i ukazivanje na mnotvogreaka, kao i za sugestije koje su pomogle da se rukopis pobolja.

    Verzija 2 ove knjiga je nastala ispravljanjem greaka koje su uoene u tekstunjene prve verzije, kao i pojanjavanjem i proirenjem delova ovog teksta koji subili nedovoljno razumljivi studentima.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    3/275

    SADRAJ

    1. UVOD 11.1 POJAM ARHITEKTURE RAUNARA 11.2 MODEL RAUNARA 1

    OSOBINE PROCEDURNIH PROGRAMSKIH JEZIKA 1PRIMER OPTEG OPISA OBRADE PODATAKA 2MEMORIJA 2PROCESOR 3ADRESIRANJE 3SKUP NAREDBI 4ASEMBLER I KOMPAJLER 4

    1.3 FIZIKA OSNOVA MODELA RAUNARA 51.4 PITANJA 8

    2. BROJNI SISTEMI I PREDSTAVE BROJEVA 92.1 ARITMETIKA OGRANIENOG BROJA CIFARA 92.2 PREDSTAVLJANJE REALNIH BROJEVA 132.3 BINARNI BROJNI SISTEM 142.4 ARITMETIKA OGRANIENOG BROJA CIFARA U

    BINARNOM BROJNOM SISTEMU 172.5 PREDSTAVLJANJE VREDNOSTI REALNOG I

    ZNAKOVNOG TIPA U BINARNOM BROJNOM SISTEMU 232.6 PITANJA 26

    3. ASEMBLERSKO PROGRAMIRANJE 27

    3.1 NIVOI PROGRAMIRANJA 273.2 ARHITEKTURA NAREDBI PROCESORA KONCEPT 283.3 ASEMBLERSKI JEZIK KONCEPT 353.4 PRIMERI ASEMBLERSKIH PROGRAMA 38

    RAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA 38IZLAZAK VAN OPSEGA KOD NEOZNAENIH CELIHBROJEVA 39IZLAZAK VAN OPSEGA KOD OZNAENIH CELIHBROJEVA 40RUKOVANJE MAINSKOM NORMALIZOVANOMFORMOM 40

    RUKOVANJE LOGI

    KIM VREDNOSTIMA 41RAUNANJE VREDNOSTI CELOBROJNOG IZRAZA 41RUKOVANJE NIZOVIMA 42RUKOVANJE SLOGOVIMA 43TUMAENJE NAINA ADRESIRANJA ZAUPRAVLJAKE NAREDBE 44

    3.5 POTPROGRAM 443.6 MAKRO 483.7 STEK 553.8 PITANJA 60

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    4/275

    4. MEMORIJA I PROCESOR RAUNARA KONCEPT 61

    4.1 ORGANIZACIJA MEMORIJE RAUNARA KONCEPT 614.2 KODIRANJE I MAINSKI FORMATI NAREDBIPROCESORA KONCEPT 64

    4.3 ORGANIZACIJA PROCESORA KONCEPT 694.4 UPRAVLJANJE PROCESOROM KONCEPT 73

    MIKRO-POTPROGRAMI POJEDINIH OPERANADA 74MIKRO-PROGRAMI IZVRAVANJA 77INICIJALNI MIKRO-PROGRAM 80

    4.5 UPRAVLJAKA JEDINICA PROCESORA KONCEPT 814.6 UPRAVLJANJE PREKIDAIMA IZ UPRAVLJAKE

    JEDINICE PROCESORA KONCEPT 854.7 UPRAVLJANJE PREKIDAIMA IZVAN UPRAVLJAKE

    JEDINICE PROCESORA KONCEPT 894.8 MAINSKI OBLICI MIKRO-PROGRAMA 914.9 MAINSKI OBLICI MIKRO-POTPROGRAMA 94

    4.10 SADRAJI ADRESNIH MEMORIJA MIKRO-PROGRAMA IMIKRO-POTPROGRAMA 97

    4.11 RAZMATRANJE RADA PROCESORA KONCEPT 984.12 PITANJA 99

    5. RAUNAR KONCEPT 1015.1 ORGANIZACIJA RAUNARA KONCEPT 1015.2 ULAZNI I IZLAZNI UREAJI RAUNARA KONCEPT 103

    KOMANDNI JEZIK 103

    TASTATURA 104EKRAN 105RAUNAR KONCEPT SA ZNAKOVNIM ULAZOM IIZLAZOM 107ZNAKOVNA INTERAKCIJA KORISNIKA I RAUNARA 108MONITOR 111

    5.3 VRSTE MEMORIJE 1125.4 OPERATIVNI SISTEM 1175.5 PREKLJUIVANJE 1215.6 PREKID 1245.7 SABIRNICA 131

    5.8 VIEKORISNIKI RAD 1355.9 PITANJA 1406. SISTEMSKI PROGRAMI 143

    6.1 EDITOR 1436.2 ASEMBLER 1446.3 MAKRO PRETPROCESOR 1486.4 LINKER 1506.5 LOUDER 1586.6 DIBAGER 1586.7 PITANJA 159

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    5/275

    7. ARHITEKTURA RAUNARA 161

    7.1 PRECIZIRANJE POJMA ARHITEKTURE RAUNARA 1617.1 POKRETAI RAZVOJA ARHITEKTURE RAUNARA 1627.2 PITANJA 163

    8. EVOLUCIJA ARHITEKTURE RAUNARA 1648.1 EVOLUCIONI PERIODI 1648.2 PERIOD OKO 1950. GODINE 1648.3 PERIOD OKO 1960. GODINE 1678.4 PERIOD OKO 1970. GODINE 172

    ARHITEKTURA NAREDBI ZAIBM SYSTEM/360 188ARHITEKTURA NAREDBI ZADEC PDP11 189OSOBINE MAGNETNOG DISKA 192ORGANIZACIJA SABIRNICE 192ORGANIZACIJA ASOCIJATIVNE MEMORIJE 196SKRIVENA MEMORIJA 198VIRTUELNA MEMORIJA 200MEMORIJSKA HIJERARHIJA 203PROBLEM SINHRONIZACIJE 204

    8.5 PERIOD OKO 1980 GODINE 205ARHITEKTURA NAREDBI ZADEC VAX11/780 216ARHITEKTURA NAREDBI ZAINTEL 8086 217SEGMENTNA ORGANIZACIJA RADNE MEMORIJE 219ARHITEKTURA NAREDBI ZAINTEL 80386 221PRINCIP RADA MIA 223

    OSOBINE GRAFIKIH TERMINALA 224PRINCIPI RADA LOKALNIH MREA 225VIEPROCESORSKI RAUNARI SA ZAJEDNIKOMSABIRNICOM 226

    8.6 PERIOD OKO 1990. GODINE 228RISCPROCESORI 239IEEE 754 STANDARD ZA ARITMETIKU REALNIHBROJEVA 243ARHITEKTURA NAREDBI ZAMIPS 244

    INTEL PENTIUM PRO PROCESOR 245EVOLUCIJA MASOVNE MEMORIJE 245

    UTICAJRISCPROCESORA NA VIRTUELNU MEMORIJU 246SPOJNE MREE 247BARIJERNA SINHRONIZACIJA 255

    8.7 PERIOD OKO 2000. GODINE 256UGRAENI RAUNARI 256RADNE STANICE 256SERVERI 257PARALELIZAM UNUTAR PROCESORA 259ARHITEKTURA NAREDBI ZAINTEL ITANIUM 260

    8.8 PITANJA 261

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    6/275

    9. PROCENA OSOBINA RA

    UNARA 2669.1 NAIN PROCENE OSOBINA RAUNARA 2669.2 PITANJA 268

    LITERATURA 269

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    7/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 1

    1. UVOD

    1.1 POJAM ARHITEKTURE RAUNARA

    Arhitektura raunara (computer architecture) se bavi problemima upotrebei pravljenja raunara.

    Posmatrano sa stanovita arhitekture raunara, upotreba raunara se svodi nanjegovo programiranje, jer je namena raunara da izvrava programe. Rezultatiprogramiranja zavise od osobina skupa naredbi raunara. Ovim osobinama se bavi

    arhitektura naredbi (instruction set architecture).Cilj pravljenja raunara je ostvarenje ili implementacija (implementation)njegove arhitekture naredbi. Implementacija arhitekture naredbi obuhvataorganizaciju (organization) i izvedbu (hardware) raunara. Organizacija raunarase bavi organizacionim komponentama koje obrazuju raunar, njihovom namenom ifunkcijom, kao i meusobnim odnosima ovih komponenti. Izvedba raunara se baviproblemima proizvodnje pomenutih komponenti.

    Pojam arhitekture raunara obuhvata i arhitekturu naredbi i njenuimplementaciju.

    Izmeu arhitekture naredbi i njene implementacije postoji meuzavisnost, jerimplementacija odraava i ograniava arhitekturu naredbi.

    1.2 MODEL RAUNARA

    Na arhitekturu naredbi utiu programski jezici koji se koriste zaprogramiranje raunara. Za trino prihvaene raunare je karakteristino da suprilagoeni procedurnim (imperativnim) programskim jezicima. Njihov tipianpredstavnik je programski jezik C.

    OSOBINE PROCEDURNIH PROGRAMSKIH JEZIKA

    Procedurni programski jezici omoguuju opisivanje obrada podataka kojipripadaju celom, realnom, znakovnom ili logikom skupu. Ovi skupovi se nazivajui prosti tipovi, jer se njihove vrednosti ne mogu ralanjivati na prostije sastojke.Prosti tipovi se nazivaju i osnovni tipovi (fundamental types), jer predstavljajuosnovu za opisivanje svih obrada podataka. Za opisivanje obrada podataka koristese operacije procedurnih programskih jezika koje omoguuju rukovanjevrednostima prostih tipova. U ovakve operacije spadaju aritmetike, relacione ilogike operacije.

    Optost opisima obrada podataka daju promenljive. Svaku promenljivukarakteriu njeno ime, tip i vrednost. Promenljivoj se dodeljuje vrednost njenog tipaposredstvom operacije dodele. Za optost opisa obrada podataka su vane iupravljake operacije. Zahvaljujui njima redosled obavljanja operacija nije samosekvencijalni, nego i alternativni i repetitivni.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    8/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)2

    Promenljive, vrednosti prostih tipova i operacije (upravljake i one zarukovanje promenljivim i vrednostima prostih tipova) predstavljaju osnovneelemente procedurnih programskih jezika

    PRIMER OPTEG OPISA OBRADE PODATAKA

    Kao primer opteg opisa obrade podataka moe da poslui nalaenjenajveeg zajednikog delioca (NZD) neoznaenih brojeva a i b, za koje vai:

    a = nNZDb = mNZD

    Za odreivanje najveeg zajednikog delioca neoznaenih brojeva a i b potrebno jekoeficijente n i m svesti na 1. To se moe postii ponavljanjem oduzimanja:

    |a-b| = |n-m|NZD

    tako da se, nakon svakog oduzimanja, promenljivoj sa veom vrednou dodelirazlika. Precizan postupak nalaenja najveeg zajednikog delioca opisuje sekvencaprograma, izraena programskim jezikom C:

    unsigned int a = 12;unsigned int b = 10;while (a!=b)if (a>b)a = a-b;

    elseb = b-a;

    Po izvravanju prethodne sekvence vai: a = b = NZD = 2 (radi jednostavnosti,optost prethodne sekvence je ograniena na odreivanje najveeg zajednikogdelioca neoznaenih brojeva 12 i 10).

    MEMORIJA

    Prirodno je da model raunara, namenjen za izvravanje programa koji suizraeni procedurnim programskim jezicima, podri sva tri bitna elementa ovih

    jezika. Za podrku promenljivim, potrebna je memorija (memory), sastavljena odniza lokacija. Lokacije omoguuju predstavljanje promenljivih prostih tipova, akomogu da sadre vrednosti prostih tipova (koje se dodeljuju ovim promenljivim).Svaka lokacija poseduje jednoznanu (numeriku) adresu (brojevi 0, 1, 2, ...), pokojoj se razlikuje od drugih lokacija. Pored adrese, lokacija moe da poseduje iposebnu oznaku ili labelu (label). Kada postoji, labela se koristi umesto adrese.Labela odgovara imenu promenljive koju predstavlja labelirana lokacija.

    Za lokacije je vana osobina univerzalnosti, koja podrazumeva da svakalokacija moe da sadri vrednost bilo kog prostog tipa i adresu. Univerzalnost

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    9/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 3

    lokacija se postie kodiranjem svih vrednosti realnog, znakovnog i logikog tipavrednostima celog tipa, odnosno podskupom celih brojeva, koji pripadaju celomtipu. Zbog univerzalnosti lokacija, javlja se problem vieznane interpretacijesadraja lokacija.

    Preuzimanje vrednosti promenljive, kao i dodela vrednosti promenljivoj,podrazumeva pristupanje lokacijama, radi itanja (preuzimanja), ili pisanja(izmene) sadraja lokacija.

    PROCESOR

    Za podrku operacijama potreban je procesor (processor), sastavljen od

    sklopova i registara. Sklopovi omoguuju obavljanje pojedinih operacija(namenjenih za rukovanje vrednostima prostih tipova), a registri sadre vrednostiprostih tipova koje se obrauju u toku obavljanja pojedinih operacija. Registri serazlikuju od memorijskih lokacija po tome to se nalaze u procesoru i po tome tonisu oznaeni adresom ili labelom, nego posebnom oznakom.

    Pre obavljanja operacije, procesor preuzima oznaku operacije i njeneoperande. Operandi su ili vrednosti prostih tipova na koje se operacija odnosi, iliadrese lokacija na koje se operacija odnosi, odnosno, jednom reju, vrednosti.Oznaka operacije odreuje sklop u kome se obrauju vrednosti zadane operandima.Oznaka operacije i operandi obrazuju naredbu (instruction) procesora. Procesorobavlja operacije u toku izvravanja svojih naredbi. Redosled izvravanja naredbi jeodreen programom.

    ADRESIRANJE

    Operandi se dele na ulazne i izlazne. Ulazni operandi odreuju (ulazne)vrednosti, koje se obrauju u toku izvravanja naredbi. Izlazni operandi odreuju(izlazne) lokacije, u koje se smetaju rezultati izvravanja naredbi.

    Ulazni operand se naziva neposredni (immediate) operand, kada muodgovara ulazna vrednost. Neposredni operandi su potrebni, radi konstanti. Ulaznioperand se naziva direktni (direct) operand, kada mu odgovara adresa memorijskelokacije sa ulaznom vrednou, odnosno, naziva se registarski (register) operand,kada mu odgovara oznaka registra sa ulaznom vrednou. Izlazni operand se nazivadirektni operand, kada mu odgovara adresa izlazne memorijske lokacije, odnosno,naziva se registarski operand, kada mu odgovara oznaka izlaznog registra. Direktnii registarski operandi su potrebni, radi promenljivih prostih tipova. Ulazni operandse naziva indirektni (register indirect) operand, kada mu odgovara oznaka registrasa adresom memorijske lokacije sa ulaznom vrednou. Izlazni operand se nazivaindirektni operand, kada mu odgovara oznaka registra sa adresom izlaznememorijske lokacije. Indirektni operandi su potrebni, radi pokazivakihpromenljivih. Ulazni operand se naziva indeksni (indexed) operand, kada muodgovaraju posebna vrednost (indeks) i oznaka registra, iji sadraj u sumi saprethodnim indeksom daje adresu memorijske lokacije sa ulaznom vrednou.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    10/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)4

    Izlazni operand se naziva indeksni operand, kada mu odgovaraju posebna vrednost(indeks) i oznaka registra, iji sadraj u sumi sa prethodnim indeksom daje adresuizlazne memorijske lokacije. Indeksni operandi su potrebni, na primer, radipromenljivih sloenih tipova (niz ili slog). Odreivanje ulaznih vrednosti, odnosnoizlaznih lokacija, se naziva i adresiranje, pa tako postoje neposredno, direktno,registarsko, indirektno i indeksno adresiranje.

    SKUP NAREDBI

    Zahvaljujui kodiranju vrednosti realnog, znakovnog i logikog tipavrednostima celog tipa, skup naredbi procesora se svodi na podskup aritmetikih

    operacija, kao i na logike i upravljake operacije. Od aritmetikih operacijadovoljno je da procesor podri celobrojno sabiranje i oduzimanje, jer se ostalearitmetike operacije mogu izraziti pomou celobrojnog sabiranja i oduzimanja. Irelacione operacije se svode na celobrojno oduzimanje desnog operanda relacije odlevog i zakljuivanje o relaciji na osnovu vrednosti i predznaka razlike, jer:

    1. relacija = vai, ako je razlika 0,2. relacija vai, ako je razlika razliita od 0,3. relacija < vai, ako je razlika negativna,4. relacija >= vai, ako je razlika pozitivna ili 0,5. relacija > vai, ako je razlika pozitivna, a6. relacija

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    11/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 5

    1.3 FIZIKA OSNOVA MODELA RAUNARA

    Za pravljenje prethodno opisanog modela raunara dovoljna je fizika osnovakoja omoguuje predstavljanje celih brojeva, jer su vrednosti prostih tipova i delovinaredbi predstavljeni (kodirani) celim brojevima. Cifre celih brojeva se mogupredstaviti raznim nivoima fizikih veliina, kao to su elektrini napon ili jainamagnetnog polja. Praktini razlozi sugeriu korienje samo 2 nivoa fizikihveliina, odnosno 2 nivoa signala. To je dovoljno: za prikaz cifara binarnog brojnogsistema (0 : nula, 1 : jedan), ali i za prikaz logikih vrednosti (0 : netano, 1 :tano). Podudarnost cifara binarnog brojnog sistema i logikih vrednosti omoguuje

    da se aritmetike operacije za binarni brojni sistem opiu logi

    kim funkcijama, poduslovom da se binarne cifre interpretiraju kao logike vrednosti. To potvruje

    tablica sabiranja za binarni brojni sistem sa slike 1.2.1.

    a B a+b prenos0 0 0 00 1 1 01 0 1 01 1 0 1

    Slika 1.2.1 Tablica sabiranja za binarni brojni sistem

    Ako se cifre iz tablice sa slike 1.2.1 interpretiraju kao logike vrednosti, tadatrea kolone ove tablice opisuje logiku funkciju iskljuivo ili (exclusive or):

    a^b

    Oznaka ^ predstavlja operator programskog jezika C za logiku operaciju iskljuivoili. etvrta kolona ove tablice opisuje logiku funkciju i (and):

    a&b

    Oznaka & predstavlja operator programskog jezika C za logiku operaciju i.Prethodno dozvoljava da se raunar napravi kao fiziki ureaj koji memorie

    logike vrednosti i obavlja logike funkcije. Tako, voltmetar iz elektrinog kola saslike 1.2.2 pokazuje vrednost logike funkcije i:

    a&b

    ako stanja prekidaa (0 : otvoren, 1 : zatvoren) zavise od vrednosti logikihpromenljivih a i b.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    12/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)6

    a

    b

    V

    1V

    Slika 1.2.2 Elektrino kolo - ekvivalent logike funkcije i

    Pod istim uslovima, voltmetar iz elektrinog kola sa slike 1.2.3 pokazujevrednost logike funkcije ili (or):

    a|b

    Oznaka | predstavlja operator programskog jezika C za logiku operaciju ili.

    b V

    1V

    a

    Slika 1.2.3 Elektrino kolo - ekvivalent logike funkcije ili

    Elektrina kola omoguuju i ostvarenje logike negacije. Tako voltmetar izelektrinog kola sa slike 1.2.4 pokazuje vrednost logike funkcije negirano i (nand):

    ~(a&b)

    Oznaka ~ predstavlja operator programskog jezika C za logiku operaciju negacije.

    V

    1V

    a

    b

    Slika 1.2.4 Elektrino kolo - ekvivalent logike funkcije negirano i

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    13/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 7

    Pomou logike funkcije negirano i se mogu izraziti sve ostale logikefunkcije. Ako se kao operator logike funkcije negirano i odabere oznaka :

    ab ~(a&b)

    tada sledei primeri pokazuju kako se pojedine logike funkcije mogu izrazitipomou logike funkcije negirano i:

    a & b = (a b) (a b)

    a ^ b = (a a) (b b)a | b = ((a a) b) (a (b b))a b = (a b) ((a a) (b b))

    Iz prethodnog sledi da se za ostvarenje svih logikih funkcija moe koristiti jedanisti tip elektrinog kola.

    U elektrinim kolima ulogu prekidaa ima tranzistor. Pored ulaznog iizlaznog izvoda, koji su prikazani u sastavu svakog od prekidaa na crteimaprethodnih elektrinih kola, tranzistor ima i trei, upravljaki izvod. On odreujeprovodnost tranzistora, odnosno, stanje prekidaa. Na upravljaki izvod tranzistoradovodi se, na primer, nivo signala koji odgovara vrednosti neke logikepromenljive, odnosno nivo signala koji odgovara vrednosti neke logi ke funkcije,kao to je naponski nivo, prikazan na voltmetrima iz prethodnih elektrinih kola.Ako se u sastavu prekidaa ne prikazuju upravljaki izvodi (kao to je to uraeno,radi jednostavnosti, na crteima prethodnih elektrinih kola), tada je za svakiprekida neophodno navesti njegovu upravljaku logiku funkciju. Podrazumeva seda njena vrednost odreuje stanje prekidaa, odnosno, da ta vrednost odreuje nivosignala na upravljakom izvodu tranzistora. Argumenti ovakve upravljake logikefunkcije su logike vrednosti. Oni odreuju njenu vrednost, pa, na taj nain,omoguuju upravljanje prekidaima. Zato se ovakvi argumenti mogu nazvatiargumenti prekidaa. Na primer, ako logika funkcija:

    f(a,b) = a&b

    opisuje upravljanje nekim prekidaem, tada od njenih logikih argumenata a i bzavisi da li je prekida otvoren ili zatvoren, pa oni predstavljaju argumente dotinogprekidaa.

    Lokacije, i memorijske lokacije i registri procesora, se izvode kao nizovielija, nazvanih biti. Svakom bitu odgovara poseban fiziki ureaj, kao to jeflipflop, sposoban za memorisanje jedne binarne cifre. Sve lokacije se sastoje odistog i ogranienog broja bita, organizovanih u bajte i rei. Ograniena veliinalokacija odreuje raspon operanada, odnosno najvei i najmanji operand.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    14/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)8

    Lokacije se izvode pomou sekvencijalnih kola koja omoguuju pamenjebinarnih cifara, a sklopovi procesora se izvode pomou kombinacionih kola kojaostvaruju pojedine logike funkcije.

    Iako su principi, na kojima se zasniva rad raunara, jednostavni, nije ni malojednostavno od principa stii do pouzdanih i jeftinih komponenti, podesnih zapravljenje praktino upotrebljivog raunara. Problemi pravljenja praktinoupotrebljivog raunara izlaze van okvira ove knjige, jer je ona posveena samoizgradnji funkcionalno zaokruenog modela raunara. Ipak, namena ove knjige jeda itaoca pripremi i za suoavanje sa problemima koji se sreu pri pravljenjupraktino upotrebljivog raunara.

    1.4 PITANJA

    1. Kakvo je znaenje pojma arhitekture raunara?2. Koji su bitni elementi modela raunara?3. ta poseduje svaka lokacija?4. Kako se moe interpretirati sadraj lokacije u kojoj se nalazi broj 0?5. Kakve vrste adresiranja postoje?6. Koje naredbe obuhvata skup naredbi?7. Od kojih delova sa sastoje naredbe?8. Po emu se razlikuju asemblerska i mainska naredba?9. ta omoguuje da aritmetike operacije budu opisane pomou logikih

    funkcija?10. Kakva je vanost logike funkcije negacije?11. Kakva je uloga argumenata prekidaa?

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    15/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 9

    2. BROJNI SISTEMI I PREDSTAVE BROJEVA

    2.1 ARITMETIKA OGRANIENOG BROJA CIFARA

    Celi brojevi se uvaju u lokacijama u pozicionoj predstavi, jer ona olakavaobavljanje aritmetikih operacija. Zahvaljujui pozicionoj predstavi celih brojeva,postupak sabiranja i oduzimanja, za neoznaene cele brojeve, se svodi na direktnuprimenu tablice sabiranja na parove korespondentnih cifara.

    Za oznaene cele brojeve postupak sabiranja i oduzimanja se komplikuje

    zbog odreivanja predznaka rezultata. Problematian je sluaj, kada su sabirciraznih predznaka. U ovom sluaju predznak rezultata je jednak predznaku sabirkasa veom apsolutnom vrednou. Nakon odreivanja predznaka, sledi potpisivanjesabiraka na ispravan nain, radi oduzimanja apsolutne vrednosti manjeg sabirka odapsolutne vrednosti veeg sabirka. Dopisivanjem ovako dobijene razlike izaprethodno odreenog predznaka nastaje traeni zbir.

    Vano svojstvo pozicione predstave celih brojeva je da, za ogranien brojcifara, ona dozvoljava predstavljanje oznaenih celih brojeva kao neoznaenih,eliminiui tako komplikacije prilikom njihovog sabiranja i oduzimanja. Topokazuje sledei primer:

    68+(-57) = 68+(-57)+1000+(-1000) = 68+943+(-1000) = 1011+(-1000) = 11

    Ako se u prethodnom primeru posmatraju samo 3 najmanje znaajne cifre, apodrazumeva se dodavanje i oduzimanje 103, kao i zanemarivanje prenosa sanajznaajnije od prikazanih cifara, tada se sabiranje oznaenih celih brojeva 68 i -57moe prikazati kao:

    068 (68)+943 (-57+1000)

    011 (1011-1000)

    Broj 943 se naziva (trocifrena) komplement 10 predstava broja -57.Iz prethodnog primera sledi da se odreivanje n cifarske komplement 10

    predstave negativnog broja svodi na njegovo sabiranje sa 10n. Meutim, pomenutakomplement 10 predstava se moe odrediti i na drugi nain. On podrazumeva da seza svaku cifru brojnog sistema odredi njen komplement, odnosno cifra kojadopunjava posmatranu cifru do najvee cifre u brojnom sistemu. Na primer, zadekadni brojni sistem, sa najveom cifrom 9, komplement cifre 3 je cifra 6, jer vai3+6=9, a komplement cifre 0 je cifra 9, jer vai 0+9=9. Namena komplemenata jeda zamene pojedine cifre apsolutne vrednosti negativnog broja, prethodnodopunjene vodeim nulama do ukupnog broja cifara. Ovaj postupak se zove

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    16/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)10

    komplementiranje. Njegovom primenom nastaje komplement 9 predstavanegativnog broja. Uveavanjem komplement 9 predstave negativnog celog broja za1 nastaje komplement 10 predstava negativnog broja. Komplement 10 predstavapozitivnog celog broja nastaje njegovim dopunjavanjem vodeim nulama doukupnog broja cifara.

    U sluaju prethodnog primera, trocifrena komplement 10 predstava celogbroja 68 je 068. Trocifrena komplement 9 predstava celog broja -57 je 942. Onanastaje komplementiranjem cifara celog broja 057. Trocifrena komplement 10predstava celog broja -57 je 943. Ona je za 1 vea od trocifrene komplement 9predstave istog celog broja.

    U komplement 10 predstavi oznaenih celih brojeva, sve cifre nose vrednostbroja, ali najznaajnija cifra ima i dodatnu ulogu, jer ukazuje na predznak broja.Tako, za komplement 10 predstavu pozitivnih celih brojeva, najznaajnija cifra jeuvek 0, a za komplement 10 predstavu negativnih celih brojeva, najznaajnija cifra

    je uvek 9.Komplement predstava oznaenih celih brojeva pojednostavljuje procesor, jer

    omoguuje da se aritmetika oznaenih brojeva obavlja kao i aritmetika neoznaenihbrojeva (znai, bez posmatranja predznaka brojeva). Tako sabiranje brojeva -7 i 2moe da bude obavljeno kao sabiranje njihovih trocifrenih komplement 10predstava 993 i 002, uz direktnu primenu tablice sabiranja na parovekorespondentnih cifara i bez razmatranja predznaka. Na ovaj nain kao rezultatsabiranja se dobije 995, a to je trocifrena komplement 10 predstava broja -5.

    U nastavku su prikazane neke vrednosti trocifrene komplement 10 predstaveoznaenih celih brojeva (njima korespondentne vrednosti, sa predznakom, sunavedene u zagradama):

    099 (+99)098 (+98)...001 (+1)000 (0)999 (-1)...

    902 (-98)901 (-99)900 (-100)

    U komplement 10 predstavi, broj negativnih brojeva je za jedan vei od brojapozitivnih brojeva.

    Aritmetike operacije celih brojeva u komplement 10 predstavi daju celi broju komplement 10 predstavi. To ilustruje primer oduzimanja:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    17/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 11

    010 (+10)-011 (+11)999 (-1)

    Prilikom obavljanja aritmetikih operacija, prenos sa najznaajnijeg mesta ukomplement 10 predstavi celih brojeva se uvek zanemaruje.

    Za aritmetiku ogranienog broja cifara vezan je problem pojave cifara kojeizlaze van opsega, uvedenog ograniavanjem broja posmatranih cifara. Kodneoznaenih celih brojeva, ije sve cifre nose samo vrednost, do izlaska van opsegadolazi nakon pojave prenosa sa najznaajnijeg mesta:

    999+999

    998

    U prethodnom primeru se pojavio netaan rezultat, jer se prenos ne moe prikazatiu 3 cifre.

    Kod oznaenih celih brojeva u komplement 10 predstavi, ija najznaajnijacifra pokazuje da li je re o pozitivnom (0) ili negativnom (9) broju, pojava cifrerazliite od 0 ili 9 u najznaajnijoj poziciji broja ukazuje na izlazak van opsega:

    050+050

    100

    U prethodnom primeru na pojavu netanog rezultata ukazuje neodgovarajua cifra unjegovoj najznaajnijoj poziciji.

    Vano je zapaziti da interpretacija rezultata zavisi od interpretacije brojeva.Ako se u pretposlednjem primeru celi brojevi interpretiraju kao ozna eni utrocifrenoj komplement 10 predstavi, tada je rezultat taan (u ovom sluaju prenosse zanemaruje). Slino, ako se celi brojevi iz poslednjeg primera interpretiraju kaoneoznaeni, tada je rezultat taan, jer nema prenosa sa najznaajnije pozicije.

    Kod odreivanja relacija, izlazak van opsega pri celobrojnom oduzimanju

    desnog operanda relacije od levog ne izaziva probleme, nego pomae da se izvedeispravan zakljuak o vaenju relacije. Tako, za neoznaene cele brojeve:1. relacija = vai, ako je rezultat oduzimanja 0,2. relacija vai, ako rezultat oduzimanja nije 0,3. relacija < vai, ako se pri oduzimanju javi izlazak van opsega (u obliku

    prenosa),4. relacija >= vai, ako se pri oduzimanju ne javi izlazak van opsega ili je

    rezultat 0,

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    18/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)12

    5. relacija > vai, ako se pri oduzimanju ne javi izlazak van opsega irezultat nije 0, a

    6. relacija = vai, ako je rezultat pozitivan (najznaajnija cifra 0) ili se pri

    oduzimanju izae van opsega (najznaajnija cifra 1) ili je rezultat 0,5. relacija > vai, ako je rezultat pozitivan (najznaajnija cifra 0) ili se pri

    oduzimanju izae van opsega (najznaajnija cifra 1), a6. relacija

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    19/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 13

    u kome su navedeni neoznaeni celi brojevi. U toku formiranja levog zbira dolazido izlaska van opsega, pa je on u optem sluaju razliit od desnog zbira, u kome sene javlja izlazak van opsega.

    2.2 PREDSTAVLJANJE REALNIH BROJEVA

    Potpuna poziciona predstava je nepraktina za realne brojeve, jer ona, naprimer, podrazumeva da se u broju:

    0.000000127

    koristi 6 nula za odreivanje poloaja znaajnih cifara iza take. Manje prostorazauzima normalizovana forma, u kojoj eksponent odreuje poloaj znaajnihcifara:

    1.2710-7

    Jo manje prostora je potrebno za mainsku normalizovanu formu (floating-point), koja sadri samo predznak realnog broja, njegovu frakciju (fraction,significand) i podeeni eksponent (biased exponent, excess). Frakcija obuhvataznaajne cifre broja. Podrazumeva se da iza prve od znaajnih cifara dolazidecimalna taka. Eksponent je podeen dodavanjem konstante podeavanja, takoda se ne mora voditi rauna o njegovom predznaku i da se olaka poreenjemainskih normalizovanih formi. Prethodni broj u mainskoj normalizovanoj formi(u 10 mesta) izgleda:

    0031270000

    Posmatrano s leva u desno, prva cifra prethodnog broja sadri predznak (0 : +, 1 : -),a druge dve cifre sadre podeeni eksponent. Poto 2 mesta omoguuju daeksponent bude u rasponu od -9 do +9, eksponent se podeava dodavanjem broja102-1=10 kao konstante podeavanja, pa je raspon podeenog eksponenta od 1 do 19.Ovako podeeni eksponent omoguuje poreenje mainskih normalizovanih formi

    bez njihovog raspakivanja, priemu se mora ura

    unati uticaj predznaka na rezultatporeenja. Preostalih sedam cifara sadri frakciju. Podrazumeva se da iza prve cifre

    frakcije dolazi decimalna taka.Predstava realnih brojeva u ogranienom broju cifara ne samo da ograniava

    dijapazon realnih brojeva koji se mogu predstaviti, nego ograniava i preciznost, jeriz datog dijapazona moe da se precizno predstavi samo ogranien broj realnihbrojeva. Greka predstave realnih brojeva, koji ne mogu precizno da se predstave,raste sa veliinom eksponenta i kree se od 10-15 do 103 za prethodnu mainskunormalizovanu formu u 10 mesta. Tolika je razlika apsolutnih vrednosti 2 najmanja

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    20/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)14

    susedna realna broja: 0011000000 i 0011000001, odnosno 2 najvea susedna realnabroja: 0191111110 i 0191111111.

    U aritmetici normalizovane forme, predznak, podeeni eksponenti i frakcijese posmatraju odvojeno. Prvo se odredi predznak rezultata. Sabiranje i oduzimanjezapoinje izjednaavanjem eksponenata. Uvek se manji eksponent izjednaava saveim, uz pomeranje decimalne take u frakciji i, eventualno, odbacivanjeprekobrojnih cifara. Zatim sledi sabiranje ili oduzimanje frakcija. Na kraju se,eventualno, normalizuje rezultat. Na primer, sabiranju brojeva:

    0031270000 (1.2710-7)

    +0091000001 (1.00000110-1)

    obavezno prethodi izjednaavanje eksponenta prvog broja sa eksponentom drugogbroja, pri emu se odbacuju prekobrojne cifre frakcije 2 i 7. Tako nastaju brojevi:

    0090000001 (0.00000110-1) (odbaene su prekobrojne cifre 2 i 7)+0091000001 (1.00000110-1)

    0091000002 (1.00000210-1)

    Kod mnoenja, eksponenti se sabiraju, uz umanjivanje njihovog zbira zakonstantu podeavanja 10, a frakcije se mnoe. Kod deljenja, eksponenti seoduzimaju, uz dodavanje njihovoj razlici konstante podeavanja, a frakcije se dele.U oba sluaja, na kraju, eventualno, sledi normalizacija rezultata. Prethodnoilustruje primer mnoenja:

    0112000000 (2.010)0124000000 (4.0102)

    0138000000 (8.0103)

    U aritmetici normalizovane forme do izlaska van opsega (s leva, ali i s desna)dolazi samo u eksponentu, jer se prekobrojne cifre frakcije odbacuju. Odbacivanjeprekobrojnih cifara frakcije moe da uzrokuje ozbiljne greke, naroito, ako uoperaciji uestvuju realni brojevi koji se veoma razlikuju po apsolutnoj vrednosti.

    Primer za takvu vrstu greaka prua sabiranje vrlo mnogo malih realnih brojeva.Kada apsolutna vrednost zbira postane toliko velika, da su sve cifre frakcijapreostalih sabiraka prekobrojne, tada ne dolazi do uveanja zbira, iako on moe bitimanji od zbira preostalih (zanemarenih) sabiraka.

    2.3 BINARNI BROJNI SISTEM

    U binarnom brojnom sistemu koriste se samo cifre 0 i 1, njegova baza(radix) je 210, a brojevi se predstavljaju u pozicionoj predstavi. Pri prelasku izdecimalnog u binarni brojni sistem i obratno, neophodna je konverzija brojeva.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    21/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 15

    Konverzije brojeva iz brojnog sistema s jednom bazom u brojni sistem s drugombazom se zasnivaju na izjednaavanju pozicionih predstava pomenutih brojeva, radiizdvajanja nepoznatih cifara. Pri tome u ovim predstavama se koriste cifre brojnogsistema u kome se rauna. Postupak konverzije zahteva da se posebno obavljakonverzija celog, a posebno konverzija razlomljenog dela broja.

    Do izdvajanja nepoznatih binarnih cifara, pri konverziji celog broja izdecimalnog u binarni brojni sistem, dolazi kada se konvertovani broj deli bazombinarnog brojnog sistema. U primeru, koji sledi, koriste se cifre decimalnog brojnogsistema, jer se u njemu rauna:

    ...+d1101+d0100 = ...+b121+b020

    610 = ...+b121+b02

    0 |:20 = b0 (ostatak deljenja)3 = ...+b22

    1+b120 |:2 (kolinik)

    1 = b1 (ostatak deljenja)1 = ...+b32

    1+b220 |:2 (kolinik)

    1 = b2 (ostatak deljenja)0 (kolinik)610 = 1102

    Do izdvajanja nepoznatih binarnih cifara, pri konverziji razlomljenog broja izdecimalnog u binarni brojni sistem, dolazi kada se konvertovani broj mnoi bazombinarnog brojnog sistema. U sledeem primeru koriste se cifre decimalnog brojnogsistema, jer se u njemu rauna:

    d-110-1+d-210

    -2+... = b-12-1+b-22

    -2+...

    0.375 = b-12-1+b-22

    -2+... |20 = b-1 (celi deo proizvoda)0.75 = b-22

    -1+b-32-2+... |2 (razlomljeni deo proizvoda)

    1 = b-2 (celi deo proizvoda)0.5 = b-32

    -1+b-42-2+... |2 (razlomljeni deo proizvoda)

    1 = b-3 (celi deo proizvoda)0 (razlomljeni deo proizvoda)0.37510 = 0.0112

    Algoritam konverzije razlomljenog broja iz decimalnog u binarni brojnisistem ne mora da ima kraj. To pokazuje primer konvertovanja razlomljenog broja0.210, prikazan na slici 2.3.1:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    22/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)16

    razlomljeni deoproizvoda

    proizvod(2)

    celi deo proizvoda

    0.2 0.4 0 = b-10.4 0.8 0 = b-20.8 1.6 1 = b-30.6 1.2 1 = b-40.2 0.4 0 = b-5

    Slika 2.3.1 Konvertovanje razlomljenog broja 0.210

    U primeru sa slike 2.3.1 se javlja beskonana periodinost, pa je rezultatkonverzije priblian:

    0.210 0.00112

    Konverzija celog broja iz binarnog u decimalni brojni sistem se svodi namnoenje cifara konvertovanog broja bazom binarnog brojnog sistema. U sledeemprimeru koriste se cifre decimalnog brojnog sistema, jer se u njemu rauna:

    ...+b222+b12

    1+b020 = ((...+b2)2+b1) 2+b0

    X10 = 1102X10 = ((b2) 2+b1) 2+b0X10 = b2 = 1X10 = X102+b1 = 12+1 = 3X10 = X102+b0 = 32+0 = 6X10 = 6610 = 1102

    Konverzija razlomljenog broja iz binarnog u decimalni brojni sistem se svodina deljenje cifara konvertovanog broja bazom binarnog brojnog sistema. Usledeem primeru koriste se cifre decimalnog brojnog sistema, jer se u njemurauna:

    b-12-1+b-22

    -2+b-32-3+... = (b-1+(b-2+(b-3+...)/2)/2)/2

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    23/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 17

    X10 = 0.00112X10 = (b-1+(b-2+(b-3+(b-4)/2)/2)/2)/2X10 = b-4 = 1X10 = X10/2+b-3 = 1/2+1 = 1.5X10 = X10/2+b-2 = 1.5/2+0 = 0.75X10 = X10/2+b-1 = 0.75/2+0 = 0.375X10 = X10/2 = 0.375/2 = 0.18750.187510 = 0.00112

    Poto konverzija 0.210 daje priblino 0.00112, a konverzija 0.00112 daje 0.187510,

    sledi da je:

    0.210 0.187510

    odnosno da je greka aproksimacije 0.012510.Za skraeno predstavljanje brojeva iz binarnog brojnog sistema koristi se

    heksadecimalni brojni sistem, jer jedna heksadecimalna cifra zamenjuje etiribinarne cifre. U heksadecimalnom brojnom sistemu koriste se cifre 0, 1, 2, 3, 4, 5,6, 7, 8, 9, A(1010), B(1110), C(1210), D(1310), E(1410) i F(1510). Njegova baza je 1610,a brojevi se predstavljaju u pozicionoj predstavi.

    Konverzija broja iz binarnog u heksadecimalni brojni sistem se sastoji odzamena po etiri binarne cifre jednom heksadecimalnom cifrom. Pre toga se binarnibroj dopuni vodeim nulama do broja cifara koji je deljiv sa 4:

    10111112 = 5F16

    010111112 =027+126+025+124+123+122+121+120 =(023+122+021+120)24+(123+122+121+120)20 =010124+111120 =5161+F160

    (eksponenti i baza 16 su prikazani u decimalnom brojnom sistemu).

    Konverzija broja iz heksadecimalnog u binarni brojni sistem se sastoji odzamene svake heksadecimalne cifre binarnim ciframa.

    2.4 ARITMETIKA OGRANIENOG BROJA CIFARA UBINARNOM BROJNOM SISTEMU

    I u binarnom brojnom sistemu sabiranje i oduzimanje neoznaenih celihbrojeva se sastoji od direktne primene tablice sabiranja na parove korespondentnihcifara. U narednim primerima se smatra da je broj binarnih cifra ogranien na 8:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    24/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)18

    00000101 (5) 00000101 (5)+00000011 (3) -00000011 (3)

    00001000 (8) 00000010 (2)

    Za oznaene cele brojeve koristi se komplement 2 predstava, radi izbegavanjakomplikacija kod njihovog sabiranja i oduzimanja. Komplement 2 predstavapozitivnih celih brojeva nastaje njihovim dopunjavanjem vodeim nulama (doukupnog broja cifara). Komplement 2 predstava negativnih celih brojeva nastajedodavanjem jedinice komplement 1 predstavi negativnih celih brojeva.Komplement 1 predstava negativnih celih brojeva nastaje tako, to se u njihovoj

    apsolutnoj vrednosti, prethodno dopunjenoj vodeim nulama, svaka nula zamenijedinicom i obrnuto:

    00000010 komplement 2 predstava celog broja +211111101 komplement 1 predstava celog broja -211111110 komplement 2 predstava celog broja -2

    U nastavku slede neke vrednosti osmocifrene komplement 2 predstaveoznaenih celih brojeva (njima korespondentne decimalne vrednosti, sapredznakom, su navedene u zagradama):

    01111111 (+127)01111110 (+126)...00000001 (+1)00000000 (0)11111111 (-1)...10000010 (-126)10000001 (-127)10000000 (-128)

    I u komplement 2 predstavi, broj negativnih brojeva je za jedan vei od broja

    pozitivnih brojeva.Kod neoznaenih celih brojeva, pojava prenosa sa najznaajnijeg mestaukazuje na izlazak van opsega. Kod oznaenih celih brojeva u komplement 2predstavi, pojava neodgovarajue cifre na najznaajnijem mestu rezultata ukazujena izlazak van opsega (na primer, kod sabiranja dva pozitivna cela broja, pojavacifre 1 na najznaajnijem mestu zbira nedvosmisleno ukazuje na izlazak vanopsega). Sve sluajeve izlaska van opsega, kod sabiranja oznaenih celih brojeva ukomplement 2 predstavi, pregledno prikazuje tabela na slici 2.4.1.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    25/275

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    26/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)20

    U tabeli sa slike 2.4.2, cifre iz prve tri kolone se interpretiraju kao celibrojevi, a cifre iz etvrte kolone se interpretiraju kao logike vrednosti. Ako se cifreu sve etiri kolone interpretiraju kao logike vrednosti, tada iz prethodne tabelesledi da je logika funkcija izlaska van opsega kod oduzimanja:

    ((~U1)&U2)&R)|(U1&(~U2)&(~R))

    Interpretacija rezultata aritmetikih operacija zavisi od interpretacije brojeva.Na primer, kod sabiranja neoznaenih celih brojeva:

    11111111 (255)+11111111 (255)

    11111110 (254)

    dolazi do izlaska van opsega, jer se javlja prenos sa najznaajnijeg mesta binarnogcelog broja. Kod sabiranja neoznaenih celih brojeva:

    01000000 (64)+01000000 (64)

    10000000 (128)

    ne dolazi do izlaska van opsega, jer se ne javlja prenos sa najznaajnijeg mestabinarnog celog broja. Ali, izmena interpretacije brojeva u prethodna dva primerapovlai za sobom i izmenu interpretacije rezultata. Tako, kod sabiranja oznaenihcelih brojeva u komplement 2 predstavi:

    11111111 (-1)+11111111 (-1)

    11111110 (-2)

    ne dolazi do izlaska van opsega, jer je predznak rezultata ispravan. Prenos sanajznaajnijeg mesta binarnog celog broja se zanemaruje, jer je re o komplement 2predstavi brojeva. Slino, kod sabiranja oznaenih celih brojeva u komplement 2

    predstavi:01000000 (+64)

    +01000000 (+64)10000000 (-128)

    dolazi do izlaska van opsega, jer se javlja neodgovarajua cifra na najznaajnijemmestu rezultata.

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    27/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 21

    I u binarnom brojnom sistemu, odreivanje relacija se svodi na oduzimanjedesnog operanda relacije od levog i na zakljuivanje o vaenju relacije na osnovutoga:

    1. da li je razlika jednaka nuli ili je razliita od nule,2. da li je razlika negativna ili pozitivna,3. da li se, pri oduzimanju neoznaenih celih brojeva, javlja izlazak van

    opsega u obliku prenosa ili ne, odnosno,4. da li, pri oduzimanju oznaenih celih brojeva, razlika izlazi van

    opsega ili ne.Za opisivanje karakteristika razlike zgodno je uvesti posebne logike

    promenljive: N (nula), M (minus), P (prenos) i V (van opsega). Tako logikapromenljiva N sadri 1, ako je razlika jednaka nuli. U suprotnom, ona sadri 0. Ovalogika promenljiva je jednaka negaciji logikog ili svih cifara razlike. Logikapromenljiva M sadri 1, ako je razlika negativna. U suprotnom, ona sadri 0. Ovalogika promenljiva je jednaka najznaajnijoj cifri razlike. Logika promenljiva Psadri 1, ako se pri oduzimanju neoznaenih celih brojeva javi prenos. Usuprotnom, ona sadri 0. Ova logika promenljiva je jednaka prenosu sanajznaajnijeg mesta pri oduzimanju. Logika promenljiva V sadri 1, ako, prioduzimanju oznaenih celih brojeva, razlika izae van opsega. U suprotnom, onasadri 0. Ova logika promenljiva je jednaka vrednosti logike funkcije izlaska vanopsega kod oduzimanja.

    Pri odreivanju relacija, svakoj od prethodne etiri logike promenljivedodeljuje se, po oduzimanju, odgovarajua vrednost. To se radi zbog vieznaneinterpretacije operanada relacija. Meutim, zakljuak o vaenju relacije se oslanjasamo na logike promenljive koje su znaajne za vaeu interpretaciju poreenihvrednosti. To pokazuju tabele sa slika 2.4.3 i 2.4.4. Tabela sa slike 2.4.3 sadripregled logikih izraza od ije vrednosti zavisi vaenje pojedinih relacija zaneoznaene brojeve.

    relacijavai

    ako je taan logikiizraz

    = N ~N

    < P>= ~P> (~P)&(~N)

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    28/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)22

    relacijavai

    ako je taan logikiizraz

    = N ~N< M^V

    >= ~(M^V)> ~(M^V)&(~N)

    , i

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    29/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 23

    ne vai ni kada su njena oba operanda negativna, a levi nije manji od desnog. Tadaje razlika uvek pozitivna i nije van opsega (M = 0 i V = 0).

    I u binarnom brojnom sistemu, aritmetika ogranienog broja cifara zahtevaviestruku preciznost, kada se operacije odnose na vrednosti iji broj cifara je veiod broja cifara lokacije. U ovom sluaju, delovi vrednosti se uvaju u raznimlokacijama, a operacije se obavljaju za deo po deo ovih vrednosti.

    Takoe, ni u binarnom brojnom sistemu za aritmetiku ogranienog brojacifara ne vae zakoni aritmetike, jer je, zbog mogunosti izlaska van opsega,rezultat zavisan od redosleda obavljanja operacija. To potkrepljuje sledei primer zaosmobitnu preciznost:

    (10000100+10100000)-10000000 10000100+(10100000-10000000)

    u kome su navedeni neoznaeni celi brojevi (u toku formiranja levog zbira dolazi doizlaska van opsega, pa je on u optem sluaju razliit od desnog zbira, u kome se ne

    javlja izlazak van opsega).

    2.5 PREDSTAVLJANJE VREDNOSTI REALNOG IZNAKOVNOG TIPA U BINARNOM BROJNOM SISTEMU

    Mainska normalizovana forma se koristi i u binarnom brojnom sistemu zapredstavljanje vrednosti realnog tipa. U nastavku se koristi 8 cifarskih pozicija zamainsku normalizovanu formu, u kojoj, gledajui s leva u desno, prva pozicijasadri predznak (0 : +, 1 : -). Naredne 4 pozicije sadre podeeni eksponent. Kaokonstanta podeavanja koristi se vrednost 24-1=10002=8. Ona se sabira saeksponentima koji mogu biti u rasponu od -8 do 7, pa se podeeni eksponenti nalazeu dijapazonu od 00002=0 do 11112=15. Poslednje 3 pozicije sadre tri manjeznaajne cifre frakcije. Preostala, najznaajnija cifra frakcije je uvek 1, jer, kodnormalizovane forme, taka dolazi iza prve znaajne cifre frakcije, razliite od 0.To je, u binarnom brojnom sistemu, cifra 1, pa se ona ne prikazuje u frakciji. Znai,frakcija je uvek razliita od nule, jer se podrazumeva da je njena najznaajnija cifra1. Zato se za predstavljanje nule rezervie nulta vrednost podeenog eksponenta.Slede primeri brojeva, predstavljenih u mainskoj normalizovanoj formi:

    101010002 -1.00022-3

    -0.12510000000002 0.0010000002 +1.00022

    0 +1.010010010112 +1.01122

    1 +2.7510011100012 +1.00122

    6 +72.010

    I u binarnom brojnom sistemu predstava realnih brojeva u ogranienom brojucifara ograniava i dijapazon realnih brojeva, koji se mogu predstaviti, i preciznost,

    jer iz datog dijapazona moe da se precizno predstavi samo ogranien broj realnih

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    30/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)24

    brojeva. Pri tome, greka predstave realnih brojeva, koji ne mogu precizno da sepredstave, raste sa veliinom eksponenta i kree se od 2-10 do 24 za prethodnumainsku normalizovanu formu u 8 mesta.

    Prethodno uvedena pravila za aritmetiku normalizovane forme vae i ubinarnom brojnom sistemu. Znai, do izlaska van opsega (s leva, ali i s desna)dolazi samo u eksponentu, jer se prekobrojne cifre frakcije odbacuju. Odbacivanjeprekobrojnih cifara frakcije moe da uzrokuje ozbiljne greke.

    Za predstavljanje znakova u bilo kom brojnom sistemu neophodno je kodiratiznakove celim brojevima. Takvo kodiranje uspostavlja ASCII(American StandardCode for Information Interchange) standard. Postoji sedmobitna i osmobitna verzija

    ovog standarda. Ovaj standard predvia sledee kodove za slova:

    A : 4 116...Z : 5 A16a : 6 116...z : 7 A16

    Prikazani kodovi se odnose samo na slova engleskog alfabeta.Za cifre su predvieni sledei kodovi:

    0 : 3 016...9 : 3 916

    Kodiranje je predvieno i za posebne znakove, kao to su:

    razmak (prazno) : 2016! : 2 116...

    ali i za upravljake znakove, kao to su:

    nova linija (line feed) : 0 A16...najava znakova koje interpretira ekran (escape) : 1 B16...

    U sedmobitnoj verziji ASCII standarda, znakovi nacionalnih alfabetazamenjuju pojedine od znakovaASCIIstandarda ( : [, : ], : ^ , : @ , : \, :{, : }, : ~ , : , : |). Osmobitna verzija ASCIIstandarda koristi dodatnih 128

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    31/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 25

    znakova za reprezentovanje znakova nacionalnih alfabeta. Poto takvih znakovaima mnogo vie od 128, uvedene su kodne strane (code page) za grupe pojedinihnacionalnih alfabeta. Svaka kodna strana sadri 256 znakova, a da bi se kodoviznakova interpretirali u skladu sa kodnom stranom, neophodno je za tekst vezatipodatak o vaeoj kodnoj strani. Meutim, ni ovaj pristup ne nudi zadovoljavajuereenje (naroito ne za jezike poput kineskog). Zato je predloen UNICODEstandard, koji uvodi esnastobitne kodove za pojedine znakove. Prvih 256 kodovaodgovaraASCIIkodovima za kodnu stranicuLatin-1, a ostali kodovi su podeljeni uzone koje su dodeljene pojedinim nacionalnim alfabetima.

    Postojanje znakovnih kodova za cifre omoguuje da lokacije sadre brojeve

    ne samo u internom (binarnom) obliku, nego i u znakovnom obliku. Na primer,binarni broj:

    100000012

    moe biti smeten u jednu 8 bitnu lokaciju, ali i u 8 ovakvih lokacija:

    3116 3016 3016 3016 3016 3016 3016 3116

    U prethodnom primeru svaka binarna cifra je predstavljena svojim znakovnimkodom, pa zauzima jednu 8 bitnu lokaciju. Konverzija broja iz znakovnog u internioblik zahteva (1) da se iz znakovnog koda svake cifre odredi njena internapredstava i (2) da se interna predstava cifre smesti u odgovarajuu poziciju. To sepostie (1) oduzimanjem znakovnog koda cifre nula od znakovnog kodaposmatrane cifre datog broja i (2) mnoenjem tako dobijene razlike odgovarajuimstepenom broja 2 (baze brojnog sistema). Prethodni postupak se ponavlja zaznakovne kodove svih cifara datog broja idui sa leva u desno. Konverzija broja izinternog u znakovni oblik zahteva (1) da se za internu predstavu svake cifre odredinjen znakovni kod i (2) da se znakovni kodovi poreaju u odgovarajuemredosledu. To se postie (1) dodavanjem znakovnog koda cifre nula na vrednostsvake cifre iz interne predstave broja i (2) i smetanjem dobijenog znakovnog kodacifre u odgovarajuu lokaciju.

    Kodiranje vrednosti raznih tipova celim brojevima stvara mogunost

    vieznane interpretacije celih brojeva. Na primer, celi binarni broj 01001011 semoe interpretirati kao celi decimalni broj 75, kao realan decimalni broj 2.75, ali i

    kao znak K. Zbog razliite interpretacije, neophodna je konverzija, kada se vrednostjednog tipa dodeljuje promenljivoj drugog tipa. Na primer, ako se, bez konverzije,realnoj promenljivoj dodeli binarni broj 01001011, koji odgovara celomdecimalnom broju 75, tada e ova promenljiva dobiti vrednost koja odgovararealnom decimalnom broju 2.75, jer binarni broj 01001011 predstavlja mainskunormalizovanu formu za +1.01121. Zato je potrebno, pre dodele, izvritikonverziju binarne vrednosti 01001011 u binarnu vrednost 01110001. Ona

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    32/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)26

    odgovara binarnom broju +1.00126. To je priblina predstava binarnog broja+1.00101126. Znai, nakon konverzije, ova promenljiva e dobiti vrednost kojaodgovara realnom decimalnom broju 72.0, to je priblina vrednost realnogdecimalnog broja 75.0:

    7510=10010112=1.001011261.00126=7210=01110001mainska normalizovana forma

    2.6 PITANJA

    1. Zato je uvedena komplement predstava oznaenih brojeva (objasniti naprimeru sabiranja dva oznaena broja razliitih predznaka)?

    2. Zato se ignorie prenos kod aritmetike brojeva u komplement predstavi?3. Kakva je posledica injenice da je broj negativnih brojeva vei od broja

    pozitivnih brojeva u komplement predstavi?4. Kada je potrebna viestruka preciznost (objasniti na primeru)?5. Zato je potrebna normalizovana forma?6. Koji su delovi mainske normalizovane forme?7. Zato je uvedena konstanta podeavanja?8. Kako se obavlja aritmetika brojeva predstavljenih mainskom

    normalizovanom formom (objasniti na primeru)?9. Kako se obavljaju konverzije brojeva iz jednog u drugi brojni sistem

    (objasniti na primeru)?10. Kako se odreuje izlazak van opsega kod sabiranja i oduzimanja brojeva

    u komplement 2 predstavi?11. Zato su uvedene logike promenljive N, M, P i V?12. Kako se odreuje vaenje relacija za neoznaene i oznaene brojeve?13. Zato zakoni aritmetike ne vae za aritmetiku ogranienog broja cifara

    (objasniti na primeru)?14. Kako izgleda mainska normalizovana forma za binarni brojni sistem

    (objasniti na primeru)?15. Kako se konvertuje znakovna predstava broja u njegovu internu

    predstavu (objasniti na primeru)?16. Kako se konvertuje interna predstava broja u njegovu znakovnu

    predstavu (objasniti na primeru)?

    17. Kako se konvertuje vrednost iz jednog u drugi tip (objasniti na primeru)?

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    33/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 27

    3. ASEMBLERSKO PROGRAMIRANJE

    3.1 NIVOI PROGRAMIRANJA

    Asemblersko programiranje se zasniva na korienju asemblerskih naredbi.Ono se nalazi na viem nivou od mainskog programiranja, koje koristi mainskenaredbe. U ovom sluaju vii nivo podrazumeva apstrakciju (zanemarivanje). Tako,u primeru asemblerskog programiranja, apstrakcija znai zamenarivanje mainskihformata naredbi (ije poznavanje je neophodno za mainsko programiranje, a

    nebitno za asemblersko programiranje). Na jo viem nivou se nalazi programiranjeprocedurnim programskim jezicima, koje potpuno zanemaruje arhitekturu naredbi,jer se zasniva na vrlo uoptenom modelu raunara. Zato se procedurni programskijezici svrstavaju u grupu programskih jezika visokog nivoa, dok se mainski iasemblersli programski jezici svrstavaju u grupu programskih jezika niskognivoa.

    Programiranje programskim jezicima niskog nivoa je tee od programiranjaprogramskim jezicima visokog nivoa, jer zahteva detaljno poznavanje arhitekturenaredbi. Razmiljanje na nivou arhitekture naredbi odvlai panju od sutinereavanog problema i tako uzrokuje razne greke. Iz istih razloga su programi,pisani programskim jezicima niskog nivoa, manje pregledni i tei za odravanjenego programi pisani programskim jezicima visokog nivoa. Ali, programiranje na

    nivou arhitekture naredbi ima i svoje prednosti, jer dozvoljava korienje svihmogunosti raunara. Zato je programiranje programskim jezicima niskog nivoaneizbeno uvek kada je potrebno na poseban nain iskoristiti mogunosti raunara.

    Mainske jezike je opravdano koristiti samo ako ne postoje prevodioci zaasemblerske ili proceduralne programske jezike (asembleri i kompajleri).Poznavanje mainskih jezika je neophodno i za pravljenje pomenutih prevodilaca.

    Asemblerske jezike je opravdano koristiti, ne samo kada ne postojeprevodioci za proceduralne programske jezike (kompajleri) ili kada se ovakviprevodioci prave, nego i u sluajevima koji zahtevaju da se mogunosti raunaraiskoriste do krajnjih granica (za ta je neophodno vladanje arhitekturom naredbikoju sakrivaju programski jezici visokog nivoa). Radi olakavanja asemblerskogprogramiranja, razvoj asemblerskih programa je uputno zapoeti preciziranjemalgoritma. Za to je zgodno koristiti, kad god je mogue, sredstva tipina zaprogramske jezike visokog nivoa. Nakon preciziranja algoritma, panja se moepotpuno koncentrisati na izraavanje algoritma asemblerskim naredbama. Ovakavpristup asemblerskom programiranju smanjuje mogunost greke, jer u svakommomentu ograniava broj detalja o kojima se mora voditi rauna.

    Arhitektura naredbi, koju odraava svaki asemblerski jezik, se uvek odnosina odreen procesor, pa se zato svaki asemblerski jezik vezuje za neki procesor. Uovoj knjizi je to hipotetski procesor, nazvan KONCEPT, ije ime ukazuje da je

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    34/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)28

    njegova prevashodna namena da omogui shvatanje principa na kojima se zasnivarad raunara.

    3.2 ARHITEKTURA NAREDBI PROCESORA KONCEPT

    Memorija procesora KONCEPT ima do 232 lokacija, od kojih svaka sadri 32binarne cifre, nazvane biti, pri emu krajnje desni bit (oznaen kao B0) odgovaranajmanje znaajnoj binarnoj cifri, a krajnje levi bit (oznaen kao B31) odgovaranajznaajnijoj binarnoj cifri. Pristupanje memorijskoj lokaciji podrazumevapristupanje svim njenim bitima. Svaka memorijska lokacija ima dovoljno bita zaprihvatanje adrese bilo koje memorijske lokacije.

    Adrese svih moguih memorijskih lokacija obrazuju adresni prostorraunara KONCEPT. Adresni prostor odreuje najvei mogui broj memorijskihlokacija.

    Procesor KONCEPT ima ukupno 16 registara opte namene, oznaenih kaoR0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14 i R15. Svaki odregistara opte namene ovog procesora je organizovan kao memorijska lokacija.Procesor KONCEPT ima i status registar, koji je organizovan kao memorijskalokacija. Njegov (najmanje znaajan) bit SR0 sadri logiku promenljivu N (nula),bit SR1 logiku promenljivu M (minus), bit SR2 logiku promenljivu P (prenos), abit SR3 logiku promenljivu V (van opsega).

    Od naina adresiranja, procesor KONCEPT podrava neposredno, direktno,registarsko, indirektno i indeksno adresiranje.

    U repertoaru naredbi procesora KONCEPT nalaze se naredbe za celobrojnuaritmetiku: SABERI, SABERI_P, ODUZMI, ODUZMI_P i UPOREDI.

    SABERI je aritmetika naredba, koja omoguuje sabiranje cele vrednosti,odreene prvim (ulaznim) operandom (PO), sa celom vrednou, odreenomdrugim (ulaznim) operandom (DO), i odlaganje zbira u lokaciju, odreenu treim(izlaznim) operandom. Izvravanje ove naredbe ne menja vrednosti ulaznihoperanada. Ako jedan od ulaznih operanada ima vrednost 0, tada izvravanje ovenaredbe dovodi do prebacivanja vrednosti preostalog ulaznog operanda u lokacijuodreenu izlaznim operandom. Tabela sa slike 3.2.1 opisuje sabiranjekorespondentnih bita prvog i drugog operanda, oznaenih kao POi i DOi, pri emuse zbir i prenos oznaavaju kao Zi i P i+1, a prenos iz sabiranja prethodnog para bita

    kao Pi (i = 0, ... , 31):

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    35/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 29

    POi DOi Pi Zi Pi+10 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

    Slika 3.2.1 Tabela sabiranja parova bita

    (za P0 se smatra da je uvek 0). Ako se cifre iz svih pet kolona prethodne tabeleinterpretiraju kao logike vrednosti, tada iz prethodne tabele sledi vaenje sledeihlogikih funkcija:

    Zi = POi^DOi^PiPi+1 = ((POi|DOi)&Pi)|(POi&DOi)

    Nakon sabiranja, menjaju se vrednosti logikih promenljivih N, M, P i V. Njihovenove vrednosti odreuju logike funkcije:

    N = ~(Z31|Z30||Z0)M = Z31P = P32V = ((~PO31)&(~DO31)&Z31)|(PO31&DO31&(~Z31))

    (vrednost logike promenljive V odreuje logika funkcija izlaska van opsega kodsabiranja).

    SABERI_P je aritmetika naredba, koja omoguuje sabiranje cele vrednosti,odreene prvim (ulaznim) operandom (PO), sa celim vrednostima, odreenimdrugim (ulaznim) operandom (DO) i zateenim sadrajem logike promenljive P(prenosom), kao i odlaganje zbira u lokaciju, odreenu treim (izlaznim)

    operandom. Izvravanje ove naredbe ne menja vrednosti ulaznih operanada. Ovanaredba omoguuje sabiranje u viestrukoj preciznosti, jer u zbir ukljuuje izateeni prenos, preostao iza prethodnog sabiranja. Naredba SABERI_P se razlikujeod naredbe SABERI samo po tome to kao vrednost zateenog prenosa P0 uzimavrednost logike promenljive P.

    ODUZMI je aritmetika naredba, koja omoguuje oduzimanje od celevrednosti -umanjenika, odreene prvim (ulaznim) operandom (PO), cele vrednosti -umanjioca, odreene drugim (ulaznim) operandom (DO), i odlaganje razlike u

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    36/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)30

    lokaciju, odreenu treim (izlaznim) operandom. Izvravanje ove naredbe ne menjavrednosti ulaznih operanada. Tabela sa slike 3.2.2 opisuje oduzimanjekorespondentnih bita prvog i drugog operanda, oznaenih kao POi i DOi, pri emuse razlika i prenos oznaavaju kao Ri i Pi+1, a prenos iz oduzimanja prethodnog parabita kao Pi (i = 0, ... , 31):

    POi DOi Pi Ri Pi+10 0 0 0 00 0 1 1 10 1 0 1 10 1 1 0 11 0 0 1 01 0 1 0 01 1 0 0 01 1 1 1 1

    Slika 3.2.2 Tabela oduzimanja parova bita

    (za P0 se smatra da je uvek 0). Ako se cifre iz svih pet kolona prethodne tabeleinterpretiraju kao logike vrednosti, tada iz prethodne tabele sledi vaenje sledeihlogikih funkcija:

    Ri = POi^DOi^PiPi+1 = ((DOi|Pi)&(~POi))|(DOi&Pi)

    Nakon oduzimanja, menjaju se i vrednosti logikih promenljivih N, M, P i V.Njihove nove vrednosti odreuju logike funkcije:

    N = ~(R31|R30||R0)M = R31P = P32V = ((~PO31)&DO31&R31)|(PO31&(~DO31)&(~R31))

    (vrednost logike promenljive V odreuje logika funkcija izlaska van opsega kododuzimanja).

    ODUZMI_P je aritmetika naredba, koja omoguuje oduzimanje od celevrednosti, odreene prvim (ulaznim) operandom (PO), celih vrednosti, odreenihdrugim (ulaznim) operandom (DO) i zateenim sadrajem logike promenljive P(prenosom), kao i odlaganje razlike u lokaciju, odreenu treim (izlaznim)operandom. Izvravanje ove naredbe ne menja vrednosti ulaznih operanada. Ovanaredba omoguuje oduzimanje u viestrukoj preciznosti, jer u razliku ukljuuje i

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    37/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 31

    zateeni prenos, preostao iza prethodnog oduzimanja. Naredba ODUZMI_P serazlikuje od naredbe ODUZMI samo po tome to kao vrednost zateenog prenosaP0 uzima vrednost logike promenljive P.

    UPOREDI je aritmetika naredba koja omoguuje oduzimanje od celevrednosti, odreene prvim (ulaznim) operandom (PO), cele vrednosti, odreenedrugim (ulaznim) operandom (DO) i postavljanje vrednosti logikih promenljivihN, M, P i V u skladu sa razlikom. Ova naredba se razlikuje od aritmetike naredbeODUZMI jedino po tome to ne zahteva trei operand. Izvravanje naredbeUPOREDI ne menja vrednosti ulaznih operanada. Izvravanje ove naredbeomoguuje utvrivanje koja relacija vai izmeu vrednosti njenih ulaznih

    operanada, tako to, u skladu sa tom relacijom, postavlja vrednosti logikihpromenljivih N, M, P i V (za odreivanje vrednosti ovih logikih promenljivihkoriste se iste logike funkcije kao kod aritmetike naredbe ODUZMI).

    Procesor KONCEPT podrava logike naredbe: I, ILI i NE, koje omoguujupristupanje pojedinim bitima lokacija. Pristupanje pojedinim bitima lokacija jeosnovna namena i naredbi LEVO i DESNO, pa se one svrstavaju u istu grupu salogikim naredbama.

    I je logika naredba, koja omoguuje odreivanje logikog ikorespondentnih bita binarnih vrednosti, odreenih prvim (ulaznim) operandom(PO) i drugim (ulaznim) operandom (DO). Rezultat izvravanja ove naredbe seodlae u lokaciju, odreenu treim (izlaznim) operandom. Izvravanje ove naredbene menja vrednosti ulaznih operanada. Obrazovanja bita rezultata (Ri) od bitaulaznih operanda (POi i DOi, za i = 0, ... , 31), opisuje logika funkcija:

    Ri = POi&DOi

    Nakon izvravanja naredbe I, menjaju se i vrednosti logikih promenljivih N,M, P i V. Njihove nove vrednosti odreuju logike funkcije:

    N = ~(R31|R30||R0)M = R31P = 0V = 0

    ILI je logika naredba, koja omoguuje odreivanje logikog ilikorespondentnih bita binarnih vrednosti, odreenih prvim (ulaznim) operandom(PO) i drugim (ulaznim) operandom (DO). Rezultat izvravanja ove naredbe seodlae u lokaciju, odreenu treim (izlaznim) operandom. Izvravanje ove naredbene menja vrednosti ulaznih operanada. Obrazovanja bita rezultata (R i) od bitaulaznih operanda (POi i DOi, za i = 0, ... , 31) opisuje logika funkcija:

    Ri = POi|DOi

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    38/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)32

    Nakon izvravanja naredbe ILI, menjaju se i vrednosti logikih promenljivihN, M, P i V. Njihove nove vrednosti odreuju logike funkcije:

    N = ~(R31|R30||R0)M = R31P = 0V = 0

    NE je logika naredba, koja omoguuje negiranje bita binarne vrednosti,

    odreene prvim (ulaznim) operandom (PO). Rezultat izvravanja ove naredbe seodlae u lokaciju, odreenu drugim (izlaznim) operandom. Izvravanje ove naredbene menja vrednost ulaznog operanda. Obrazovanje bita rezultata (Ri) od bitaulaznog operanda (POi, za i = 0, ... , 31) opisuje logika funkcija:

    Ri = ~POi

    Nakon izvravanja naredbe NE, menjaju se i vrednosti logikih promenljivihN, M, P i V. Njihove nove vrednosti odreuju logike funkcije:

    N = ~(R31|R30||R0)M = R31P = 0V = 0

    LEVO je naredba, koja omoguuje pomeranje svih bita binarne vrednosti,odreene prvim (ulaznim) operandom (PO), za jedno mesto u levo. Rezultatizvravanja ove naredbe se odlae u lokaciju odreenu drugim (izlaznim)operandom. Izvravanje ove naredbe ne menja vrednost ulaznog operanda. Rezultatpomeranja u levo bita binarne vrednosti ulaznog operanda je jednak njenommnoenju brojem 2, pa naredba LEVO omoguuje mnoenje tim brojem.Obrazovanje bita rezultata (Ri) od bita ulaznog operanda (POi, za i = 0, ... , 30)opisuju logike funkcije:

    Ri+1 = POiR0 = 0

    Nakon izvravanja naredbe LEVO, menjaju se i vrednosti logikihpromenljivih N, M, P i V. Njihove nove vrednosti odreuju logike funkcije:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    39/275

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    40/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)34

    slike 3.2.3 sadri oznake svih uslovnih upravljakih naredbi i logike izraze kojiodreuju uslov svake od ovih naredbi:

    oznaka uslovne upravljake naredbe uslov uslovne upravljake naredbeSKOI_ZA_= ili SKOI_ZA_N NSKOI_ZA_ ili SKOI_ZA_NE_N ~NSKOI_ZA_< ili SKOI_ZA_P PSKOI_ZA_>= ili SKOI_ZA_NE_P ~PSKOI_ZA_> (~P)&(~N)SKOI_ZA_= ~(M^V)SKOI_ZA__> (~(M^V))&(~N)SKOI_ZA__ i SKOI_ZA_ i SKOI_ZA__

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    41/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 35

    POZOVI je bezuslovna upravljaka naredba, iji jedini operand odreujeadresu ciljne naredbe koja se izvrava nakon izvravanja naredbe POZOVI. Poredizmene redosleda izvravanja naredbi, izvravanje upravljake naredbe POZOVImenja i sadraj registra R15, tako to u njega smeta adresu naredbe koja sledi izanaredbe POZOVI. Adresa, smetena u registar R15, se naziva povratna adresa(return address), jer omoguuje da, nakon odlaska na izvravanje ciljne naredbe(koju odreuje operand naredbe POZOVI), usledi povratak na izvravanje naredbekoja sledi iza naredbe POZOVI. Jedini rezultat izvravanja upravljake naredbePOZOVI je izmena redosleda izvravanja naredbi i smetanje povratne adrese uregistar R15 (vrednosti uslovnih bita ostaju neizmenjene).

    3.3 ASEMBLERSKI JEZIK KONCEPT

    Asemblerski jezik odreuje pravila sastavljanja (sintaksu) i znaenje(semantiku) asemblerskih naredbi i programa. Ova pravila se mogu zadati preciznoi koncizno pomouEBNF(Extended Backus-Naur Form) notacije. U ovoj notacijiime pravila se navodi sa leve strane strelice (->), a sa desne strane stelice se navodesimboli koji opisuju generisanje nekog elementa jezika. Element jezika, koji jeizgenerisan na osnovu nekog pravila, se koristi umesto imena tog pravila. EBNFnotacija koristi razmak za radvajanje simbola, vertikalnu crtu (|) za razdvajanjealternativnih simbola, okrugle zagrade za grupisanje simbola, uglaste zagrade zaoznaavanje simbola koji se mogu pojaviti nijednom ili jednom i vitiaste zagradeza oznaavanje simbola koji se mogu pojaviti nijednom, jednom ili vie puta. Kadaznakovi, koje koristi EBNF notacija (strelica, razmak, vertikalna crta, okrugle,uglaste i vitiaste zagrade), predstavljaju simbole jezika, tada se oni navode izmeunavodnika. Primer pravila uEBNFnotaciji je naveden u nastavku:

    malo_slovo > a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|r|s||t|u|v|z|

    Prethodno pravilo oznaava da se jedno od slova, navedenih sa desne stranestrelice, koristi umesto imena malo_slovo. Analogno znaenje ima i pravilo cifra:

    cifra > 0|1|2|3|4|5|6|7|8|9

    Obrazovanje heksadecimalnog broja opisuje pravilo:

    heksadecimalni_broj > 0{cifra|A|B|C|D|E|F}

    (heksadecimalni broj zapoinje nulom, iza koje mogu da slede cifre ili velika slovaA, B, C, D, E, F). Podrazumeva se da heksadecimalni broj sadri najvie do 9 znakova.

    Obrazovanje labele opisuje pravilo:

    labela > malo_slovo{malo_slovo|cifra|_}

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    42/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)36

    Podrazumeva se da labela moe da sadri najvie do 30 znakova i da je obaveznojedinstvena u asemblerskom programu.

    Obrazovanje neposrednog operanda opisuje pravilo:

    neposredni_operand > heksadecimalni_broj|#labela

    Kao neposredni operand slui vrednost navedenog heksadecimalnog broja ili adresamemorijske lokacije koju oznaava navedena labela.

    Obrazovanje direktnog operanda opisuje pravilo:

    direktni_operand > labela

    Kao direktni operand slui memorijska lokacija koju oznaava navedena labela.Ako je direktni operand ulazni, sadraj ove lokacije predstavlja ulaznu vrednost, aako je direktni operand izlazni, ova lokacija se koristi kao izlazna lokacija.

    Obrazovanje registarskog operanda opisuje pravilo:

    registarski_operand > R(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)

    Kao registarski operand slui registar sa navedenom oznakom. Ako je registarskioperand ulazni, sadraj ovog registra predstavlja ulaznu vrednost, a ako jeregistarski operand izlazni, ovaj registar se koristi kao izlazna lokacija.

    Obrazovanje indirektnog operanda opisuje pravilo:

    indirektni_operand > [registarski_operand]

    Kao indirektni operand slui memorijska lokacija iju adresu sadri navedeniregistar. Ako je indirektni operand ulazni, sadraj adresirane lokacije predstavljaulaznu vrednost, a ako je indirektni operand izlazni, adresirana lokacija se koristikao izlazna lokacija.

    Obrazovanje indeksnog operanda opisuje pravilo:

    indeksni_operand > (heksadecimalni_broj|labela)[registarski_operand]

    Kao indeksni operand slui memorijska lokacija iju adresu odreuje zbir dvekomponente. Jedna komponenta je navedeni heksadecimalni broj ili adresamemorijske lokacije koju oznaava navedena labela, a druga komponenta je sadrajnavedenog registra. Ako je indeksni operand ulazni, sadraj adresirane lokacijepredstavlja ulaznu vrednost, a ako je indeksni operand izlazni, adresirana lokacija sekoristi kao izlazna lokacija.

    Obrazovanje ulaznog operanda opisuje pravilo:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    43/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 37

    ulaz -> neposredni_operand|direktni_operand|registarski_operand|indirektni_operand|indeksni_operand

    a obrazovanje izlaznog operanda opisuje pravilo:

    izlaz -> direktni_operand|registarski_operand|indirektni_operand|indeksni_operand

    Obrazovanje razmaka opisuje pravilo:

    razmak > { }

    (izmeu apostrofa se nalazi razmak).Obrazovanje nove linije opisuje pravilo:

    nova_linija > nova linija{ }

    (izmeu apostrofa se nalaze upravljaki znak nova linija i razmak).Obrazovanje obine asemblerske naredbe opisuje pravilo:

    naredba -> nova_linija [labela] razmak((SABERI|SABERI_P|ODUZMI|ODUZMI_P|I|ILI) razmak ulaz,ulaz,izlaz|(NE|LEVO|DESNO) razmak ulaz,izlaz|UPOREDI razmak ulaz,ulaz)

    Obrazovanje upravljake asemblerske naredbe opisuje pravilo:

    upravljaka_naredba -> nova_linija [labela] razmak(SKOI|SKOI_ZA_=|SKOI_ZA_N|SKOI_ZA_|SKOI_ZA_NE_N|SKOI_ZA_=|SKOI_ZA_NE_P|SKOI_ZA_>|SKOI_ZA_=|SKOI_ZA__>|SKOI_ZA__

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    44/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)38

    Asemblerske naredbe u mainski oblik prevodi asembler. Podrazumeva se daon smeta mainske oblike naredbi u memorijske lokacije. Meutim, asembleru semora izriito navesti da zauzme i eventualno inicijalizuje memorijske lokacije zapromenljive. To omoguuju asemblerske direktive. Asemblerska direktivaZAUZMI omoguuje zauzimanje vie memorijskih lokacija. Njen jedini operandodreuje broj memorijskih lokacija koje se zauzimaju. Asemblerska direktivaNAPUNI omoguuje zauzimanje jedne memorijske lokacije, iji sadraj odreuje

    jedini operand ove direktive. Obrazovanje asemblerskih direktiva opisuje pravilo:

    direktiva -> nova_linija [labela] razmak(ZAUZMI|NAPUNI) razmak heksadecimalni_broj

    Vano je uoiti da su direktive upuene asembleru (prevodiocu), a ne procesoru.Znai, direktive nisu izvrne (one izazivaju zauzimanje memorijskih lokacija, ukoje se smetaju podaci). Za razliku od njih, naredbe su upuene procesoru, pa su,prema tome, izvrne (njima odgovaraju memorijske lokacije koje sadre mainskeoblike naredbi).

    Obrazovanje tela asemblerskog programa opisuje pravilo:

    telo -> {direktiva|naredba|upravljaka_naredba}

    Uputno je da, u telu asemblerskog programa, sve direktive prethode naredbama,radi spreavanja da se sadraj memorijske lokacije, predviene za smetanjepodataka, upotrebi kao mainski oblik naredbe.

    Obrazovanje celog asemblerskog programa, ili njegovog zasebnog dela,opisuje pravilo:

    program -> nova_linija POETAK telo nova_linija KRAJ

    Podrazumeva se da izvravanje asemblerskog programa zapoinje od prveasemblerske naredbe iz njegovog tela i (sekvencijalno) tee ka poslednjojasemblerskoj naredbi iz njegovog tela, ako upravljake naredbe ne izmene redosledizvravanja naredbi.

    3.4 PRIMERI ASEMBLERSKIH PROGRAMA

    RAUNANJE NAJVEEG ZAJEDNIKOG DELIOCA

    Raunanje najveeg zajednikog delioca opisuje asemblerski program:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    45/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 39

    POETAKa NAPUNI 0C

    b NAPUNI 0Aponovo UPOREDI a,b

    SKOI_ZA_= krajSKOI_ZA_< manje

    vee ODUZMI a,b,aSKOI ponovo

    manje ODUZMI b,a,bSKOI ponovo

    kraj SKOI krajKRAJ

    Telo asemblerskog programa zapoinje opisom zauzimanja i inicijalizacije (NAPUNI)dve memorijske lokacije, za promenljive a i b. Zatim sledi opis poreenja (UPOREDI)vrednosti promenljivih a i b. Ako su pomenute vrednosti jednake, promenljive a i bsadre najvei zajedniki delilac, pa sledi odlazak (SKOI_ZA_=) u beskonanu petlju,koja oznaava kraj programa. Ako je vrednost promenljive a manja od vrednostipromenljive b (SKOI_ZA_

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    46/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)40

    opsega (SKOI_ZA_P), to predstavlja greku i oznaava se smetanjem vrednosti 1 upromenljivu greka.

    IZLAZAK VAN OPSEGA KOD OZNAENIH CELIH BROJEVA

    Otkrivanje izlaska van opsega, kod sabiranja oznaenih celih brojeva udvostrukoj preciznosti, opisuje asemblerski program:

    POETAKa_donji NAPUNI 0FFFFFFFFa_gornji NAPUNI 0FFFFFFFF

    b_donji NAPUNI 0FFFFFFFF

    b_gornji NAPUNI 0FFFFFFFFs_donji ZAUZMI 01s_gornji ZAUZMI 01greka NAPUNI 0

    SABERI a_donji,b_donji,s_donjiSABERI_P a_gornji,b_gornji,s_gornjiSKOI_ZA_V van_opsegaSKOI kraj

    van_opsega SABERI 01,0,grekakraj SKOI kraj

    KRAJ

    Jedina razlika ovog i prethodnog programa je u nainu otkrivanja izlaska vanopsega, nakon sabiranja znaajnijih delova vrednosti promenljivih a i b. U sluajusabiranja oznaenih celih brojeva, na izlazak van opsega ukazuje postavljenost

    logike promenljive V (SKOI_ZA_V).RUKOVANJE MAINSKOM NORMALIZOVANOM FORMOM

    Rukovanje mainskom normalizovanom formom binarne predstave realnihbrojeva zahteva pristupanje pojedinim bitima lokacija. Ako se za mainskunormalizovanu formu koristi cela lokacija (32 bita), tada prvi bit s leva moe dasadri predznak broja, narednih 7 bita mogu da sadre podeeni eksponent (zapodeavanje se koristi konstanta 27-1=10000002), a preostalih 24 bita mogu dasadre 24 manje znaajna bita frakcije (najznaajniji bit frakcije je uvek 1 i neprikazuje se). Sledi primer broja predstavljenog u upravo opisanoj mainskojnormalizovanoj formi:

    11000000100000000000000000000000 =-1.10000000000000000000000020 =-1.510

    Zauzimanje memorijske lokacije za realnu promenljivu i smetanje u njuprethodne vrednosti u mainskoj normalizovanoj formi, opisuje narednaasemblerska direktiva:

    realan NAPUNI 0C0800000

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    47/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 41

    Izmenu samo predznaka vrednosti prethodne realne promenljive, opisujeasemblerska naredba:

    I realan,07FFFFFFF,realan

    a vraanje predznaka na prethodnu vrednost, opisuje asemblerska naredba:

    ILI realan,080000000,realan

    Izdvajanje eksponenta i njegovo pomeranje za 24 mesta u desno, radi njegovepripreme za aritmetiku eksponenata, opisuju asemblerske naredbe:

    I realan,07F000000,R1SABERI 018,0,R2

    ponovo DESNO R1,R1ODUZMI R2,01,R2SKOI_ZA_NE_N ponovo

    RUKOVANJE LOGIKIM VREDNOSTIMA

    Dodelu (logike) vrednosti relacionog izraza dvema promenljivim, opisujesekvenca programa, izraena programskim jezikom C:

    int a,b;

    char c,d;...c = (a!=b);d = c;

    Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:

    a ZAUZMI 01b ZAUZMI 01c ZAUZMI 01d ZAUZMI 01

    ...SABERI 01,0,cUPOREDI a,bSKOI_ZA_ daljeSABERI 0,0,c

    dalje SABERI c,0,d

    (konstante 01 i 0 predstavljaju vrednosti logikih promenljivih c i d).

    RAUNANJE VREDNOSTI CELOBROJNOG IZRAZA

    Dodeljivanje vrednosti celobrojnog izraza promenljivoj opisuje sekvencaprograma, izraena programskim jezikom C (podrazumeva se da izraz sadri samoneoznaene cele vrednosti, za koje izlazak van opsega nije mogu):

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    48/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)42

    int a,b,c;...c = (a-b)*2+(a+b)/2;

    Prethodnoj sekvenci programa odgovara sekvenca asemblerskog programa:

    a ZAUZMI 01b ZAUZMI 01c ZAUZMI 01

    ...ODUZMI a,b,cLEVO c,cSABERI a,b,R0DESNO R0,R0SABERI c,R0,c

    RUKOVANJE NIZOVIMA

    Brojanje dana sa srednjom dnevnom temperaturom iz posmatranog intervalatemperatura, i to u odreenom periodu godine, opisuje sekvenca programa, izraenaprogramskim jezikom C:

    int t[365];int prvi,poslednji,donja,gornja,i;int broj = 0;...for (i=prvi;i=donja)&&(t[i]

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    49/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 43

    t ZAUZMI 016Dprvi ZAUZMI 01poslednji ZAUZMI 01donja ZAUZMI 01gornja ZAUZMI 01

    broj NAPUNI 0...SABERI prvi,0,R0SKOI provera

    ponovo UPOREDI t[R0],donjaSKOI_ZA__< naredniUPOREDI t[R0],gornjaSKOI_ZA__> naredniSABERI broj,01,broj

    naredni SABERI R0,01,R0provera UPOREDI R0,poslednjiSKOI_ZA_

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    50/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)44

    TUMAENJE NAINA ADRESIRANJA ZA UPRAVLJAKENAREDBE

    Jedini ulazni operand svake upravljake naredbe odreuje adresu ciljnenaredbe od koje se (eventualno) nastavlja izvravanje programa nakon izvravanjaupravljake naredbe. Kao pomenuta adresa mogu posluiti: vrednost neposrednogoperanda, sadraj registra i sadraj memorijske lokacije koju oznaavaju indirektniili indeksni operand. Meutim, sadraj memorijske lokacije koju oznaava direktnioperand ne moe biti interpretiran kao adresa, jer ova lokacija sadri mainskunaredbu. Zato direktni operand zahteva poseban tretman, kada se navede uz

    upravljaku naredbu. Poto je za upravlja

    ke naredbe interesantna adresa, a nesadraj memorijske lokacije koju oznaava labela iz direktnog operanda, prirodno je

    da se direktni operand interpretira kao neposredni, kada se navede uz upravljakunaredbu.

    3.5 POTPROGRAM

    Potprogram omoguuje opisivanje izraunavanja vrednosti, odnosnoopisivanje rukovanja strukturama podataka (vrednostima sloenih tipova). Opispotprograma prate njegovi pozivi. Razdvajanje opisa i poziva potprogramaomoguuje korienje (poziv) potprograma samo na osnovu poznavanja njegovenamene, a bez poznavanja njegovog opisa. To je naroito vano za postepen razvojprograma, jer znai da se svaki potprogram moe koristiti (pozivati) i pre dovrenja

    njegovog opisa, pod uslovom da je njegova namena precizirana.Optost opisu potprograma daje upotreba parametara, koja omoguuje da sepotprogram odnosi na sve vrednosti iz skupa vrednosti, odreenog tipomparametara. Svako izvravanje potprograma se odnosi na konkretne vrednosti ovihparametara, koje se nazivaju argumenti. Njih odreuje poziv potprograma. Doizvravanja potprograma dolazi nakon njegovog poziva. U pozivu potprograma seodredi povratna adresa, od koje se nastavlja izvravanje programa, nakonizvravanja potprograma. Izvravanje potprograma zapoinje u ulaznoj taki opisapotprograma, a zavrava u izlaznoj taki ovog opisa. U ulaznoj taki potprogramase zauzimaju lokacije za lokalne promenljive potprograma, a u izlaznoj takipotprograma se ove lokacije oslobaaju. Lokalne promenljive potprograma senazivaju i dinamike, jer postoje samo u toku izvravanja potprograma, za razliku

    od statikih ili globalnih promenljivih koje postoje za sve vreme izvravanjaprograma i koje su definisane van potprograma. Podruje vaenja (scope) ili opsegili doseg lokalnih promenljivih je od mesta njihove definicije do kraja potprograma,a podruje vaenja globalnih promenljivih je od mesta njihove definicije do krajaprograma.

    Potprogrami se dele na funkcije i procedure. Funkcije omoguujuopisivanje izraunavanja vrednosti, odnosno preuzimanje vrednosti promenljive.One imaju jedan ili vie ulaznih parametara (sa statusom lokalnih promenljivih) i

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    51/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 45

    jednu povratnu vrednost. Povratna vrednost funkcije se koristi u izrazu, koji sadripoziv funkcije.

    Procedure omoguuju opisivanje izmena vrednosti promenljivih. One moguda imaju vie ulaznih parametara, ali i vie ulazno-izlaznih parametara.

    Raunanje najveeg zajednikog delioca moe biti opisano u obliku funkcije.U nastavku je naveden ovakav opis funkcije, izraen programskim jezikom C:

    int nzd(int a,int b){while (a!=b)if (a>b)a = a-b;

    elseb = b-a;return(a);};

    Ulazni parametri a i b, opisa ove funkcije, odreuju vrednosti za koje se raunanajvei zajedniki delilac. Najvei zajedniki delelilac se vraa kao povratnavrednost funkcije nzd. Ako su x, y i z celobrojne promenljive, tada poziv funkcijenzd:

    z = nzd(12,10);

    dodeljuje promenljivoj z najvei zajedniki delilac celih brojeva 12 i 10, a poziv istefunkcije:

    z = nzd(x,y);

    dodeljuje promenljivoj z najvei zajedniki delilac vrednosti promenljivih x i y.Raunanje najveeg zajednikog delioca moe biti opisano i u obliku

    procedure. U nastavku je naveden ovakav opis procedure, izraen programskimjezikom C:

    void nzd(int a,int b,int *c){while (a!=b)if (a>b)a = a-b;elseb = b-a;

    *c = a;};

    Ulazni parametri a i b, opisa ove procedure, odreuju vrednosti za koje se raunanajvei zajedniki delilac. Najvei zajedniki delilac se dodeljuje ulazno-izlaznomparametru c. Ako su x, y i z celobrojne promenljive, tada poziv procedure nzd:

    nzd(12,10,&z);

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    52/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)46

    dodeljuje promenljivoj z najvei zajedniki delilac celih brojeva 12 i 10, a poziv isteprocedure:

    nzd(x,y,&z);

    dodeljuje promenljivoj z najvei zajedniki delilac vrednosti promenljivih x i y.Potprogrami nisu iskljuivo vezani za programske jezike visokog nivoa.

    Opisi i pozivi potprograma se mogu javiti i u asemblerskom programu, ali su detaljiopisivanja i poziva potprograma preputeni programeru. On se mora pobrinuti za

    prenos argumenata, za odlazak na izvravanje potprograma i za povratak izpotprograma, nakon njegovog izvravanja. Asemblerski jezik KONCEPT, olakavazadatak programera, jer sadri upravljaku naredbu POZOVI, koja omoguuje, nesamo odlazak na izvravanje potprograma, nego i smeta povratnu adresu u registarR15. Zahvaljujui tome, povratak iz potprograma omoguuje upravljaka naredbaSKOI, ako se, kao njen operand, navede oznaka registra R15. Preostali registriprocesora KONCEPT mogu biti iskorieni za prenos argumenata, za ta jeneophodna usaglaenost opisa i poziva potprograma.

    Uz pretpostavku da se registar R1 koristi za smetanje vrednosti prvogulaznog parametra, registar R2 za smetanje vrednosti drugog ulaznog parametra, aregistar R0 za smetanje povratne vrednosti funkcije, asemblerski ekvivalent opisafunkcije nzdizgleda:

    nzd UPOREDI R1,R2SKOI_ZA_= krajSKOI_ZA_< manje

    vee ODUZMI R1,R2,R1SKOI nzd

    manje ODUZMI R2,R1,R2SKOI nzd

    kraj SABERI R1,0,R0SKOI R15

    Ako su za celobrojne promenljive x, y i z zauzete i inicijalizovane memorijskelokacije:

    x NAPUNI 09y NAPUNI 03z ZAUZMI 01

    tada asemblerske naredbe:

    SABERI 0C,0,R1SABERI 0A,0,R2POZOVI nzd SABERI R0,0,z

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    53/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 47

    opisuju poziv asemblerskog ekvivalenta funkcije nzd, u kome se izrauna najveizajedniki delilac celih brojeva 10 i 12, a povratna vrednost ove funkcije dodelipromenljivoj z. U prethodnom primeru, u registre R1 i R2 se smeste argumenti preodlaska na izvravanje potprograma, a nakon povratka iz potprograma sadrajregistra R0 (povratna vrednost) se smesti u promenljivu z. Slino, asemblerskenaredbe:

    SABERI x,0,R1SABERI y,0,R2POZOVI nzd

    SABERI R0,0,z

    opisuju poziv asemblerskog ekvivalenta funkcije nzd, u kome se rauna najveizajedniki delilac vrednosti promenljivih x i y, a povratna vrednost ove funkcijedodeli promenljivoj z.

    Uz pretpostavku da se registar R1 koristi za smetanje vrednosti prvogulaznog parametra, registar R2 za smetanje vrednosti drugog ulaznog parametra, aregistar R3 za smetanje adrese treeg ulazno-izlaznog parametra, asemblerskiekvivalent opisa procedure nzdizgleda:

    nzd UPOREDI R1,R2SKOI_ZA_= krajSKOI_ZA_< manje

    vee ODUZMI R1,R2,R1SKOI nzd

    manje ODUZMI R2,R1,R2SKOI nzd

    kraj SABERI R1,0,[R3]SKOI R15

    Ako su za celobrojne promenljive x, y i z zauzete i inicijalizovane memorijskelokacije:

    x NAPUNI 09y NAPUNI 03z ZAUZMI 01

    tada asemblerske naredbe:

    SABERI 0C,0,R1SABERI 0A,0,R2SABERI #z,0,R3POZOVI nzd

    opisuju poziv asemblerskog ekvivalenta procedure nzd, u kome se izrauna najveizajedniki delilac celih brojeva 10 i 12 i dodeli ulazno-izlaznoj promenljivoj z. Uprethodnom primeru, pre odlaska na izvravanje potprograma, u registre R1 i R2 se

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    54/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije)48

    smeste vrednosti iji najvei zajedniki delilac se rauna, a u registar R3 se smestiadresa memorijske lokacije, namenjene za prihvatanje izraunatog najveegzajednikog delioca. Slino, asemblerske naredbe:

    SABERI x,0,R1SABERI y,0,R2SABERI #z,0,R3POZOVI nzd

    opisuju poziv asemblerskog ekvivalenta procedure nzd, u kome se izrauna najveizajedniki delilac vrednosti promenljivih x i y i dodeli ulazno-izlaznoj promenljivoj

    z.3.6 MAKRO

    Korienje potprograma uvek poveava broj izvravanih naredbi, ime seproduava vreme izvravanja programa. Pored toga, korienje potprograma nekadizaziva i poveanje duine programa, to znai da treba vie memorijskih lokacijaza smetanje mainskog oblika programa. Prethodno se moe pokazati na primeruopisa i poziva asemblerskog ekvivalenta procedure nzd:

    x NAPUNI 09y NAPUNI 03z ZAUZMI 01

    ...

    nzd UPOREDI R1,R2SKOI_ZA_= krajSKOI_ZA_< manje

    vee ODUZMI R1,R2,R1SKOI nzd

    manje ODUZMI R2,R1,R2SKOI nzd

    kraj SABERI R1,0,[R3]SKOI R15...SABERI x,0,R1SABERI y,0,R2SABERI #z,0,R3POZOVI nzd

    Ako bi poziv potprograma bio zamenjen modifikovanim opisom potprograma, tadabi prethodnoj sekvenci asemblerskog programa odgovarala sledea sekvenca:

  • 7/31/2019 Arhitrktura_Racunara FTN NS

    55/275

    Miroslav Hajdukovi - Arhitektura raunara (pregled principa i evolucije) 49

    x NAPUNI 09y NAPUNI 03z ZAUZMI 01

    ...nzd UPOREDI x,y

    SKOI_ZA_= krajSKOI_ZA_< manje

    vee ODUZMI x,y,xSKOI nzd

    manje ODUZMI y,x,ySKOI nzd

    kraj SABERI x,0,z

    (posledice izvravanja prethodne dve sekvence asemblerskog programa nisuidentine, jer poslednja sekvenca, za razliku od prve, menja vrednosti promenljivihx i y).

    Iz prethodnih primera sledi da s