Mikroprogrammierung
Wie entwickelt man ein Mikroprogramm?
Ziel ist es im Folgenden, im Bonsai-Simulationsprogramm den Bonsai-Befehlssatz um weitere Befehle zu erweitern.
Experimente mit dem Bonsai-Simulationsprogramm
Aufgabe 1
Mit dem Befehl lda adr
(loadAkku) soll der Inhalt der Speicherzelle adr
in den Akku geladen
werden. Anschließend soll der Programmzähler um 1 erhöht werden.
Der neue Befehl lda
soll den Opcode 6
erhalten.
-
Editieren des Mikroprogramms:
60: 12 61: 12, 3, 7 62: 13,12, 3 63: 1
-
Erweitern der Zuordnungstabelle des Befehlsdecoders:
0: 0 1: 10 2: 20 ... 6: 60
-
Erstellen eines kleinen Test-Maschinenprogramms:
0 60003 lda 3 1 50000 hlt 2 00000 Lücke 3 00027 Datum, das in den Akku geladen wird -
Austesten:
Beachte: Nach jedem Reset (Neuladen der Seite) müssen der Datenspeicher, der Befehlsdecoder und der Mikroprogrammspeicher erneut angepasst werden. Speichere also alles in einer Textdatei, damit du die neuen Werte einfach wiederholt hineinkopieren kannst.
Aufgabe 2
Programmiere und teste analog den Befehl sta adr
(storeAkku)
mit Opcode 7
mit der Bedeutung "speichere den
Akkuinhalt in der Speicherzelle adr und erhöhe anschließend den PC".
Aufgabe 3
Der BONSAI-Computer kann auch indirekt adressieren.
Programmiere den Befehl lda (adr)
(loadAkkuIn) mit Opcode 8
mit folgender
Bedeutung: "Lade den Akku mit dem Inhalt der Speicherzelle,
deren Adresse in der Speicherzelle adr steht, und erhöhe anschließend den PC".
- Editieren des Mikroprogramms:
80: 12 81: 12, 3, 7 82: 12, 3 83: 12, 11, 8 84: 12, 8 85: 12 86: 12, 3, 7 87: 13, 12, 3 88: 1
- Erstellen eines kleinen Test-Maschinenprogramms:
0 80003 lda (3) 1 50000 hlt 2 00000 Lücke 3 00004 Adresse der Datums 4 00027 Datum, das in den Akku geladen wird - Austesten (vorher Reset)
Aufgabe 4
Programmiere und teste analog den Befehl inc (adr)
(incIn)
mit Opcode 9
mit der Bedeutung "inkrementiere den Inhalt der Speicherzelle,
deren Adresse in der Speicherzelle adr steht, und erhöhe anschließend den PC".