1.2. F ORMATI INSTRUKCIJA
U računarskim sistemima, instrukcije predstavljaju odreĎen niz bitova koji formiraju jednu celinu
u obliku mašinskih rečenica razumljivih računaru. Instrukcija je jedinični element obrade u radu
računara. U principu, najosnovije operacije obrade podatka unutar jedne instrukcije predstavljaju
binarne operacije nad binarnim podacima. Zbog toga, instrukcija mora da sadrži osim informacije
o tipu operacije koju obraĎuje i informacije o vrednostima opreanada i rezultata date operacije.
Operandi koji učestvuju u binarnoj operaciji kažemo da su izvorišni operandi, gde se za prvi
izvorišni operand koristi oznaka SRC1, a za drugi izvorišni operand SRC2. Rezultat operacije
potrebno je uskladštiti u odreĎenu memorijsku loakciju u memroiji ili registru koja predstavlja
adresu odredišnog operanda. Odredišni operand označavamo sa oznakom DST. Dakle,
memorijske lokacije, odnosno registri u kojima se čuvaju izvorišni (SRC1, SRC2) i odredišni
operandi (DST) predstavlaju adrese tih operanada. Sleduje da se instrukcija koja vrši obardu
binarne operacije, sastoji iz dela koda instrukcije (OC) u kome se specificira tip operacije i
adresnog dela u kome se specificira adrese izvorišnih i odresišnih operanda.
1.2.1. Troadresni format instrukcije
Kod ovog formata, instrukcija je podeljena na četri dela prikazanoj na Sl. 1.2.1.
1.2.1.
Prvi deo instrukcije označen sa OC predstavlja kod instrukcije. Na osnovu koda instrukcije,
procesoru se zadaje tip obarde izvršavanja tekuće instrukcije. Pri tome osim operacija nad
binarnim podacima, tip obrade može biti prenos sadržaja iz jedne lokacije u drugu, realizacije
skoka i drugo. Na osnovu tipa obrade formira se podela tipova instrukcije:
1. instrukcije prenosa
2. aritmetičke i logičke instrukcije
3. instrukcije pomeranja
4. instrukcije skoka
5. statusne instrukcije
Drugi deo instrukcije označen sa DST predstavlja niz bitova koji specifiraju adresu na kojoj će se
smestiti rezultat opreacije instrukcije. Ili ukratko rečeno, DST predstavlja adresu odredišnog
operanda. Ako je tip instrukcije koja za obradu nema rezultat operacije, onda se ovaj deo
instrukcije zanemaruje tokom izvršavanja.
1
Treći deo insturkcije označen sa SRC1 predstavlja adresu prvog izvorišnog operanda. Ako
instrukcija ne koristi nikakve podatke za obradu, onda se ovaj deo zanemaruje tokom izvršavanja.
Četvrti deo insturkcije označen sa SRC2 predstavlja adresu drugog izvorišnog operanda. Ako
instrukcija ne koristi nikakve podatke za obardu, ili koristi samo jedan operand, onda se ovaj deo
instrukcije zanemaruje.
Na osnovu Sl. 1.2.1. DST operand je odmah iza koda instukcija OC. To ne mora da bude
standard, može se uzeti da su unutar instrukcije delovi rasporeĎeni redom, OC, SRC1, SRC2 ,
DST, pa DST zauzima poslednji deo instrukcije. Jedino se kod instrukcije OC uvek postavlja na
početku.
1.2.2. Dvoadresni format instrukcije
1.2.2.
Kod ovog formata instrukcije, drugi deo (DST/SRC1) predstavlja u isto vreme adresu prvog
izvorišnog operanda i adresu odredišnog operanda. Ako imao instrukciju binarne operacije, onda
se tokom izvršavanja prvo iz adrese koju pokazuje drugi deo instrukcije (DST/SRC1) uzima prvi
operand, pa se rezultat operacije skaldišti na istu adresu.
1.2.3. Jednoadresni format instrukcije
1.2.3.
Za razliku od dvoadresnog formata, kod jednoadresnog formata unutar same instrukcije nemamo
drugi izvrorišni operand SRC2. U ovom slučaju, drugi izvorišni operand predstavlja sardžaj
akumulatora.
1.2.4. Nuladresni format instrukcije
Kod ovog načina adresiranja u instrukciji stoji samo kod o tipu obrade Sl. 1.2.4. Kad imao
instrukciju koja zahteva oba izvorišna operanda, onda prve dve popunjene lokacije stek
2
memorije, gledano od vrha steka, predstavljaju adrese izvorišnih operanda. Predpostavićemo da
je prva popunjena lokacija SRC1, a druga ispod nje SRC2 Sl. 1.2.4. Ako je potrebno smestiti
rezultat obrade (DST), onda se on smešta na prvu popunjenu lokaciju, gledano od vrha steka. Na
primer, ako imamo binarnu operaciju koja zahteva dva izvorišna operanda, onda će se posle
obrade operacije, rezultat (DST) smestiti na lokaciju u kojem je bila vrednost prvog izvorišnog
operanda (SRC1).
1.2.4.
Da bi se podaci obraĎivali na osnovu koda operacije, potrbeno je da se nalaze na vrhu steka.
Zbog toga, kod nuladresnih formata, moramo imati instrukcije sa radom upisavanja/
prosleĎivanja sadržaja steka. To su instrukcije PUSH i POP koje imaju jednoadresni format.
Dakle, u nualdresnom formatu. moramo imati još dve jednoadresne instukcije sa radom stek
memorije (PUSH i POP), dok ostale instrukcije sadrže samo kod (OC).
Primer1: Realizovati sabiranje dva broja koja se nalaze na memorijskim lokacijama a i b
respektivno. Njihov rezultat treba smestiti u memoriskoj lokaciji pod oznakom c. Koristiti
nuladresni format instrukcija.
Rešenje:
Gde se tokom izvršavanja instrukcije ADD sadržaj steka menja prema Sl. 1.2.5:
PUSH b;
PUSH a;
ADD;
POP c;
1.2.5.
3
Download

1.2. Formati instrukcija