Erkundung Befehlsregister

Befehle als Daten

Um Befehle im Speicher als Daten ablegen zu können, müssen sie vorher in geeigneter Form codiert werden.
Da jedes Bonsai-Register nur eine natürliche Zahl als Wert annehmen kann, müssen auch die Befehle als natürliche Zahlen codiert werden. Dabei gilt ebenso wie beim Murmelrechner:

Diese Zahlen bilden den Operationscode (kurz OP-Code).
Zusätzlich wird der Adressteil benötigt. Die Adresse wird als 4-stellige Zahl an den OP-Code angehängt. Dadurch wird der OP-Code zur Zehntausenderziffer.
Ein Befehl wie z. B. inc 7 wird also durch die natürliche Zahl 10007 dargestellt.

Beispiel für ein ganzes Programm (das, das zur Zeit im Datenspeicher abgelegt ist): ProgrammAssemblerMaschinensprache

Decodierung von Befehlen

Zur Verarbeitung müssen alle Befehle zuerst wieder decodiert werden, d. h. ein Maschinenbefehl wie z.B. 40008 muss in die beiden Bestandteile Op-Code (hier: 4) und Adressteil (hier: 8) zerlegt werden. Dies erfolgt im Befehlsregister (kurz "IR" für "instruction register").

Im CPU-Fenster siehst du oben rechts das Befehlsregister IR zusammen mit zwei Filterbausteinen Filterbaustein.

Aufgabe 1

Im Befehlsregister steht aktuell der Maschinenbefehl 40008. Öffne das Tor vom Befehlsregister zum Adressbus (roter Pfeil). Achte darauf, dass der PC nicht gleichzeitig auf den Adressbus schreibt. Beobachte die Zerlegung des Maschinenbefehls. Klicke auch einmal auf die Filterbausteine. Es werden die Rechenoperationen zum Filtern angezeigt. Du kannst diese Rechenoperationen sogar abändern (auch wenn das zunächst einmal hier wenig Sinn macht). Probiere das aus.

Aufgabe 2

Schließe nun wieder das Schreibtor des Befehlsregisters, um den ersten Befehl aus dem Datenspeicher zu laden.

Überlege bei jedem Schritt, welche zuvor geöffneten Tore du zuerst wieder schließen musst. Denke dabei auch immer an die richtige Reihenfolge. Zur Erinnerung: Lesetore müssen vor Schreibtoren geschlossen werden, damit ein Register seinen neuen Wert nicht verliert.

X

Fehler melden

X

Suche