Knjiga

Uvod u arhitekturu računarskih sistema

Sadržaj
SADRŽAJ...................................................................................1 1. POVEZIVANJE KOMPONENATA RAČUNARKOG SISTEMA..............3
MAGISTRALA..................................................................................................3 1.2 ZAJEDNIČKA MAGISTRALA.........................................................................8 1.3 PARALELNI SISTEM...................................................................................9

2. NAČINI OBRADE PODATAKA..................................................12
2.1. Konceptualni model računara.................................................................12 2.2. Režimi rada računara.............................................................................13 2.3 Paketna obrada......................................................................................13 2.4 Višeprogramska obrada(multiprogramiranje)..........................................15 2.5 Paralelna obrada...................................................................................19

3. MEMORIJA............................................................................ 19
3.1 Osnovni pojmovi.....................................................................................19 3.2 Parametri memorije................................................................................20 3.3. Struktura memorijskog sistema..............................................................21 3.4.Registarska memorija.............................................................................24 3.6. Operativna memorija.............................................................................25 3.7 Asocijativna memorija.............................................................................29 3.8 Keš memorija.........................................................................................31 3.9 VIRTUELNA MEMORIJA...........................................................................34

4.PROCESOR............................................................................ 38
4.1 Arhitektura racunarskih sistema..............................................................38 4.2 Registri procesora..................................................................................42

4.3 Upravljačka jedinica................................................................................47 4.4. Instrukcije i njihovo izvršavanje..............................................................50 4.5 Načini adresiranja...................................................................................54 4.6. Aritmetičko-logička jedinica ...............................................................59 4.7 Unarne, binarne i složene operacije ........................................................60 4.8 Aritmetičke operacije i njihova realizacija................................................61

5.ASEMBLER............................................................................63
5.1 Simboličko mašinsko programiranje........................................................63 5.2 Asemblerski jezik mikroprocesora i8086..................................................67 5.3. Asemblerske direktive...........................................................................69 5.4. TIPOVI ASEMBLERSKIH INSTRUKCIJA.......................................................71 5.7. Logičke instrukcije ................................................................................80 5.8 Instrukcije pomjeranja i kruženja ............................................................82 5.9. ULAZNO-IZLAZNE INSTRUKCIJE...............................................................84 5.10. INSTRUKCIJE ZA RAD SA NIZOVIMA.......................................................85 5.11. Instrukcije za upravljanje tokom programa............................................91 Instrukcije uslovnog i bezuslovnog skoka......................................................91 Instrukcije za organizaciju ciklusa................................................................92 5.12.Potprogrami.........................................................................................92 5.13. Problemi korištenja potprograma.........................................................97 5.14. Instrukcije prekida...............................................................................98 5.15. Ostale Instrukcije.................................................................................99 5.16. Primjeri programa u asembleru............................................................99

2

1. POVEZIVANJE KOMPONENATA RAČUNARKOG SISTEMA
MAGISTRALA
Arhitektura računara Arhitektura računara opisuje njegovu strukturu, interno funkcioniranje koje uključuje skup registara, operativnu memoriju, skup instrukcija i načine adresiranja operanada, načine predstavljanja i formate podataka, organizaciju ulaza-izlaza i dr. Za realizaciju savremenih računarskih sistema koriste se slijedeća dva principa: - modularna organizacija (organizacija korišćenjem modula) - povezivanje modula pomoću magistrale. Princip modularne organizacije ili modularni princip sastoji se u gradnji računarskih i upravljačkih sistema na osnovu skupa modula. Pod modulom (blokom) podrazumijeva se komponenta koja predstavlja konstrukciono i električno zaokružen računski ili upravljački uređaj, sposoban da samostalno ili u sprezi sa drugim modulima rješava određene zadatke. Primjer. Karakterističan modul kod personalnih računara je tzv. videokartica, tj. ploča elektronike namijenjena upravljanju ekranom i prikazu podataka na njemu. Modularni princip u gradnji računara, posebno personalnih i mikroračunara, omogućava da se od različitih modula izgradi čitava familija računara koji se međusobno po funkcionalnim i drugim karakteristikama. Time je omogućeno postepeno povećanje računske mogućnosti, kao i poboljšanje sistema kada se za to ukaže potreba. Ovdje se kao moduli tretiraju i pojedini periferni uređaji priključeni na računarski sistem. Povezivanje pomoću magistrale Mogu se izdvojiti dva principa povezivanja modula ili funkcionalnih dijelova u sisteme: - princip direktnih veza, kada se koristi povezivanje svakog modula sa svakim i - magistralni princip, koji koristi isti skup signala za povezivanje modula, čime se minimizuje broj veza između modula (blokova). Struktura računarskog sistema određena je prije svega načinom organizacije veza među modulima. U većini slučajeva moduli računarskog sistema povezuju se magistralama. Kaže se, takođe, da se koristi magistralni princip, koji obezbjeđuje razmjenu podataka između funkcionalnih i konstrukcionih modula

3

kada se moduli povezuju zajedničkom magistralom koja objedinjuje sve ulazne i izlazne linije. Magistrala ili sabirnica je komunikacioni put sastavljen od grupe linija (električnih provodnika) kroz koje se binarnim signalima prenose podaci između pojedinih funkcionalnih cjelina u računaru. Magistrala povezuje centralni procesor sa operativnom memorijom.1. onda se šalje grupa po grupa bitova u uzastopnim vremenskim intervalima. magistrala podataka i upravljačka magistrala (sl.različitog nivoa. Magistrale se koriste kako za povezivanje modula računarskog sistema tako i za povezivanje modula unutar pojedinih funkcionalnih cjelina. Taj se način prenosa naziva vremenski multipleks. logička „1“ ili stanje visoke impedance (treće stanje). Za vezu sa svim vrstama uređaja koristi se isti skup signala. Važno je takođe i to što i centralni procesor i periferije koriste isti način povezivanja i međusobnog komuniciranja.). ove grupe linija nazivaju se adresna magistrala. Ako za svaki bit podataka postoji posebna linija vrši se paralelni prenos. Na slici 1.1. 1. spoljnim memorijama i svim periferijama. zajedničkom magistralom. Npr. Važna karakteristika magistrale je daje to dijeljeni dio (zajednički korišćeni) resurs. Saglasno s ovim. Magistrale koje se koriste unutar procesora nazivaju se spoljne ili sistemske magistrale. Svakoj liniji dodijeljeno je konkretno značenje ili funkcija.. To su posebna elektronska kola čiji izlaz može biti logička „0“. pokazan je način povezivanja pojedinih komponenata računara tzv. magistrala ima velikog značaja i kod prenosa podataka između registara unutar centralnog procesora. U najprostijem slučaju prenosi se bit po bit podataka što predstavlja serijski prenos. Ako to nije slučaj. operativnu memoriju i ulazno-izlazni podsistem. kada je izlazna linija praktično isključena sa magistrale i nema uticaja na njen pad. adresne linij i upravljačke linije. Posljedica toga je da i za pristup memoriji i za pristup spoljnim uređajima (periferijama) koristi isti skup instrukcija procesora. Pri tome se obezbjeđuje povezivanje modula bez uticaja jednog na drugi tako što se linije podataka priključuju na maigstralu preko kola sa tri stanja. Sistemska magistrala prije svega povezuje glavne komponente računara – centralni procesor. 4 . Sve linije magistrale mogu se klasifikovati u tri funkcionalne grupe: linije podataka.

Međutim. Adresna magistrala omogućava da se svakoj memorijskoj lokaciji. svakom ulazno-izlaznom portu i drugim registrima interfejsa dodijeli sopstvena adresa. a formiraju se adresnom aritmetičkom jedinicom. Širina adresne magistrale određuje maksimalni mogući kapacitet memorijskog sistema. što omogućava opseg adresiranja od 0 do 65536. Oni su jednosmjerni i vode se iz procesora ka uređajima. Podaci za adresu (signali na adresnm linijama) obično dolaze od upravljačkih (radnih) registara centralnog procesora. Najmanja širina iznosi 16 bitova. Magistrala podataka 5 .Adresna magistrala Adresne linije koriste se za imenovanje (onačavanje) izvora ili odredišta podataka. 24 ili čak 32 adresne linije. savremeni procesori zahtijevaju operativnu memoriju znatno većeg obima. zbog čega adresna magistrala ima 20.

ili 32. 6 . Npr. Cilj je određivanje jednog modula. Radi zaštite centralnog procesora potrebno je odvojiti unutrašnju magistralu podataka od spoljne magistrale podataka na koju se priključuju operativna memorija i periferni uređaji. Karakteristični upravljački signali su: . koji predstavlja kolo sa tri stanja. Vodeći modul može zatim inicirati prenos podataka sa nekim drugi modulom koji djeluje kao prateći (potčinjeni) za tu konkretnu razmjenu. Većina upravljačkih signala formira se u procesoru ili je potrebna centralnom procesoru . Upravljački signali služe za komuniciranje funkcionalnih jedinica (modula) priključenih na magistralu tako što prenose komandne signale koji specificiraju operacije koje treba da se obave. 16.dobiti magistralu na korišćenje. Upravljanje magistralom Kada je na magistrali priključeno više modula. Upravljačka magistrala Upravljačku magistralu čine linije se koriste za upravljanje pristupom i korištenjem linija podataka i adresnih linija.ulazni signali zahtijeva za prekid ili za oslobađanje magistrale radi direktnog pristupa memoriji. To može biti poseban modul ili dio centralnog procesora. .sinhronizacioni signali. jer direktna električna veza dva izlaza ometa i može oštetiti izlazna kola.signali o stanju procesora i dr. tako da na upravljačkoj magistrali ima signala ka procesoru i signala iz procesora. Ako su nekom modulu potrebni podaci od drugog modula on mora: .prenijeti podatke preko magistrale. . a takođe i taktnu (sinhronizacionu) informaciju između tih modula.dobiti magistralu na korišćenje. .signali za dovođenje mikroprocesora u početno stanje. Za to se koristi bafer magistrale podataka. potrebno je da postoji poseban funkcionalni blok za upravljanje magistralom. Sadrži linije kojima se prenose bitovi podataka u jednom ili drugom smjeru.signali koji definišu da li se pristupa memoriji ili ulazno-izlaznim uređajima. Da bi jedan modul prenio podatke drugom modulu on mora uraditi sljedeće: . kao vodećeg (glavnog). bilo centralnog procesora bilo ulazno-izlaznog modula.Magistrala podataka obezbjeđuje put za prenos podataka između modula sistema. . jer više od jednog modula može zahtijevati magistralu. Ovaj se blok naziva kontroler magistrale ili arbitar magistrale. Broj linija za podatke iznosi 8. Ovo je kolo neophodno i kada izlaze dva različita modula treba povezati sa ulazom trećeg uređaja. a služe za prenos podataka između predajnog i prijemnog uređaja. .

prenijeti zahtijev drugom modulu. .upravlja prenosom podataka između centralnog procesora i perifernog uređaja. Svaki takav kontroler raspolaže mogućnošću adresiranja svih modula ili uređaja kojima on upravlja. Interfejs Interfejs je elektronički blok preko koga se kontroleri periferija priključuju na magistralu. Interfejs magistrale obavlja sljedeće funkcije: . a zatim čekati da drugi modul pošalje zahtjevane podatke. . . Decentralizovano upravljanje znaći da magistralom može upravljati svaki modul koji je prije dobio na korišćenje magistralu. Ovim centralni procesor dobija mogućnost komuniciranja sa velikim skupom uređaja koji koriste asinhroni prenos podataka. Interfejs dozboljava i da se grade sistemi u kojima periferni uređaji mogu formirati signale za programske prekide koje opslužuje centralni procesor. 7 . Često je interfejs sastavni dio samog kontrolera periferije. Pri tome adresne linije služe da predajni (vodeći) modul selektuje (adresira) prijemni (prateći) modul sa kojim treba da uspostavi vezu.šalje u centralni procesor informaciju o stanju perifernog uređaja. Upravljanje magistralom može biti centralizovano ili decentralizovano. Pri tome se kod postojanja više zahtijeva istovremeno magistrala dodjeljuje na osnovu uvedenog sistema prioriteta. U drugom slučaju prenosom podataka po magistrali upravlja kontroler magistrale. da bi centralni procesor morao preko njega da poziva konkretni periferni uređaj.dekodira kod selektovanog uređaja dobijen od centralnog proceora ili uređaja koji je dobio upravljanje magistralom i odaziva se samo kada taj kod odgovara selektovanom uređaju.dekodira upravljački kod dobijen od centralnog procesora i inicira izvršenje operacija.

2 ZAJEDNIČKA MAGISTRALA Sistem sa zajedničkom magistralom jeste struktura u kojoj se povezivanje i komunikacija vrše preko jedne zajedničke magistrale jedinstvenim nacinom adresiranja svih priključenih uredjaja. Sa slike se vidi da je ovaj način povezivanja pogodan za ulazno-izlazni prenos direktnim pristupom memoriji.1. Prenos podataka na magistrali je paralelan. Na slici 1.izlaznom magistralom.2 prikazan je i način povezivanja dvijema magistralama gdje se obe koriste kao zajednicke magistrale. 8 . Slika 1.2 Povezivanje komponenata računskog sistema dvijema magistralama Pored korištenja jedne zajedničke magistrale. Na slici 1. moguće je povezivanje modula preko vile magistrala. Pri tome druga magistrala služi za povezivanje preko posebnog mosta(bloka kojim se povezuju dvije magistrale) većeg broja različitih periferija.3 prikazana je arhitektura sa dvijema magistralama: memoriskom magistralom i ulazno.

3 PARALELNI SISTEM Za mnoge primjene. Kod vremenskog multipleksiranja ne postoji striktna razlika između linija adresne magistrale. potrebni su racunari koji mogu istovremeno obrađivati veliki broj podataka. Ovakvi računarski sistemi nazivaju se paralelni sistemi sistemi za paralelnu obradu ili multiprocesori. Radi toga se razvijaju računari koji će u sebi sadrzati veliki broj procesnih elemenata-procesora manje ili veće složenosti. -Multiprocesor sa distribuiranom detaljnom memorijom. služe za prenos podataka a u drugom za prenos adrese. Ovi će sistemi imati više desetina. Obrada na multiprocesorima naziva se paralelna obrada.6): -Multi procesor sa detaljnom memorijom. Karakteriše se time što određene linije u jednom vremenskom intervalu osnovnog ciklusa.Za smanjenje broja izvoda (ili broja linija) magistrale koristi se način koji se naziva multipleksiranje ili vremenski multipleks. koji se definiše posebnim taktnim signalom.magistrale podataka i upravljacke magistrale. MULTIPROCESOR SA DETALJNOM MEMORIJOM 9 . na primjer za prepoznavanje likova ili obradu signala. -Multiprocesor sa distribuiranom memorijom.4 – 1. Mogu se izdvojiti slijedece 3 katakteristicne arhitetkture za multi procesora( slike 1. 1.više stotina i čak više hiljada procesnih elemenata koji će isto vremeno biti angazovani na riješavanju jednog istog problema.

MULTIPROCESOR SA DISTRIBUIRANOM MEMORIJIM Na slici 1. tj. Da bi se izbjeglo usko grlo koje čine magistrala i djeljena memorij.5 prikazana je arhitektura multiprocesora sa distribuiranom memorijom. Ovaj se multiprocesor takođe naziva i multiprocesor sa prenosom poruka.svaki procesni element ima sobstvenu operativnu memoriju zbog zoga se ovi sistemi nazivaju slabo spregnuti multiprocesorski sistemi ili multiračunari. Namijenjemi su za masivnu paralelnu obradu. što uprošcava programiranje. Ovdje se djeljena memorija koristi za razmijenu podataka međuprocesnim jedinicama. Osnovni nedostatak ove arhitekture jeste taj što se sa povećanjem broja procesni elemenata povećava sadrzaj na magistrali i ona postaje usko grlo već sa vise od deset proceni elemenata. Njegova osnovna karakteristika je da sve procesne jedinice dijele operativnu memoriju i imaju zajedničku sistemsku magistralu. Ovakvi sistemi nazivaju se jako spregnuti multiprocesorski sistemi. Dobra karakteristika ove arhitektiure je postojanje jedinstvenog memoriskog prostora. 10 .a svaka procesna jedinica ima svoju lokalnu operativnu memoriju i samostalnu programsku podršku. u ovim sistemima memorija je distribuirana (raspodjeljena) među procesne elemente . osnovno sredstvo komuniciranja viseprocesni jedinica.Na slici 1.4 prikazana je arhitektura multiprocesora sa detaljnom memorijom koji se jos naziva sistem za simetrično multiprocesiranje ili simetrični multiprocesor. U sistemima sa detaljnom memorijom. a rjeđe za izvrsenje programa.

MULTIPROCESOR SA DISTIBUIRANOM DJELJENOM MEMORIJOM Na slici 1. Međutim programiranje ovih sistema je teže. Naziva se i sistem za skalabilnu paralelnu obradu. 11 .5 Multiprocesor sa ditribuiranom memorijom Za prstup memoriji van njene sopstvene operativne memorije. pa je moguće povezivati veliki broj procesni elemenata. a može se vrsiti i prosirivanje dodavanjem novih procesnih elemenata. Osim toga sihronizacija podataka među distribuiranim zadatcima postaje problem posebno kada poruka treba u više koraka da stigne do odgovarajućeg procesnog elementa. Skalabilna obrada oznacava da se broj procesni elemenata po potrebi moze proizvoljno povecavati to je kombinacija prve dvije arhitektuure ona omogućava lakše programiranje a isto vremeno i prosirenje sistema(skalabolnost) dodavanjem novih procesnih elemenata. Time se smanjuje saobraćaj na magistrali. postupak sličan paketnom prenosu u komunikacionim mrezama za prenos podataka.6 prikazane je treća arhitektura za paralelnu obradu multiprocesorski sistem sa distribuiranom detaljnom memorijom.Slika 1. procesni elementi koriste prenos poruka.

računarski sistem se može posmatrati kao hijerarhijski organizovan skup uređaja(hardvera) i programa(softvera) koji zajednicki ostvaruju obradu podataka(sl. elektroničke.sistemskog softvera.pri čemu najvažniju ulogu ima centralni processor. Hardver obuhvata sve fizičke komponente računara.odnosno tzv. Konceptualni model računara Sa stanovišta rješavanja konkretnih problema korisnika.2. mehaničke i druge komponente. Operativni sistem predstavlja skup programa kojima se organizuje rad računara. Načini obrade podataka 2.proučava u šestom poglavlju.koji je dio tzv.1). Detaljno se operativni sistem.aplikacionih problema. električne.1.Ovaj hijerarhijski skup komponenata predstavlja tzv.efikasno korištenje svih resursa računara .kao i upravljanje izvršavanjem programa.tj. Programski jezici i softverski alati služe korisnicima pripremu i provjeru 12 . elektromehaničke. konceptualni model računarskog sistema.2.

ispravnosti aplikacionih programa.3 Paketna obrada Paketna obrada. Ovakvo opsluživanje korisnika danas je karakteristično za personalne računare. ili. Paket je smješten na spoljnoj 13 .2. 2. Prije svega postoje jednoprogramski i višeprogramski (multiprogramski) režimi rada i paralelna obrada (multiprocesiranje – slika 2. Kod pojedinačne obrade računar je u procesu rješavanja problema u potpunosti na raspolaganju jednom korisniku. unosi program ili ga poziva sa spoljne memorije.2. – Osnovni režimi rada računarskih sistema Računarski sistem radi u jednoprogramskom ili monoprogramskom režimu ako procesor opslužuje samo jednog korisnika. startuje izvršenje programa i pristupa rješavanju svog problema i čeka rezultate. jesta način rada računara u kome se obrađuju paketi. Korisnički interfejs čine programi. Pri tome se u operativnoj memoriji računara nalazi samo jedan program koji se izvršava od početka do kraja. jednoprogramski paketni režim rada.2. Batch) predstavlja grupu programa i odgovarajućih ulaznih podataka koja se za obradu na računaru tretira kao jedna cjelina. Računar u ovom režimu opslužuje korisnike na dva načina: a) pojedinačnom obradom (individualno opsluživanje) i b) paketnom obradom (indirektno opsluživanje). Režimi rada računara Programi se u procesoru mogu izvršavati na nekoliko različitih načina koji se nazivaju načini obrade ili režimi rada. Paket (eng. 2. Aplikacioni programi rjesavaju konkretne probleme korisnika.) Slika 2. tačnije rečeno.razni ulazno-izlazni uređaji i druga sredstva koja omogućavaju korisniku komuniciranje sa računarom. Korisnik sam radi sa računarom.

P O D A C I 4P R O G R A M 4P O D A C I Slobodna memorija Operativna memorija Program 1 Podaci 1 Program iz paketa koji se izvršava 3P R Slika 2.memoriji kao red čekanja iz koga se programi čitaju i obrađuju jedan po jedan redosljedom u kome se nalaze u paketu (slika 2. ili kada se oslobodi terminal. npr. Prelaz na sljedeći program moguć je samo ako je završen prethodni ili je on prekinut zbog neke izuzetne situacije. prvo su prikupljani na spoljnoj memoriji I 2P R O G 14 . Kod paketne obrade korisnik nema neposredan pristup računarskom sistemu. štampač. dok se ostali programi nalaze u stanju čekanja. Za vrijeme izvršenja jednog programa paketa zabranjeno je njegovo prekidanje.3).3: Paketni režim rada O G R Centralni procesor A M 3P O D A Veliki broj komercijalnih sistema koristio je paketnu obradu za tzv. Pripremljeni programi i podaci predaju se operateru računara koji ih zapisuje na slobodnu memoriju gdje se formira paket ili korisnik sa svog terminala smješta programe i podatke u paket. Izvršavanjem programa kod paketne obrade upravlja operativni sistem koji obezbjeđuje prelaz sa jednog programa na drugi i kontroliše njihovo izvršavanje. obradu C promjena ili obradu transakcija. Rezultati obrade pamte se na disku da bi se proslijedili korisniku u trenutku kada se oslobode izlazne jedinice. U nekom vremenskom trenutku obrađuje se samo jedan program. kao što je greška u programu i sl. Obrada programa je sekvencijalna (serijska).

Ovaj način rada naziva se višeprogramski način rada ili multiprogramiranje. tj. Ako u toku rada centralnog procesora na jednom programa ima dosta praznog hoda zbog prinudnog čekanja na ulazne podatke. a naknadno se može vratiti na taj isti program. Računarski system radi u višeprogramskom načinu rada ako se više korisničkih programa nalazi u operativnoj memoriji. trebalo je svaki postupak dovršiti da bi slijedeći mogao da otpočne. ova obrada se i dalje koristi. Obrada se izvodila serijski. a onda su obrađivani svi zajedno. zatim njihovom obradom i. može se u operativnu memoriju smjestiti i aktivirati dva ili više programa istovremeno. Pri tome program koji se izvršava može biti prekinut radi prelaska na izvešenje nekog drugog programa. izdavanjem rezultata. svi su oni aktivirani za izvršenje i izvršavaju se po određenom redosljedu (sl. kao i operativne memorije. Multiprogramiranjem se poboljšava iskorištavanje procesora. Kada procesor ne može da radi na jednom od njih. 15 . Stepen efikasnosti korišćenja računara kod jednoprogramske i paketne je bio nizak. jer u mnogim primjenama nema potrebe da svakog momenta postoje najažurnije informacije. Ako procesor mora da se bavi prvo čitanjem i pamćenjem podataka. Time je omogućena konkurentna (“paralelna”) obrada više programa. Svi ulazni zapisi formirani u toku određenog vremenskog perioda grupirani su u posebnu datoteku koja se naziva datoteka promjena. 2.4). prelazi na obradu drugog. npr.4 Višeprogramska obrada(multiprogramiranje) Činilac koji ograničava stepen efikasnosti rada centralnog procesora je srazmjerno mala brzina rada ulaznih u izlaznih uređaja. na kraju. Međutim.A M 2Paket programa na slobodnoj memoriji onako kako su oni pristizali. Mana obrade promjena je u tome što matčna datoteka i njeni zapisi nikada nisu sasvim ažurni. čak i na današnjim računarima. većina njegovog vremena otpada na ulazno-izlazne procese. 2. Datoteka promjena se zatim obrađuje radi ažuriranja podataka u osnovnoj matičnoj datoteci. pri obračunu potrošnje električne energije. Tako je udio same obrade u ukupnom vremenu procesora bio vrlo mali.

Slika 2. pa procesor i dalje nije potpuno iskorišten. .4: Višeprogramski režim rada Multiprogramiranje se može samo obavljai samo na računarima koji imaju složen operativni system koji je u stanju da donosi odluke o ome kako će se koji program pozivati. Paketna obrada se može organizovati i kod višeprogramskog načina rada.Daljinska obrada. Osnovni problem višeprogramskog načina rada je organizacija zaštite od uticaja jednog programa na drugi. multiprogramiranjem je moguće postići efikasnost centralnog procesora od 100%. obično kraće od desetak sekundi. . povezanim telekomunikacijskim vezama sa računarom. ustvari. Taj period vremenena je kratak. nekoliko desetina milisekundi. U praksi se postupa tako što se svakom korisničkom terminalu dodjeljuje unaprijed definisan period vremena u toku koga se njegov program stavlja na raspolaganje centralnom procesoru. U okviru višeprogramskog načina rada razlikuje se nekoliko karakterističnih vrsta obrade: . To su višeprogramski sistemi sa paketnom obradom. koja se sastoji u ome da jedan program ne smije pristupati djelovima operativne memorije dodjeljenim drugim programima ili operativnom sistemu. ovaj način obrade i te kako povećava njegovu efikasnost. u kojoj se podaci drže u toku ulaznih i izlaznih operacija. Ono je. Zbog brzog odziva sistema svaki korisnik ima utisak da radi sam sa računarom. Ipak. Svaki je terminal ima svoju vlastitu memoriju.Distributivna obrada. Ovdje vrijeme odziva mora biti kratko. Teoretski. U praksi je malo vjerovatno da će slijed naizmjenične obrade programa teći bez prekida. Naročito je važna zaštita operativne memorije. Obrada sa podjelom vremena Suština načina rada sa podjelom vremena jeste da se obezbijedi da vise korisnika istovremeno ima pristup računaru.Rad u realnom vremenu. Korisnici raspolažu terminalima ili personalnim računarima koji mogu obavljati i ulogu terminal. Odluka o redosljedu izvršavanja programa donosi se prema prioritetima saopštenim operativnom sistemu na počeku rada.Obrada sa podjelom vremena. . 16 .

Rad u realnom vremenu Računarski sistem koji na promjenu nekog ulaznog parametra proizvede izlaz za unaprijed dato vrijeme naziva se sistem za rad u realnom vremenu. Kod pojedinih tehnoloških procesa vrijeme odziva može se mjeriti milisekundama. ovdje se ažuriranje matične datoteke obavlja odmah. Za razliku od paketne obrade transakcija. dok se sistemima koji rade u režimu dijaloga smatraju sistemi u kojima se vrijeme odziva mjeri sekundama. pojaviće se spisak svih slobodnih sjedišta. ovdje vrijeme odziva. tj. operativni sistem prekida izvršavanje tekućeg programa i poziva program namjenjen obradi upita. Daljinska obrada Ako se za pristup računaru koristi daljinski ulaz-izlaz. Kada sa na jednom od terminala generiše upit. Međutim. b) Transakcioni režim i c) Univerzalni režim. podaci ažurirati kako slijedeći putnik ne bi dobio netačnu informaciju.5). Primjer rada u realnom vremenu čine sistemi za upravljanje tehnološkim procesima ili sistemi za upravljanje prijektilima. zavisi od primjene.2. tada se govori o daljinskoj obradi. Računarski sistem sa radom u univerzalnom režimu može raditi u bilo kom od opisanih režima. U režimu dijaloga korisnik sa svog terminala ima direktan pristup računarskom sistemu i može postaviti jedan ili više upita. a na osnovu primljenih komandi i podataka računar vraća izlazne rezultate(sl. i da rezultate obrade za modifikovanje nekih parametara te pojave blagovremeno povratno saopšti. 17 . odzivno vrijeme mora se kretati u okviru mikrosekundi. vremenska razlika između nastajanja podataka i povratnog saopštavanja rezultata. Najvažnije svojstvo sistema za rad u realnom vremenu je to što on mora da bude u stanju da prihvati i obradi podatke u vremenu kada je neka pojava u toku. . Sistemima realnog vremena najčešće se smatraju oni sistemi kod kojih se vrijeme odziva mjeri milisekundama. Primjer sistema sa vremenskom podjelom su sistemi za rezervaciju avionskih karata: pošto se preko terminala unese zahtjev za mjesto u avionu na određenom letu. personalnih računara ili radnih stanica koji se opslužuju u višeprogramskom režimu rada. Npr. tj. Na procesor je preko telekomunikacionih lijala vezan veći broj udaljenih terminala. da bi se uticalo na ponašanje paketa u letu. Kod transakcione obrade vrši se raspodjela računarskih resursa između određenog broja udaljenih korisnika koji preko sopstvenih terminala direktno pristupaju računarskom sistemu. To znači da je razmak između ulaznog vremena te obrade značajan i mora biti dovoljno mali da odziv bude pravovremen. Rezervisano mjesto mora se odmah zapisati. Posredstvom modema . ili koncentratora sa udaljenih uređaja šalju se u računar komande i podaci.Za opsluživanje u podjeli vremena korise se višeprogramski sistemi. Razlikuju se tri osnovna režima opsluživanja korisnika u podjeli vremena: a) Režim dijaloga (interakivni režim).

S pojavom miniračunara. Distribuirana obrada proširuje princip daljinske obrade postavljanjem računara na udaljene tačke i njihovim povezivanjem na samo s centralnim računarom nego međusobno. međusobnim povezivanjem računara. To znači da više udaljenih ulazno-izlaznih punktova ima direktan i praktično istovremeni pristup računaru. Uz o. ovaj način obrade postao je izvodljiv. pozna kao višestruki pristup. Kada je to potrebno. moguć je pristup centralnim bazama podataka u glavnom računaru ili slanje sumarnih izvještaja. kao i lokalnih računarskih mreža.Primjer daljinske obrade predstavlja sistem koji primjenjuju banke. radnih stanica i personalnih računara.5: Povezivanje terminala kod daljinskog ulaza-izlaza Korišćenjem terminala uvodi se još jedan princip. a druge centralno. ovdje se teži uvođenju moćnih cenralnih računara koji su u mogućnosti da obrade podatke nastale na veoma širokom području. Ova oprema se koristi za obradu na mjestu nastanka promjena. Prednost takvog sistema je na samo u mogućnosti veoma brzog prenosa podataka nastalih u filijali do računara već i u činjenici da filijala ima pristup podacima koji se čuvaju u bazama podataka računara čime je obezbjeđeno veoma brzo dolaženje do njih. na primjer u slučaju 18 . Distribuirana obrada podrazumjeva postavljanje računarske opreme za lokalne obrade u udaljene tačke. U stvari. Distribuirana obrada Distribuirana obrada zasniva se na činjenici da je neke funkcije obrade bolje obaviti lokalno. Slika 2.

računara postavljenih u fabrikama. Obrada na ovim sistemima naziva se paralaelna obrada ili multiprocesiranje. omogućuje se koordinacija proizvodne aktivnosti. Korišćenje različitih konfiguracija lokalnih mreža vrlo je pogodno za distribuiranu obradu. skladište) na posebnim materijalnim nosiocima-memorijskim medijumima 19 . U opštem slučaju obrada se smatra distribuiranom ili raspodjeljenom ako se vrši u sistemu u kome je povezano više međusobno povezanih računara koji mogu da surađuju. multiprocesor ili paralelni računar. To su: simetrično multiprogramiranje. onda oni čine sistem koji se naziva računarska mreža. distribuirani računarski sistemi. kao i za prenos na daljinu. U prethodnom poglavlju razmotrene su vrste paralelne obrade koje su povezane sa arhitekturom multiprocesora. tehnologija. Pri tome se višeprogramskim sistemom ne smatra sistem čiji dodatni procesori služe samo za pomoćne. podaci se pamte (registruju. pamćenju i čitanju podataka i programa. masivna paketna obrada i skalabilna paralelna obrada. održavanje optimalnih zaliha i sl. Memorija je namjenjena upisu. organizacija i cjena. za njihovo unošenje u računar ili izlaz iz računara. Ako je veći broj terminala i računara povezan telekomunikacionim kanalima. To su tzv. U svakom računaru distribuiranog sistema vrši se lokalna obrada. pri čemu nekim procesor pristupa direktno. Memorijski medijumi Za obradu podataka na računaru tj. Za memorije računara koristi se široki opseg tipova. 3. Nijedna tehnologija nije optimalna u zadovoljenju zahtjeva za memorijski sistem računara.1 Osnovni pojmovi Memoriju ili memorijski sistem čine uređaji koji obezbjeđuju zapisivanje binarnih podataka. planiranje proizvodnje. Obrada u računarskoj mreži predstavlja proširenje koncepta distribuirane obrade. Operacije upisa i operacija čitanja nazivaju se još i prisup memoriji. a nekim pristupa preko ulaznoizlaznih modula.5 Paralelna obrada Sistem koji sadrži veći broj procesora koji učestvuju istovremeno u rješavanju jednog istog problema naziva se višeprogramski računarski sistem. Kao posljedica toga svaki računarki sistem posjeduje hijerarhijuju memorijskih podsistema. a preko lokalnih računarskih mreža ili telekomunikacijskih linija međusobno se razmjenjuju podaci koji utiču na obrade na više računara. ← 2. Memorija 3. recimo ulazni-izlazne ili telekomunikacione aktivnosti.

sastavljene od više modula koji djele iste ulazne i izlazne magistrale. u operativnoj memoriji se također pamte i međurezultati i konačni rezultati obrade. ili konfiguraciju načinjenu od njega. Stoga u svakoj memorijskoj banci samo jedan modul može da počne ili završi memorijsku operaciju u toku bilo kog ciklusa magistrale. provodni put i sl. Podjela memorije Memorija računara se sastoji od operativne memorije i spoljne memorije. naelektrisanje. c) Mogućnost otkrivanja(čitanja) stanja. magnetni diskovi. U svim memorijskim sistemima koji se danas koriste na memorijskom medijumu se pamti energija u nekim diskretnim količinama.2 Parametri memorije Za opis karakteristika memorije koristi se više različitih parametara od kojih su osnovni sljedeći: 1) Kapacitet memorije – broj bajtova li bitova koji se mogu zapamtiti u memoriju.ili nosiocima podataka. 3. čuvanje rezervnih kopija podataka i sl. diskete. Primjeri medijuma su: magnetne trake. Da bi se neki medijum mogao koristiti za pamćenje podataka. Operativna memorija je namjenjena privremenom pamćenju podataka i programa. Operativna memorija pripada internoj memoriji računara. potrebnog za postavljanje glave za upis-čitanje iznad ćelije sa podacima i vremena prenosa podataka. magnetni moment. struja. Spoljna memorija ima veliki kapacitet i služi za pamćenj podataka velikog obima i njihovo arhiviranje za duži vremenski period. Operativna memorija se često sastoji od više momorijskih modula pri čemu svaki od njih može da obavi istovremeno jedan pristup memoriji. arhiviranje podataka. kojima se predstavljaju binarne vrijednosti “0“ i „1“ b) Mogućnost upisa prelaskom u odgovarajuće stanje. 20 . Spoljne memorije služe za dugotrajno čuvanje programa i podataka. a sačinjena je od bistabilnih memorijskih elemenata. bistabilna elektronička kola itd. a sastoji se od vremena traženja. Kod diskova i traka vrijeme pristupa je srednje vrijeme potrebno za pristup nekom mjestu na medijumu radi čitanja ili upisa. Pored podataka za obradu i podataka koji definišu postupak obrade. Memorijski moduli organizovani su u memorijske banke. čuvanje podataka velikog obima. Memorijski medijum predstavlja materijal. kao što su npr. 2) Vrijeme pristupa ili kašnjenje – vremenski interval koji protekne od dovođenja signala za definisanje pristupa do završetka upisa ili čitanja. treba da ime: a) Dva stabilna stanja. gdje još spadaju registarska memorija i upravljački registri procesora. čija se neka promjenjiva fizička veličina koristi za registriranje podataka. optički diskovi. a sadrži podskup ukupnog adresnog prostora. a znatno je sporija od operativne memorije. odnosno vrijeme potrebno da se određeni zahtijev kompletira.

3. broj bitova koji se istovremeno čita ili upisuje. pamćenje (upis) podataka. Dvije osnovne operacije obezbjeđuje memorijski sistem: 1. Zbog toga svaki memorijski sistem posjeduje 2 osnovna funkcionalna dijela: 1. a običnom je nešto duži od njega. Kod diskova blok sadrži više sukcesivnih sektora. Da bi memorija mogla izvršavati svoje funkcije.minimalni dozvoljen vremenski interval između dva uzastopna pristupa memoriji. Broj zahtijeva zadovoljenih u jedinici vremena naziva se propusni opseg. pozivanje (čitanje) podataka. 5) Brzina prenosa podataka-broj bitova. Svi ostali podaci čuvaju se na spoljnoj i prenose se u operativnu memoriju kada su potrebni. 6) Cijena 1 bita memorije – odnos ukupne cijene memorije prema kapacitetu memorije.3. Memorijski ciklus ne može biti kraći od vremena pristupa. moguće je da jedinica prenosa sadrži više sukcesivnih memorijskih riječi i onda se naziva blok. Međutim. upravljačku jedinicu memorije i 2. odnosno mjesto za podatke koji se dobijaju operacijom čitanja. tj. treba obezbjediti i upravljanje.3) Ciklus pristupa ili memorijski ciklus. Za spoljne memorije jedinica prenosa je sektor ili blok kod diskova i blok kod magnetnih traka. Pri tome se u operativnoj memoriji nalaze samo podaci i programi koje procesor koristi u datom trenutku. Za obezbjeđenje ovih operacija memorijski sistem dobija uputstva od centralnog procesora.za operatinu memoriju jedinica prenosa je memorijska riječ. Faktor koji određuje propusni opseg memorije je broj memorijskih modula u koje je podjeljen memorijski prostor. 2. memorijski medij Hijerarhija memorija Većina računara radi mnogo efikasnije ako osim operativne (glavne) memorije postoji i spoljna (masovna) memorija. 21 . Maksimalna propisana moć memorijskog sistema data je brojem memorijskih modula podeljenim sa vremenom ciklusa memorije. Struktura memorijskog sistema Osnovni cilj memorijskog sistema (memorije) računara jeste da opslužuje centralni procesor i druge dijelove za obradu podacima i programima. 4) Jedinica prenosa. a prije svega koje funkcije treba da se izvrše (upis uli čitanje) i gdje (adresa). Pri tome centralni procesor obezbjeđuje podatke koje treba zapamtiti pri operaciji upisa. bajtova ili memorijskih riječi koje uređaj može prenijeti u jednoj sekundi poslije postavljanja upisno-čitajuće glave na početak bloka ili segmenta podataka.

keš-memorija diska. Slika 3. Stoga se memorija računara organizuje u hijerarhijsku strukturu memorijskih uređaja koji na pojedinim izvorima imaju različite brzine i kapacitete (slika 3. Pri tome cijena memorije obično čini značajan dio ukupne cijene računara. smanjenju brzine i cijene po jednom bitu i povećanju kvantiteta.2). Svaki nivo može sadržati više modula (primjeraka) odgovarajućih uređaja za 22 . Opća organizacija memorijskog sistema Ukoliko raspoloživa memorija može se razmatrati kao hijerarhijski sistem komponenata koji se sastoji od svih uređaja za čuvanje podataka koje koristi računarski sistem.2.1.operativna memorija (osnovna memorija. jer ukoliko je brzina veća. glavna memorija).registarska memorija. .Zahtjevi za kapacitet i brzinu pristupa memoriji su protivriječni. Hijerarhija memorija Navedeni redoslijed memorija odgovara smanjenju nivoa u hijerarhiji. .keš-memorija (ultra-brza memorija. U računaru se koriste slijedeće memorije: . utoliko je tehnički teže i skuplje dostići povećanje kapaciteta memorije. priručna memorija).spoljna memorija sa direktnim pristupom (magnetni diskovi) i .spoljna memorija sa sekvencijalnim pristupom (magnetne trake). . Slika 3. .

smanjujući tako efektivno vrijeme pristupa i zahtijevani broj pristupa disku. ulazno-izlaznog procesora). Navedena hijerarhija se koristi kod optimalne organizacije sprege memorija različitog nivoa hijerarhije. Ovakva hijerarhijska struktura omogućava da se ekonomski efikasno usklade čuvanje (skladištenje) velikog broja podataka sa brzim pristupom podacima u procesu njihove obave. Zato bi bilo skupo sve programe i podatke čuvati u operativnoj memoriji. a služi prije svega za privremeno pamćenje operanada i međurezultata. Sljedeći nivo čine magnetni diskovi koji se koriste kao spoljni memorijski uređaji za trajno čuvanje podataka i programa. naručito ako nisu neophodni procesoru. Centralno mjesto ima operativna memorija koja može neposredno razmjenjivati podatke i sa centralnim procesorom i sa perifernim uređajima (ponekad preko posebnog. Naime. Registarsku memoriju čine skup registara u procesoru ili posebna registarska polja (registarske matrice). prije svega. Međutim. Proširena hijerarhija memorija računara Razlozi za uvođenje hijerarhije memorija su prije svega ekonomski. tzv. 23 . cijena proračunata na jedan bit obrnuto je proporcionalna nivou memorije u hijerarhiji.dobijanje potrebnog kapaciteta datog nivoa memorije. hijerarhija memorija može se uslovno posmatrati i za širu klasu memorija (slika 3. Slika 3. Keš-memorija diska služi kao bafer koji čuva značajan dio ulazno-izlaznog prenosa. oni se unose iz keš-memorije diska ili sa spoljne memorije. Keš-memorija služi za povećanje brzine obrade pomoću koje tekuće instrukcije i tekući podaci mogu da se prenose u centralni procesor velikom brzinom. Time se kompenzuje razlika u brzini rada procesora i vremena pristupa operativnoj memoriji. Kada su procesoru potrebni podaci kojih nema u operativnoj memoriji. jer vrijeme pristupa keš-memorije približno jednako brzini rada procesora. za arhiviranje podataka.3).3. Na donjem nivou hijerarhije nalaze se relativno spore magnetne trake koje se koriste.

4.Registarska memorija Centralni procesor pored više upravljačkih (radnih) registara. Registarska memorija realizuje se poluprovodničkim memorijskim elementima sa dva stabilna stanja-bistabilnim kolima ili flip-flopovima.registarske matice ili registarska polja.RISC arhitekturom.(eng. Registarska memorija ima naročito važnu ulogu u novim arhitekturama procesora kojima se teži bržem izvršenju operacija.Pri tome registar predstavlja uređeni skup memorijskih elemenata koji se pri radu tretira kao jedna cjelina.Oni se koriste za različite svrhe kao što je privremeno pamćenje operanada.Njena brzina je identična radu centralnog procesora.Ovi registri rade brzinom centralnog procesora tako da se operacije sa podacima smještenim u registrima izvode brzinom rada procesora.register file-registarsko spremište).Pri tome se teži da se podaci i instrukcije za koje se očekuje da će biti potrebni centralnom procesoru .Za adresiranje registara koristi se poseban način adresiranja koji se naziva registarsko adresiranje.5. Kod ove memorije registri formiraju jednodimenzijalni niz u kome su susjedni registri povezani kolima za paralelni prijenos binarnih rijeci tako da se u njima upis i citanje vrsi po principu „posljednji upisan-prvi procitan“.međurezultata.kao što su akumulator.To je posebno slučaj kod procesora sa redukovanim skupom instrukcija.Drugim rijecima ako je neko niz podataka upisan u stek. Za označavanje registra u asemblerskom jeziku koriste se simbolička imena.Iz tog razloga svi novi procesori sadrže više desetina ili čak i nekoliko stotina registara opšte namjene koji se organizuju kao tzv.3. Registarska memorija koristi se onda kada je potrebno za što kraće vrijeme pristupiti podacima i jednostavno upisivati i čitati podatke. Registrima se radi identifikacije i pristupa dodjeljuju adrese na isti način kao i lokacijama operativne memorije.tzv.brojač instrukcija. 3.4) 24 .Registarska memorija predstavlja skup registara u procesoru koji se nazivaju registri opšte namjene.Dio operativnog sistema koji upravlja tokovima podataka između svih memorijskih uređaja naziva se sistem za upravljanje memorijom.tada ce pri citanju redoslijed tih podataka biti obrnut od onog pri unosu.sadrži i memoriju relativno malog kapaciteta koja se naziva registarska memorija.oko dva puta je veća od brzine keš-memorije i desetak puta veća od brzine operativne memorije. 3. Stekmemorija Stek memorija ili magacinska memorija jeste bezadreska registarska memorija sa sekvencijalnim pristupom.(sl.komponenata adresa i dr.kao i međurezultati operacija. On raspodjeljuje programe i podatke među različitim nivoima hijerarhije suglasno sa očekivanom učestalošću njihovog korištenja.registar instrukcija i dr.čuvaju u registarkoj memoriji ili u jednoj ili više keš-memorija.

glavna memorija ili memorija sa neposrednim pristupom ( engl.Radi toga se u procesor uvodi poseban adresni registar za vrh steka koji se naziva pokazivac steka ili ukazatelj steka. Operativna memorija Operativna memorija. Memorija tipa reda (sl.pri realizaciji programskih prevodilaca i u mnogim drugim slucajevima.6.4.Koristenjem steka za pamcenje operanata i rezultata moguce je realizovati centralni procesor u kome instrukcije nemaju adresni dio.Pri tome nema fizickog pomjeranja sadrzaja steka. medurezultati i konacni rezultati obrade i instrukcije programa koji se izvrsava. Slika.4 – Stek i red 3. Kod ovako realizovanog steka pri upisu u stek i citanju iz steka pristupa se na osnovi sadrzaja pokazivaca steka.c. Osim realizacije steka pomocu registara.3. RAM – Random Acces Memory – memorija sa proizvoljnim pristupom) jeste adreciva memorija koja sluzi za cuvanje podataka koji se koriste u procesu izvrsenja masinskih operacija u aritmeticko-logickoj i upravljackoj jedinici procesora.Ovako organizovan stek u operativnoj memoriji pokazan je na slici 3.vec samo podesava novi sadrzaj pokazivaca steka povecavanjem ili smanjivanjem adrese za 1.Koristi se pri opsluzivanju po principu redova cekanja. U procesu obrade ostvaruje se stalna komunikacija izmedu procesora i 25 . 3.U cijelim kalkulatorima koristi se unutrasnji stek za izracunavanje vrijednosti aritmetickih izraza.b) jeste registarska memorija slicna steku.4. To su polazni podaci za obradu..Stek se koristi kod izracunavanja vrijednosti aritmetickih izraza.samo se podaci u nju upisuju i iz nje citaju po principu „prvi upisan-prvi procitan“.vrlo cesto se stek modelira (realizuje) i u operativnoj memoriji.koji pokazuje na vrh steka preko njegove memorijske adrese.Pokazivac steka obicno sadrzi adresu prve slobodne lokacije steka.

Iz memorije u procesor prenose se instrukcije programa i operandi nad kojima se izvrsavaju operacije predvidene tim instrukcijama. U memoriji se binarni podaci cuvaju u obliku grupa bitova koje se nazivaju memorijske rijeci. zbog cega je manja gustina na silicijumskoj plocici integrisanog kola. Nedostatak je mali kapacitet posto trose vise energije nego dinamicke memorije. Memorija sa neposrednim pristupom ili memorija sa proizvoljnim pristupom. Svaka rijec moze predstavljati brojcani podatak. Upravljacki signali odreduju smjer prenosa ( upis ili citanje) a signali na adresnim linijama odreduju memorijsku lokaciju kojoj se pristupa. MOS – Metal – Oxide – Semiconductor – metal – oksid – poluprovodnik). Ovo naelektrisanje se zadrzava ograniceno vrijeme. Upravljacki i sinhronizacioni signali za izvrsenje zahtjevanih operacija obezbjeduju unutrasnja upravljacka kola memorije koja su sastavni dio upravljacke jedinice operativne memorije. Vecina statickih memorija realizuje se u MOS tehnologiji (engl. Svaka rijec cuva se u posebnoj lokaciji a cita se ili se upisuje kao cjelina. 26 . Postoje staticke i dinamicke poluprovodnicke memorije sa neposrednim pristupom. Dinamicke memorije kao memorijski element koriste spregu kondenzatora i tranzitora realizovanih na integrisanom kolu u MOS tehnologiji kao jedna struktura. Tipicna struktura memorije sa neposrednim pristupom pokazana je na slici 3. Za realizaciju operativne memorije danas se gotovo iskljucivo kao memorijski elementi koriste polupovodnicka bistabilna kola. Staticka memorija kao memorijske elemente koristi poluprovodnicka bistabilna kola. postoje i staticke memorije sa bipolarnim kolima. adresnim linijama i linijama za ulaz i izlaz podataka. koje su brze ali imaju vecu disipaciju snage. Medutim. Karakteristike operativne memorije neposredno uticu na osnovne pokazatelje samog racunarskog sistema. a iz procesora u memoriju salju se na cuvanje medurezultati i konacni rezultati obrade. alfanumericki podatak.operativne memorije. prije svega na njegovu brzinu. Bit podataka se pamti kao veca ili manja kolicina naelektrisanja na r-n spoju MOS tranzitora koji igra ulogu kondenzatora a izolovan je od drugih kola pomocu tranzitora.zbog cega je potrebno periodicno osvjezavanje (regeneracija) naelektrisanja otprilike svake 2 ms.5. Dobre odlike ovih kola su velika brzina upisa i citanja u dozvoljena odstupanja parametara komponenata. Veza sa operativnom memorijom ostvaruje se preko pojedinih signala na upravljackim linijama.kod instrukcije ili bilo koji drugi binarni kod.

uvedena je segmentacija.SEGMENTACIJA MEMORIJE Segment predstavlja grupu sugcesivnih memorijskih memorijskih lokacija veličine do 64K. To su (slika3. ali mogu sadržati i potpuno različite lokacije operativne memorije.Registar segmenta programa Registar segmenta podataka Registar segmenta steka Registar dodatnog segmenta Segmenti se u operativnoj memoriji mogu i preklapati. a služe za adresiranje segmenata u operativnoj memoriji. 27 . što je češći slučaj. Naime. što znači da se njima može adresirati samo 64K lokacija. Kako je operativna memorija kapaciteta 1M lokacija i više. Segmenti se koriste da bi se postiglo proširenje ukupnog memorijskog prostora.6): . U procesoru postoje četri posebna registra koji se nazivaju segmenti registri. kod ovog mikroprocesora postoji 16 adresnih linija.

Adresa memorijske lokacije u operativnoj memoriji formira se kao 20 bitna fizička adresa onako kako je to prikazano na slici 3. Sadržaj čitačke memorije ne može se uopšte mjenjati instrukcijama programa.7. Ustvari. dok upis nije moguć. kao što se sa slike vidi. 28 . To se postiže sabiranjem pomeraja i sadržaja segmentnog registra pomnoženog sa 16. Binarni podaci se upisuju u čitačku memoriju u procesu proizvodnje ili posebnim uređajima kod korisnika. ČITAČKA MEMORIJA Čitačaka memorija (ROM) jeste memorija sa neposrednim pristupom koja omogućava da se jednom upisani podaci mogu samo čitati. mikroprocesor tretira segmentni registar kao da on ima još 4 bita najmanje težine i ta 4 bita sadrže nulu.

Onda kada vrijeme traženja treba da bude vrlo kratko. Svaki računare ima bar jednu čitačku memoriju koja se koristi za pokretanje računara prilikom uključenja i pozivanja spoljne memorije osnovnih programa operativnog sistema. jer je priprema maski dosta skupa. Vrijeme potrebno za traženje podataka u operativnoj memoriji može se znatno skratiti ako se zapamćeni podaci mogu identifikovati (pronalaziti) ne samo na osnovu adrese u operativnoj memoriji već i na osnovu njihovog sadržaja. Programiranje se vrši poimoću specijalnih maski na kraju tehnološkog procesa proizvodnje integrisanih kola. Poznatije su čitačke memorije u koje se podaci upisuju jednom zauvjek u procesu proizvodnje poluprovničkih integrisanih kola. koja je također poluprovodnička ne zavisi od postojanja napona napajanja i ne gubi svoj sadržaj. čitačka memorija. Postoje četri tipa čitačkih memorija. postoji memorija koja omogućava pristup na osnovu sadržaja i ona se naziva asocijativna memorija ili memorija sa adresiranjem prema 29 . Čitačka ROM memorija je jednostavnija od operativne memorije. Čitačka memorija se koristi za programe i podatke računara koji se ne mjenjaju često.7 Asocijativna memorija U mnogim zadacima obrade podataka potrebno je pronaći podatke u nekoj strukturi podataka smještenoj u operativnu memoriju.8a. To znači da se ove čitačke memorije mogu samo jednom programirati. njena struktura je prikazana na slici 3. kao što se sa slike vidi čitačka memorija faktički formira određeni odnos između ulaza i izlaza. kao što su podprogrami. tablični podaci. Pri tome će broj pristupa operativnoj memoriji zavisiti od mjesta traženog elementa i algoritma po kome se vrši traženje.Za razliku od nepostojanih poluprovodničkih memorija. Ovakve čitačke memorije kopriste se samo ako se masovno proizvode. konstante itd. Procedura traženja nekog elementa sastojaće se od poređenja zapamćenih podataka sa zadatom vrijednošću sve dok ne dođe do poklapanja. 3.

Da bi to bilo moguće. a nazivaju se asocijativni memorijski elementi (AME). Pri tome bit maske m definiše da li bit ključa k treba da se ispituje na poklapanje (slaganje) ili ne. Zato asocijativna memorija skuplja od memorije sa neposrednim pristupom. U njoj se traženje vrši na osnovu sadržaja i pronalaze se sve lokacije koje imaju sadržaj jednak sadržaju ključa ili dijela ključa. Ulazi x i y služe kod pristupa asocijativnoj memoriji kao memoriji sa neposrednim pristupom. Na slici 3.9 prikazan je asocijativni memorijski element. 30 . potrebni su memorijski elementi složeniji od običnih bistabilnih kola. Izlaz p imaće vrijednost 1 ako ulazni bit ključa k i stanje memorijskog elementa s imaju istu vrijednost. U asocijativnoj memoriji pristupa se istovremeno i paralelno svim lokacijama na osnovu njihovog sadržaja. Kod asocijativnog pristupa poredi se ulazni signal (bit) ključa k sa stanjem memorijskog elementa s. Asocijativna memorija je memorija sa neposrednim pristupom kojoj su dodatno ugrađena kola koja omogućavaju istovremeno poređenje u samo jednom memorijskom ciklusu sadržaja svih lokacija sa zadatim sadržajem – ključem. Stanje memorijskog elementa dobija se na izlazu s.sadržaju.

koji ima po jedan bit za svaku memorijsku lokaciju sa vrijednošću 1. Ovdje je maska binarna riječ koja određuje koji se bitovi ključa upoređuju sa sadržajima memorijskoh lokacija. U protivnom. Ključ iz registra ključa upoređuje se sa sadržajem svake memorijske lokacije. u poređenju učestvuju samo oni bitovi ključa za koje je u odgovarajućim pozicijama maske upisana vrijednost 1. pri čemu se sada asocijativna memorija tretira kao memorija sa neposrednim pristupom. ako registar maske ima 1 u svim pozicijama.Princip rada asocijativne meorije je slijedeći (slika 3.10).8 Keš memorija Za smanjenje vremena pristupa podacima i instrukcijama u operativnoj memoriji procesoru se dodaje keš-memorija (ultrabrza memorija. 3. tj. Poslije upoređivanja može se memorijskim lokacijama za koje postoji poklapanje pristupati radi čitanja. Sve takve lokacije označe se u registru indikatora poklapanja. Za svaku memorijsku lokaciju postoji po jedan komparator čiji je izlaz jednak 1 ako postoji poklapanje. ako memorijska riječ ima iste bitove kao i definisani bitovi ključa. Sadržaj registara ključa upoređuje se sa sadržajem svih memorijskih lokacija u samo jednom memorijskom ciklusu. priručna memorija) čija brzina odgovara brzini rada procesora. Princip maske sadrži vrijednost 1 u onim pozicijama koje određuju dio ključa za upoređivanje na poklapanje. 31 .

odnosno vrijeme izvršenja programa. Jedinica prijenosa između keš memorije i operativne memorije je blok. 32 . jer se u njoj nalaze tekući podaci i tekuće instrukcije programa kojima procesor pristupa znatno brže. tako da se u keš memoriji u istom trenutku nalaze kopije samo malog broja blokova operativne memorije. Ukoliko se podatak sa traženom adresom nalazi u keš memoriji. Jedinica prijenosa između centralnog procesora i keš memorije je fizička riječ. Keš memorija se korisiti na sljedeći način (sl. To znači da se svi podaci (ili instrukcije) nekog bloka istovremeno nalaze ili ne nalaze u keš-memoriji. Kapacitet keš memorije je u opsegu od 1 do 256 kB.Keš-memorija je mala. U keš-memoriji se čuvaju podaci i instrukcije iz operativne memorije koje procesor trenutno koristi. Operativna i keš-memorija su podjeljene na jedinice koje se nazivaju blokovi.11). Blok (ponekad se naziva i linija) predstavlja skup od n sukcesivnih memorijskih lokacija koji se uvijek kao cjelina prenosi između operativne i keš-memorije. on se prenosi u procesor radi obrade ili se zamjenjuje novom vrijednošću iz procesora koja predstavlja rezultat obrade. Cilj efikasnog memoriskog sistema je da efektivno vrijeme pristupa procesora podacima bude vrlo blisko vremenu pristupa keš memoriji. Keš-memorija služi za usaglašavanje brzine procesora i operativne memorije koja je sporija od procesora za red veličine(oko 10 puta). Veličina bloka obično iznosi između 4 i 128 bajtova. ultrabrza poluprovodnička memorija sa neposrednim pristupom. Broj blokova operativne memorije znatno je veći od broja blokova keš memorije. ćime se povećava produktivnost rada procesora. 3. formira se upravljački signal za pristup keš memoriji. Ona omogućava povećanje brzine obrade. Kada centralni procesor generiše adresu memorijske lokacije.

ako se traženi blok ne nalazi u keš-memoriji. Pri korišćenju keš-memorije treba rješiti sljedeća četiri osnovna problema:  Smještanje blokova – gdje će u keš-memoriji biti smješten novi blok pročitan iz operativne memorije. Uzastopnost je ograničeni tip prostorne lokalnosti i može se razmatrati kao njen podskup.  Zamjena blokova – koji blok će biti zamjenjen. jer se tada modifikuje blok i postaje različit od odgovarajućeg bloka u operativnoj memoriji. 33 . Međutim.Ukoliko u keš memoriji nema bloka sa treženom adresom aktivira se procedura kojom se iz keš memorije jedan blok šalje u operativnu memoriju. postoji velika vjerovatnoća da će pozivi koji slijede biti u toj sekvenci.  Strategija upisa – kako će se postupiti kod upisa novog podatka u keš-memoriji. ali se najčešće zamjenjuje najranije korišćeni blok ili najduže prisutan blok. u tom slučaju radi identifikacije blokova (drugi problem) pogodno je kao keš-memoriju koristiti asocijativnu memoriju u kojoj ključ predstavlja memorijsku adresu bloka a informacioni dio podatke iz operatvine memorije. vjerovatno je da će u sljedećih nekoliko pristupa biti na lokaciju s+1. asocijativno preslikavanje – svaki se blok može smjestiti bilo gdje u keš-memoriji. ovdje je potrebno za svaki blok uvesti po jedan bit koji pamti da li je blok modifikovan ili nije. Postoje tri principa koji uključuju lokalnost:  Prostorna lokalnost – ako je potreban pristup određenoj lokaciji u memoriji. Međutim. a istovremeno se traženi podatak prenosi u operativnu memoriju. postoji velika vjerovatnoća da će drugi pristupi biti toj ili susjednim lokacijama za vrijeme trajanja izvršenja programa  Vremenska lokalnost – ako je postojala sekvenca pristupa do n lokacija.  Identifikacija bloka – kako će biti nađen blok koji se nalazi u keš-memoriji. Za zamjenu blokova postoji više strategija. Ova lokalnost dopunjuje se sa prostornom lokalnošću. Kada se blok u keš-memoriji modifikuje upisom novog podatka iz procesora. postoje dva načina koji se koriste za ažuriranje operativne memorije: Neposredni upis – istovremeno se podatak upisuje u keš-memoriju i u operativnu memoriju Posredni upis – podatak se upisuje samo u blok keš-memorije a modifikovani blok se vraća u operativnu memoriju tek kada se zamjene drugim blokom.  Uzastopnost – ako je bilo pristupa određenoj lokaciji s. a na njegovo mjesto se iz operativne memorije poziva traženi blok koji se prenosi u keš memoriju. Najbolji način za smještanje blokova pročitanih iz operativne memorije jeste tzv.

Naime. Nedovoljan kapacitet operativne memorije može se nadoknaditi specifičnim načinom sprezanja operativne i spoljne memorije koji se naziva virtuelna memorija.9 VIRTUELNA MEMORIJA U hijerarhijskom memorijskom sistemu program i podaci se najprije smiještaju na spoljnu (sekundarnu ) memoriju. zbog spore spoljne memorije. ali unificirana keš-memorija istih daje niže efektivne faktore promašaja. Keš-memorija diska (keš-bafer diska) ima sličnu ulogu kao keš-memorija u sistemu keš-memorija – glavna memorija. pri čemu je brzina pristupa približna brzini operativne 34 . Ove se keš-memorije uvode uz nešto veću cijenu. podjeljene kešmemorije za instrukcije i podatke omogućavaju da se značajno poveća propusni opseg keš-memorije. Ako bi se operativna memorija zamijenila spoljnom memorijom dobila bi se nezadovoljavajuca brzina pristupa. superskalarnim mašinama. Keš-memorija diska može se pridrzužiti ulazno-izlaznom uređaju. Nedavno je postala općeprihvaćena podjela keš-memorije na dvije: jedne namjenjene za instrukcije i druge namjenjene za podatke. Jedinica keširanja (skladištenja) može biti bilo šta od sektora do više staza. Virtuelna memorija omogućava da korisnik piše programe kao da posjeduje adresni prostor jednak ukupnom kapacitetu spoljne memorije. ovdje je potrebno za svaki blok uvesti po jedan bit koji pamti da li je blok modifikovan ili nije. kontroleru tog uređaja ili memorije procesora Keš-memorija diska pamti posljednje korištene djelove adresnog prostora diska. postoje dva načina koji se koriste za ažuriranje operativne memorije: Neposredni upis – istovremeno se podatak upisuje u keš-memoriju i u operativnu memoriju Posredni upis – podatak se upisuje samo u blok keš-memorije a modifikovani blok se vraća u operativnu memoriju tek kada se zamjene drugim blokom. Studije su pokazale da korišćenje keš-memorije drugog nivoa poboljšava performanse. smanjujući tako efektivno vrijeme pristupa i zahtjevani broj pristupa disku. potencijalno udvostručavajući mogućnosti pristupa.Kada se blok u keš-memoriji modifikuje upisom novog podatka iz procesora. Ključna prednost projektovanja podjeljene keš-memorije je što se eliminiše takmičenje za keš-memoriju između procesora instrukcija i izvršne jedinice. gdje se interna keš-memorija označava kao nivo 1 (L1) a spoljna keš-memorija kao nivo 2 (L2). To je bafer koji čuva značajan dio ulazno-izlaznog prenosa. Međutim. posebno u tzv. Najnoviji procesori uključuju i keš-memoriju na čipu i spoljnu kešmemoriju. 3. Fragmenti programa i podataka prenose se u operativnu (primarnu) memoriju samo onda kada su potrebni centralnom procesoru jer je kapacitet operativne memorije znatno manji od kapaciteta spoljne memorije. Rezultujuća organizacija je poznata kao dvonivoska kešmemorija.

Kada neki dio operativne memorije postane neaktuelan. Spoljna memorija Operativna meorija Program 1 Program 1 Podaci1 1 Podaci1 2 Podaci1 1 Slika 1. Program se izvršava korištenjem operativne memorije sve dok centralni procesor ne pokuša obraćanje instrukciji ili podatku koji se još nalazi na spoljnoj memoriji. uvijek u obimu jedne stranice. ili obratno.Prevođenje virtualne adrese – virtualna adresa koja koristi procesor prevodi se u adresu primarne memorije. MEMORIJSKE STRANICE Cijeli adresni prostor spoljne memorije podijeljen je na blokove sastavljene od fiksnog broja lokacija koji se nazivaju memorijske stranice ili samo kratko stranice. Operativna memorija dijeli se na grupe sukcesivnih lokacija istog obima koje se takođe nazivaju stranice.memorije. Rješenje problema većeg kapaciteta. PREVOĐENJE VIRTUALNIH ADRESA Na slici 2. On treba da riješi sljedeće probleme : . Sistem za upravljenje virtualnom memorijom najčešće se realizuje kombinacijom hardvera i softvera. Stranica može sadržati od 256 do 1024 i više memorijskih riječi. av avs ac 35 . - Program 2 Podaci2 1 Smjenjivanje stranica – izbor stranice koju treba udaljiti iz primarne memorije da bi se oslobodilo mjesto za novu stranicu. Tada se pozivaju programi sistema za upravljenje virtualnom memorijom koji treba da obezbjede efikasno korištenje operativne memorije. Pri tome a0 predstavlja adresu lokacije u okviru stranice i ona je ista za virtualnu i primarnu adresu. Uvođenje virtualne memorije zasniva se na činjenici da procesor često u obradi koristi podatke smještene u sukcesivne memorijske lokacije. a zadovoljavajuće brzine memorije postiže se zadržavanjem operativne memorije koja se koristi tako što se u nju iz spoljne memorije prenose aktuelni podaci i instrukcije. Da bi počelo izvršenje programa jedna ili nekokliko stranica se prenose u operativnu memoriju. Odnos stranica spoljne i operativne memorije prikazan je na slici. Dijelovi programa i podataka prenose se na spoljne memorije. i primarne adrese a0. su prikazani formati virtualne adrese a. on se vraća na spoljnu memoriju i zamjenjuje se novim aktuelnim podacima. – Odnos spoljne i operativne memorije Princip korištenja virtualne meorije je sljedeći.

stranična tablica. Osim toga. statističkih odlika korištenih podataka i i nstrukcija. Faktor promašaja predstavlja vjerovatnoću da se tražena stranica ne nalazi u primarnoj memoriji. a najčešći su sljedeći : 1) Redosljed unošenja stranica – smjenjuje se stranica koja je prva unešena. algoritma zamjene stranica. koja sadrži kao ključ vrijednost adrese virtualne stranice. a u primarnoj memoriji se na njeno mjesto prenosi tražena stranica. informacionom dijelu se mogu dodati binarne pozicije za još neke informacije koje će sistem za upravljenje virtualnom memorijom koristiti za svoje potrebe. Faktor pogotka zavisi od nekoliko parametara : . - ac veličine stranice.ap a) av Formati virtuelne i primarne adrese avs Tablica preslikavanja virtualnih adresa aps ac ac ap aps b) Prevođenje virtuelne u primarnu adresu Slika 2. za ocjenu efikasnosti korištenja virtualne memorije uvode se faktor pogotka i faktor promašaja. ZAMJENA STRANICA Stranicu je potrebno zamijeniti ako se stranica sa virtualnom adresom koju zahtijeva procesor ne nalazi na primarnoj memoriji.kapaciteta primarne memorije . Pri zamjeni stranica u sekundarnu memoriju se vraća stranica koja je prema nekom kriteriju najmanje aktuelna. sistem za upravljanje vodi evidenciju gdje je koja sekundarna stranica smještena u primarnoj memoriji. 36 . tj. Stranica koja se najduže nalazila u primarnoj memoriji. Slično kao kod keš memorija. Kako se obično ta stranica može nalaziti bilo gdje u primarnoj memoriji. Faktor pogotka predstavlja vjerovatnoću da se tražena stranica nalazi u primarnoj memoriji. a kao informacioni dio vrijednost adrese primarne stranice. – Preslikavanje virtuelnih u fizičke adrese Svaka virtualna adresa treba da se prevede u adresu primarne memorije gdje će biti smještena stranica pozvana sa spoljne memorije. Jedan od načina čuvanja te informacije je tzv. - Za zamjenu stranica može se koristiti nekoliko različitih algoritama.

37 . Stranica koja je najmanje bila aktivna. tj. 3) Najrjeđe korištena stranica – smjenjuje se stranica koja je najrjeđe korištena. Stranica koja je korištena prije svih ostalih stranica koje se nalaze u primarnoj memoriji.2) Najranije korištena stranica – smjenjuje se stranica koja je najranije korištena. tj.

38 .nacine predstavljanja i dr. Upravlja ostalim komponentama racunara.Sve ove komponente se povezuju pomocu magistrala onako kako je to razmotreno u prvom poglavlju.koji se sastoji od aritmeticko-logicke i upravljacke jedinice.U sastav racunarskog sistema ulaze sljedece osnovne komponente: procesor (centralni procesor.operativna (glavna) memorija i periferni uredjaji (ulazni i izlazni uredjaji).centralna procesorska jedinica). Funkcije procesora Procesor (centralni procesor.PROCESOR 4.Struktura racunarskog sistema predstavlja model racunarskog sistema na osnovi strukturnih (konstrukcionih) komponenata (modula).Drugim rijecima.Struktura ili strukturna organizacija odrazava sastav i uzajamne veze elemenata (modula) sistema.4.centralna procesorska jedinica) predstavlja programski upravljan digitalni uredjaj koji obavlja sljedece funkcije: 1.nacine adresiranja operanada.termin arhitektura se koristi za opis mogucnosti racunarskog sistema.a odrazava uzajamne veze komponenata u procesu funkcionisanja sistema. 3. Donosi odluke u procesu obrade o toku (redosljedu) odvijanja izvrsenja instrukcija programa. Na osnovu instrukcija obradjuje podatke izvrsavanjem nad njima odredjenih relativno prostih operacija-masinskih operacija.1 Arhitektura racunarskih sistema Pod arhitekturom racunarskog sistema podrazumjeva se njegovo predstavljanje pomocu osnovnih funkcionalnih jedinica (modula). 2.Arhitektura odrazava sljedece aspekte strukture racunarskog sistema vidljive korisniku: skup instrukcijarealizovanih u procesoru.

Struktura procesora Da bi morao obaviti navedene funkcijecentralni procesor treba da privremena pamti neke podatke.Treba da pamti instrukciju i podatke privremeno dok se instrukcija ne izvrsi. operacije d. Interpretacija instrukcije.centralni procesor treba da ima malu internu memoriju. Tako se izvrsavanje programa odvija u neprekidnoj komunikaciji izmedju operativne memorije.kao i razmjeni podataka sa spoljasnjim okruzenjem.Drugim rijecima. Obezbjedjuje prenos podataka izmedju komponenata racunara.Glavne komponente centralnog procesora su aritmeticko-logicka jedinica i upravljacka jedinica. procesor sadrzi internu memoriju koja se sastoji od skupa memorijskih elemenata koji se nazivajku registri.tj.Aritmeticko-logicka jedinica obavlja obradu podataka.1 daje uprosceni pogled na centralni procesor. Pozivanje (prenos) svake instrukcije iz operativne memorije u upravljacku jedinicu.Slika 4.Osim toga. Procesor radi izvrsavajuci program smjesten u operativnu memoriju.koji se sastoji od sljedecih aktivnosti: a.On mora pamtit lokaciju posljednje instrukcije da bi znao odakle da uzme sljedecu instrukciju. Pamcenje (upis) rezultata u operativnu memoriju ili registre. c.aritmeticko-logicke jedinice i upravljacke jedinice. 39 . b.izvrsenje predvidjene tom instrukcijom.ukljucujuci njegovu vezu sa preostalim djelom sistema preko sistematske magistrale.Upravljacka jedinica upravlja prenosom podataka i instrukcija u i iz centralnog procesora i upravlja radomaritmeticko-logicke jedinice.4. Pozivanje podataka iz operativne memorije ili registara procesora u aritmeticko-logicku jedinicu.

Registri opste namjene imaju visestruku ulogu.Pokazani su putevi prenosa podataka i upravljacke logike.2.jer fakticki aritmeticko logicka jedinica izvrsava operacije samo nad podacima koji su prenijeti u centralni procesor.Red instrukcija sluzi za pripremu i predobradu instrukcija.ali je njihova osnovna 40 .Mogu se koristiti kao upravljacki registri.Slika 4.Ovaj element je potreban za prenos podatakaizmedju razlicitih registara i aritmeticko-logicke jedinice.ukljucujuci element koji je oznacen kao interna magistrala.2-Strukturna sema procesora Upravljacka jedinica sluzi za prepoznavanje instrukcija (masinski naredbi) koje treba izvrsiti.Upravljacki registri sluze za cuvanje informacija koje se koriste za upravljane radom procesora.U aritmeticko-logickoj jedinici realizuju se aritmeticke i logicke operacije. Slika 4.1-Uproscena sema procesora Strukturna sema procesora koja daje nesto detaljniji pogled na centralni procesor prikazana je na slici 4.Na semi su date samo najvaznije komponente procesora.kao i za formiranje upravljackih signala za izvrsenje tih instrukcija.

drugim racunarima i sl.kao i veza procesora sa perifernim uredjajima.2) naziva se mikroprocesor.namjena privremeno cuvanje podataka i medjurezultata pri izvrsenju operacija u procesoru.blok zastite memorije i dr.su 32-bitni procesori i 41 .4.Svako mikrokolo obicno predstavlja odredjenu funkcionalnu cjelinu.3-konfiguracija personalnog racunara Familija mikroprocesora INTEL 80x86 Za realizaciju personalnih racunara najvise se koriste mikroprocesori familije 80x86 firme Intel ili njima kompatibilni mikroprocesori drugih firmi.Osim navedenih komponenata.Mikrokolo koje po svojim funkcijama i strukturi u potpunosti odgovara centralnom procesoru racunara i sadrzi sve funkcionalne dijelove kao isvaki drugi procesor (vidjeti sl.80386.integrisano kolo ili popularno cip predstavlja kristal (silicijumsku plocicu) na kome je posebnim tehnoloskim postupkomrealizovan veliki broj poluprovodnickih elemenata (traznzistora).predvidjeno je sa odredjenu namjenu .Unutrasnje magistrale povezuju sve komponente procesora u jednu cjelinu.5 prikazana je struktura mikroprocesora Intel 8086.Kola za generisanje sinhronizacionih signala sluzi za formiranje impulsa kojima se definisu odredjeni vremenski intervali za izvrsenje operacija u procesoru.upravljanje i sl.cija je konfiguracija prikazana na slici 4.kao sto su obrada.To je jedan od prvih 16-bitnih mikroprocesora.3. Slika 4.jedinicu za upravljanje memorijom i niz blokova namjenjenih organizaciji procesa obrade (blok opsluzivanja prekida programa.80486 i Pentium.Svi ostali mikroprocesori ove familije.) Mikroprocesori i personalni racunari Mikrokolo.stek memoriju.procesor moze sadrzati i kes-memoriju.tj.Upravljanje magistralom sadrzi sprezna kola (interfejs) kojima se preko sistematske magistrale organizuje razmjena podataka izmedju procesora i operativne memorije.Na slici 4.kao sto su 80286.Mikroprocesosr predstavlja osnovu za realizaciju personalnih racunara.

BIU-Bus interface unit) i izvrsnu jedinicu (eng.kao sto su pozivanje instrukcija. Slika 4.Mikroprocesor i8086 ima sve posebne procesne jedinice:jedinicu za spregu sa magistralom (eng.2 Registri procesora Registar je elektronicko kolo koje sluzi za pamcenje binarnih podataka.on se naziva paralelni registar.citanje operanada iz operativne memorije ili njihov upis u operativnu memoriju.Ova jedinica priprema instrukcije uvijek kada postoji prazan prostor u redu instrukcija.4-Osnovna arhitektura mikroprocesora 8086 4.Registar koji moze binarni sadrzaj da pomjera lijevo ili desno naziva 42 .Brojanje moze biti napred.registar moze imati kombinacione prekidacke elemente koji sluze za upravljanje prenosom podataka u registar ili iz registra.Ako se upis vrsi istovremeno u sva bistabilna kola registra.Sastoji se od grupe bistabilnih kola koja se tretira kao cjelina.kada se posebnim upravljackim signalom odredjuje brojanje napred ili brojanje nazad.Ove dvije jedinice rade nezavisno i konkurentno (paralelno).instrukcije se predaju izvrsnoj jedinici.predstavljaju znacajna poboljsanja ovog mikroprocesora.Iz reda u kome su pripremljene.Registar koji pri dovodjenju impulsa na poseban ulaz prolazi kroz odredjenu sekvencu stanja naziva se brojacki registar ili brojac.Registri procesora identifikuju se svojim adresama ili simbolickim imenima.EUExecution unit).nazad ili napred/nazad.Brojaci broje u binarnom ili binarno-kodiranom dekadnom brojnom sistemu ili po nekom modulu M.Jedinica za spregu sa magistralom odgovorna je za sve operacije sa magistralom.koja ih izvrsava.Osim bistabilnih kola koja pamte podatke.kao i ulaz i izlaz podataka sa periferijama.

Na osnovu adrese u adresnom registru posebnim kolima nalazi se potrebna memorijska lokacija i njoj se pristupa.se pomjeracki registar.Prihvatni registar memorije PR-svaki podatak koji treba upisati u memoriju mora se predhodno smjestiti u poseban registar procesora koji se nazicva prihvatni registar memorije (PR).Ovi se registri nazivaju upravljacki registri (sl 4.Neka je ad adresa memorijske lokacije ciji sadrzaj treba procitati. 3) (PR) : = M[ad].Proces citanja tog sadrzaja tece u racunaru sljedecim redom: 1) (AR) : = ad – uzima se adresa ad i upisuje u adresni registar AR.Ovdje cemo se nesto detaljnije upoznati sa njihovim funkcijama.Ima upravljacki ulaz za pomjeranje lijevo ili desno. Slika 4.5) i kratko su vec bili obradjeni u udzbeniku za treci razred.postupak upisa je sljedeci: 1) (AR) : = ad – uzima se adresa ad i upisuje u AR.a sadrzaj lokacije iz koje se cita ostaje isti.adresa momorijeske lokacije kojoj treba pristupiti upisuje se u poseban registar procesora koji se naziva adresni registar memorije (AR). 2) (PR) : = (R) – u PR se upisuje sadrzaj registra R.Pri tome se njegov predhodni sadrzaj unistava.cita sesadrzaj izabrane memorijske lokacije i smjesta u prihvatni registar PR.5-Registri procesora Adresni registar memorije AR-pri citanju iz memorije ili upis u memoriju.svaki procitani podatak iz memorije prvo se salje u prihvatni registar odakle se dalje moze koristiti. 2) na osnovu sadrzaja AR nalazi se ( selektuje se) pomocu dekodera odgovarajuca lokacija u memoriji.Isto tako. Upravljacki registri procesora Svaki procesor posjeduje odredjen broj registara namjenjih privremenom cuvanju informacija za upravljanje. 43 . Ako je R registar procesora ciji sadrzaj treba upisati u memorijsku lokaciju sa adresom ad.serijski ulaz i serijski ili paralelni ulaz.

Registar uslova (registar kodova stanja)RU.instrukcijama grananja.brojac naredbi ili programski brojac.Osim toga. 4) M[ad] : = (PR) – upisuje se sadrzaj PR u memorijsku lokaciju saadresom ad.Proces izvrsenja masinske operacije OP kod jedno adresni racunara tece.Prije startovanja izvrsenjaprograma u brojac instrukcija se unosi adresa prve instrukcije programa.Najcesce koristeni uslovi su: • Sadrzaj AK nula( Z bit) • • • Sadrzaj AK negativan ( N bit) Sadrzaj AK pozitivan ( P bit) Sadrzaj AK prenos ( C biot) 44 .koja se upisuje u akumulator AK.Za ovu svrhu uveden je poseban registar koji se naziva registar instrukcija (RI) ili registar naredbi.odnosno za duzinu pozvane instrukcije.izvrsavaju se posebnim registrom procesora koji se naziva akumulator AK.a poslije pozivanja svake instrukcije programa sadrzaj brojaca instrukcija se povecava za 1.operacije pomjeraja i mnoge druge masinske operacije. 3) (PR) : = M[AR] – cita se sadrzaj selektovane lokacije i upisuje se u PR.koji predstavljaju informacije dobijene pri izvrsenju operacija.na sljedeci nacin: 1)prvi operand se vec nalazi u AK gdje je smjesten nekom ranije izvrsenom instrukcijom.pri cemu se predhodni sadrzaj te lokacuje unistava.u fazi izvrsenja instrukcije brojacinstrukcija moze se puniti novim sadrzajem odredjenim tzv.Svaki bit registra RU naziva se indikator stanja i postavlja se nezavisno od ostalih saglasno uslovima koje daje ozlazna rijec rezultata iz aritmeticko-logicke jedinice. 2) (PR) : = M[A1] – cita se drugi operand iz memorijske lokacije sa adresom A1 (koja je ranije smjestena u AR) i smjesta se u PR. Akumulator AK-sve aritmeticke i logicke operacije .Ova bistabilna kola se obicno tretiraju kao jedan registar procesora.i u njega se uvijek smjesta rezultat dobiven po izvrsenju te operacije. 2)na osnovu sadrzaja AR selektuje se lokacija u memoriji u kojoj se nalazi instrukcija. 4) (RI) : = (PR) – sadrzaj PR salje se u RI. 3) (AK) : = (AK) OP (PR)-izvrasava se operacija OP definisana sadrzajem registra instrukcija i dobijeni rezultat se smjesta u AK.Dabi upravljacka jedinica imala u svakom trenutku informaciju o adresi sljedece instrukcije koja ce se izvrsavati.Svi procesori sadrze izvjestan broj bistabilnih kola koja sluze za pamcenje kodova uslova ili kodova stanja. Brojac instrukcija (programski brojac) BI.koji se naziva registar kodova stanja ili registar uslova RU.Pozivanje tekuce instrukcije iz operativne memorije i njeno smjestanje u rwgistar instrukcija RI odvija se na sljedeci nacin: 1) (AR) : = (BI) – adresa sljedece instrukcije iz BI salje se u AR.Pri tome se stari sadrzaj akumulatora unistava .uveden je poseban registar procesora koji se naziva brojac instrukcija (BI).Tokom izvrsenja neke operacije u njemu se uvijek nalazi jedan od operanada.Registar instrukcija RI-da bi instrukcija mogla upravljati izvrsenjem operacije ona mora biti smjestena u upravljacku jedinicu procesora.3)na osnovu sadrzaja AR nalazi se odredjena lokacija.

Registri opste namjene Ri-procesor obicno koristi i skup programskih adresnih registara koji mogu imati vise razlicitih namjena. Radi toga je potrebno da procesor sadrzi poseban registar za rad sa stekom koji se naziva ukazatelj ili pokazivac steka PS.Indeksni registar XRi-adresa po kojoj se pronalazi podatak u operativnoj memoriji radi izvrsenja neke operacije najcesce nije samo adresa u adresnom dijelu vec se izracunava na osnovu vise podataka (detaljno je ovaj problem obradjen u odjeljku o adresiranju).4.poseban registar za rad sa podprogramima i drugi.BP.Pored navedenih registara mogu u procesoru postojati i jos neki registri dostupni programeru.pokazivac steka i dr.Nacin njihovog koristenja obradjen je u odjeljku o adresiranju.Ostali registri procesora.• Nastalo je prekoracenje ( V bit) Sadrzaj prenosa uslova RU koristi se u instrukcijama grananja i instrukcijama preskoka.DS.Registri opste namjene mogu da se koriste kao aritmeticki registri za privremeno cuvanje podataka ili medjurezultata nad kojima procesor izvrsava operacije.Jedan od podataka koji se koristi pri adresiranju nalazi se u gruopi registara koji se nazivaju indeksni registri (XRi).podjeljenih u tri grupe po cetiri registra i dva posebna registra (sl.grupe registara su:  Registri podataka:AX.U posebnim instrukcijama za citanje iz magacina i upis magacin sadrzaj pokazivaca magacina mijenja se automatski i povecava se za jedan poslije citanja.Bazni registar Briovo je jos jedna grupa posebnih registara procesora koji se koriste za adresiranje lokacija operativne memorije.To su npr.DI i SI  Segmentni registri:CS.Pokazivac steka PS-stek ili magacin predstavlja memoriju koja se u savremenim racunarima najcesce realizuje u operativnoj mmoriji.BX.zbog cega se nazivaju registri opste namjene ili lokalni registri. Registri mikroprocesora Intel 8086 Mikrioprocesor Intel 8086 ima 14 16-bitnih registara.jos jedan akumulator .CX i DX  Pokazivacki i indeksni registri:SP.a smanjuje za 1 prije upisa novog sadrzaja u magacin.6).dodatni aritmeticki registri za mnozenje i djeljenje.SS i DO 45 .kao bazni i indeksni registri.

DI i Si su adresni registri koji se koriste za rad sa adresama.pri izvrsenju ulazno izlaznih operacija i nekih operacija sa znakovnim podacima.SI ili DI.a posebno u operacijama sa niskama.CX(registar-brojac) sluzi kao brojac u instrukcijama za petlje ili pri radu sa znakovnim podacima.ali i kao dopunski pokazivac za rad sa podacima i stekovima.djeljenja.SP je pokazivac steka.Registri podataka mogu se tretirati kao cetiri 16-bitna registra ili kao 8-bitnih registara.zavisno od toga da li se radi sa podacima duzine 16 ili 8 bitova.s tim sto DI ukazuje na lokacije u koje treba upisati rezultat.Registar SI jeste indeksni registar koji se koristi u raznim operacijama.Pokazivacki i indeksni registri SP.6-registri mikroprocesora intel 8086 Registar IP naziva se pokazivac instrukcija i on odgovara brojacu instrukcoja kod drugih procesora.AX(akumulator) se koristi prilikom mnozenja 16-bitnih podataka.1navedene su osnovne namjene svih registara: 46 .Slika 4.Registar BP se koristi kod vecine aritmetickih operacija prilikom bazno-indeksnog adresiranja.dok se BP.BP.U tabeli 4.DX ima ulogu pomocnog akumulatora prilikom mnozenja 16-bitnih podataka i prilikom djeljenja.Registar DI ima slicnu ulogu kao i SI.adresa segmenta smjestena je u registar segmenta podataka SS.a pomjeraj je u jednom od registara BP.DI i SI mogu koristiti kao bazni ili indeksni registri.Da bi see pristupilo podacima u segmentu podataka.registar oznaces sa FLAGS je registra uslova i on sadrzi indikatore koji se postavljaju pri izvrsenju operacija.

Tabela 4.1 Koristenje registara podataka u mikroprocesoru intel 8086
Pokazivac instrukcije IP cuva pomjeraj koji se dodaje sadrzaju registra elemenata koda programa da bi se formirala fizicka adresa instrukcije koja treba sljedeca da se izvrsi.Indikator PF postavlja se na 1 ako rezultat neke operacije sadrzi paran broj binarnih jedinica,inace se postavlja na 0.

Slika 4.7 Registar uslova mikroprocesora Intel 8086
Indikator AF pomocni indikatorr preosanaziva se poluprenos i koristi se kod izvrsenja operacija sa binarno kodiranim dekadnim brojevima.Indikator ZF postavlja se na 1 ako je rezultat operacije 0.Indikator SF koristi se pri radu sa oznacenim brojevima.Indikator TF koristi se pri izvrsenju instrukcija korak po korak.Indikator IF indikator dozvole sluzi za maskiranje prekida.Indikator DF koristi se prije svega tokom rada sa nizovima znakova.Indikator OF sluzi za indikaciju greske kod aritmetickih operacija.Indikatori TF,IF i DF nazivaju se kontrolni indikatori,a svi ostali su indikatori uslova (stanja).Mikroprocesor i80486 i pentium imaju 32-bitne registre koji predstavljaju prosirenje registara mikroprocesora 8086,kao i neke dodatne registre za nove funkcije.Medjutim sa stanovista asemblerskog programiranja mikroprocesora familije 80x86,ima vrlo male razlike u asemblerskom programiranju.

4.3 Upravljačka jedinica
Upravljačka jedinica obavlja dvije osnovne funkcije: a) određivanje redoslijeda instrukcija za izvršenje i b) dekodiranje izabrane instrukcije, tumačenje pojedinih polja instrukcije i upravljanje izvršenjem operacije određene kodom operacije te instrukcije. Upravljačka jedinica formira upravljačke signale za: pozivanje instrukcija iz operativne memorije, dekodiranje koda operacije, formiranje adresa operanada, pristup operativnoj memoriji i prenos operanada u aritmetičko – logičku jedinicu, izvršenje u aritmetičko – logičkoj jedinici operacije predviđene kodom instrukcije, prenos dobijenog rezultata u operativnu

47

memoriju, iniciranje rada ulazno – izlaznog prenosa, organizaciju reakcije procesora na spoljne zahtjeve i drugo. Važnu ulogu pri izvršenju operacija ima redoslijed upravljačkih signala u vremenu. Zato se govori o taktovanju ili sinhronizaciji rada procesora. Za određene upravljačke signale i njihov redoslijed izvršavaće se određena operacija nad podacima. Pri tome treba da postoji mogučnost analize uslova u registru uslova radi grananja u procesoru izvršenja operacija. Osim toga, za aritmetičke operacije se iz registra uslova koriste bit prenosa, bit prekoračenja, izlazni bit pri pomjeranju sadržaja i drugo. Upravljački signali mikroprocesora Intel 8086* Na slici 4.8 prikazani su signali mikroprocesora Intel 8086. Kako čip mikroprocesora ima samo 40 priključaka, multipleksirane su linije AD0 – AD14 za podatke i za adrese. Takođe su i četiri adresne linije najveće težine A16 – A19 multipleksirane sa signalima stanja S3 – S6. Podaci se čitaju iz memorije ili sa periferne jedinice i upisuju u memoriju ili na perifernu jedinicu preko linija AD0 – AD15. Informacija za indentifikaciju uređaja koja dolazi do kontrolera prekida takođe dovodi preko istih linija. Funkcije ostalih signala u minimalnom režimu rada su slijedeće: ALE – signal koji definiše da je na multipleksiranim linijama niži bajt adresne informacije; BHE – signal koji definiše da se dozvoljava postavljanje osam bitova veće težine podataka na magistralu; CLK – ulazni taktni signal; DEN – dozvola za podatke na multipleksiranoj magistrali; DT/R – pokazuje smjer prenosa podataka na magistrali: ka procesoru ili iz njega; HLDA – potvrda isključenja; HOLD – zahtjev za isključivanje procesora sa magistrale i prelaz u treće stanje radi direktnog pristupa memoriji; INTA – potvrda prihvatanja prekida; INTR – signal zahtjeva za maskirajući prekid; M/IO – signal koji definiše da li se pristupa operativnoj memoriji ili periferijama; MN/MX – signal koji pokazuje da li procesor radi u minimalnom ili maksimalnom režimu; NMI – ulazni signal zahtjeva za nemaskirajući prekid; RD – pokazuje da na magistrali teče ciklus čitanja podataka iz Slika 4.8. – Signali memorije ili sa periferije; Mikroprocesora Intel 8086 READY – signal iz operativne memorije koji pokazuje da je moguć pristup radi upisa ili čitanja; RESET – dovođenje procesora u početno

48

stanje; TEST – signal kojim se procesor prevodi u stanje čekanja; WR – signal koji pokazuje da na magistrali teče ciklus upisa u memoriju ili na periferiju. Sistem prekida mikroprocesora Intel 8086 Mikroprocesor 8086 ima raznovrstan sistem prekida. Zavisno od toga šta je uzrok zahtjeva za prekid, prekidi se mogu podjeliti na spoljašnje i unutrašnje koji se dalje dijele na softverske prekide i prekide koje generiše procesor. Pri prihvatanju prekida procesor upisuje u stek tekuću vrijednost registara FLAGS, CS i IP, postavlja bitove indikatora IF i TF na 0 i učitava nove vrijednosti registara CS i IP. Adrese prekidnih programa nalaze se u tabeli vektora prekida koja zauzima 1kB u gornjem dijelu operativne memorije. Poslije završetka prekidnog programa procesor vraća sa steka stare vrijednosti registara CS, IP i FLAGS i nastavlja da izvršava tekući program. 8086 posjeduje dvostepeni sistem prekida sa dvije linije zahtjeva za prekid: NMI i INTR. Zahtjevi koji dolaze preko INTR linije mogu se programski maskirati. To znači da kada je INTR linija aktivna, procesor će prihvatati prekid zavisno od sadržaja IF indikatora u registru uslova: ako je IF = 1 procesor prihvata zahtjev za prekid, ako je IF = 0 procesor ignoriše zahtjev. Po prohvatanju prekida procesor generiše signal INTA kojim potvrđuje prihvaranje prekida. Preko posebnog kola – kontrolera prekida, na istu liniju zahtjeva za prekid može se vezati više uređaja. Uređaj koji je tražio prekid, poslije odobrenja procesora, postavlja direktno ili posredstvom kontrolera prekida osmobitni broj na magistralu podataka kojim se uređaj identifikuje. ovaj se podatak naziva vektor prekida. Procesor množi vektor prekida sa 4 i tako dobija adresu u tabeli vektora prekida gdje se nalazi početna adresa programa za opsluživanje zahtjevanog prekida. Prekidi koji dolaze preko NMI linije zahtjeva za prekid ne mogu se maskirati. Ova se linija koristi za signalizaciju katastrofalnih grešaka. Unutrašnji prekidi mogu biti softverski ili ih generiše interno sam procesor. Procesor generiše unutrašnje prekide u slučaju dijeljenja sa nulom, prekoračenja kapaciteta akumulatora, kod rada korak po korak i pri nailasku na kontrolne tačke kod otklanjanja grešaka u programu. Softverski prekidi realizuju se posebnim instrukcijama u programu oblika INT n. Za povratak iz prekidnog programa koristi se posebna instrukcija IRET. Pri njenom izvršenju sa steka se uzimaju stare vrijednosti registara CS, IP i FLAGS. Direktni pristup memoriji – DMA Direktni pristup memoriji služi za brzi prenos podataka između operativne memorije i ulazno – izlaznih uređaja, bez učešća mikroprocesora, DMA

49

4) informaciju o slijedećoj instrukciji na koju treba prijeći poslije završetka tekuće instrukcije. 4) po završetku prenosa DMA kontroler obara signal HOLD. sadrži informacije potrebne za upravljanje izvršenjem jedne operacije. postavlja ga na vrijednost 0. Mikroinstrukcije 50 . Instrukcija treba da sadrži slijedeće informacije: 1) oznaku operacije koja treba da se izvrši. 3) DMA kontroler preuzima upravljanje magistralom tako što postavlja adrese memorijskih lokacija na adresnu magistralu i kontroliše signale MEMR i IOR. tj. Pored aritmetičkih i logičkih operacija. 3) adresu na koju treba smijestiti rezultat primjene opracije. uključujući i odluke o toku izvršenja samog programa. 2) informaciju o operandima nad kojima se izvršava operacija. tipične operacije koje računar izvršava jesu prenos. korak po korak. kako da riješi neki zadatak.operaciju upisa u memoriju ili čitanja iz memorije. Instrukcija predstavlja kod koji određuje operaciju i podatke koji učestvuju u toj operaciji. . 4. 2) kada prihvati zahtjev za DMA. Instrukcije i njihovo izvršavanje Računar je konstruisan tako da može direktno u procesoru izvršavati samo određeni broj prostih operacija koje se nazivaju mašinske operacije. koji onda obara sinal HOLDA dajući znak da ponovo preuzima upravljanje magistralom. koji ćemo dalje nazivati mašinski program ili kratko program. Riješavanje nekog problema pomoću računara sastoji se u primjeni niza operacija koje se izvršavaju po predviđenom redoslijedu.4. Kod 8086 ovaj se prenos odvija na sljedeći način: Prije početka prenosa procesor inicijalizuje DMA kontroler tako što mu saopštava sljedeće podatke: . odnosno MEMW i IOW.broj bajtova koje treba prenijeti i . odnosno za direktni pristup memoriji.početnu memorijsku adresu prenosa.prenosom upravlja posebno kolo – DMA kontorler. se isključuje sa magistrale i postavlja signal HOLDA kojim potvrđuje da je prihvaćen zahtjec za DMA. Vremenska sekvenca odvijanja DMA prenosa je slijedeća: 1) DMA kontroler šalje procesoru linijom HOLD zahtjev za oslobađanjem magistrale. proc. što otkriva mikroprocesor. učitavanje podataka sa ulaza ili slanje podataka na izlaz i dr. Izlaz koji određuje mašinsku operaciju u vrijednosti ili mijesta operanada nad kojima se ta operacija treba da obavi naziva se instrukcija ili mašinska naredba. predstavlja niz instrukcija koje saopštavaju računaru. Program za računar. tj.

ako postoji. Sekvenca mikrooperacija kojom se realizuje operacija obrazuje mikroprogram operacije. U adresnom dijelu instrukcije. broj bajtova potrebnih za zapis jedne mašinske instrukcije. Bajt mod reg r/m naziva se bajt načina adresiranja i služi za opis operanda na slijedeći način: dio reg (3 bita) predstavlja adresu registra procesora prema tabeli 4. 4. Pri tome mod određuje kako će se koristiti polje r/m pri određivanju mijesta operanda. Slika 4.9. tj.3. b) dvobajtne instrukcije tipa registar /memorija u /iz registra bez pomjeraja.9): a1) jednobajtne instrukcije kada se mjesto operanda podrazumijeva. Format instrukcija mikroprocesora 8086 Dužina instrukcija. Dijelovi mod (2 bita) i r/m (3 bita) određuju koji se registri koriste kako će se načine adresiranja prema tabeli 4. Tipičan primjer elementarne radnje koja se izvršava u procesoru predstavlja prijenos sadržaja iz jednog registra procesora u drugi. Na taj način nastaje slijedeća hijerarhija etapa izvršavanja programa u procesoru: program. jednostavnije etape koje se nazivaju mikroradnje ili mikrooperacije. instrukcija. mogu postojati jedna. c) trobajtne instrukcije tipa neposredni operand u memoriju. Skup mikroinstrukcija koje se izvršavaju u jednom taktnom intervalu procesora naziva se mikroinstrukcija. dvije ili tri adrese.2. a2) jednobajtne instrukcije sa registrom kao operandom. – Adresiranje mikroprocesora Intel 8086 mikroprocesora Intel 8086 rigistara 51 . Mikroprocesor 8086 ima slijedeće formate instrukcija (sl. Većina instrukcija u okviru koda operacije sadrži dodatne simboličke oznake W i S za dva bita kojima se daju dodatne informacije o toj instrukciji. Kod većine instrukcija kod operacije se nalazi u prvom bajtu. – Formati instrukcija Tabela 4.2. kod mikroprocesora 8086 iznosi od 1 do 6 bajtova. mikroinstrukcija.Izvršenje instrukcije može se podijeliti na manje. Njima se u procesoru izvršavaju u jednom taktnom intervalu određene elementarne radnje.

a njena adresa nalazi se u brojaču instrukcija BI. Instrukcija koju treba izvršiti smještena je u operativnu memoriju. U fazi pripreme čita se instrukcija iz memorije i prenosi se u registar instrukcija procesora. Da bi ona mogla upravljati izvršenjem operaije. a njena adresa se nalazi u brojaču instrukcija BI. 52 .Ciklus izvršenja instrukcije Pod pojmom izvršenje instrukcije podrazumijeva se proces izvršenja operacije zadate tom instrukcijom. Funkcionisanje svakog procesora uglavnom se sastoji od cikličnog ponavljanja procesa izvršenja instrukcija. Procesor izvršava instrukcije programa neprekidnim smjenjivanjem sljedeće dvije faze: 1) faze pripreme ili pozivanja instrukcije i 2) faze izvršenja instrukcije. Faza pripreme (pozivanja) instrukcije odvija se na slijedeći način: 1) (AR) : = (BI) – sadržaj brojača instrukcija šalje se u adresni registar AR. Da bi ona mogla upravljati izvršenjem operacije. Faza pripreme prethodi fazi izvršenja i one se ciklično mijenjaju. potrebno je da se pozove u registar instrukcija RI. potrebno je da se ona uzme iz operativne memorije i pozove u registar instrukcija RI. Faza pripreme (pozivanja) instrukcije Instrukcija koju treba izvršiti smještena je u operativnoj memoriji. 2) na osnovu sadržaja AR pomoću kola za dekodiranje nalazi se lokalizacija u memoriji. a u fazi izvršenja obavlja se operacija određena pozvanom instrukcijom.

Posljednjih godina sve veći broj procesora realizuje se prema nešto drugačijoj. . „Preko 80% vremena izvršenja bilo kog programa troši se na izvršenje instrukcija čiji broj ne prelazi 20% ukupnog broja instrukcija procesora. odakle će instrukcija upravljati izvršenjem operacije. Faza izvršenja operacije (instrukcije) Dok je faza pripreme instrukcije opšta za sve instrukcije. 6) (BI) : = (BI) + L – povećava se sadržaj brojača instrukcija za dužinu pozvane instrukcije L. neki drugi registar procesora. ili određenu lokaciju operativne memorije. Početkom osamdesetih godina publikovane su prve informacije o istraživanjuma arhitekture čiji je cilj bio povećanje izvršenja programa. Zbog toga je za veliki broj instrukcija potreban jedan memorijski ciklus za pozivanje operanda. prema autoru koji je predložio ovakav način realizacije računara. odnosno računari sa redukovanim skupom instrukcija. kao i instrukcijama grananja i prelaska u potprogram.postoji mali broj različitih načina adresiranja. Računari sa ovako realizovanim skupom instrukcija nazivaju se danas CISC računari.“ RISC procesori karakterišu se sljedećim osnovnim svojstvima: . CISC I RISC arhitekture Opisani način pripreme i izvršenja instrukcija karakterističan je za sve postojeće procesora i naziva se Fon Nojmanov-a arhitektura. odnosno računari sa kompleksnim skupom instrukcija.većina instrukcija obrađuje podatke iz registara procesora i smješta rezultat u te registre. Razmotrićemo ukratko istorijat i karakteristike RISC računara. 5) izračunava se adresa podataka koji će se obrađivati. Osnovna karakteristika većine instrukcija jeste izvršenje operacija nad operandima od kojih se jedan najčešće poziva iz operativne memorije. a drugi iz akumulatora. a realizovani računari nazivaju se RISC procesori ili RISC računari. 7) prelazi se na fazu izvršenja instrukcije.izvršenje najvećeg broja instrukcija za samo jedan takt. .3) (PR) : = M[AR] – čita se sadržaj nađene lokacije i upisuje u prihvatni registar PR. tj. modifikovanoj arhitekturi. 53 . Instrukcije se najčešće realizuju mikroprogramski. 2) izvršenje operacije u aritmetičko – logičkoj jedinici i 3) smještanje dobijenog rezultata u akumulaor. Realizovani skupovi instrukcija sadrže više desetina ili čak nekoliko stotina različitih instrukcija. . i smješta se u adresni registar AR. Faza izvršenja instrukcije za većinu instrukcija sastoji se obično od slijedećih potfaza: 1) uzimanje operanada iz operativne memorije.obraćanje memoriji brši se samo instrukcijama LOAD i STORE. dotle se faza izvršenja odvija specifično za jednu ili grupu instrukcija. 4) (RI) : = (PR) – sadržaj PR šalje se u registar instrukcija RI. računara sa programom upamćenim u operativnoj memoriji.

Protočno izvršenje instrukcija Umijesto realizacije izvršenja ciklusa instrukcije u samo dvije faze. – Radni ciklus procesora 4. savremeni procesori instrukciju izvršavaju u sljedećih pet koraka: 1) priprema instrukcije 2) dekodiranje 3) izvršenje 4) pristup memoriji 5) upis rezultata. Radni ciklus se završava provjerom postojanja neskiranih zahtjeva za prekid. već 54 .format instrukcija je relativno prost i fiksan.. .5 Načini adresiranja Svaki podatak koji se čuva u nekoj lokaciji operativne memorije može se identifikovati zadavanjem adrese te lokacije. izlazi se iz normalnog radnog ciklusa i prelazi na obradu zahtjeva za prekid. Ako oni postoje. . Zbog toga su u instrukciji sadržane i informacije o adresama operanada ili pojedinim komponentama adrese. Kod svih savremenih računara adresni dio instrukcije najčešće ne predstavlja i stvarnu adresu po kojoj se nalaze podaci u memoriji.mogućnost protočne obrade instrukcija. Instrukcijama programa definišu se operacije nad podacima koji se nalaze u operativnoj memoriji ili u nekom registru centralnog procesora. Povećanje brzine rada procesora postiže se izvršenjem navedenih etapa radnog ciklusa preklapanjem u vremenu.veliki broj registara u procesoru.10. Slika 4. U tom slučaju procesor mora imati onoliko procesnih elemenata koliko ih radi u protočnom režimu. Ovaj način karakterističan je za CISC arhitekturu. Na osnovu tih informacija procesor nalazi samo operande. Za RISC je nešto drugačiji. Tada će se istovremeno u raznim etapama obrade obrade nalaziti više instrukcija.

Metod adresiranja koji se u nekoj instrukciji koristi za formiranje efektivne adrese specifikuje se u instrukciji najčešće u posebnom polju modifikatora M koje obično sadrži 2 ili 3 binarne pozicije. Za formiranje efektivne adrese koriste se posebni adresni sistemi u procesoru. Bitovima u polju modifikatora M definiše se način formiranja efektivne adrese u adresnoj aritmetičkoj jedinici. Ovaj se problem uspješno razrješava uvođenjem raznih metoda adresiranja. Adresni sistemi posebno su razvijeni kod malih i mikroračunara. M modifikator. tj. fizičja adresa podatka u operativnoj memoriji.samo jednu komponentu za formiranje te adrese. 55 . onda se kaže da je to neposredni operand. Neposredno adresiranje. – Ako adresni dio instrukcije ne predstavlja adresu operanda. Upravljačkim signalima koji se generišu na osnovu sadržaja polja M dozvoljava se ili zabranjuje podacima iz različitih registara procesora da učestvuju u formiranju efektivne adrese. a ad adresni dio instrukcije. gje je OP simbolička oznaka operacije. Tako instrukcija treba da ima slijedeći opšti format: OP M R ad. a metod adresiranja se naziva neposredno adresiranje. Postupak određivanja efektivne adrese na osnovu adresnih informacija naziva se način adresiranja ili metod adresiranja. – U instrukcijama se implicitnim adresama operand nije eksplicitno specifikovan u adresnom dijelu instrukcije. Kako u formiranju efektivne adrese operanada često može učestvovati i neki od registara centralnog procesora. formira se na osnovu više komponenata i naziva se efektivna adresa ili izvršna adresa. to je potrebno zadati u izvršne instrukciji i adresu tog registra. Formiranje efektivne adrese Na slici 4. R adresa ili oznaka registra procesora. Slika 4. Kod njih problem predstavlja mala dužina instrukcije jer se adresnim dijelom instrukcije može adresirati mali broj lokacija u memoriji. već sam operand. adrese – Formiranje Implicitno adresiranje.11.11 dat je opšti sličaj formiranja efektivne adrese operanda. Adresa po kojoj se vrši stvarno obraćanje memoriji. već se njegova adresa podrazumijeva i određena je kodom operacije.

Direktno adresiranje. pak. – Kod direktnog adresiranja za obraćanje memoriji koristi se samo adresni dio instrukcije koji predstavlja istovremeno i efektivnu adresu. već za nju može da se koristi neki registar opšte namjene centralnog procesora. Indeksno adresiranje (indeksiranje). bazno-indeksno i relativno bazno – indeksno. U instrukciji: MOV AX. – Dužina adrese u instrukciji može se smanjiti uvođenjem u procesor posebne grupe registara koji se nazivaju bazni registri. Neposredno adresiranje. Registarsko adresiranje. – Adresa koja ne specifikuje memorijsku lokaciju operanda.njih ima manje. – Mnogi računari sadrže instrukcije koje operande uzimaju iz registara opšte namjene ili drugih registara centralnog procesora ili. Bazno adresiranje. – Ako se kao bazni registar koristi brojač instrukcija BI. Operacije u kojima se za pamćenje operanada koriste registri opšte namjene centralnog procesora pogodne su iz dva razloga: . Načini adresiranja mikroprocesora familije Intel 80x86 U instrukcijama za ove mikroprocesore koriste se slijedeći načini adresiranja: neposredno. koja se naziva pomjeraj. Opisane metode adresiranja često se mogu kombinovati i primjenjivati istovremeno. naziva se indirektna adresa. Konstanta je oznalena i može biti 8-bitna ili 16-bitna. jer se cijela memorijska riječ mogla koristiti za adresu. Autoindeksiranje. Autoinkrementno i autodekrementno adresiranje. – Interesantne mogućnosti pruža registarsko indirekno adresiranje pri kome se registar opšte namjene koji se koristi za čuvanje adrese operanda automatski prije ili poslije korišćenja povećava ili smanjuje za 1. u njih smještaju rezultate. – Za adresiranje elemenata nizova smještenih u sukcesivne memorijske lokacije uveden je poseban registar centralnog procesora koji je nazvan indeksni registar. pa se za adresiranje koristi mali broj bitova. adresiranje se naziva programsko relativno adresiranje instrukcija ili relativno adresiranje. direktno. U njemu se čuva razlika između adrese tekućeg i adrese prvog elementa. – Poslije svakog indeksiranja da bi se pristupilo novom podatku potrebno je promjeniti sadržaj indeksnog registra. registarsko. Memorijsko indirektno adresiranje. Efektivna adresa iznosi: ea = <konstanta> Primjer. – Indirektna adresa operanda ne mora da se nalazi u nekoj memorijskoj lokaciji. Jedan od osnovnih razloga za uvođenje memorijskog indirektnog adresiranja jeste proširenje adresnog prostora. – Kod ovog načina operand je konstanta sadržana u samoj instrukciji. indeksno. Pri tome se mogu sresti i adresiranja koja se ne mogu svrstati ni u jedan od opisanih metoda. Registarsko indirektno adresiranje. . već memorijsku lokaciju u kojoj se nalazi adresa operanda. -96 – decimalna vrijednost -96 upisuje se u registar AX 56 . Ostale metode adresiranja. registarsko indirektno.registri su znatno brži od operativne memorije. bazno relativno. za što se koristi posebna instrukcija. Relativno adresiranje.

Ako se u instrukciji pristupa lokaciji sa poznatim pomjerajem. BP. čija je adresa u BX. CL. Primjer1. AH.Direktno adresiranje. SI. SP.13). u slijedećem obliku: MOV AX. BP. CX. efektivna adresa je: ea = AX. DX. SI. DH Registarsko indirektno adresiranje. BX. CL. Instrukcijom : MOV AX. a u instrukcijama koje opešišu sa bajtovima registar može biti AL. 57 . DI. BX. U instrukcijama koje operišu sa riječima registar može bit AX. Izvršenjem instrukcije: MOV AX. BH. DH. AH. CH. DX. AX. upisuje se u registar AX (sl. – Kod ovog načina adresiranja adresa operanda nalazi se u registru BX ili u jednom od indeksnih registara DI ili SI. DL. ADR – sadržaj čije su adrese ADR i ADR + 1 upisuje se u reg. SL. tada se mora navesti i segmentni registar DS.12 – Direktno adresiranje Registarsko adresiranje – Kod registarskog adresiranja operando se uzimaju iz registara i upisuju u registre Pri tome instrukcija sadrži nazive registara sa kojima se radi. DI. DS : [02H] Slika 4. DL. CX. [BX] – sadržaj memorijske lokacije. BL. 4. BL. CH. Prema tome. Adresa registra zauzima 3 bita. – Kod direktnog instrukcija sadrži 16-bitni pomjeraj D16 na osnovu koga se formira efektivna adresa operanda pomoću segmentnog registra DS u obliku: ea = (DS) + D16 Primjer. SP. BH.

Kod ovog načina adresiranja efektivna adresa ea formira se kao zbir sadržaja baznog i indeksnog registra. Efektivna adresa izračunava se na način prikazan na slici 4. a ako se koristi registar BX.15): 58 . – Kod ovog načina adresiranja efektivna adresa ea formira se kao zbir bazno-indeksne adrese i 8-bitnog pomjeraja sa znakom D8 ili 16bitnog pomjeraja D16 (slika 4.14. podatak je u segmentu steka. [BX] + 2. Slika 4.14. – Kod ovog načina adresiranja koriste se registri BX ili BP. U instrukciji: MOV AX. podatak je u segmentu podataka. – Registarsko indirektno adresiranje Bazno adresiranje ili bazno relativno adresiranje. – Bazno adresiranje Bazno-indeksno adresiranje.13.Slika 4. Relativno bazno-indeksno adresiranje ili bazno-indeksno adresiranje sa pomjerajem. Ako se koristi registar BP. Primjer.

uslovnih instrukcija i instrukcija za upravljanje tokom izvršenja programa. – Relativno bazno-indeksno adresiranje Programsko relativno adresiranje. Aritmetičko-logička jedinica 59 . i to tako da SI pokazuje na prvi bajt izvornog nita. Adresiranje niski (nizova znakova). 1. –Ovaj način adresiranja koristi se samo kod instrukcija JUMP i CALL.a). 4. Aritmetičko-logička jedinica Aritmetičko-logička jedinica je dio računara u kome se izvrašavavaju operacije nad podacima (sl. Efektivna adresa se računa kao suma sadržaja pokazivača instrukcija IP i 8-bitnog označenog pomjeraja D8 ili 16-bitnog pomjeraja D16. Slika 1. a DI pokazuje na prvi bajt odredišnog niza.Slika 4. 1.6. U toku izvršavanja instrukcija procesor automatski ažurira (podešava) sadržaj registara DI i SI.15.b). – Kod instrukcija koje manipulišu nizovima znakova koriste se registri SI i DI. O tome koja operacija i nad kojim i nad kojim podacima treba da se izvrši saopštava upravljačka jedinica signalima za izbor operacije (sl.

4. Ovaj se rezultat obično upisuje u akumulator AK. Na ulaz Artmetičlop logičke jedinice dovode se iz akumulatora AK i nekog privremenog ili drugog registra RP dva binarna niza duzine n.Aritmetičko-logička jednica (ALJ) realizuje se kao prekidačka mreža za 2 n ulaza i n + u ulaza. prenosi ili premjesta sadrzaj jednog registra u drugi. Slika 2. a na izlazu se dobija binarni niz duzine n kojim je rezultat prijene neke definisane aritmetičke. Aritmeticko-logičke instrukcije djele se na sljedeci tip grupe: 60 . Registri Ra i Rb na izlazu sluze da se u jedan od tih privremeno zapamti rezultat. Najčešca je sljedaca podjela instrukcija: Instrukcije za prenos podatka Aritmetičko-logičke instrukcije Instrukcije za upravljanje tokom izvođenja programa Ulazno izlazne instrukcije Ostale instrukcije Instrukcijama za prenos podataka poziva se sadrzaj lokacija operetivne memorije u akumulator ili neki drugi registar procesora. Kao što se vidi. binarne i složene operacije Skup instrukcija Sve instrukcije kojima su realizirane razne operacije u procesoru uslovno se mogu podesiti na nekoliko grupa. sve operacije se izvršavaju nad operandima kojim se koji se uzimaju iz registarskog polja. gdje je n dužina mašinske riječi.7 Unarne. a u su izlazi za ¸indikatore u registru uslova RU. logičke ili druge operacije nda ulazinm nizovima. u koji se takođe vraća i rezultat. radi se stekom. Realizacija prekidackog sklopa Aritmetičko-logička jedinica RISC procesora prikazana je na slici 2. Šalje sadrzaj akumulatora ili nekog drugog registra procesora u operativnu memoriju.

Logičkim instrukcijama izvršsavaju se logičke operacije (operacije bulove ili prekidacke algebre): AND. 61 . mnozenje i djelenje. 1.1. 3. - Instrukcije za grananje i preskoke Instrukcije za programske petlje Instrukcije za potprogramme Sve ove instrukcije sluze za upravljanje tokom izvodjenja programa. Upravljanje instrukcijama takodjer se mogu podjeliti na nekoliko podgrupa.- Aritmetičke instrukcije Logičke instrkcije Instrukcije za pomjeranje Aritmetičkim instrukcijama izvršavaju se osnovne aritmetičke operacije ( sabiranjem. mogu se primjeniti u u bilo kojem drugom brojnom sistemu osnovom q ako se koriste tablice osuzimanja i sabiranja jednocifrenih brojava za taj brojni sistem. 4. Binarno sabiranje Tablica sabiranja za binarni brojni sistem data je u tabeli šrikazanoj na slici 3.8 Aritmetičke operacije i njihova realizacija Pravila za aritmetičke operacije koja važe u dekadnom brojnom sistemu. zatim poredjenje dva sadržaja. najčesce akumulatora. Mi ćemo dalje posmatrati aritmetičke operacije sa neoznačeni brojevima u binarnom brojnom sistemu. sadrzi dvije cifre najmanje tezine. OD XOR i NOT. Ako postoji jedinica prenosa zapamtiti je za sljececu višu poziciju. Izlazno ulaznim instrukcijama prenose se podaci sa procesora na neki periferni uređaj ili sa perifernog uređaja na procesor. za odrađeni broj mjesta ljevo ili resno. povećavanje odnosno samnjivanje sadrzaja za 1 n cl. Onstrukcijama za pomjeranje pomjera se binarni sadrzaj nekog registra procesora. komplmentiranje. oduzimanje.

2. ako ima jos pozicija u kojuima nije izvršeno sabiranje vratiti se na korak 2.1. 3. Pri tome se kod rada pri prazlomljenim brojevima tačke razlomaka pišu u istoj poziciji po vertikali.1. Binarno množenje 62 . postupak sabiranja 3. sadrzi dvije cifre dljedece vise pozicije i cifru prenosa iz predhodene nize pozicije. Slika 3. Tabela 3. 4.2. Novi prenos zapamti za sljedecu visu poziciju. 3. Tablica istinitosti koja prikazuje rad potpunog sabiranja data je na slici. Binarno oduzimanje Brojevi u binarnom brojnom sistemu oduzimaju se po pravilima koja se koriste i u dekadnom brojnom sistemu. Primjer: U binarnom brojnom sistemu od binarnog broja 1010. Slika 3. Binarni sabirci Binarni potpuni sabirak predstavlja kombinacionu mrezu realizovanu pomoću logičkih elemenata koja sluze za sabiranje dva jednocifrena binarna broja ili tvi cifre y i-tom razredu dva visecifrena binarna broja i prenosa iz predhodnog nizeg razreda.3.11 oduzeti binarni broj 1001. 3. ako je izvršeno sabiranje cifara u svim pozicijam i ne postoji prenos postupak sabiranja je zavrsen.1.001.

pisanje programa u tom obliku težak je i naporan zadatak iz više razloga: 63 .Međutim.ASEMBLER 5.Takav oblik je jedini oblik koji može prihvatiti upravljačka jedinica računara i izvršavati ga. Primjer: 3. Da bi program za rješenje nekog problema morao da bude izvršavan u računaru.1 Simboličko mašinsko programiranje Mašinski program Program se u memoriji računara smješta u binarno kodiranom obliku.Poznato pravilo za množenje koje se koristi u dekadnom brojenom sistemu primjenjuje se i za mnozenje brojeva. ali treba koristiti tablice sabiranja i mnozenja za binarni brojni sistem. potrebno je da se on pripremi u binarno kodiranom obliku.4. 5. Binarno djeljenje Djeljenje u binarnom brojnom sistemu vrsi se po istim pravilima kao i u dekadnom brojnom sistemu.

koliko će memorije biti potrebno za međurezultate. identifikator) predstavlja niz sastavljen od slova abecede i decimalnih cifara koji počinje slovom. nastaje potreba da se vrši pomjeranje već napisanih instrukcija i podataka. kao i u simboličkom predstavljanju svih djelova instrukcija. Rješenje navedenih nedostataka u pripremi programa nađeno je u simboličkom predstavljanju adresa po kojim se smještaju instrukcije. Po težini to je slično.Ovo je posebno važno ako treba provjeriti ispravnost napisanog programa ili unjeti izmjene u njega.Ovakav način pripreme programa zahtjeva da se pamte cifarski kodovi svih operacija. a treba uzeti izmjene. Najvažniji nedostaci pisanja program u binarnom ili heksadecimalnom obliku su sređeni. Nešto drugačije pisanje programa. programeri su prvo brzo počeli da sebi olakšavaju posao pri pisanju programa. 3. jer se sve adrese pišu sa apsolutnim vrijednostima. sastojalo se u pisanju koda operacije u adresu u decimalnom obliku.Zbor proste veze između binarnog i heksadecimalnog oblika prevođenje u binarni oblik vršeno je prije pripreme programa za unošenje. a program za prevođenje bio je nešto složeniji jer je sada trebao vršiti prevođenje iz decimalnog u binarni oblik. ali je brzo prvo taj zadatak povjeren posebnom programu koji je sam vršio prevođenje u binarni oblik. što zahtjeva izmjenu adresa u mnogim instrukcijama.Ako su programi već napisani. Treba znati unaprijed mjesta u memoriji na kojima će on biti smješten.Prvo takvo moguće poboljšanje bilo je pisanje programa umjesto u binarnom u heksadecimalnom obliku. 1) Određivanje stvrani adresa. Treba znati pisati vrlo veliki spoj binarnih cifara.ali dosta slično prethodnom. Program za prve računare bili su pisani na pomenuti način jer tada nisu postojala druga sredstva.Ali. a koliko podaci. 4) Pamćenje kodova. a koliko će biti dug sam program. Međutim. 2) Uvođenje izmjena. Prije početka pisanja programa potrebno je znati koliko će memorijskog prostora zauzimati progrma.Korištenje simboličkji imena u 64 .1. Treba znati napamet sve kodove operacija. a služi za označavanje nekog pojma ili objekta. 3) Praćenje programa. 2. posebno ako treba nove instrukcije. Program napisan u cifarskom (kodiranom) pbliku nepregledan je i ne može se lako pratiti u razumjeti. Simbolička imena Simboličko ime (simbolički naziv.Pri tome je u instrukcijama kod operacije odvojen od adresnog djela instrukcije radi lakšeg praćenja. ovdje još nema informacije o tome koliko konstanti ima u progrmau. kojih ponekad ima nekoliko stotina.

Kodovi operacija u instrukciji se simbolički imena koja istovremeno predstavljaju i mnemoničke oznake (tako izabrana imena potpomažu da se lakše zapamte i odgonetnu pojmovi na koje se ona odnose). simboličku oznaku adrese memorijske lokacije u kojo će instrukcija biti smještena. da je i to razlog njihovog uvođenja u programiranje.Element <modifikator> služi za specifikaciju više podataka koji se prije svega koriste da ukažu na modifikacije adrese pri adresiranju ali mogu predstavljati i druge podatke neophodne za takvo definisanje operacija.<komentar>] Ovako predstavljena instrukcija naziva se simbolička (mašinska) instrukcija. 65 . služi da se detaljnije specifikuje šta se sotvaruje tom instrukcijom.Smatra se da je najbolje koristiti mnemotehničke oznake od 2. Na primjer. tzv. a praktično se taj spoj kreće od 1 do 6 ili 7 simbola.Element <komentar>. koji nije obavezan i nije sastavni dio instrukcije. tada X predstavlja simboličko ime memorijske lokacije u koju će biti smještena prednost za promjenljivu koju smo nazvali X.Element <oznaka> predstavlja ime instrukcije.Kod nekih instrukcija umjesto adrese operanada može se naći neki drugi podatak.o LD X. U programu često nastaje i potreba da se pozivamo na neku instrukciju u njemu. Adrese operanada u adresnom djelu instrukcije takođe se označavaju simboličkim imenima. Simbolički oblik instrukcije Pošto se koriste simbolička imena za iznačavanje pojedinih elemenata instrukcije. tj.Pri tome je usvojen princip da simbolička imena adresa operanada predstavljaju nazive tih operanada.U tom slučaju potrebno je navesti simboličko ime za instrukciju u cjelini koje sada nazivamo oznaka ili naziv instrukcije (nekad se koristio i termin – obilježje instrukcije). i sl. adresni izlazi.Imena stavljena u uglaste zagrade nisu uvijek obavezna.>[<modifikator>][adres. Za simbiločko označavanje operacija realizovanih u računaru mi ćemo koristiti simbolika imena koja predstavljaju mnemoničke (ili mnemotehničke) oznake naziva tih operacija na engleskom jeziku.Element <adr. ako zapiše.Umjesto simboličkih imena ponekad je dozvoljeno da se za označavanje adresa operanada koriste. mnemonička oznaka za sabiranje može biti SAB.3 ili 4 simbola (slova i cifara).Oznaka instrukcije koristi se samo u slučajevima kada se na neku instrukciju pozivamo u programu.Na primjer. Oznaka instrukcije faktički predstavlja simboličko ime za adresu memorijske pokazuje u kojo će biti smještena ta instrukcija. pomeranje akumulatora PAK.običnom životu je vrlo raširen metod.dio> predstavlja simboličko ime memorijske lokacije u kojoj je smješten operand. budući da su gotovo svi računari koje mi koristimo prizvedeni na engleskom govornom području. slijedi opšti oblik instrukcije jednoadresnog računara: [<oznaka>:] <oper.U adresnom djelu instrukcije koriste se ponekad simbloika imena i u djelu adresnih modifikatora.dio>][.

Asemblerski jezik Programski jezik kod kojh se instrukcije u programima predstavljaju simboličkim mašinskim instrukcijama nazivaju se simboličko mašinski jezici ili asemblerski jezici.bx . 66 . izmjenu u pripremu programa. tj. registar AX. pushds mov ax.Odlikuju se time što cu vrlo slični mašinskom jeziku konkretnog računara i sa njim stoje u odnosu 1:1.o pushax mov bx. Prenos podataka sa adrese ADR u. Primjer: .offset niz call inputs call newline .Primjer. Instrukcija napisana u simboličkom obliku izgledala bi ovako: POC: MOV AX. ADR . U njemu su rješeni mnogi nedostaci koji su se javljaju tokom pisanja instrukcija u cifarskom (kodiranom) obliku.offset poruka1 call prints mov dx. namjenjene – instrukcije Simbolički mašinski jezik pored toga sadrži i niz dodatnih mogućnosti za pisanje. svakoj simboličkoj instrukciji odgovara jedna mašinska instrukcija.Izvorni kod napisan na asemblerskom jeziku sadrži: • • Asemblerske instrukcijeinstrukcije mikroprocesoru i Asemblerske direktive (pseudoinstrukcije) namjenjene asembleru.bx mov es.dseg mov ds. Pisanje programa tako da se instrukcije predstavljaju u simboličkom obliku naziva se simboličko mašinsko programiranje ili asemblersko programiranje. mov dx.

Asemblerske instrukcije u izvornom asemblerskom programu imaju ulogu da definišu šta mikroprocesor treba da uradi. a adresa operacije u adresu gdje je smješten podatak nad kojim se izvršava operacija. modifikatori. Asemblerske direktive se koriste da bi se odredio šta asembler treba da uradi. konstante i operatore.Kako kod savremenih računara ovaj posao obavljaju posebni sistemski programi. potrebno je zadati početnu adresu u memoriji od koje počinje smještanje programa. operacija se prevodi u binarni kod peracije. Asembleri Asembler predstavlja poseban program koji pripada grupi sistemskih programa poznatih pod imenom programski prevodioci i služi za prevođenje simboličkih programa u mašinske programe. Kao i u nižim programskim jezicima. 5. Promjenljive 67 .Stvarne adrese formirajuse u momentu unošenja programa u memoriju prije izvršenja. U prilogu na kraju učbenika prikazane su sve asemblerske instrukcije za mikroprocesor i8086. kako da u procesu prevođenja tretira asemblerske instrukcije i podatke u datom izvornom programu.Svakoj asemblerskoj instrukciji odgovara jedna ili više instrukcija na mašinskom jeziku. oznake. tj. u binarni kod. adresa operanda formira se binarni kod instrukcije.2 Asemblerski jezik mikroprocesora i8086 Program napisan na asemblerskom jeziku mikroprocesora i8086 predstavlja izvorni asemblerski program i sastoji se od naredbi jezika koje mogu biti: 1) asemblerskie instrukcije i 2) asemblerske direktive.Komponovanjem elemenata: operand.Pri tome se element oznaka prevodi u adresi memorijske lokacije gdje će instrukcija biti smještena.Modifikatori se prevode u posebne bitove ili grupe bitova koji specifikuju dodatke informacije za izvršenje instrukcije. i asemblerski jezik u svojim naredbama sadrži promjenljive.Korištenje asemblerskog jezika za programiranje zahtjeva da računar ima poseban program kojim se simbolički program prevodi u mašinski program tj. Da bi asembler morao da vrši prevođenje. prevođenje sa asemblerskog jezika se vrši u relativnim adresama počev od adrese 0.

U asembleru za i8086. Labele Labele predstavljaju oznake za djelove programa na koje se može „preći“ ili „skočiti“ ili za djelove programa koje se mogu pozvati kao potprogrami. pomjeraj u tip. dok tip specifikuje vrstu instrukcije koja će se izvršiti na datoj lokaciji u programu.label – direktivom Svaka promjenljiva je određena sljedećim atributima: segment – segment memorije u kome se nalaze vrijednosti promjenjive. i labele sadrže tri atributa:segment.Mogu se u programu definisati na dva načina: .Za labele su definisani sljedeća dva tipa: NEAR – oznaka za labelu kojo će se pristupiti iz istog fizičkog segmenta i FAR – oznaka za labelu u kojo će se pristupiti iz drugog fizičkog segmenta. DWORD – za promjenljive dužine od 4 bajta.direktivom za definisanje podataka i . Konstante Konstante koje se koriste u asemblerskom jeziku mokroprocesora i8086 mogu biti: brojčane i znakovne ili slovne. Brojčane konstante mogu biti: 68 . tip – dužina promjenljive u bajtovima. WORD – za promjenljive dužine od 2 bajta. definisani su sljedeći tipovi promjenljivih: BYTE – za promjenljive dužine od 1 bajta.Kao i promjenljive. pomjeraj – rastojanje u bajtovima od početka segmenta do početka memorijske lokacije promjenljive u okviru segmenta. Segment i pomjeraj su atributi koji imaju isto značenje kao i kod promjenljivih. za određene memorijske lokacije u koje se smještaju vrijednosti tih podataka.Promjenljive predstavljaju oznaku za pojedine. tj.

XOR.Informacije koje se njima prenose nose upustva asembleru šta da uradi sa određenim instrukcijama i dodacima. THIS. LENGHT.D.2. Na primjer: 11001010B. logički operatori: AND.F). Decimalne konstane se sastoje od niza arapskih cifara (od 0 do 9).9.C.slovo B. Na primjer.Za razliku od binarnih konstanti. Operatori Operatori imaju ulogu da modifikuju operande instrukcija asemblerskog jezika.Opšti format asemblreskih direktiva je sljedeći: 69 . grafičkih simbola ili specijalnih znakova koji se zapisuju između navodnica il znakova apostrofa.6. decimalne i heksadecimalne. MOD.Na primjer: 140AH. A0F3H.Na primjer: „Znakovna konstanta“ i 'Ovo je primjer' su ispravno zapisane znakovne konstante. kao oznaka za heksadecimalni brojni sistem. ukoliko se ba kraju niza cifara ne nalazi slovo D.Te instrukcije se nazivaju naredbe asemblera. TYPE. Binarne konstante se satoje od binarnih cifara (nule u jedinice) na čijem kraju mora da stoji oznaka da se radi o binarnom brojnom sistemu. SIZE. ralacioni operatori: EQ. 28D i 28 su ispravno zapisane konstante.Na kraju niza heksadecimalnih cifara nalazi se slovo H.. NOT. Znakovne konstante se sastoje od slova.8. atributi: PTR.7. LT.A. operatora biće objavljena na konkretnim Namjenja pojedinih primjerima. 5. SHORT. /.- binarne.1. Postoje: aritmetički operatori: +.4. SHR. tj. NE. pseudonaredbe ili asemblerske direktive. LOW. GE. HIGH. -.5. jezik asemblera sadrži i određeni broj posebnih naredbi koje se ne prevode u mašinski kod.3. ono se podrazumjeva.. LE. cifara. GT. Asemblerske direktive Pored simboličkih mašinskih instrukcija. decimalne konstante ne moraju da sadrže oznaku brojnog sistema.E. Heksadecimalne konstante se sastoje od niza heksadecimalnih cifara (0. povratno-vrijednosni operatori: $. SEG. OR. *. Na kraj niza cifara postavlja se oznaka za dekadni brojni sistem: slovo D.3. SHL. već služe da daju određene informacije asembleru (programu-prevodiocu) za vrijeme samog prevođenja. OFFSET.B.

3) direktive vezane za informacije o lociranju programa. Direktive za podršku segmentog rada mikroprocesora i8086 SEGMENT / ENDS – omogućava definisanje logičkih segmenata. EVEN – postavlja instrukcije iza ove direktive na razne lokacije u memoriji. DB – definiše promjenljivu tipa BYTE.<komentar>] [ypoče sa operandima>] Asemblerkse direktive se mogu podeliti na 4 grupe: 1) direktive za podršku segmentnog rada mikroprocesora i8086. promjenljive ili labele iz drugih programskih modula dostupne prilikom povezivanja. GROUP – omogućava kombinovanje različitih logičkih segmenata u jedan fizički segment.[<ime>] <direktiva> [. akoje su kao PUBLIC deklarisane u nekom drugom programskom modulu. NAME – definiše ime obgjetnog modula. ASSUME – definiše sadržaj segmentnih registara.omogućava definisanje simbloa samo u numeričkim izrazima. 2) direktive za definisanje simbola. labela i inicijalizaciju promjenljivih. END – posljedna naredba u modulu koja označava završetak procesa asemblera. DD – definiše promjenljivu tipa DWORD. Direktive koje programa daju informacije ili povezivanju (linkovanju) PUBLIC – definiše koje su konstante. PROC – definiše labelu za grupu naredbi koja predstavlja potprogram. Direktive za promjenljivih: definisanje simbola. DW – definiše promjenljivu tipa WORD. 4) direktive koje daju informacije pri povezivanju programa. LABEL – definiše ime tekuće lokacije koja se asemblira. 70 . = . labela i inicijalizaciju EQU – omogućava definisanje sibmola. EXTERN – definiše one promjenljive ili labele koje će se u datom modulu koristiti. Direktive vezane za informacije o lociranju programa ORG – postavlja brojač instrukcija na željenu prednost.

U grupu instrukcija pod nazivom ostale instrukcije ukljucene su instrukcije koje se ne mogu svrstati ni u jednu od gore opisanih grupa.izlazne instrukcije sluze za prenos podataka iz procesora na neki drugi periferni uredjaj ili za citanje sa perifernog uredjaja na procesor. Instrukcije za upravljanje tokom izvrsenja programa: a) instrukcije za grananje b) instrukcije za preskoke c) instrukcije za programske petlje 6. mnozenje I djeljenje.5. Ostale instrukcije Instrukcijama za prenos podataka vrsi se pozivanje sadrzaja memorije u akumulator AK ili u neki drugi registar procesora. Mi cemo sve instrukcije asemblera za i8086 svrstati u jednu od slijedecih klasa: 1. XOR i NOT. zabrana ili dozvola programskog prekida I sl. Klasifikacija instrukcija u grupe srodnih instrkcija nije uvijek jednostavna. Mi cemo ovdje razmotriti instrukcije kao sto su instrukcije bez dejstva (nema operacije) zaustavljanje ili prekid izvrsenja programa. zavisno od nekog uslova dobijenog u toku rada programa. OR. Instrukcijama za logicke operacije realizuju se operacije prekidacke (Bulove) algebra: AND.5. slanje iz jedne memorijeske lokacije u drugu.4. najcesce akumulatora. zavisno od toga da li je pomjeranje kruzno ili ne. Ulazno. slanje iz jednog registra procesora u drugi. Aritmeticke instrukcije sluze za izvrsenje osnovnih aritmetickih operacija: sabiranje. 5.izlazne instrukcije 7. Zato one utjecu na redoslijed izvrsenja instrukcija. Instrukcije za rad s potprogramima 8. Instrukcije za upravljanje tokom izvrsenja programa ili instrukcije za grananje omogucavaju da se izvrsava jedan ili drugi dio programa. Aritmeticke instrukcije 3. Instrkcijama za pomjeranje vrsi se pomjeranje binarnog sadrzaja nekog registra procesora. rad s magistralom I sl. komplementiranje. praksa pokazuje da zavisno od primjene moze da se odredi najekonomicniji skup instrukcija. oduzimanje. INSTRUKCIJE ZA PRENOS PODATAKA 71 . brisanje ili postavljanje indikatora stanja na perifernim uredjajima. cekanje na neki uslov. Pri tome postije razne varijante. takodje I ispitivanje. TIPOVI ASEMBLERSKIH INSTRUKCIJA Broj I vrsta instrukcija realizovanih u nekom racunaru zavisi od namjene I velicine procesora. Instrukcije pomjeranja I kruzenja 5. zatim poredjenje dva sadrzaja. za odredjeni broj pozicija lijevo ili desno. Logicke instrukcije 4. Ulazno. Instrukcije za prenos podataka 2. Naime. slanje sadrzaja akumulatora ili nekog drugog registra procesora u memoriju. povecanje ili smanjenje sadrzaja za neku zadanu vrijednost I sl.

sto je posljedica ogranicenja samog mikroprocesora i8086. MOV CIFR. DX :Sadrzaj registra DX.Instrukcije za prenos podataka mogu se podjeliti na cetiri grupe: 1. MOV AL. MOV MESTO. (BX) := ((UM)) POP AX : Kopira sadrzaj sa vrha steak u AX c) XCHG ODR. 33 :Upisuje konstantu (broj 33) u registar. Instrukcije za prenos indikatora (flegova) INSTRUKCIJE OPSTE NAMJENE Grupi instrukcija za prenos podataka opste namjene pripadaju slijedece instrukcije: a) MOD ODR. Primjeri: MOV CX. AX : Registar AX se puni vrijednoscu promjenljive VAR tipa DW I istovremeno promjenljiva VAR uzima vrijednost sadrzaja 72 . upisivanje konstante u registar ili u memorijsku lokaciju. Omogucava prenos podataka izmedju dva registra. Operand IZVR mora biti duzine dva bjta I ne moze biti neposredni operand. Instrkcija MOV ne dozvoljava prenos podataka izmedju dvije memorijske lokacije I neposredno upisivanje podataka u segmentni registar. DX : Razmjenuju se sadrzaji registara AX i DX . Primjeri: XCHG AX. tj. a) PUSH IZVR Ovom instrukcijom se sadrzaj izvornog operanda IZVR upisuje u magacinsku memoriju (stek). IZVR Ovom instukcijeom se desni (izvorni) operand (IZVR) kopira u lijevi (odredisni) operand (ODR) pri cemu desni operand I bitovi registra uslova ostaju nepromjenjeni. AX :Upisuje sadrzaj registra AX u memorijsku lokaciju MESTO.izlazne instrukcije 3. IZVR Ovom instrukcijom se razmjenjuju sadrzaji operanada ODR I IZVR. Primjeri: POP BX : (UM) := (UM)-1. ali se segmentni registar ne moze koristiti kao operand. Pri izvrsenju PUSH instrukcije. XCHG VAR. a za tim se na vrh steak prenosi sadrzaj izvornog operanda IZVR. 9 :Upisuje u menorijsku lokaciju broj 9. Poslije izvrsenja ove instrukcije pokazivac magacina se inkrementuje (uveca) za dva I time ukazuje na novi vrh magacina. Pri izvrsenju ove instrukcije najmanje jedan operand mora biti registar. Instrukcije za prenos adresa 4. Prenos podataka sa vrha steka u operand ODR. kopira u registar CX. sadrzaj pokazivaca steka se dekrementuje (umanji) za dva. Ulazno. memorije I registra i obrnuto. Instrukcije opste namjene 2. Primjeri: PUSHBX : (UM) := (BX) : (UM)+1 PUSHAX : Sadrzaj registra AX se upisuje na vrh steka b) POP ODR Ovom instrukcijom se ostvaruje ispisivanje sadrzaja magacinske memorije.

IZVR je nziv promjenljive Primjeri: LEA BX. IZVR Ova instrukcija proizvodi isti efekat kao I instrukcija LDS. IZVR Ovom instrukcijom se obavlja prenos u okviru istog segmenta adrese IZVR od 16 bitova u registar REG. fleg ili marker. puni segmentni registar ES. INSTRUKCIJE ZA PRENOS ADRESA Grupu instrukcija za prenos adresa karakterise odlika da se njima premjestaju efektivne adrese. a ne promjenljive. d) PUSHF Ovom instrukcijom se vraca sadrzaj registra uslova sa steka. b) SAHF Ovom instrukcijom se prenose bitovi registra AH u nizi bajt registra stanja. c) LEA REG. Sastoji se od slijedecih instrukcija. samo sto se umjesto segmentnog registra DS. Instrukcije za prenos indikatora ili markeri instrukcije se koriste bez operanada I imaju ulogu da prenose podatke u registar stanja. 5. b) LES REG.Registra AX. Isti efekat bi proizvela I slijedeca instrukcija: MOV REG.6. c) POPF Ovom instrukcijom se vrsi prenos sadrzaja registra uslova (registra stanja) na stek. dok se u registar DS prenosi visih 16 bitova adrese sa memorijske lokacije SIMBOLI. zbog cega je neophodno da se prije poziva ove instrukcije inicijalizuje bazni registar (BX) na vrijednost pomjeranja podataka koji ce se prenijeti. OFFSET IZVR. a visih 16 bitova prenosi u registar DS. d) XLAT Ova instrukcija prenosi odredjeni clan niza (tabele) u AL. INSTRUKCIJE ZA PRENOS INDIKATORA (FLEGOVA) Registar stanja (PSW registar) je 16 bitni. ARITMETICKE INSTRUKCIJE Aritmeticke instrukcije realizovane u mikroprocesoru i8086 mogu se 73 . a) LDS REG. a) LAHF Ovom instrukcijom se prenosi nizi bajt registra stanja u visi bajt registra AX. IZVR Ova instrukcija prenosi podatak (32 bita) sa memorijske lokacije IZVR I nizih 16 bitova u registar REG. Koristi se iskljucivo indirektno adresiranje. SIMBOLI : U registar CX se prenosi nizih 16 bitova. Ovu grupu instrukcija cine slijdece instrukcije. PODACI : Prenosi se adresa PODACI u registar BX LDS CX. a svaki njegov bit ce naziva indikator.

3) Instrukcije za mnozenje. tj. c) DAA Ovom instrukcijom se koriguje rezultat sabiranja dva bajta koji sadrze po dvije pakovane BCD cifre. Kao operandi se mogu pojaviti svi tipovi koji se koriste kod obicnog sadrzaja. Prema toj podjeli postoje slijedece grupe instrukcija: 1) Instrukcije za sabiranje. Aritmeticke instrukcije se mogu podijeliti I prema operacijama koje realizuju nad operandima. a zbir upisuje u operand ODR. 2) Instrukcije za oduzimanje. INSTRUKCIJE ZA SABIRANJE Za realizaciju sabiranja brojnih podataka postoji pet instrukcija: a) ADD ODR. Primjeri: ADD BX.registri . b) AAA Ovom instrukcijom se koriguje rezultat sabiranja dvije nepakovane BCD cifre. d) INC ODR Ovom instrukcijom se operand inkrementuje. 22H : Nizi bajt registra CX se uveca za 22H a) ADC ODR. IZVR Ovom instrukcijom se realizuje operacija sabiranja sa prenosom. dodaje sadrzaj CF indikatora.neposredni operand I memorijska lokacija . Predpostavlja se da se rezultat nalazi u nizem bajtu registra AX. Kao operandi se mogu pojaviti: . tj. Primjeri: INC DX : sadrzaj registra DX se uvecava za 1 INC MEM : sadrzaj memorijske lokacije se uvecava za 1 INSTRUKCIJE ZA ODUZIMANJE Za realizaciju operacije oduzimanja u asembleru postoji sedam instrukcija: 74 . Sabira se sadrzaj operanada IZVR I ODR. Operandu ODR se dodaje broj 1 I rezulatat upisuje na isto mjesto. CX : Sadrzaj registra CX se dodaje sadrzaju registra BX.neposredni operand I registar. zavisno od tipova operanada koje koriste: 1) Instrukcije koje koriste operende u binarnom obliku 2) Instrukcije koje koriste operande u pakovanom BCD kodu 3) Instrukcije koje koriste operande u nepakovanom BCD kodu. tj. (BX) := (BX) + (CX) ADD CL. Kao operandi mogu se koristiti registri I memorijske lokacije.memorijska lokacija I registar . Koristi se kada poslije sabiranja dva pakovana broja rezultat treba opet konvertovati u decimalno pakovani broj. IZVR Ovom instrukcijom se sadrzaj operanda IZVR dodaje sadrzaju odredista ODR.registar I memorijska lokacija .podijeliti na tri grupe. 4) Instrukcije za dijeljenje.

INSTRUKCIJE ZA DIJELJENJE 75 . DL : Od sadrzaja registra AL. tj. Kao operand moze se koristiti registar ili memorijska lokacija. a) MUL IZVR Ova instrukcija se koristi za mnozenje neoznacenih brojeva. 35 : Sadrzaj registra DX se umanjuje za 35 SUB POD. AX.a) SUB ODR. IZVR Ovom instrukcijom se oduzima desni od lijevog operanda I rezultat smjesta u lijevi operand – ODR. Primjeri: SUB AL. mjenja se znak operanda ODR. b) DEC ODR Ovom instrukcijom se vrijednost operanda ODR samanjuje za 1. IZVR Ovom instrukcijom se realizuje operacija oduzimanja desnog operanda (IZVR) I sadrzaja indikatora CF od lijevog operanda (ODR). Operandi koji se mogu koristiti su istog tipa kao I za instrukciju SUB. BX : Memorijska lokacija na adresi POD se umanjuje za sadrzaj registra BX. ali se u operand ODR ne upisuje rezultat. Sadrzaj registra AL se mnozi sa izvornim operandom IZVR I rezulatat se smjesta u registar AX. e) DAS Ova instrukcija koriguje rezultat oduzimanja dva bajta koji sadrze po dvije pakovane BCD cifre. f) AAS Ova instrukcija koriguje rezultat u registru AL poslije oduzimanja dvije nepakovane BCD cifre. Ova instrukcija samo utjece na indikatore registra uslova I koristi se uglavnom pri realizaciji uslovnog grananja. c) NEG ODR Ovom instrukcijom se formira potpuni komplement operanda ODR. Operandi I rezulatat operacije se rasporedjuju Isto kao I kod instrukcije MUL. Instrukcije AAS I DAS imaju analogni efekat sa instrukcijama AAA I DAA kod sabiranja. Kao operande moguce je koristiti register I memorijske lokacije. d) SMP ODR. tako da prva (niza) cifra ide u AL. IZVR Ovom instrukcijom se realizuje operacija oduzimanja. a druga (visa) se smjesta u AH. INSTRUKCIJE ZA MNOZENJE Za realizaciju operacije mnozenja koriste se tzri instrukcije. BX : Sadrzaj registra CX se umanjuje za sadrzaj registra BX SUB DX. onda se rezulatat smjesta u registarski par DX. b) IMUL IZVR Ova instrukcija mnozi oznacene brojeve. Ako su operandi sesnaestobitni. c) AAM Ova instrukcija se koristi poslije mnozenja nepakovanih decimalnih brojeva. a) SBB ODR. oduzima se sadrzaj registra DL I rezulatat opet smjesta u registar AL SUB CX. Izvorni operand moze biti osmobitni registar ili memorijska lkacija.

za oznacene brojeve I za podesavanje nepakovanih operanada. c) AAD Ova instrukcija priprema dvije nepakovane BCD cifre dijeljenika u registru AX za operaciju dijeljenja. Radi lakšeg i bržeg programiranja ovi djelovi programa izdvajaju se u samostalne programske cjeline koje se posebno pišu . a ostatak u registar DX. onda sadrzaj para registara DX I AX predstavlja dijeljenik. b) IDIV IZVR Ova instrukcija obavlja isti posao kao I instrukcija DIV. nakon operacije. .ukoliko je operand IZVR sesnaestobitni . . Pod“prenosom upravljanja“ podrazumjeva se uzimanje slijedece instrukcije za izvrsenje iz memoriske lokacije u kojoj se nalazi prva izvrsna instrukcija podprograma. rješavanja jednačina.ukoliko je operand IZVR (koji moze biti registar ili memorijska lokacija) osmobitni. Program koji je tako organizovan da se njemu moze prenijeti upravljanje iz nekog drugog programa i da se po završetku obrade upravljanje vrati nazad u isti taj program naziva se podprogram. Osim tog u svakoj grani nauke i tehnike postoje funkcionalne zavisnosti koji se vrlo često koriste. konverziju jednog koda u drugi i mnogih drugih tipičnih obrada. a mogu postojati ne samo pri rješavanju jednog konkretnog zadatka već i pri rješavanju više razlicitih zadataka. a ostatak dijeljenja u registar AH. ispituju i koriste. To je slučaj kod izračunavanja elementarni matematičkih funkcija . POTPROGRAM POJAM POTPROGRAMA U programima se često sreću grupe instrukcija koje predstavljaju logičke cjeline ili imaju samnostalno značenje i ponavljaju se na više mjesta. smjesta u registar AX. samo sto to cini sa oznacenim brojevima.Slicno kao I kod operacije mnozenja. 76 . Takvi djelovi programa opisuju više ili manje samostalnu etapu nekog računskog procesa. za realizaciju operacije dijeljenja koriste se tri instrukcije: za neoznacene brojeve. a) DIV IZVR Ovom instrukcijom se dijele neoznaceni brojevi (sa osmobitnim I sesnaestobitnim operandom). kolicnik se. onda se sadrzaj registra AX dijeli sa sadrzajem operanda I rezultat smjesta u registar AL.

ulaz u program) koristi se pozivna sekvenca (pozivni niz)instrukcija u kojoj se i u asemblerskim i u višim programskim jezicima navodi ime potprograma u posebnoj instrukciji za poziv potprograma oblika: CALL<ime potprograma> Svaki put kada se ulazi u potprogram potrebno je zadati polazne podatke neophodne za rad potprograma. a drugi viši programski jezik. To omogućava lake izmijene u osnovnom programu jer se lako mogu pratiti putevi tih izmijena i njihovih uticaji. u svekom potprogramu postoje i drugi dijelovi. U toku izvršenja potprograma javlja se potreba za korišćenjem određenih registara centralnog procesora. Za pristup parametrima ponekad se formiraju posebni dijelovi potprograma. Logička nezavisnost ima kao znacajnu posljedicu i to da razni ljudi ili grupa ljudi mogu pisati dijelove velikog programa. Po svojoj prirodi program se može razmatrati kao procedura (postupak) za izračunavanje neke funkcije jedne ili više promijenjivih ili za izvršenje grupe operacija zajednički i tipični za više programa. Pored lakšeg programiranja postiže se i značajna ekonomija memorije. to bi njihovo uništenje u potprogramu dovelo do nepravilnog daljeg rada osnovnog programa. Ovo je posebno značajno kada je jedan od tih jezika simbolički mašinski jezik. S obzirom da prethodni sadržaji tih registara mogu postati potrebni za dalji rad osnovnog programa . Kod većine računara moguće jepisati potprograme na više različitih izvornih jezika i povezivati ih u jedan isti program. obezbijediti i vraćanje rezultata u glavni potprogram. ODLIKE POTPROGRAMA Zajedno sa programskim petljama programi čine osnovu tehnike programiranja kod savremenih računara. poslje obrade u potprogramu. Podatci koji se unose potprogramom i izlazni rezultati iz potprograma nazivaju se opštim imenom ulazi i izlazni parametri potprograma. Sistem pisanja podprograma omogućava da se samo jedna kopija potprograma može pozivati proizvoljan broj puta. Svaki potprogram ima posebno ime a poziva se na način vrlo sličan načinu pozivanja pojedinih instrukcija računara.tijelo potprograma . Zbog toga je potrebno na početku potprograma 77 . Potprogrami predstavljaju samostalne programske jedinice koje se pišu samo jednom a mogu se koristiti kad god je potrebno u jednom ili više programa. Potprogram se može pisati sa velikim stepenom logičke nezavisnosti od osnovnog programa ili drugih programa. Isto vremeno je potrebno. Za prelaz na potprogram (tj. STRUKTURA POTPROGRAMA Pored osnovnog dijela programa u kome se vrši obrada tzv.Program iz koga se poziva potprogram naziva se glavni ili osnovni program. Mehanizam povezivanja osnovnog programa i potprograma i načini prenosa parametara potprograma precizno definišu kako te grupe mogu komunicirati jedna sa drugom.

2 predstavljena je struktura potprograma. 78 . Na slici 5. tj. osnovni nedostatak otvorenih programa je ponavljanje svih instrukcija potprograma pri svakom obraćanju.jedan takav niz instrukcija S uključuje se u program onoliko puta koliko se puta vrši obraćanje njemu (slika 5.3). Ovaj se dio obično zove pamćenje stanja procesora ili pamćenje stanja programa. Pri svakom obraćanju ovakvom potprogramu u osnovni program se umeće „kpija“ tog niza instrukcija. Poslje završetka obrade u potprogramu a prije povratka u osnovni program potrebno je sadržaje tih registara obnoviti (regenerisati. ponovo uspostaviti). tj.vratiti procesor u stanje prije ulaska u potprogram. VRSTE POTPROGRAMA Zavisno od načina na koji se potprogrami ukljucuju u osnovni program razlikuju se 2 vrste potprograma: .Otvoreni potprogrami Zatvoreni potprogrami Otvoreni potprogram predstavlja niz instrukcija koji se umeću u osnovni program.predvidjeti privremeno pamćenje u samom potprogramu sadržaja svih registara centralnog procesora koji se koristi u tom programu. što zahtijeva više memorije.

a može se koristiti mnogo puta u jednom ili više programa i potprograma. FLOAT.IFIX.potprogrami ABS. gdje se jos zovu i unutrašnje funkcije. Ove instukcije omogućavaju: -pamćenje povratne adrese(adrese instukcije na koju se vrši povratak iz potprograma). -povratak iz programa. ISIGN I dr. SIGN. INSTRUKCIJE ZA RAD SA POTPROGRAMIMA Za pozivanje potprograma i vraćanje u glavni program koriste se instrukcije CALL i RET. To su npr. Pri pozivanju se nekopira a smijesta se van osnovnog programa (slika5.Korištenje otvorenih programa u višim programskim jezicima. IABS. AMOD. -prelazak na prvu instrukciju potprograma.4) Pozivanje ztvorenog programa ostvaruje se posebnim instrukcijama računara za rad s potprogramima. Zatvoreni potprogram predstavlja niz instrukcija koji se formira i prevodi kao zasebna cijelina. Poslje završetka potprograma upravljanje se vraća na mijesto na kome je bio prekinut osnovni program. ograničeno je na mali broj potprograma koji se sastoje od malog broja mašinskih instrukcija. MOD. 79 . Pozivnom zatvorenog programa dalje izvršenje instrukcija se nastavlja od prve instrukcija potprograma .

Osnovna namijena makronredbi je skraćenje izvornog program. u stek se upisuje sadžaj brojača instrukcija (IP). Makro naredba predstavlja otvoreni program i pri njenom pozivu u osnovni program umeće se cio taj niz mašinskih instrukcija. prelazak na proceduru nova_procedura Ova instrukcija povratnu adresu upisuje u srek i upravljanje predaje prvoj nstrukciji procedure (nova_procedura). Koristi se bez operanda i njen format zapisa je : RET . a za procedure tipa FAR potrebno je da se u stek upiše sadržaj brojača instrukcija i sadržaj segmentnog registra CS RET INSTRUKCIJA Instrukcija RET uzima sadžaj vrha steka i smješta ga u brojač instrukcija. Ukoliko je procedura tipa NEAR.7. Djelovi programa koji se često koriste definišu se samo jednom u obliku makronaredbe koja ima svoje ime i parametre. čime prenosi upravljanje na povratnu adresu glavnog programa.CALL INSTRUKCIJA Format zapisa CALL instrukcije je: CALL nova_procedura. Makro naredbe u asemblerskom jeziku predstavljaju sredstva višeg nivoa čime se postiže krace i lakse programiranje. Logičke instrukcije Logičke operacije 80 . Procedura može biti tipa NEAR ili FAR. Poziva se navođenjem imena makronaredbe i parametara. 5. povratak iz potprograma Primjer: Poziv procedure NOVA i vraćanje u glavni program: MAKRONADRDBE Makronaredba predstavlja simboličko ime izvornog (asemblerskog) jezika kojom je označen unaprijed definisan niz mašinskih instrukcija.

Instrukcije za logičke operacije Ovu grupu čine dvooperandske instrukcije: AND. Jednu grupu takvih operacija čine logičke operacije koje se izvršavaju naporedno nad binarnim vrijednostima 0 i 1 u odgovarajućim (istim) pozicijama mašinske reči. e) NOT ODR Ova instrukcija vrši inverziju bitova u operandu. Pravila za logičke operacije data su u tabeli. b) OR ODR. IZVR Ovom instrukcijom se izvršava logička operacija „ili“ nad operandima ODR i IZVR i rezultat smješta u operand ODR. Ako su ISO 7 (ASCII) kodovi smješteni u jednu 16-bitnu memorijsku lokaciju. Kao operandi mogu se koristiti registri i memorijske lokacije. Najčešće poslije ove instrukcije u program slijedi neka od instrukcija uslovnog grananja. tj obavlja jedinični kompliment. Osnovna namjena ove instrukcije je postavljanje bitova registra uslova (kodova stanja). a) AND ODR. a rezultat se smiješta u operand ODR. IZVR Ovom instrukcijom se izvršava logička operacija „isključivo ili“ nad datim operandima i. rezultat se smješta u operand ODR. memorijske lokacije i konstante. d) TEST ODR. ali se rezultat nigdje ne upisuje (slično kao kod instrukcije CMP). onda se kodovi za pojedine simbole odvajaju primjenom operacije maskiranja na slijedeći način: 0100000101000010 polazni sadržaj 81 . Ostale logičke operacije mogu se realizovati korištenjem ovih instrukcija na osnovu veza koje se proučavaju u prekidačkoj (Bulovoj) algebri. kao i prethodnim instrukcijama. TEST i jednooperandska instrukcija NOT. IZVR Ovom instrukcijom se izvršava logička operacija „i“ nad operandima. OR. Kao operandi se u logičkim instrukcijama mogu pojaviti registri. spajanje grupa bitova u jednu riječ(pakovanje pomoću logičke operacije OR) ili za upoređenje da li su dva sadržaja ista (korištenje logičke operacije XOR ili TEST). IZVR Ovom instrukcijom se izvršava logička operacija „i“ nad operandima ODR i IZVR. dužine riječi ili bajtovi. XOR. c) XOR ODR.Za obavljanje različitih obrada nad podacima pored aritmetičkih operacija često se koriste i neke druge operacije. Korištenje logičkih operacija Najčešće se logičke operacije koriste za izdvajanje pojedinih dijelova mašinske riječi (maskiranje pomoću operacije AND).

Pošto procesor ima relizovanu operaciju CMP. Primjer 1001110101100011 početni sadržaj 1110101100011000 stanje poslje pomjeranja za tri mjesta ulijevo (bitovi 100 su izgubljeni) 0010011101011000 stanje poslje logičkog pomjeranja za dva mjesta desno (bitovi 11 su izgubljeni) Instrukcije za lijevo i desno logičkog pomjeranja imaju sljedede oblike: 82 . na slijedeći način: 0100000100000000 sadržaj 1 0000000001000010 sadržaj 2 OR 0100000101000010 rezultat Operacija XOR koristi se za upoređenje (komparaciju) tako što se u slučaju da su dva sadržaja jednaka dobija rezultat 00. Operacije pomjeranja koriste se najviše pri realizaciji aritmetičkih operacija množenja i djeljenja. Pomjeranje desno za jedno mjesto ekvivalentno je djeljenju sadržaja sa 2. ponekad je bolje nju koristiti . lijevo ili desno... Pomjeranje lijevo za jedno mjesto označava da se binarna cifra iz pozicije i premješta u poziciju i+1. ali ima i mnoge druge praktične primjene. aritmetičko pomjeranje i kruženje. Instrukcije za logičko pomjeranje Pri logičkom pomjeranju za jedno mjesto lijevo bit najvede težine se gubi. razlikuje se logičko pomjeranje.1111111100000000 maska AND 0100000100000000 izdvojeni kod cijelog simbola Logička operacija OR može se koristiti za suprotni postupak – „pakovanje“ dva različita binarna niza u jednu riječ. npr. pakovanje kodova simbola koje se nalaze u dva različita registra ili lokacije. 5. Pomjeranje binarnog sadržaja za jedno mjesto lijevo ekvivalentno je množenju tog sadržaja sa 2.8 Instrukcije pomjeranja i kruženja Operacije pomjeranja Operacijom pomjeranja binarni sadržaj nekog registra centralnog procesora se za jedno ili više binarnih mjesta. zahtjeva prvo pomjeranje jedno od njih za 8 pozicija. Instrukcijama grananja neposredno iza instrukcije CMP nastavlja se program u jednom ili drugom smijeru. Zavisno od načina na koji se radi sa bitovima višim ili nižim pozicijama. Za upoređivanje dva sadržaja može se koristiti i operacija oduzimanja ili operacija komparacije CMP. Npr. jer i ona postavlja indikatore u registru uslova.00. a u poziciji najvede težine upisuje se 0. sadržaj 00110101 pomjeranjem lijevo za jedno mjesto dobija oblik 01101010. Pri logičkom pomjeranju za jedno mjesto bit najmanje težine se gubi.. a u poziciju najmanje težine upisuje se 0.

i osnovni niz koji se ovdje ostvaruje je zadržavanje znaka iz najvede pozicije. Pri kruženju udesno bit najvede težine prenosi se u u poziciju najmanje težine.a) SHL. Pomjeranje udesno prenos CF se tretira kao da se nalazi ispred pozicije najnovije težine pa se u njega upisuje bit iz najmanje pozicije. Ukoliko je operand K registar CL. Za procesore i80286 i novije. u najvišoj poziciji zadržava se 0 za znak i istovremeno se upisuje nula u susjednu desnu poziciju. Pri aritmetičkom pomjeranju pozitivnog broja udesno. a u poziciji najmanje težine upisuje se 0. K Ovom instrukcijom se ostvaruje pomjeranje udesno sadržaja AK za K mjesta. b) SHR. Instrukcije za kruženje Pri izvršenju operacija pomjeranja koji nazivamo kruženje ili ciklično pomjeranje. staro stanje bita CF se gubi. proširuje se bitom prenosa CF (kao da je to deveti bit u registru). ali se istovremeno u susjednu desnu poziciju takođe upisuje 1. onda se pomjeranje na lijevo izrši za onoliko mjesta koliki je broj upisanih u registar. Pri aritmetičkom pomjeranju negativnog broja u najvišoj poziciji se zadržava 1. K Ovom instrukcijom se ostvaruje pomjeranje sadržaja AK za K mjesta. Instrukcije za aritmetičko pomjeranje Aritmetičko pomjeranje se vrši udesno za potreban broj mjesta. ODR. ODR. K Ovom instrukcijom se ostvaruje kruženje udesno za K mjesta. Primjer: 1010110100011011 Početni sadržaj 1111010110100011 Sadržaj poslje aritmetičkog pomjeranja za tri mjesta desno. zamišljamo da su bit najvede i bit najmanje težine susjedni. U tom slučaju pri pomjeranju lijevo bit najviše težine se prenosi u CF. U tom slučaju pri kruženju udesno bit najmanje težine se ne gubi. Operand K može biti broj 1 ili registar CL. Time se pomjeranjem negativnog broja desno dobija ponovo negativan broj. U ovim instrukcijama registar čiji se sadržaj pomjera. b) ROL ODR. Primjer: 0101111000011011 Početni sadržaj 83 . kao operand K može se pojaviti konstanta i veda od broja 1. a u poziciju najmanje težine upisuje se 0. Instrukcija za aritmetičko pomjeranje ima obilk: SAR ODR. ved se prenosi u poziciju najvede težine. K Ovom instrukcijom se ostvaruje aritmetičko pomjeranje udesno sadržaja ODR za K mjesta. a) ROR ODR. Operand K ima istu ulogu kao i u instrukcijama SHL. K Ovom instrukcijom se ostvaruje kruženje udesno za K mjesta. Instrukcije za kruženje imaju slijededi oblik.

Ukoliko se prenosi riječ. onda se koristi cijeli akumulator. AL PORT8. Instrukcije imaju sljedede oblike: a) RCR ODR. a) IN ODR. . K Ovom instrukcijom se ostvaruje kruženje udesno ODR i CF za K mjesta. pa se u ovim instrukcijama akumulator uvijek pojavljuje kao jedan od operanada.prijenos riječi sa PORT16 u . Primjer: OUT PORT8. koristi se niži bajt akumulatora (AL). prijenos bajta sa PORT18 u b) OUT ODR.Ovu grupu instrukcija čine sljedeće instrukcije. IZVR Ovom instrukcijom se podaci sa ulaznih vrata (porta) – IZVR prebacuju u akumulator. K Ovom isntrukcijom se ostvaruje kruženje udesno operanda ORD i CF za K mjesta. PORT16 akumulator. a sadržaj CF u poziciju najvede težine. U tom slučaju pri kruženju udesno bit namanje težine se prenosi u CF.0110101111000011 Sadržaj poslje kruženja udesno za tri mjesta 0111100001101101 Sadržaj poslje kruženja udesno za dva mjesta. Operacija kruženja se često realizuje zajedno sa bitom prenosa CF. ULAZNO-IZLAZNE INSTRUKCIJE Ulazno-izlazne instrukcije su namijenjene komunikaciji sa ulaznoizlaznim vratima (portovima). navođenjem adrese u samoj instrukciji. IZVR Ovom instrukcijom se sadržaj akumulatora šalje na izlazna vrata. Umjesto adrese ulazno-izlaznih vrata može se koristiti i registar DX i to je indirektno adresiranje. 5. pri čemu adrese ulazno-izlaznih vrata mogu uzimati adrese u opsegu OOH DO FFH. b) RCL ODR. jer se u njemu čuvaju adrese za ulaz-izlaz. . IN AL. a ako se prenosi jednobajtni podatak. PORT18 akumulator. Moguće je direktno adresiranje. Komunikacija se odvija isključivo preko akumulatora. Prijenos bajta iz akumulatora na 84 .9. Primjer: IN AX.

AL . Instrukcije za rad sa nizovima omogućuju slijedeće operacije: • • • • Kopiranje (prenos) podataka sa jednog memorijskog bloka u drugi Pronalaženje određene vrijednosti u nizu podataka (pretraživanje) Poređenje vrijednosti dva niza Inicijalizaciju uzastopnih memorijskih lokacija Format instrukcija za rad sa nizovima može imati jedan od slijedećih oblika: a) OPERACIJA OPERAND (BROJ) b) OPERACIJA B –koristi se za tip podataka-bajt c) OPERACIJA W–koristi se za tip podataka-riječ INSTRUKCIJE PRENOSA a) MOVSODR.- OUT PORT16. . kopira u određeni član odredišnog niza adresiranog parom registara ES.10. INSTRUKCIJE ZA RAD SA NIZOVIMA Niz ili string predstavlja skup podataka tipa bajt ili riječ.koji se nalaze na sukcesivnim lokacijama u memoriji računara.DI.IZVR Ovom instrukcijom se određeni član izvornog niza koji je adresiran parom registara DS. 5.SI.Maksimalna dužina niza može biti 64 kB.Prijenos bajta iz akumulatora u ulazno-izlazni registar čija je adresa u registru DX. 85 . AL PORT16.Prijenos riječi iz akumulatora na - OUT DX.

Rezultat poređenja se koristi za postavljanje indikatora u registru uslova.b) MOVSB c) MOVSW Ove instrukcije se koriste bez operanada. koliko elemenata treba kopirati.samo što se u ovom slučaju radi o nizovima.SI.Efekat instrukcija je isti kao i kod instrukcije CMP. 86 .U registru CX se nalazi broj ponavljanja instrukcije.Ovom instrukcijom se porede članovi niza.adresa člana izvornog niza se nalazi u paru registara DS.One omogućuju kopiranje članova izvornog niza u odredišni niz.Poslije kopiranja indeksni registar SI se ažurira.Kao i u prethodnim instrukcijama.tj. INSTRUKCIJE PRETRAŽIVANJA Instrukcije za pretraživanje niza su slične instrukcijama poređenja.Format zapisa ovih instrukcija je slijedeći: a) SCAS ODR b) SCASB c) SCASW Operandi su i kod ovih instrukcija određeni sadržajem indeksnih registara.Indeksni registri sadrže adrese izvornog i odredišnog operanda po sljedećem pravilu: • • Registar SI ukazuje na izvorni niz Registar DI ukazuje na odredišni niz INSTRUKCIJE POREĐENJA a) CMPS ODR. INSTRUKCIJE PUNJENJA Ovu grupu čine slijedeće instrukcije: a) LODS IZVR b) LODSB c) LODSW Ovim instrukcijama se član izvornog niza kopira u akumulator.Razlika je u tome što instrukcije upoređuju podatak sa sadržajem akumulatora.IZVR b) CMPB c) CMPW Operandi za ove instrukcije se uzimaju iz istih registara kao i kod instrukcija prenosa.

INSTRUKCIJE PONAVLJANJA Instrukcije za rad sa niskama(nizovima) znakova operišu pojedinačnim podacima. najčešće postoji potreba da se operacije nizovima primjenjuju na više članova niza.ako se radi o riječima).zavisno od sadržaja indikatora DF(bita registra uslova).INSTRUKCIJE SMJEŠTANJA Instrukcijama smještanja se kopira sadržaj akumulatora u određeni član adresnog niza.Format zapisa instrukcija iz ove grupe je slijedeći: a) STOS ODR b) STOSB c) STOSW Očigledno je da instrukcije smješatanja imaju suprotno djelovanje od instrukcija punjenja.u stvari.Ako je DF=0 onda se poslije izvršenja neke od nizovnih instrukcija pokazivači (registri SI i DI) uvećavaju za 1(odnosno 2.Instrukcije ponavljanja se postavljaju kao prefiks ostalim instrukcijama za rad sa nizovima i omogućuju ponavljanje određene instrukcije sve dok sadržaj registra CX ne postane 0. vrši 87 . Instrukcijama REPZ i REPNZ.To se riješava instrukcijama ponavljanja.Ovoj grupi pripadaju slijedeće instrukcije: a) REP-nizovna instrukcija -> Ova prefiks-instrukcija uslovljavlja ponavljanje nizovne instrukcije sve dok sadržaj registra CX ne postane 0.Na taj način se efikasno obrađuju podaci koji pripadaju jednom bloku i memoriji. INSTRUKCIJE ZA POSTAVLJANJE PRAVCA Pri obradi nizova u petlji.Međutim. sukcesivno. b) REPZ-instrukcija -> Ova prefiks-instrukcija uslovljavlja izvršavanje instrukcije poređenja ili analize sve dok nebude ispunjen uslov da je (CX)=0 ili (ZF)=0 c) REPNZ-instrukcija -> Ova prefiks-instrukcija uslovljavlja izvršavanje instrukcije poređenja sve dok nebude ispunjen uslov da je (CX)=0 ili (ZF)=1.DI.realizuje se petlja koja vrši poređenje sve dok se ne dođe do određene vrijednosti ili kraja niza.članovi niza se mogu brojati unaprijed i unazad.Adresa člana niza u koji će biti iskopiran sadržaj akumulatora nalazi se u paru registara ES.tj.

Procesor ne vrsi nikakava dejstva vec ceka jedan . Ostale instrukcije Operacija bez dejstva Gotovo svi procesori imaju instrukciju NOR (nema operacije) cijim izvrsenjem processor trosi jedan masinski ciklus i ne obavlja nikakve druge upravljacke aktivnosti. pozive podprograma za unos i prikaz podataka. ceka dok ne nastane neki spoljni ili unutrasnji uslov. Za formiranje konacne – izvršne verzije programa potrebno je pri povezivanju navesti sve neophodne (uključne) datoteke. Instrukcijom HALT zavrsava se izvrsenje programa i ponekad se prenosi upravljanje na pult masine. Zaustavljanje izvrsenja programa Za zaustavljanje izvrsenja programa koriste se HALT i WAIT instrukcije oblika: HALT .inkrementisanje. . Skup programa za unos i prikaz podataka se nalazi u posebnoj datoteci – IO. kompletna procedura za prvi primjer bi glasila: MASM IO. b) STD -> Ovom instrukcijom se DF indikator postavlja na 1. Oblik instrukcije: NOR . Rad procesora aktivira se dalje sa pulta ili .ASM LINK PR1+IO 88 . kada se instrukcija koju treba izbaciti prosto zamjenjuje NOP instrukcijom bez ikakvih drugih izmjena u programu. a) CLD -> Ovom instrukcijom se DF indikator postavlja na 0. Naprimjer. kada nastavlja dalji rad automatski.ASM) . MASM PR1. masinski ciklus i prelazi na slijedecu instrukciju Instrukcija NOR koristi se pri testiranju programa.ASM MASM PR1. pored osnovnog koda. Svaka datoteka sa izvornim kodom se može zasebno prevesti odgovorajućim asemblerom (npr. odakle se moze rucno aktivirati novi program. . Instrukcija WAIT ceka neki uslov i automatski nastavlja dalje izvrsenje programa kada se taj uslov ispuni. Primjeri programa u asembleru Slijedeći primjeri sadrže.postavlja DF indikator na 1 ili 0.Ukoliko je DF=1 vrši se dekrementisanje. WAIT . Procesor prekida dalje izvrsenje programa. Procesor prekida izvrsenje programa i . Kod mikroprocesora ova instrukcija se koristi u petljama radi postizanja odredjenog vremenskog kasnjenja.Instrukcijama za postavljanje pravca se.ASM. nekim drugim spoljasnjim prekidom.u stvari.

Skup podprograma za upis podataka i prikaz na ekranu : .INPUTC – u AL vraća ASCII u red .NEWLINE – pomjera kursor u novi red .PRINTS – štampa niz na koji pokazuju DS:DX a koje se završava sa «$» .PRINTINT – štampa označeni integer iz DX .INPUTS – učitava niz znakova i upisuje ih na DS:DX i završava niz sa $ .PRINTC – štampa ASCII krakter iz DL .INPUTINT – u AX vraća vrijednost označenog učitanog broja Primjer sabiranje i oduzimanje brojeva: 89 .

90 .

One. Skok na labelu ukoliko je CF = 1 i ZF= 1. Skok na labelu ukoliko je SF < > OF. f) JCXZ LABELA Instrukcija uslovnog skoka.11. l) JNC LABELA Instrukcija uslovnog skoka. Instrukcije uslovnog i bezuslovnog skoka Ovoj grupi instrukcija pripadaju slijedeće instrukcije: a) JMP ODR Ova instrukcija ostvaruje bezuslovni skok na određenu labelu ili memorijsku lokaciju određenu operatorom ODR. Skok na labelu ukoliko je CF = 1. g) JE LABELA Instrukcija uslovnog skoka. 91 . dok sa FAR labelom može da se skače između segmenata. Skok na labelu ukoliko je CF = 0. d) JB LABELA Instrukcija uslovnog skoka. m) JNE LABELA Instrukcija uslovnog skoka. u stvari. h) JG LABELA Instrukcija uslovnog skoka. j) JL LABELA Instrukcija uslovnog skoka. i) JGE LABELA Instrukcija uslovnog skoka. Skok na labelu ukoliko je (CX) = 0. n) JNO LABELA Instrukcija uslovnog skoka. Skok na labelu ukoliko je ZF = 0. b) JA LABELA Realizacija uslovnog skoka ukoliko je CF = 0 i ZF = 0. Ukoliko se radi sa NEAR labelom. Mogu se podijeliti na slijedeće grupe: a) instrukcije uslovnog i bezuslovnog skoka i b) instrukcije za organizaciju ciklusa. Skok na labelu ukoliko je SF= OF. Skok na labelu ukoliko je CF = 0.5. Instrukcije za upravljanje tokom programa Instrukcije za upravljanje tokom programa omogućavaju da se izvršenje programa nastavi sa memorijske lokacije koja ne slijedi iza tek izvršene instrukcije. mijenjaju sadržaj registara koji nose adresu slijedeće instrukcije: IP i CS. Skok na labelu ukoliko je OF = 0. c) JAE LABELA Instrukcija uslovnog skoka. Za instrukcije uslovnog skoka važi pravilo da labela može biti isključivo tipa NEAR. Skok na labelu ukoliko je SF < > 0 ili ZF = 1. moguće je ostvariti skok samo u okviru segmenata. k) JLE LABELA Instrukcija uslovnog skoka. Labela može biti FAR ili NEAR. Skok na labelu ukoliko je ZF = 0 i SF = OF. Skok na labelu ukoliko je ZF = 1. e) JBE LABELA Instrukcija uslovnog skoka.

testiranje uslova za izlazak iz petlje. Ciklus se ponavlja dok je ZF = 1 i (CX) < > 0. Njima se automatski obavlja: . sadržaj registara CX se umanjuje za 1. 5. skoka. Skok na labelu ukoliko je OF = 1. b) LOOPE LABELA Ova instrukcija je slična prethodnoj.o) JNP LABELA Instrukcija uslovnog skoka.dekrementisanje brojača. Ovoj grupi pripadaju slijedeće instrukcije: a) LOOP LABELA Ovom instrukcijom se organizuje ciklus tako da se tijelo ciklusa izvršava sve dok je (CX) <> 0.Potprogrami Pojam potprograma 92 . Skok na labelu ukoliko je SF = 1. Instrukcije za organizaciju ciklusa Ovim instrukcijama se mogu organizovati brojačke petlje. skoka.12. skoka. p) JNS LABELA Instrukcija uslovnog q) JO LABELA Instrukcija uslovnog r) JP LABELA Instrukcija uslovnog s) JS LABELA Instrukcija uslovnog skoka. Kao brojač koristi se registar CX. Skok na labelu ukoliko je PF = 0. samo što ovdje analizira i indikator ZF. slično kao u jezicima višeg nivoa. c) LOOPNE LABELA Ova instrukcija omogućava izvršenje tijela ciklusa sve dok je ZF = 0 i (CX) < > 0. Poslije svakog ciklusa sadržaj registra CX se dekrementuje. . Svaki put kada se završi jedan ciklus. Skok na labelu ukoliko je PF = 1.grananje kada su ispunjeni uslovi. . Skok na labelu ukoliko je SF = 0.

Takvi dijelovi programa opisuju više ili manje samostalnu etapu nekog računarskog procesa. Kod većine računara moguće je pisati potprograme na više različitih izvornih jezika i povezivati ih u jedan isti program .naziva se potprogram.a mogu postojati ne samo pri rješavanju jednog konkretnog zadatka već i pri rješavanju više različitih zadataka.a drugi viši programski jezik.U programima se često sreću grupe instrukcija koje predstavljaju logičke cjeline ili imaju samostalno značenje i ponavljaju se na više mjesta.Program iz koga se poziva potprogram zove se glavni ili osnovni program.Ovo je posebno značajno kada je jedan od tih jezika simboički mašinski jezik.Osim toga.Pored lakšeg programiranja postiže se i značajna ekonomija memorije.To omogućuje lake izmjene u osnovnom programu jer se lako mogu pratiti putevi tih izmjene i njihovi utjecaji.Sistem pisanja potprograma omogućuje da se samo jedna kopija potprograma može pozivati proizvoljan broj puta. Logička nezavisnost ima kao značajnu posljedicu i to da razni ljudi ili grupe ljudi mogu pisati dijelove velikog programa. Potprogram se može pisati sa velikim stepenom logičke nezavisnosti od osnovnog programa ili drugih potprograma. Odlike potprograma Zajedno sa programskim petljama potprogrami čine osnovu tehnike programiranja kod savremenih računara. Struktura potprograma 93 .Po svojoj prirodi potprogram se može razmatrati i kao procedura(postupak)za izvršavanje neke funkcije jedne ili više promjenljivih ili za izvršenje grupe operacija zajedničkih i tipičnih za više programa.rješavanja jednačina . Potprogrami predstavljaju samostalne programske jedinice koje se pišu samo jednom .Svaki potprogram ima posebno ime a poziva se na način vrlo sličan načinu pozivanja pojedinih instrukcija račuanara.Mehanizam povezivanje osnovnog programa i potprograma i načini prenosa parametara potprograma precizno definišu kkako te grupe mogu komunicirati jedna sa drugom.konverziji jednog koda u drugi i mnogih drugih tipičnih obrada. Program koji je tako organizovan da se njemu može prenijeti upravljanje iz nekog drugog programa i da se po završetku obrade upravljanje vrati nazad u taj isti program .a mogu se koristiti kad god je potrebno u jednom ili više programa.To je slučaj kod izračunavanja elementarnih matematičkih funkcija.u svakoj grani nauke i tehnike postoje funkcionalne zavisnosti koje se vrlo često koriste. Radi lakšeg i bržeg programiranja ovi dijelovi programa izdvajaju se u samostalne programske cjeline koje se posebno pišu. Pod »prenosom upravljanja « podrazumijeva se uzimanje sljedeće instrukcije za izvršenje iz memorijske lokacije u kojoj se nalazi prva izvršna instrukcija potprograma.ispituju i koriste.

2 predstavljena je struktura potprograma. Ulaz u potprogram Pamćenje stanja procesora Priprema za pristup parametrima potprograma Tijelo potprograma(obrada) Priprema informacija o rezultatima Obnavljanje stanja procesora(regeneracija) Povratak(izlaz)iz potprograma Radna oblast potprograma(pomoćne promjenljive) Slika 5.poslije obrade u potprogramu . U toku izvršenja potprograma javlja se potreba za korištenjem određenih registra centralnog procesora. potrebno je sadržaje tih registara obnoviti(regenerisati. 94 .tj.a prije povratka u osnovni program .Posle završetka obrade u potprogramu .2.u svakom potprogramu postoje i drugi dijelovi. Za pristup parametrima ponekad se formiraju posebni dijelovi potprograma.tijelo potprograma .obezbjediti i vraćanje rezultata u glavni program.vratiti procesor u stanje prije ulaska u potprogram. Na slici 5.Za prelaz na potprogram (tj.ulaz u potprogram) koristi se pozivna sekvenca (pozivni niz) instrukcija u kojoj se i u asemblerskim i višim programskim jezicima navodi ime potprograma u posebnoj instrukciji za poziv potprograma oblika: CALL<ime potprograma> Svaki put kada se ulazi u potprogram potrebno je zadati polazne podatke neophodne za rad potprograma.Zbod toga je potrebno na početku potprograma predvidjeti privremeno pamćenje u samom potprogramu sadržaja svih registara centralnog procesora koji se koriste u tom potprogramu.tzv.S obzirom da prethodni sadržaji tih registra mogu postati potrebni za dalji rad osnovnog programa .to bi svakako njihovo uništenje u potprogramu dovelo do nepravilnog daljeg rada osnovnog programa.ponovo uspostaviti).razlikuju se dvije vrste potprograma: -otvoreni potprogrami i -zatvoreni potprogrami.Podaci koji se unose u potprogram i i izlazni rezultati iz programa nazivaju se opštim imenom ulazni i izlazni parametri potprograma.Ovaj se dio obično zove pamćenje stanja procesora ili pamćenje stanja programa.Istovremeno je potrebno .Pored osnovnog dijela potprograma u kome se vrši obrada .-Struktura potprograma Vrste potprograma Zavisno od načina na koji se potprogrami uključuju u osnovni program .

ograničeno je na mali broj potprograma koji se sastoje od malog broja mašinskih instrukcija. Pozivanje zatvorenog potprograma ostavruje se posebnim instrukcijama računara za rad sa potprogramima.Poslije završetka potprograma upravljanje se vraća na mjesto na kome je bio prekinut osnovni program.i dr. Zatvoreni potprogram predstavlja niz instrukcija koji se formira i prevodi kao zasebna cjelina .To su npr.Pozivom zatvorenog potprograma dalje izvršenje instrukcija se nastavlja od prve instrukcije potprograma.MOD.jedan takav niz instrukcija S uključuje se u program onoliko puta koliko se puta vrši obraćanje njemu (sl.a smješta se van osnovnog programa..gdje se još zovu i unutrašnje funkcije. Slika 5. 95 .FLOAT.5.(sl.ISIGN.SIGN.AMOD.IFIX.3.4.).tj.što zahtjeva više memorije.Otvoreni potprogram predstavlja niz instrukcija koje se umeću u osnovni program.Pri pozivanju se ne kopira .Pri svakom obraćanju ovakvom potprogramu u osnovni program se umeće «kopija» tog niza instrukcija.). a može se koristiti mnogo puta u jednom ili više programa i potprograma.3. Osnovni nedostatak otvorenih potprograma je ponavljanje svih instrukcija potprograma pri svakom obraćanju .Načini korištenja otvorenog potprograma Korištenje otvorenih potprograma u višim programskim jezicima.5.potprogrami ABS.

Procedura može biti tipa NEAR ili FAR.4.Ove instrukcije omogućuju: -pamćenje povratne adrese(adrese instrukcije na koju se vrši povratak iz potrpograma). a za procedure tipa FAR potrebno je da se u stek upiše sadržaj brojača instrukcija i sadržaj segmentnog registra CS.Korištenje zatvorenih potprograma Instrukcije za rad sa potprogramima Za pozivanje potprograma i vraćanje u glavni program koriste se instrukcije CALL i RET.. -prelazak na prvu instrukciju potprograma. -povratak iz potprograma CALL instrukcija Format zapisa CALL instrukcije je: CALL nova_procedura .u stek se upisuje sadržaj brojača instrukcija (IP).Slika 5.prelazak na proceduru nova procedura Ova instrukcija povratnu adresu upisuje u stek i upravljanje predaje prvoj instrukciji procedure(nova_procedura). 96 .ukoliko je procedura tipa NEAR.

ostale instrukcije procedure RET ..ostale instrukcije glavnog programa .instrukcije glavnog programa CALL NOVA . Program operativnog sistema koji se naziva punilac unosi modul punjenja u slobodnu oblast operativne memorije i startuje izvršenje. povratak iz potprograma Primjer: Poziv procedure NOVA i vraćenje u glavni program: . . Makronaredba predstavlja otvoreni potprogram i pri njenom pozivu u osnovni program umeće se cijeli taj niz mašinskh instrukcija.RET instrukcija Instrukcija RET uzima sadržaj vrha steka i smješta ga u brojač instrukcija ...Osnovna namjena makronaredbi je skraćenje izvornog programa. Problemi korištenja potprograma Odnos program – potprogram Osnovni program i potprogram koji se u njemu koristi predstavljaju nezavisne programske jedinice. RET. .. Po završenoj obradi u potprogramu vraća se nazad u osnovni program na mjestu na kome je on bio prekinut... Koristi se bez operanada i njen format zapisa je.. ispituje. . prevodi i smješta na spoljnu memoriju u obliku tzv.....čime prenosi upravljanje na povratnu adresu glavnog programa. NOVA: PROC .13..početak procedure NOVA ..povratak u program NOVA: ENDP ... objektnih modula. Dijelovi programa koji se često koriste definišu se samo jednom u obliku makronaredbe koja ima svoje ime i parametre. Prelaz na potprogram 97 .. Svaka se jedinica nezavisno piše. Korišćenje potprograma sastoji se u tome što se na mjestu gdje je potrebna usluga potprograma prelazi na potprogram.prva instrukcija procedure NOVA . .poziva se procedura NOVA DALJE:.kraj procedure NOVA Makronaredbe Makronaredba predstavlja simboličko ime izvornog (asemblerskog)jezika kojom je označen unaprijed definisan niz mašinskih instrukcija. .. Prije izvršenja programa posebnim sistemskim programom za povezivanje se povezuju objektni moduli i module izvršenja. 5.povratna instrukcija ..Poziva se navođenjem imena makronaredbe i prarametara..Makronaredbe u asemblerskom jeziku predstavljaju sredstva višeg nivoa čime se postiže kraće i lakše programiranje..

.14. 98 . Format ove instrukcije je: INT broj_prekida . .kontrolni bitovi registra uslova – IF (Interrupt Flag) i TF (Trap Flag) postavljaju se na 0 da bi se sprijecilo prihvatanje zahtjeva nekog drugog masinskog prekida. najčešće.prelazi se na izvrshavanje rutine za obradu prekida. .druga rijec vektora prekida se upisuje u registar CS.Prelaz na potprogram sastoji se u prenosu upravljanja iz osnovnog programa na potprogram. Prijelaz iz osnovnog programa u potprogram u najprostijem slučaju mogao bi se organizovati smještanjem u memorijsku lokaciju sa adresom A instrukcije bezuslovnog skoka na adresu PP. . 5. 5. 5. Za realizaciju prekida koristi se instrukcija INT.5b ). postojanjem posebnih CALL i RET instrukcija za rad sa potprogramom.5a ) ili adresu A+D+1 osnovnog programa(sl.sadrzaj registra uslova prepisuje se na stek. iniciranje prekida Izvrsavanjem ove instrukcije odvijaju se sljedeci procesi: . Ova se adresa naziva povratna ili vezna adresa i različita je za svako mjesto u osnovnom programu sa koga se poziva potprogram. .prva rijec vektora prekida upisuje se u brojac instrukcija (IP). Vraćanje iz potprograma Vraćanje iz potprograma sastoji se u prijenosu upravljanja od potprograma na osnovni program. to će u momentu izvršenja instrukcije sa adresom A kojom se prelazi na potprogram. pri tome se gubi informacija o mjesti gdje se treba iz potprograma vratiti u osnovni program. u brojač instrukcija biti upisan novi sadržaj PP. . . To znači da se poslije izvršenja instrukcije glavnog programa sa adresom A (sl.sadrzaj registra brojaca instrukcija (IP) prepisuje se na stek. jer se gubi prethodni sadržaj brojača instrukcija.5) slijedeća instrukcija za izvršenje uzima po adresi PP gdje se nalazi prva izvršna instrukcija potprograma.na osnovi broja prekida formira se adresa vektora prekida duzine dvije rijeci. 5. S obzirom na to da se izvršenje instrukcija programa zapamćenih u memoriju računara odvija pod kontrolom brojača instrukcija ( potprogramskog brojača ). Prelaskom na potprogram narušava se prirodni redoslijed izvršenja instrukcija programa. Radi obezbjeđenja vraćanja iz potprograma u osnovni program potrebno je adresu povratka zapamtiti na nekom unaprijed predviđenom mjestu program. Taj se problem u savremenim računarima rješava ili posebnim metodamaili. Vraćanje ( izlaz ) iz potprograma vrši se od posljednje izvršne instrukcije potprograma na adresu A+1 (sl. Međutim.sadrzaj registra CS se prepisuje na stek. Instrukcije prekida Instrukcije prekida su karakteristicne za masinski orijentirane jezike.

pozive potprograma za unos i prikaz podataka. Za formiranje konačne – izvršne verzije programa potrebno je pri povezivanju (linkovanju) navesti sve neophodne (uključne ) datoteke. Na primjer.ASM MASIM PR1.ASM). kompletna procedura za prvi primjer bi glasila: MASIM IO. pored osnovnog koda.inputc – u AL vraća ASCII vrijednost pritisnutog tastera .newline – pomjera kursor u novi red . znak se ispisuje 99 . Primjeri programa u asembleru Sljedeći primjeri sadrže. Ostale Instrukcije Gotovo svi procesori imaju instrukciju NOR (nema operacije) čijim izvršenjem procesor troši jedan mašinski ciklus i ne obavlja nikakve druge upravljacke aktivnosti. Instrukcija WAIT čeka neki uslov i automatski nastavlja dalje izvršavanje programa kada se taj uslov ispuni.printc – stampa ASCII karakter iz DL . Svaka datoteka sa izvornim kodom se može zasebno prevesti odgovarajućim asemblerom (npr.15. Kod mikroprocesora ova instrukcija se koristi u petljama radi postizanja određenog vremenskog kasnjenja. Skup programa za unos i prikaz se nalazi u posebnoj datoteci – IO.printint – stampa označeni integer iz DX .16. Instrukcija NOR koristi se pri testiranju programa. MASM PR1. kada nastavlja dalji rad automatski. WAIT-Procesor prekida izvršenje programa i ceka dok ne nastane neki spoljni ili unutrasnji uslov. odakle se može ručno aktivirati novi program. kada se instrukcija koju treba izbaciti prosto zamjenjuje NOR instrukcijom bez ikakvih drugih izmjena u programu.prints – stampa niz na koji pokazuju DS:DX a koji se završava sa '$' . 5.5. Oblik instrukcije: NOR -Procesor ne vrsi nikakva dejstva vec ceka jedan masinski ciklus i prelazi na slijedecu instrukciju.ASM. Instrukcijom HALT završava se izvršenje programa i ponekad se prenosi upravljanje na pult mašine. Rad procesora aktivira se dalje sa pulta ili nekim spoljašnjim prekidom. Zaustavljanje izvršenja programa Za zaustavljanje izvršenja programa koristi se HALT i WAIT instrukcija oblika: HALT -Procesor prekida dalje izvršenje programa.ASM LINK PR1+IO Skup potprograma za upis podataka i prikaz na ekranu: Title_Input_Output_funkcije .

pop ax . '$' inpbroj dp 9 dup(?) dseg ends cseg segment cmp ax.poredimo AX i 0 .inputs – učitava niz znakova i upisuje ih na DS:DX i završava niz sa $ . 0 jne pon cmp bx.dx div cx add dl.DX=0 .kraj u suprotnom dodajemo znak '-' . pop bx .smještamo u adresu na koju pokazuje Dl .nalazi orig.13 je kraj1 mov [di]. .Formiramo ASCII kod cifre i .da li je pritisnut ENTER .di call prints pop dx pop cx .izvršava reinterapt 21h .ako jeste završavamo .povratak u glavni program .AX =-AX tako da je AX sigurno pozitivan .smanjuje se DI .štampa se broj .0 jge kraj mov byte ptr[di].učitavamo karakter u AL . dx cik: call inputc cmp al.bira se DOS funkcija 01h . AX=AX div 10.i povećavamo pokazivač na jedan 100 .inputint – u AX vraća vrijednost označenog učitanog broja dseg segment broj dp 6 dup (?).ako nismo idemo sve ispočetka .vraćamo početne vrijednosti registra .ako nije smještamo karakter u niz .OFFSET adresa niza ide u DI . ret printint endp inputc proc mov ah. dl dec di cmp ax.0 jge pon neg ax pon: xor dx. 45 dec di mov dx.al inc di .DX=DI . ako je AX>0 idemo na pon a ako nije . pop di. '0' mov [di]. pop ds.čuvaju se korišćeni registri ..Dl=Di-1 .da li smo obradili sve cifre? .01h int 21h ret inputc endp inputs proc push ax push di mov di.poredimo BX sa nulom (jer se u BX .broj) a ako je BX>0 idemo na . DX = AX mod 10 .

na kraj dodajemo znak za kraj niza pop di .dl .'0' add ax.ako jeste prekidamo rad cmp dl .'$' .bira se DOS funkcija 0ah i poziva int 21h tako int 21h .CH=1.jmp short cik . da bismo kasnije promjenili znak mov cl. '-' .prvi karakter ide u dl cmp dl.i dodajemo AX=AX+DX .DX=0 mov di.CX=0 mov bx.da li je CH=1 .AX=0 add di.konstanta za množenje xor ax. time pamtimo da je učitani broj negativan . mov dx.DI=DI+1 pa pokazuju na sljedeću učitanu cifru . dseg .skačemo na po1 .da se u nizu inpbroj nalaze cifre učitanog broja xor cx.2 .čuvamo (zbog množenja) DL u CL imul bx .čuvaju se korišteni indexi push ds . 07 . dx . ret .od ASCII koda cifre formiramo samu cifru .ako nije znači ta učitani broj nije negativan . xor dx.vraćamo učitani karakter u DL .povratak u glavni program inputs endp inputint proc push di push dx . push cx . assume ds:dseg .ako jeste CH=1.0ah .u suprotnom AX=-AX . dx mov dl.vraćamo sadržaj korišćenih registara 101 .i sve ispočetka kraj1:mov byte ptr[di]. mov ds. di .množimo AX sa BX xor dx. dx .DI pokazuje na prvu učitanu cifru xor dx. cl sub dl.da li je pritisnut ENTER? je kr .da li je pritisnut znak minus? je negt . dx jmp po1 negt: mov ch.10 . offset inpbroj . byte ptr [di] .OFFSET korišćenog niza ide u DI mov byte ptr [di].MAX broj korišćenih karaktera je 7 mov dx.čistimo DX . 1 po1: inc di jmp short po kr: cmp ch. push bx .vraćamo korišćene registre pop ax . cx . 13 .sve opet iz početka .1 jne kra neg ax kra: pop cx . ax .DX=DI (offset niza) mov ah. dx .DX=0 po: mov dl.

dseg mov ds.ispisivati poruka3 db 'Razlika iznosi:$' dseg ends cseg segment assume cs:cseg. ds:dseg.prelazimo u novi red call prints . ax .poruke koje će se poruka2 db 'Zbir iznosi:$' .koji se smješta u odgovarajuću promjenjivu call newline . .inputc: near. mov dx. printint:near extrn inputs:near. .rezervišemo 256 bajtova za stek sseg ends dseg segment prvidw? .stampa se odgovarajuća poruka call inputint .offset poruke ide u DX call prints . bx . prvi .AX =AX+DRUGI 102 . offset poruka1 . ss:sseg.newline: near.pop bx pop ds pop dx pop di ret inputint endp cseg ends end .koristiti u programu zbirdw? razlika dw? poruka1 db 'Unesite broj:$' . printc: near.AX=PRVI add ax.promjenjive koje će se drugidw? . Primjer1 : Sabiranje i oduzimanje brojeva title sabiranje_i_oduzimanje sseg segment stack dp 256 dup(?) . inputint:near main proc far pushds mov ax. ax . mov ax.i učitava se drugi broj mov drugi. drugi . .učitana vrijednost ide u promjenjivu PRVI call newline . 0 pushax mov bx.učitVmo prvi broj mov prvi. es:dseg extrn prints:near.opet se štampa poruka call inputint .bx mov es.

prvi .AX=DRUGI sub ax.drugi . ax .Offset (pomjeraj) poruke ide u DX call prints .Štampa se zbir call newline . mov ax.AX=AX-PRVI move razlika.ax .rezultat se smješta u ZBIR . offset poruka2 .Prelazimo u novi red mov dx. razlika . offset poruka3 .mov zbir.Štampa se razlika ret .Štampa se poruka mov dx. call prints mov dx. mov dx.DX=RAZLIKA call printint .DX=ZBIR call printint . zbir .rezultat se smješta u RAZLIKA .i program završava rad main endp cseg ends end main 103 .

Primjer 3: Štampanje svih cijelih brojeva manjih od unijetog broja title stampanje od 1...N sseg segment stack dp 256 dup(?) sseg ends dseg segment poruka1 db 'Unesi broj N:$' seg ends cseg segment assume cs:cseg, ds:dseg, ss:sseg, es:dseg extrn prints: near,newline:near, printc:near, printint:near extrn inputs:near,inputc: near, inputint:near main proc far pushds mov ax, 0 pushax mov bx, dseg mov ds, dx mov es, bx ; mov dx, offset poruka1 ; call prints ;stampamo poruku za unos broja N call inpuint ;ucitavamo broj N call newline ;prelazimo na novi red mov dx, 1 ;pocinjemo od jedinice pon: cmp dx, ax ;da li je DX vece od AX jg kraj ;ako jeste ispisali smo sve brojeve call printint ;ako ne, stampamo trenutni broj call newline ;prelazimo u novi red i inc dx ;uvecavamo broj za jedan jmp short pon ;ponavljamo cijeli proces kraj : ret ;vraćamo se u DOS main endp cseg ends end main call printint ;stampa se aritmeticka sredina ret main endp cseg ends end main

104

Primjer 5 –Najveci i najmanji broj u nizu brojeva title Najveci_i_najmanji sseg segment stack db 256 dup(?) sseg ends dseg segment niz dw 50 dup (?) najveci dw -32768 najmanji dw 32767 poruka1 db `Unesi broj clanova niza:$` poruka2 db `Najveci clan niza je broj:$` poruka3 db `Najmanji clan niza je broj:$` dseg ends cseg segment assume cs:cseg, ds:dseg, ss:sseg, es:dseg extrn prints:near,newline:near,printc:near,printint:near,printbin:near extrn inputs:near,inputc:near,inputint:near main proc far push ds mov ax,0 push ax mov bx,dseg mov ds,bx mov es,bx ; 105

mov dx,offset poruka1 call prints ; call inputint call newline mov di, offset niz mov bx, ax mov cx, 1 pon:cmp cx,bx jg nast call inputint mov [di], ax call newline cmp ax, najveci jng na1 mov najveci, ax na1:cmp ax,najmanji jnl na2 mov najmanji, ax na2: add di,2 inc cx jmp short pon nast:mov cx, 1 call newline mov di,offset niz cik : cmp cx,bx jg kraj mov dx, [di] call printint call newline add di, 2 inc cx jmp short cik kraj:mov dx, offset poruka2 call newline call prints mov dx, najveci call printint mov dx, offset poruka3 call newline call prints mov dx, najmanji call printint ret main endp cseg ends end main Primjer 6- Pretvaranje velikih slova u mala i obrnuto title Pretvaranje velikih slova u mala i obrnuto sseg segment stack 106

Ako jeste idemo na sljed.32 . `a` . es:dseg extrn prints:near. dseg .U prvom bajtu niza je broj ucitanih karakt.0 . cmp al. subal.Da li je AL<`A` jb snimi .printbin:near extrn inputs:near.Da li je AL>`Z` ja snimi addal. ss:sseg.Da li je AL<`a` jb sljed . mov dx.offset niz .U suprotnom od malog formiramo veliko slovo jmpshort snimi .32 . call newline cld .Duzina niza =50 + `$` na kraju poruka1 db `Unesite pocetni niz:$` poruka2 db `Promijenjeni niz glasi:$` dseg ends cseg segment assume cs:cseg.[si-1] .Skacemo na snimi sljed:cmp al.51 dup (?) . pon:londsb .inputint:near main proc far push ds .offset poruka1 call prints .Prvi bajt niza sadrzi duzinu niza nniz db 51 dup (?) . ds:dseg.inputc:near.printint:near. SI=SI+1 cmp al.cx . mov ds.db 256 dup(?) sseg ends dseg segment niz db 50. push ax . offset niz .bx .Ako jeste skacemo na sljed. mov es.DI=DI+1 107 .`Z` . `z` .CX=0 mov cl. mov dx.printc:near. mov bx.offset niz+2 . xor cx.STOS mov si.[ES:DI]=AL.Ako jeste zavrsavamo cmp al.DF=0 pa se DI i SI uvecavaju kod LODS. mov ax.AL=[DS:SI] .Od drugog bajta se nalazi ucitani niz mov di. .Da li je AL>`z` ja sljed .newline:near.`A` .bx . call inputs .Od velikog formiramo malo slovo snimi:stosb .

Stampamo odgovarajucu .offset nniz novog niza call prints ret main endp cseg ends end main Primjer 7 – Logičke operacije title Logicke operacije sseg segment stack db 256 dup(?) sseg ends .0 push ax mov bx.Pripremamo se za stampu . Ako je CX<>0 . Pripremamo se za stampu .offset poruka2 call prints poruku mov dx.bx mov dx.bx mov es.printint:near. es:dseg extrn prints:near.newline:near.Stampamo novodobijeni niz dseg segment broj1 dw ? broj2 dw ? poruka1 db`Unesite broj:$` poruka2 db `Broj1 $` poruka3 db `Broj2 $` rezdb `--------------------------------$` i db `and $` ili db `or $` eili db `xor $` negac db `not br1 $` dseg ends cseg segment assume cs:cseg.Oznacavamo kraj niza nniz .dseg mov ds.Stampa se poruka1 call inputint .loop pon skacemo na pon mov byte ptr[di].inputint:near main proc far push ds mov ax.Prelazimo u novi red 108 .offset poruka1 . `$` mov dx.ax .printbin:near extrn inputs:near. ss:sseg. i ucitava se broj sa tastature mov br1. DX=OFFSET poruke1 call prints .inputc:near.CX=CX-1.koji se smijesta na odgovarajucu lokaciju call newline .printc:near. ds:dseg.

DX=OFFSET poruke ili .DX=DX xor broj2 .DX=OFFSET rez . mov dx.DX=OFFSET poruke i .Stampa se ta poruka . mov dx.Opet stampamo poruku1 .Stampamo binarno DX .Stampamo binarno DX .Prelazimo u novi red . mov dx.Prelazimo u novi red .DX=DX or broj2 .offset rez call prints call newline mov dx.Prelazimo u novi red . .Ucitavamo broj sa tastature .DX=BROJ2 .Stampamo binarno BROJ2 .Stampamo poruku3 .offset eili call prints mov dx.broj2 call printbin call newline .broj2 call printbin call newline . .Stampa se poruka . .broj1 or dx.offset ili call prints mov dx. broj2 call printbin call newline .call prints call inputint mov br2.DX=OFFSET poruke eili . 109 .offset poruka2 call prints mov dx. broj1 call printbin call newline mov dx. .Prelazimo u novi red .Stampa se poruka .Stampa se poruka2 .DX=BROJ1 .Opet minusevi .offset rez call prints call newline mov dx.Prelazimo u novi red .Prelazimo u novi red .broj1 and dx.Stampamo minuseve ( lijepo izgleda:) . DX=OFFSET poruke3 .broj1 xor dx.DX=BROJ1 . DX=OFFSET poruke2 .offset rez call prints call newline .ax lokaciju .DX=BROJ1 . . .Prelazimo u novi red .Stampamo binarno DX .DX=DX and broj2 .Stampamo binarno BROJ1 . . call newline mov dx.offset poruka3 call prints mov dx. mov dx.broj2 call printbin call newline .offset rez call prints call newline mov dx.offset i call prtints mov dx. i smjestamo ga u odgovarajucu .DX=broj1 .

ax .Stampamo DX dseg segment broj dw ? n dw? poruka1 db `Unesite broj:$` poruka2 db `Unesite broj n:$` poruka3 db `Broj = $` shle db `SHL 1 =$` shl1 db `SHL n =$` shri db `SHR 1=$` shr1 db `SHR n =$` carry db `CF =$` dseg ends cseg segment assume cs:cseg.DX=OFFSET poruke1 call prints .printint:near. ds:dseg. es:dseg extrn prints:near.bx mov es.broj1 not dx call printbin ret main endp cseg ends end main Primjer 8 – Pomjeranje title Shiftovanje sseg segment stack db 256 dup(?) sseg ends .DX=OFFSET poruke2 call prints .mov dx.koji se smijesta u odgovarajucu lokaciju call newline .dseg mov ds.0 push ax mov bx.Stampa se poruka call inputint . prelazimo u sljedeci red mov dx.DX=not(DX) . ss:sseg.inputint:near main proc far push ds mov ax.printbin:near extrn inputs:near.Stampa se ta poruka .printc:near.offset negac call prints mov dx.bx mov dx.DX=OFFSET poruke negac .DX=BROJ1 .inputc:near.Ucitava se broj N 110 .offset poruka1 .newline:near. i ucitava broj sa tastature mov broj.Stampa se poruka call inputint .offset poruka2 .

CL mov dx.offset carry .1 .Stampamo broj iz DX mov dx.koja se stampa mov dx. mov dx.ax .offset shl1 .DX=BROJ call printbin .DX=OFFSET poruke shl1 call prints .1 mov dx.DX=OFFSET niza shle call prints . i smijesta na odgovarajucu lokaciju call newline .Ako nije postavljen CF fleg idemo na nas1 mov dx.1 .offset carry .Stampamo broj iz DX binarno mov dx.Stampa se binarno broj iz DX mov dx.n .mov n. mov dx.broj .broj .DX=0 popf .Ako nije postavljen CF idemo na nas2 mov dx.ako jeste onda DX=1 nas2:call printint .i prelazi u sljedeci red .DX=BROJ mov cx. mov dx.Cuvamo sadrzaj flegova call printbin .DX=BROJ shr dx.1 .Binarno se stampa broj call newline .odbacuju)-DX se shiftuje za CL mjesta ulijevo pushf .0 .broj .DX=OFFSET poruke3 call prints . .Stampa se DX call newline . mov dx.DX=OFFSET poruka carry call prints .offset shle .DX=OFFSET poruke shri call prints .cl .Vracamo sadrzaj FLAG-ova sa steka jnc nas1 .DX=0 popf .Cuvamo na steku koristene flegove call printbin .Shiftuje se DX udesno za jedan pushf . mov dx.DX se shiftuje ulijevo za jedan pushf .DX=OFFSET poruke carry 111 .DX=OFFSET poruka carry call prints .FLEG-vi idu na stek (trebace nam kasnije) call printbin .CX=n (koristi se samo CL.offset poruka3 .Niz se stampa mov dx.offset carry .broj .Dio programa koji je zaduzen za funkciju SHL d.1 .Dio programa koji je zaduzen za funkciju SHL d.offset shri .Ako jeste DX=1 nas1:call printint .Vracamo sadrzaj flegova jnc nas2 .Stampa se poruka mov dx.0 .DX=BROJ shl dx. visi bitovi se shl dx.Stampamo DX call newline .

Stampamo broj iz DX .Stampa se broj iz DX .Shiftuje se DX za CL mjesta udesno .offset carry call prints mov dx.0 popf jnc nas4 mov dx.1 nas3:call printint call newline mov dx.broj mov cx. .Ako nije postavljen CF idemo na nas3 .DX=BROJ . .cl pushf call printbin mov dx.offset shr1 call prints mov dx.Ako nije postavljen CF idemo na nas4 .CX=n ( broj shiftovanja ) .Kraj 112 .DX=0 .1 nas4:call printint ret main endp cseg ends end main .0 popf jnc nas3 mov dx. .n shr dx.call prints mov dx.ako jeste onda DX=1 . . .Stampa se DX .DX=0 .ako jeste onda DX=1 . .Vracamo sadrzaj flegova .Vracamo sadrzaj flegova .Cuvamo sadrzaj flegova .

Sign up to vote on this title
UsefulNot useful