ORT1_06_PR11

Download Report

Transcript ORT1_06_PR11

OSNOVI RAČUNARSKE
TEHNIKE 1
INSTRUKCIJE I
NAČINI ADRESIRANJA
10
Instrukcije za prenos podataka
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:
TAB ( A  B )
TBA ( B  A )
U nekim instrukcijama se eksplicitno ukazuje
na registre koji učestvuju u prenosu preko
njihovih adresa):
MOV A, E ( E  A )
Instrukcije za prenos podataka
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 (Z80)
Mogućnost istovremenog kopiranja sadržaja
više registara u memoriju (MC 68020)
Instrukcije za prenos podataka
Operacije
sa stek-om
Smeštanje podataka na stek (PUSH)
SP se
inkrementira
SP se
dekrementira
Uzimanje podataka sa steka (POP)
Primeri instrukcija za rad sa stekom
(MC 6800)
(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 )
PSH A
Instrukcije 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

Instrukcije za upravljanje tokom
programa
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
 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
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
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
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
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
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
Instrukcije za pozivanje potprograma (CALL)
Instrukcije za povratak iz potprograma
(RETURN)
Instrukcije za upravljanje tokom
programa
Otvoreni potprogram
GLAVNI PROGRAM
POČETAK PROGRAMA
POTPROGRAM
Zatvoreni potprogram
T
O
K
GLAVNI PROGRAM
POČETAK PROGRAMA
POTPROGRAM
POZIV POTPROGRAMA
POČETAK
POTPROGRAM
POTPROGRAM
KRAJ PROGRAMA
P
R
O
G
R
A
M
A
POZIV POTPROGRAMA
•
•
•
KRAJ
POZIV POTPROGRAMA
KRAJ PROGRAMA
Instrukcije 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 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:
 Sadržaj
programskog brojača (PC)
 Sadržaj svih radnih registara u CPU koji će koristiti
program za obradu prekida
Instrukcije 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
KORISNIČKI PROGRAM
PROGRAM ZA OBRADU PREKIDA
POČETAK
TEKUĆA INSTRUKCIJA
ZAHTEV
ZA PREKID
NAREDNA INSTRUKCIJA
KRAJ
Instrukcije 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 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
 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:
Neprivilegovanom / privilegovanom stanju
Stanju spremnosti / stanju obrade
Stanju zastoja (čekanja) / stanju obrade
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.
Načini adresiranja
se pristupa različitim načinima
adresiranja, koji su zadati u posebnom polju u
formatu instrukcije
Podacima
IMPLICITNO
adresiranje
adresiranje
PRIMENOM
BAZNIH
REGISTARA
NEPOSREDNO
adresiranje
DIREKTNO
adresiranje
FORMAT INSTRUKCIJE
adresiranje
PRIMENOM
SEGMENTNIH
REGISTARA
RELATIVNO
adresiranje
INDIREKTNO
adresiranje
INDEKSIRANO
adresiranje
Načini adresiranja
 Implicitno
adresiranje
Sama instrukcija ( kod operacije ) određuje 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 fizička adresa podatka
 Relativno
adresiranje
Adresa memorijske lokacije se određuje u odnosu na
tekući sadržaj programskog brojača (PC)
 Indeksirano
Načini adresiranja
adresiranje
Na adresu podatka se dodaje sadržaj nekog indeks
registra (dobija se efektivna adresa)
 Indirektno
adresiranje
U polju operanda se nalazi pokazivač adrese na
memorijsku lokaciju u kojoj se nalazi adresa na kojoj
je smešten podatak
 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
 Adresiranje
primenom baznih registara
Koristi se za pomeranje programa u okviru
memorije kada programi koriste apsolutne
adrese.
Logička adresa = adresa koju vidi program
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