Der CALL
Befehl erfordert 5 Maschinenzyklen, nämlich OPCODE-FETCH, MEMORY READ, MEMORY READ, MEMORY WRITE, MEMORY WRITE
. Der OPCODE-FETCH-Zyklus von CALL hat 6 T-Zustände, um sich um die Dekremente des Stapelzeigers zu kümmern .
RET
Befehl erfordert 3 Maschinenzyklen , OPCODE-FETCH, MEMORY READ, MEMORY READ
, auch hier muss der Mikroprozessor den Stapelzeiger wie zuvor zweimal inkrementieren , um zu platzen. Aber der OPCODE-FETCH-Zyklus hat nur 4 T-Zustände, warum ist das so?
Ich habe eine vage Ahnung, warum; in CALL
und PUSH
der SP muss im Gegensatz zu RET
oder zuerst dekrementiert werden POP
. Dieses erste Dekrement allein wird in den letzten zwei T-Zuständen des Zyklus berücksichtigt FETCH
. Aber warum sollte das zwei T-States erfordern? Auch hier bin ich mir wirklich nicht sicher. Freundlich helfen.
Es wäre aufschlussreich, CALL
den Unterricht noch einmal zu analysieren, bevor man über RET
den Unterricht spricht.
ANWEISUNG IN 8085 ANRUFEN
Wie Sie sagten, besteht es aus: Opcode Fetch
, Memory Read
, Memory Read
, Memory Write
,Memory Write
8085 folgt der Dekrement- und Push- Methodik beim Pushen zum Stapeln.
Opcode Fetch
in 8085 sind typischerweise 4 T-Zustände. Für CALL
den Unterricht sind jedoch 2 zusätzliche T-Zustände erforderlich. Dies liegt daran, dass - nach dem Holen und Decodieren der Stack-Zeiger vor dem ersten Memory Write
Zyklus dekrementiert werden muss, der das MSB des aktuellen PCs im Stack speichert.
Während des ersten Memory Write
wird der Wert gepusht und der Stapelzeiger vom Prozessor erneut dekrementiert. Dies erfolgt parallel, sodass der nächste Memory Write
Zyklus sofort beginnen kann, ohne dass zusätzliche T-Zustände verloren gehen. Im zweiten Memory Write
wird das LSB von PC auf den Stapel geschoben, aber der Stapelzeiger muss nicht dekrementiert werden, da keine weiteren Schreibvorgänge kommen.
Memory Read
Zyklus ist, wo die Verzweigungsadresse in WZ-internen Registern gespeichert wird.
Jeder Memory Write
hat 3 T-Zustände und jeder Memory Read
hat auch 3 T-Zustände.
Also T-Zustände insgesamt = 4 + 2 + 3 + 3 + 3 + 3 = 18
RET-ANWEISUNG IN 8085
Es besteht aus: Opcode Fetch
, Memory Read
,Memory Read
Auch hier Opcode Fetch
sind 4 T-Zustände. 8085 folgt jedoch der Pop- und Inkrement- Methodik, während es vom Stack springt. Der Stapelzeiger zeigt bereits auf das LSB der Rücksprungadresse, sodass der Zeiger nicht vorher erhöht werden muss.
Während des ersten Memory Read
wird der Wert, auf den gezeigt wird, gelesen, und der Stapelzeiger wird ebenfalls parallel vom Prozessor inkrementiert. Beim nächsten Memory Read
wird das MSB der Rücksprungadresse gelesen und der Stackpointer parallel wieder inkrementiert.
Also insgesamt T Zustände = 4 + 3 + 3 = 10
Also in werden im Gegensatz zu in RET
keine zusätzlichen T-Zustände benötigt .Opcode Fetch
CALL
Aravindh Vasu
Mitu Raj
jonk