HSG |
|
Ein Computer durchläuft endlos den Fundamentalzyklus (von-Neumann-Zyklus):
"Befehl holen" bedeutet, dass der Inhalt der Speicherzelle, auf die der PC deutet, in das Befehlsregister (engl. instruction register IR) transportiert wird.
"Befehl decodieren" heißt im Rechnermodell, aus dem Opcode des Befehls die richtige Einsprungstelle für den Mikrocode des Befehls zu berechnen. Im BONSAI-Programm ist das so gelöst, dass beispielsweise die Mikrobefehle des Befehls 3 ab Speicherstelle 30 im Mikroprogramm stehen, die des Befehls 4 ab 40 und so weiter.
Da der Mikroprogrammzähler MPC immer auf das nächste Steuerwort (Mikrobefehl) zeigt, muss zur Realisierung des Sprungs nur der Opcode des Befehls als Zehnerstelle genommen werden und die Einerstelle auf Null gesetzt werden.
Es darf nach der der Abarbeitung eines Befehls nicht vergessen werden, den Mikroprogrammzähler MPC auf Null zu setzen. So leitet dann das Steuerwerk einen neuen Befehl-Hole-Zyklus (engl. fetch-cycle) ein.
Beim Ansprechen des Speichers muss darauf geachtet werden, dass eine gültige Adresse anliegt. Das wird sicher erreicht, wenn man die Adresse einen Takt vor dem Ansprechen des Speichers anlegt.
10 | 3, 10, 11 | 0, 2 | 12 | 3 , 12 | 3 , 12 , 14 | 13 | 0 , 1 | | | | Befehl holen Befehl decodieren Befehl ausführen Rücksprung
Programmierung des Befehls 6 , lda adr , "lade den Akku mit dem Inhalt der Speicherzelle adr und erhöhe anschließend den PC":
0 | 60003 | lda 3 |
1 | 50000 | hlt |
2 | 00000 | Lücke |
3 | 00027 | Datum, das in den Akku geladen wird |
Programmieren und testen Sie analog den Befehls 7 , sta adr , "speichere den Akkuinhalt in der Speicherzelle adr und erhöhe anschließend den PC":
Programmierung des Befehls 8, lda (adr) , "lade den Akku mit dem Inhalt der Speicherzelle, deren Adresse in der Speicherzelle adr steht, und erhöhe anschließend den PC "
80: | 12 |
81: | 12, 3, 7 |
82: | 8, 11 |
83: | 12, 13 |
84: | 12, 7, 3 |
85 | 1, 0 |
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 |
Programmieren und testen Sie analog den Befehls 9 , INC (adr) , "inkrementiere den Inhalt der Speicherzelle, deren Adresse in der Speicherzelle adr steht, und erhöhe anschließend den PC".