Operacijski kod /Šta instrukcija treba da sadrži?

Instrukcijom se specificira operacija koju procesor treba da uradi kao i podaci koji su neophodni za njeno obavljanje.

Šta instrukcija treba da sadrži?
Instrukcija treba da sadrži informaciju o tome koja operacija treba da se obavi (opcode) i adresni dio koji sadrži operande ili reference (adrese) operanada.


Dijelovi instrukcije

Operandi instrukcije se mogu naći u samoj instrukciji, nekom od registara procesora, i  memoriji procesora. Na osnovu toga se definiše format instrikcije (dakle i značenje sadržaja podatka u memoriji).

Formati instrukcija

Formati i odnos Opkoda i adresa instrukcija

Format instrukcije je definisan ukupnom dužinom instrukcije (u bitovima), zatim brojem, dužinom i značenjem svakog njenog polja. Tako razlikujemo bezadresne (nuladresne), jednoadresne, dvoadresne, itd formate instrukcija.

Evo primjera pojedinih formata

Nula – adresni
INC A: uvećava sadržaj akumulatora za 1)
POP C (instrukcija pop čita podatak sa vrha stack-a)

Jedno – adresni (akumulatorske arhitekture)
Jedan operand i rezultat se nalaze u posebnom registru CPUa koji se zove akumulator (ACC)
Npr. LOAD A (dejstvo ACC ¬ Mem[A])
ADD B (ACC ¬ ACC +Mem[B])

Dvo – adresni
Jedan operand ima dvostruku ulogu: jednovremeno predstavlja oznaku izvornog i odredišnog operanda
Npr. ADD R1, R2 (dejstvo R1 ¬[R1]+[R2])

Tro – adresni
U adresnom dijelu instrukcije se nalaze refernce dva izvorna operanda i odredišnog operanda
Svi operandi su eksplicitno navedeni i nalaze se ili u registrima opšte namjene ili u memoriji
Npr. ADD R1, R2, R3 (dejstvo R1¬[R2]+[R3])
ADD A,B,C (dejstvo Mem[A] ¬Mem[B]+Mem[C] ) 

 

Promjenom veličine operacionog koda povećava se broj mogućih instrukcija.
Povećanjem broja adresnih dijelova pojednostavljuje se programiranje i smanjuje veličina programa.

 

Rješavanje problema START

copyright M2M
BL-2011/14