200 likes | 356 Views
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:
E N D
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): • MOVA, 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): MOVEx, 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 • Uzimanje podataka sa steka (POP) • SP se dekrementira • Primeri instrukcija za rad sa stekom (MC 6800) • PSH A(sadržaj akumulatora A stek ) • PULA (podatak sa steka akumulator A ) • PSHB(sadržaj akumulatora B stek ) • PUL B (podatak sa steka akumulator B )
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 SKIPtipatestiraju 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 potprogramZatvoreni potprogram GLAVNI PROGRAMGLAVNI PROGRAM T O K P R O G R A M A POČETAK PROGRAMA POČETAK PROGRAMA POTPROGRAM POTPROGRAM POZIV POTPROGRAMA POČETAK • • POTPROGRAM POZIV POTPROGRAMA • KRAJ POTPROGRAM POZIV POTPROGRAMA KRAJ PROGRAMA 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 • Podacima se pristupa različitim načinima 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
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)
Načini adresiranja • Indeksirano 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