OSNOVI RAUNARSKE TEHNIKE 1 INSTRUKCIJE I NAINI ADRESIRANJA

  • Slides: 20
Download presentation
OSNOVI RAČUNARSKE TEHNIKE 1 INSTRUKCIJE I NAČINI ADRESIRANJA 10

OSNOVI RAČUNARSKE TEHNIKE 1 INSTRUKCIJE I NAČINI ADRESIRANJA 10

Instrukcije za prenos podataka g. Prenos podataka između registara ØNajveća brzina izvođenja u odnosu

Instrukcije za prenos podataka g. Prenos podataka između registara ØNajveća brzina izvođenja u odnosu na ostale instrukcije prenosa ØInstrukcije su kraće od ostalih ØNekada instrukcija ima samo polje koda operacije: q. TAB ( A B ) q. TBA ( B A ) ØU nekim instrukcijama se eksplicitno ukazuje na registre koji učestvuju u prenosu preko njihovih adresa): q. MOV A, E ( E A )

Instrukcije za prenos podataka g. Prenos podataka između memorije i registara ØPrenos podataka iz

Instrukcije za prenos podataka g. Prenos podataka između memorije i registara ØPrenos podataka iz memorije u neki od CPU registara (LOAD) ØPrenos podataka iz nekog od CPU registara u memoriju (STORE) ØJedinstven tip instrukcije (MOVE) (Intel): MOVE x, y (y ( source) x (destination) ØMogućnost prenosa bloka podataka (Z 80) ØMogućnost istovremenog kopiranja sadržaja više registara u memoriju (MC 68020)

Instrukcije za prenos podataka g. Operacije sa stek-om ØSmeštanje podataka na stek (PUSH) q.

Instrukcije za prenos podataka g. Operacije sa stek-om ØSmeštanje podataka na stek (PUSH) q. SP se inkrementira ØUzimanje podataka sa steka (POP) q. SP se dekrementira ØPrimeri instrukcija za rad sa stekom (MC 6800) (sadržaj akumulatora A stek ) q. PUL A (podatak sa steka akumulator A ) q. PSH B (sadržaj akumulatora B stek ) q. PUL B (podatak sa steka akumulator B ) q. PSH A

Instrukcije za prenos podataka g. Ulazno-izlazne operacije ØKod nekih procesora ( MC 68020, VAX

Instrukcije za prenos podataka g. Ulazno-izlazne operacije ØKod nekih procesora ( MC 68020, VAX ) ulazno/izlazni prostor se posmatra kao memorija q. Svakoj U/I jedinici je pridružena jedna ili više memorijskih adresa ØKod nekih procesora U/I operacije su odvojene od operacija sa memorijom Programski kontrolisan U/I prostor q IN i OUT instrukcije q Specijalni procesori (kanali) obavljaju ulazno/izlazne aktivnosti - IBM 370 q

Instrukcije za upravljanje tokom programa g. To su instrukcije koje omogućavaju promenu sadržaja brojača

Instrukcije za upravljanje tokom programa g. To su instrukcije koje omogućavaju promenu sadržaja brojača naredbi (Program Counter) ØOve instrukcije skreću tok izvođenja programa bezuslovno ili uslovno g Upravljačke instrukcije mogu da se podele na: ØInstrukcije bezuslovnog skoka (jump) ili grananja (branch) ØInstrukcije uslovnog skoka ili grananja ØSpecijalne upravljačke instrukcije za upravljanje potprogramima, prekidima i stanjima procesora

Instrukcije za upravljanje tokom programa g. Instrukcije bezuslovnog skoka ØPreusmeravaju tok izvođenja programa bez

Instrukcije za upravljanje tokom programa g. Instrukcije bezuslovnog skoka ØPreusmeravaju tok izvođenja programa bez ispitivanja bilo kakvih uslova ØU PC se nalazi adresa memorijske lokacije na kojoj se nalazi sledeća instrukcija ØNe preporučuje se česta upotreba ovih instrukcija, jer mogu da dovedu do greške u izvršavanju programa

Instrukcije za upravljanje tokom programa g. Instrukcije uslovnog skoka ili grananja ØOmogućavaju skok (grananje)

Instrukcije za upravljanje tokom programa g. Instrukcije uslovnog skoka ili grananja ØOmogućavaju skok (grananje) potprograma samo ako je prethodnom obradom ispunjen neki uslov ØNe zna se unapred kojim će putem krenuti dalje odvijanje programa ØInstrukcije se zasnivaju na testiranju pojedinih bita u registru stanja ØInstrukcije SKIP tipa testiraju uslov i preskaču prvu narednu instrukciju ako je uslov ispunjen

Instrukcije za upravljanje tokom programa g 1. Primer za instrukciju uslovnog skoka instrukcija početak

Instrukcije za upravljanje tokom programa g 1. Primer za instrukciju uslovnog skoka instrukcija početak petlje telo petlje dekrementiraj registar i preskoči ako je 0 skoči na početak petlje nastavak programa ØAko uslov nije ispunjen program se vraća na početak petlje (vrti se u petlji)

Instrukcije za upravljanje tokom programa g 2. Primer za instrukciju uslovnog skoka instrukcija početak

Instrukcije za upravljanje tokom programa g 2. Primer za instrukciju uslovnog skoka instrukcija početak petlje telo petlje dekrementiraj registar i preskoči ako je 0 skoči na početak petlje nastavak programa ØAko je uslov ispunjen program preskače jednu instrukciju i izlazi iz petlje

Instrukcije za upravljanje tokom programa g. Instrukcije za upravljanje potprogramima ØPotprogrami (subroutine, subprogram) su

Instrukcije za upravljanje tokom programa g. Instrukcije za upravljanje potprogramima ØPotprogrami (subroutine, subprogram) su niz instrukcija koje predstavljaju celinu ØPotprogram može da se poziva više puta u toku izvršenja nekog programa ØRačunar pre upisa nove adrese u PC (koja predstavlja početnu adresu potprograma), sačuva tekući sadržaj PC na steku ØPostoje dva tipa instrukcija za rad sa potprogramima q. Instrukcije za pozivanje potprograma (CALL) q. Instrukcije za povratak iz potprograma (RETURN)

Instrukcije za upravljanje tokom programa Otvoreni potprogram GLAVNI PROGRAM POČETAK PROGRAMA POTPROGRAM Zatvoreni potprogram

Instrukcije za upravljanje tokom programa Otvoreni potprogram GLAVNI PROGRAM POČETAK PROGRAMA POTPROGRAM Zatvoreni potprogram T O K GLAVNI PROGRAM POČETAK PROGRAMA POZIV POTPROGRAMA POTPROGRAM POČETAK POTPROGRAM KRAJ PROGRAMA P R O G R A M A POZIV POTPROGRAMA • • • KRAJ POZIV POTPROGRAMA KRAJ PROGRAMA

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje prekidom ØZahtevi za prekid (interrupt

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje prekidom ØZahtevi za prekid (interrupt requests) su signali koji nastaju qu samom procesoru qu ulazno/izlaznoj jedinici ili qu spoljašnjem okruženju (van računarskog sistema) ØKada se pojavi zahtev za prekid, tekući program se prekida i prelazi na izvršavanje posebnog kontrolno upravljačkog programa za obradu prekida Ø Da bi mogao da se ostvari povratak u prekinuti program moraju da se čuvaju na steku: q. Sadržaj programskog brojača (PC) q. Sadržaj svih radnih registara u CPU koji će koristiti program za obradu prekida

Instrukcije za upravljanje tokom programa g. Instrukcije za upravljanje prekidom ØZahtev za prekid može

Instrukcije za upravljanje tokom programa g. Instrukcije za upravljanje prekidom ØZahtev za prekid može da nastane bilo kada, bilo na kom mestu u programu i nije pod kontrolom programa KORISNIČKI PROGRAM ZA OBRADU PREKIDA POČETAK TEKUĆA INSTRUKCIJA ZAHTEV ZA PREKID NAREDNA INSTRUKCIJA KRAJ

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje prekidom ØObradu prekida vrši program

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje prekidom ØObradu prekida vrši program operativnog sistema koji se zove analizator prekida ØAnalizator prekida bira program za obradu koji odgovara prekidu ØPošto nisu svi prekidi podjednako važni za računarski sistem, neki od njih mogu privremeno ili trajno da se spreče (maskiraju) pomoću instrukcija koje mogu da postavljaju masku, da je čitaju i testiraju ØNa kraju svake rutine za obradu prekida nalazi se instrukcija za povratak iz prekida RT (Return from Interrupt)

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje stanjima procesora ØKod većine računara

Instrukcije za upravljanje tokom programa g Instrukcije za upravljanje stanjima procesora ØKod većine računara CPU može da se nađe u nekom od sledećih stanja, pri čemu se stanja koja su data u paru uzajamno isključuju: q. Neprivilegovanom / privilegovanom stanju q. Stanju spremnosti / stanju obrade q. Stanju zastoja (čekanja) / stanju obrade q. Stanju dozvoljenog prekida / stanju zabranjenog prekida ØU privilegovanom režimu može u potpunosti da se kontroliše rad računara pomoću privilegovanih instrukcija koje ne mogu da se upotrebljavaju u korisničkom programu.

g. Podacima Načini adresiranja se pristupa različitim načinima adresiranja, koji su zadati u posebnom

g. Podacima Načini adresiranja se pristupa različitim načinima adresiranja, koji su zadati u posebnom polju u formatu instrukcije adresiranje PRIMENOM BAZNIH REGISTARA IMPLICITNO adresiranje NEPOSREDNO adresiranje DIREKTNO adresiranje FORMAT INSTRUKCIJE adresiranje PRIMENOM SEGMENTNIH REGISTARA RELATIVNO adresiranje INDIREKTNO adresiranje INDEKSIRANO adresiranje

Načini adresiranja g Implicitno adresiranje ØSama instrukcija ( kod operacije ) određuje fiksnu i

Načini adresiranja g Implicitno adresiranje ØSama instrukcija ( kod operacije ) određuje fiksnu i nepromenjivu adresu operanda g Neposredno adresiranje ØPolje adrese predstavlja sam operand ØPodatak se nalazi u memoriji na lokaciji koja neposredno sledi iza koda operacije g Direktno adresiranje ØU polju operanda nalazi se fizička adresa podatka g Relativno adresiranje ØAdresa memorijske lokacije se određuje u odnosu na tekući sadržaj programskog brojača (PC)

g Indeksirano Načini adresiranja adresiranje ØNa adresu podatka se dodaje sadržaj nekog indeks registra

g Indeksirano Načini adresiranja adresiranje ØNa adresu podatka se dodaje sadržaj nekog indeks registra (dobija se efektivna adresa) g Indirektno adresiranje ØU polju operanda se nalazi pokazivač adrese na memorijsku lokaciju u kojoj se nalazi adresa na kojoj je smešten podatak g Adresiranje primenom segmentnih registara ØFizička adresa je podeljena na dve logičke, od kojih je jedna u polju operanda, a druga u segmentnom registru ØKorisnički program može da menja sadržaj segmentnih registara

Načini adresiranja g Adresiranje primenom baznih registara ØKoristi se za pomeranje programa u okviru

Načini adresiranja g Adresiranje primenom baznih registara ØKoristi se za pomeranje programa u okviru memorije kada programi koriste apsolutne adrese. q. Logička adresa = adresa koju vidi program q. Bazna adresa = adresa koju je dodelio operativni sistem (nalazi se u baznom registru) ØStvarna adresa = logička adresa + bazna adresa ØSadržaj baznog registra može da menja samo operativni sistem