Ukazi strojnega jezika

Delovanje vsakega današnjega računalnika je določeno z zaporedjem ukazov, ki jih CPE, kot smo spoznali pri opisu von Neumannove arhitekture, pridobiva iz glavnega pomnilnika in jih praviloma izvršuje enega za drugim. Kaj pa sploh so ukazi? Ukazi hranijo informacijo o operaciji, ki naj jo izvede CPE, in o morebitnih operandih operacije. Operacije, s katerimi smo se posredno že srečali v poglavju o programiranju, vključujejo osnovne aritmetične operacije (seštevanje, odštevanje, množenje in deljenje); logične operacije, kot sta logični in (konjukcija, ang. AND) ter logični ali (disjunkcija, ang. OR); operacije za prenos podatkov med pomnilnikom, registri in vhodno-izhodnimi napravami; ter operacije za skok, ki pa jih bomo spoznali v nadaljevanju (prim. pogojni stavek v poglavju o programiranju). Ukaz prav tako hrani informacijo o operandu, za katerega naj se operacija izvrši.

Spoznali smo že, da so vse informacije, ki jih skladišči računalnik, v obliki ničel in enic – z ukazi ni nič drugače. Vsak ukaz je tako zaporedje ničel in enic, ki ima za CPE točno določen pomen. Ukazi so razdeljeni v več polj, tj. skupin bitov, pri čemer ima vsako polje svoj pomen. Poglejmo si preprost primer:

Prvi biti v ukazu opredeljujejo operacijsko kodo, ki določa operacijo, medtem ko preostanek ukaza podaja, kje se nahajajo operandi in kako naj CPE do njih dostopa.

Mesto nahajanja operandov

Operandi so v računalniku shranjeni v glavnem pomnilniku, v pomnilniku neke vhodno-izhodne naprave, lahko so vsebovani že v samem ukazu ali pa se nahajajo v majhnem pomnilniku znotraj CPE, ki ga imenujemo registri.

V vsakem registru znotraj CPE lahko hranimo en operand. Nekatere CPE imajo le po en register, nekatere dva, druge pa tudi 16 ali celo 32.

Zakaj bi sploh želeli operande hraniti v registrih znotraj CPE? S pomočjo registrov se izognemo odvečnim dostopom do pomnilnika, ki v primerjavi z dostopom do registrov zahtevajo bistveno več časa. Tako lahko npr. vmesne rezultate programa hranimo v registrih in v pomnilnik zapišemo šele končni rezultat, s čimer dosežemo pomembne pohitritve.