Ukazi preprostega računalnika

Za potrebe naše učne enote bomo definirali preprost računalnik s von Neumannovo arhitekturo. Njegova CPE bo imela en sam 8-bitni register R0 ter aritmetično-logično enoto, ki lahko sešteva in odšteva 8-bitne operande. Glavni pomnilnik bo velikosti 4096 (212) 8-bitnih pomnilniških besed. Za naslavljanje vseh pomnilniških besed bomo torej potrebovali 12 bitov. Programski števec (PC), ki hrani naslov naslednjega ukaza v pomnilniku, mora biti zato prav tako 12-biten. Računalnik bo imel vhodno-izhodni sistem, na katerega bosta priklopljena samo tipkovnica in zaslon.

CPE bo imela zelo preprost nabor ukazov naslednjega formata:

Zgornji štirje biti (od 15 do vključno 12) so operacijska koda, medtem ko spodnjih 12 bitov (od bita 11 do 0) določa naslov v pomnilniku ali konstanto pri takojšnjem naslavljanju. Naslova registra R0 v ukazu ne potrebujemo, saj imamo en sam register.

Vaja

Naš računalnik bo poznal 10 ukazov, ki jih opisuje spodnja tabela (ukaz lahko klikneš in si ogledaš primer uporabe):

Ukaz Op. koda Opis
0000 Seštej vsebino R0 in vsebino pomnilniške besede z naslovom X ter rezultat shrani v R0.
0001 Odštej vsebino pomnilniške besede z naslovom X od R0 ter rezultat shrani v R0.
0010 Naloži vsebino pomnilniške besede z naslovom X v R0.
0011 Shrani vsebino R0 v pomnilniško besedo z naslovom X.
0100 Če je vsebina R0 enaka 0, v programski števec vpiši naslov X.
0101 Če je vsebina R0 različna od 0, v programski števec vpiši naslov X.
0110 Če je vsebina R0 večja od 0, v programski števec vpiši naslov X.
0111 V programski števec vpiši naslov X.
1000 Preberi 8-bitno kodo znaka iz tipkovnice v R0.
1001 Zapiši 8-bitno kodo znaka v R0 na zaslon.
1010 Prištej 12-bitno konstanto C k R0.
1011 Odštej 12-bitno konstanto C od R0.
1100 V R0 zapiši 0.