Title: OSNOVI RACUNARSKE TEHNIKE 1
1OSNOVI RACUNARSKE TEHNIKE 1
- INSTRUKCIJE I NACINI ADRESIRANJA
- 10
2Instrukcije za prenos podataka
- Prenos podataka izmedu registara
- Najveca brzina izvodenja u odnosu na ostale
instrukcije prenosa - Instrukcije su krace od ostalih
- Nekada instrukcija ima samo polje koda operacije
- TAB ( A ? B )
- TBA ( B ? A )
- U nekim instrukcijama se eksplicitno ukazuje na
registre koji ucestvuju u prenosu preko njihovih
adresa) - MOV A, E ( E ? A )
3Instrukcije za prenos podataka
- Prenos podataka izmedu 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)
- Mogucnost prenosa bloka podataka (Z80)
- Mogucnost istovremenog kopiranja sadržaja više
registara u memoriju (MC 68020) -
4Instrukcije za prenos podataka
- Operacije sa stek-om
- Smeštanje podataka na stek (PUSH)
- SP se inkrementira
- Uzimanje podataka sa steka (POP)
- SP se dekrementira
- Primeri instrukcija za rad sa stekom (MC 6800)
- PSH A (sadržaj akumulatora A ? stek )
- PUL A (podatak sa steka ? akumulator A )
- PSH B (sadržaj akumulatora B ? stek )
- PUL B (podatak sa steka ? akumulator B )
5Instrukcije za prenos podataka
- Ulazno-izlazne operacije
- Kod nekih procesora ( MC 68020, VAX )
ulazno/izlazni prostor se posmatra kao memorija - 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
- IN i OUT instrukcije
- Specijalni procesori (kanali) obavljaju
ulazno/izlazne aktivnosti - IBM 370
6Instrukcije za upravljanje tokom programa
- To su instrukcije koje omogucavaju promenu
sadržaja brojaca naredbi (Program Counter) - Ove instrukcije skrecu tok izvodenja programa
bezuslovno ili uslovno - Upravljacke instrukcije mogu da se podele na
- Instrukcije bezuslovnog skoka (jump) ili grananja
(branch) - Instrukcije uslovnog skoka ili grananja
- Specijalne upravljacke instrukcije za upravljanje
potprogramima, prekidima i stanjima procesora
7Instrukcije za upravljanje tokom programa
- Instrukcije bezuslovnog skoka
- Preusmeravaju tok izvodenja programa bez
ispitivanja bilo kakvih uslova - U PC se nalazi adresa memorijske lokacije na
kojoj se nalazi sledeca instrukcija - Ne preporucuje se cesta upotreba ovih
instrukcija, jer mogu da dovedu do greške u
izvršavanju programa
8Instrukcije za upravljanje tokom programa
- Instrukcije uslovnog skoka ili grananja
- Omogucavaju skok (grananje) potprograma samo ako
je prethodnom obradom ispunjen neki uslov - Ne zna se unapred kojim ce putem krenuti dalje
odvijanje programa - Instrukcije se zasnivaju na testiranju pojedinih
bita u registru stanja - Instrukcije SKIP tipa testiraju uslov i preskacu
prvu narednu instrukciju ako je uslov ispunjen
9Instrukcije za upravljanje tokom programa
- 1. Primer za instrukciju uslovnog skoka
- instrukcija
- pocetak petlje
- telo petlje
- dekrementiraj registar i preskoci ako je 0
- skoci na pocetak petlje
- nastavak programa
- Ako uslov nije ispunjen program se vraca na
pocetak petlje (vrti se u petlji)
10Instrukcije za upravljanje tokom programa
- 2. Primer za instrukciju uslovnog skoka
- instrukcija
- pocetak petlje
- telo petlje
- dekrementiraj registar i preskoci ako je 0
- skoci na pocetak petlje
- nastavak programa
- Ako je uslov ispunjen program preskace jednu
instrukciju i izlazi iz petlje
11Instrukcije za upravljanje tokom programa
- 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 - Racunar pre upisa nove adrese u PC (koja
predstavlja pocetnu adresu potprograma), sacuva
tekuci sadržaj PC na steku - Postoje dva tipa instrukcija za rad sa
potprogramima - Instrukcije za pozivanje potprograma (CALL)
- Instrukcije za povratak iz potprograma (RETURN)
12Instrukcije za upravljanje tokom programa
- Otvoreni potprogram Zatvoreni potprogram
- GLAVNI PROGRAM GLAVNI PROGRAM
T O K P R O G R A M A
POCETAK PROGRAMA
POCETAK PROGRAMA
POTPROGRAM
POTPROGRAM
POZIV POTPROGRAMA
POCETAK
POTPROGRAM
POZIV POTPROGRAMA
KRAJ
POTPROGRAM
POZIV POTPROGRAMA
KRAJ PROGRAMA
KRAJ PROGRAMA
13Instrukcije za upravljanje tokom programa
- Instrukcije za upravljanje prekidom
- Zahtevi za prekid (interrupt requests) su signali
koji nastaju - u samom procesoru
- u ulazno/izlaznoj jedinici ili
- u spoljašnjem okruženju (van racunarskog sistema)
- Kada se pojavi zahtev za prekid, tekuci program
se prekida i prelazi na izvršavanje posebnog
kontrolno upravljackog programa za obradu prekida - Da bi mogao da se ostvari povratak u prekinuti
program moraju da se cuvaju na steku - Sadržaj programskog brojaca (PC)
- Sadržaj svih radnih registara u CPU koji ce
koristiti program za obradu prekida
14Instrukcije za upravljanje tokom programa
- Instrukcije za upravljanje prekidom
- Zahtev za prekid može da nastane bilo kada, bilo
na kom mestu u programu i nije pod kontrolom
programa
KORISNICKI PROGRAM
PROGRAM ZA OBRADU PREKIDA
POCETAK
TEKUCA INSTRUKCIJA
ZAHTEV ZA PREKID
NAREDNA INSTRUKCIJA
KRAJ
15Instrukcije za upravljanje tokom programa
- 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
racunarski sistem, neki od njih mogu privremeno
ili trajno da se sprece (maskiraju) pomocu
instrukcija koje mogu da postavljaju masku, da je
citaju i testiraju - Na kraju svake rutine za obradu prekida nalazi se
instrukcija za povratak iz prekida RT (Return
from Interrupt)
16Instrukcije za upravljanje tokom programa
- Instrukcije za upravljanje stanjima procesora
- Kod vecine racunara CPU može da se nade u nekom
od sledecih stanja, pri cemu se stanja koja su
data u paru uzajamno iskljucuju - Neprivilegovanom / privilegovanom stanju
- Stanju spremnosti / stanju obrade
- Stanju zastoja (cekanja) / stanju obrade
- Stanju dozvoljenog prekida / stanju zabranjenog
prekida - U privilegovanom režimu može u potpunosti da se
kontroliše rad racunara pomocu privilegovanih
instrukcija koje ne mogu da se upotrebljavaju u
korisnickom programu.
17Nacini adresiranja
- Podacima se pristupa razlicitim nacinima
adresiranja, koji su zadati u posebnom polju u
formatu instrukcije
IMPLICITNO adresiranje
NEPOSREDNO adresiranje
adresiranje PRIMENOM BAZNIH REGISTARA
DIREKTNO adresiranje
FORMAT INSTRUKCIJE
adresiranje PRIMENOM SEGMENTNIH REGISTARA
RELATIVNO adresiranje
INDEKSIRANO adresiranje
INDIREKTNO adresiranje
18Nacini adresiranja
- Implicitno adresiranje
- Sama instrukcija ( kod operacije ) odreduje
fiksnu i nepromenjivu adresu operanda - Neposredno adresiranje
- Polje adrese predstavlja sam operand
- Podatak se nalazi u memoriji na lokaciji koja
neposredno sledi iza koda operacije - Direktno adresiranje
- U polju operanda nalazi se fizicka adresa podatka
- Relativno adresiranje
- Adresa memorijske lokacije se odreduje u odnosu
na tekuci sadržaj programskog brojaca (PC)
19Nacini adresiranja
- Indeksirano adresiranje
- Na adresu podatka se dodaje sadržaj nekog indeks
registra (dobija se efektivna adresa) - Indirektno adresiranje
- U polju operanda se nalazi pokazivac adrese na
memorijsku lokaciju u kojoj se nalazi adresa na
kojoj je smešten podatak - Adresiranje primenom segmentnih registara
- Fizicka adresa je podeljena na dve logicke, od
kojih je jedna u polju operanda, a druga u
segmentnom registru - Korisnicki program može da menja sadržaj
segmentnih registara
20Nacini adresiranja
- Adresiranje primenom baznih registara
- Koristi se za pomeranje programa u okviru
memorije kada programi koriste apsolutne adrese. - Logicka adresa adresa koju vidi program
- Bazna adresa adresa koju je dodelio
operativni sistem (nalazi se u - baznom registru)
- Stvarna adresa logicka adresa bazna adresa
- Sadržaj baznog registra može da menja samo
operativni sistem