Zgradba ukaza in osnovne operacije

Kaj se bomo v tem poglavju naučili?


Spoznali bomo  naslednje pojme: zgradba ukaza, operand:celo število, število v pomični vejici, oktet (pogojno znak), četverka, bit
osnovne operacije : aritmetične, logične, primerjalne.

 

Kakšni so (nekateri) osnovni ukazi vsakega računalnika?

Zaenkrat si stvar poenostavimo in spoznajmo najbolj osnovne ukaze:

·         Vpis dane vsebine v nek register (ali pomnilno lokacijo)

·         Prepis vsebine neke lokacije ali registra v nek drug register

·         Povečevanje ali zmanjševanje vsebin registrov (ki tako delujejo kot števci, uporabljamo jih lahko za indekse v polja ipd.)

·         Izvedba aritmetičnih operacij med dvema registroma (seštevanje, odštevanje, množenje, deljenje..)/

·         Izvedba logičnih operacij med dvema registroma (And, Or, Xor)

·         (Druge ukaze bomo spoznali kasneje)

·         S primernimi ukazi lahko tudi spremenimo vrednost samega programskega števca. To pa pomeni preskok na drug del programa. Tak skok je lahko pogojen z rezultatom predhodne operacije (kar pomni statusni register procesorja).

 

Kako CPE ugotovi, kakšno operacijo naj izvede in katere podatke naj pri tem uporabi?

To razbere iz takoimenovane kode ukaza. Ta je lahko dolga en pomnilniški zlog (byt ali besedo), če pa je to premalo, jo lahko dopolnjuje še več naslednjih zaporednih bytov v pomnilniku.
 
In kaj moramo v takem ukazu pomniti:

·         Kodo operacije (Kaj naj CPE naredi: vpis ali prepis podatka, aritmetična ali logična operacija ipd)

·         Kje se morebitni podatek nahaja (naslov podatka ali podatek kot tak)

·         Način naslavljanja morebitnega podatka

 

Koliko bitov potrebujemo za kateri delo ukaza in kje  točno v kodi ukaza ležijo ti biti, je odvisno od takoimenovanega formata ukaza. V nekaterih primerih lahko z enim ukazom naslovimo tudi 2 podatka.
 
Žal je format med različnimi tipi računalnikov ( bolje rečeno njihovih centralnih procesnih enot) različen.  Samo za občutek si poglejmo format ukazov pri Intelovih procesorjih Pentium:

 

  

Kljub vsemu pa lahko zasledimo nekatere skupne značilnosti. In temu se bomo posvetili.

In kako je to pri našem poenostavljenem računalniku?

Očitno uporabimo za vsak ukaz 2 byta oziroma 16 bitov. Prvih 5 bitov predstavlja operacijsko kodo,  preostalih 11 bitov pa je namenjenih podatku. Lahko je to že kar podatek, ali pa teh 11 bitov predstavlja naslov v pomnilniku (kjer je podatek).

In kaj ta program v resnici dela? Če si pogledamo zapis tega programa v zbirnem jeziku (klikni), in če bi poznali pomen posameznih ukazov, bi spoznali, da izračuna vrednost izraza (5+2)*(6-3)

To bi lahko preverili tudi z zaporednim korakanjem po programu in opazovanjem vrednosti v akumulatorskem registru:

Korak na naslednji ukaz
Reset programskega števca  na  začetek

Preklop na dvojiško predstavitev programa.