Lassen Sie mich die Schritte von ADD B so schreiben, wie ich sie bisher verstanden habe.
T0:
T1:
T2 und T3:
Ich konnte sehen, dass der OPCODE verschiedener Befehle unterschiedlich aufgeteilt ist, zum Beispiel für ADD B entsprechen die ersten 5 Bits ADD und die nächsten drei Bits dem gewünschten Register, aber für einen Befehl wie MOV B, C die ersten beiden Bits entspricht dem MOV und die nächsten 6 entsprechen den Registern. Wie werden OPCODES eigentlich richtig gelesen? Denn wenn es konstant wäre, dass die ersten 5 Bits immer der Anweisung entsprechen, dann ist es leicht zu verstehen, aber das ist nicht der Fall.
Kann zum Schluss noch jemand die Schritte in Bezug auf Zeitzustände für die Anweisung ADD B auflisten.
Der Programmzähler wird irgendwo auf dem Weg erhöht, aber ich weiß nicht, wo das passiert.
Im 8-Bit-Computer von Ben Eater gibt es einen separaten T-Zustand für die PC-Inkrementierung, aber 8085 ist weitaus fortschrittlicher, nehme ich an.
es ist spät hier und ich darf nur ein bisschen helfen. Aber "ADD B" ist eine Anweisung vom Typ T4, wie Sie wahrscheinlich wissen. Es ist auch viele Jahre her, seit ich irgendetwas mit dem 8085A gemacht habe, und ich entschuldige mich im Voraus für etwaige Fehler. Aber hier geht es um die vier T- Zustände des "ADD B". (Ich schaue mir gerade das Datenblatt an, um etwas von meinem Gedächtnis aufzufrischen.) Beachten Sie, dass jeder unten gezeigte T- Zustand entweder eine 0 oder 1 hat, um die fallende Flanke oder die steigende Flanke der Uhr anzuzeigen. (Ein T- Zustand beginnt mit der fallenden Flanke.):
T1-0: ; ; ; ; ; ; Verriegeln Zu (was auf erscheint ); Aktiv fahren .
T1-1:
T2-0: PC-Inkrement starten; ; Schweben ( ), um den Zugriff auf externe Schaltkreise zu ermöglichen
T2-1: Setzen Sie das PC-Inkrement fort (externe Schaltkreise können beginnen, Daten bereitzustellen )
T3-0: Stabilisierung des Befehlsbytes an
T3-1: Verriegelung aus und ermöglichen Ausgang auf internen Bus
T4-0: Adressbus im Leerlauf; Verriegeln aus und starten Sie die Dekodierung von
T4-1: Adressbus im Leerlauf; Entscheiden Sie, ob zwei weitere Zustände für die Anweisung erforderlich sind.
Das sind die offiziellen Angaben und beschreiben den Buszyklus nur aus der Außensicht.
Intern sieht es anders aus. Der ADD B-Befehl müsste den ALU-Opcode-Wert einrichten und die Registerdatei adressieren, um das B-Register auf den internen Bus und dann in das Temp-Register der ALU zu lesen (das andere Register ist der Akkumulator). Dieser Temp-Registerwert würde dann an einem der ALU-Eingänge vorhanden sein, und irgendwann würde der jetzt auf dem temporären Bus vorhandene ALU-Ausgang lange genug stabil sein, um den Rückschreibvorgang in den Akkumulator-Latch zu starten. All dies, bevor das Byte des nächsten Befehls den internen Bus verwenden müsste, um den MDR-Zwischenspeicherwert in den IR-Zwischenspeicher zu übertragen.
Aber die Essenz von T2 und T3 besteht darin, dem externen Speichersystem zu ermöglichen, auf die Anforderung nach einem Befehlsbyte zu antworten und diesen Bytewert in den 8085A zu bekommen. T4 dient zum Decodieren und Bestimmen, ob der Befehl mehr Zustände erfordert (oder nicht). Beachten Sie jedoch, dass T1 und möglicherweise T2 des folgenden Befehlszyklus auch verwendet werden können, um den vorherigen Befehl nach dem Decodieren abzuschließen (falls dies nicht erforderlich ist). alle hinzugefügten Busoperationen, wie z. B. Lesen/Schreiben.)
Bruce Abbott
Aravindh Vasu