La CALL
instrucción requiere 5 ciclos de máquina, a saber, OPCODE-FETCH, MEMORY READ, MEMORY READ, MEMORY WRITE, MEMORY WRITE
. El ciclo OPCODE-FETCH de CALL tiene 6 estados T para encargarse de las disminuciones del puntero de pila .
RET
La instrucción requiere 3 ciclos de máquina , OPCODE-FETCH, MEMORY READ, MEMORY READ
incluso aquí, el microprocesador tiene que incrementar el puntero de pila dos veces, como antes , para hacer estallar. Pero, el ciclo OPCODE-FETCH solo tiene 4 estados T, ¿por qué?
Tengo una vaga idea de por qué; en CALL
y PUSH
el SP tiene que ser decrementado primero, a diferencia de RET
o POP
. Solo este primer decremento se tiene en cuenta en los dos últimos estados T del FETCH
ciclo. Pero, ¿por qué eso requeriría dos estados T? Una vez más, no estoy muy seguro de esto. Amablemente ayuda
Sería interesante analizar CALL
la instrucción una vez más antes de hablar de RET
instrucción.
LLAME INSTRUCCIONES AL 8085
Como dijiste, consta de: Opcode Fetch
, Memory Read
, Memory Read
, Memory Write
,Memory Write
8085 sigue la metodología de decremento y empuje mientras empuja para apilar.
Opcode Fetch
en 8085 es típicamente 4 estados T. Sin embargo, para CALL
la instrucción, se necesitan 2 estados T adicionales. Es porque: después de obtener y decodificar, el puntero de la pila debe disminuirse antes del primer Memory Write
ciclo que almacenará el MSB de la PC actual en la pila.
Durante el primero Memory Write
, el valor es empujado y el puntero de la pila es decrementado nuevamente por el procesador. Esto se hace en paralelo, para que el próximo Memory Write
ciclo pueda comenzar inmediatamente sin perder estados T adicionales. En el segundo Memory Write
, el LSB de la PC se empuja a la pila, pero el puntero de la pila no necesita disminuirse ya que no hay más escrituras por venir.
Memory Read
El ciclo es donde la dirección de bifurcación se almacena en los registros internos de WZ.
Cada uno Memory Write
tiene 3 estados T y cada uno Memory Read
tiene 3 estados T también.
Así que el total de estados T = 4 + 2 + 3 + 3 + 3 + 3 = 18
INSTRUCCIÓN RET EN 8085
Se compone de: Opcode Fetch
, Memory Read
,Memory Read
De nuevo, Opcode Fetch
son 4 estados T. Sin embargo, 8085 sigue la metodología de extracción e incremento mientras extrae de la pila. El puntero de la pila ya apunta al LSB de la dirección de retorno, por lo que no es necesario incrementar el puntero de antemano.
Durante el primero Memory Read
, se lee el valor apuntado y el procesador también incrementa el puntero de la pila en paralelo. Durante el siguiente Memory Read
, se lee el MSB de la dirección de retorno y el puntero de la pila se incrementa de nuevo en paralelo.
Así que el total de estados T = 4 + 3 + 3 = 10
Así que en RET
, no se necesitan estados T adicionales después de Opcode Fetch
a diferencia de en CALL
.
Aravindh Vasu
mitu raj
broma