Permítanme escribir los pasos de ADD B, como lo he entendido hasta ahora.
T0:
T1:
T2 y T3:
Pude ver que el OPCODE de diferentes instrucciones se divide de manera diferente, por ejemplo, para ADD B, los primeros 5 bits corresponden a ADD y los siguientes tres bits corresponden al registro deseado, pero para una instrucción como MOV B,C los primeros dos bits corresponde al MOV y los 6 siguientes corresponden a los registros. ¿Cómo se leen correctamente los OPCODES? Porque, si fuera constante que los primeros 5 bits siempre corresponden a la instrucción, entonces se puede entender fácilmente, pero no es así.
Finalmente, ¿alguien puede enumerar los pasos en términos de estados de tiempo para la instrucción ADD B?
Program Counter se incrementa en algún lugar a lo largo del camino, pero no sé dónde está sucediendo eso.
En la computadora de 8 bits de Ben Eater , hay un estado T separado para el incremento de PC, pero supongo que 8085 es mucho más avanzado.
Es tarde aquí y solo puedo ayudar un poco. Pero "ADD B" es una instrucción de tipo T4, como probablemente sepa. También han pasado muchos años desde que hice algo con el 8085A y pido disculpas por adelantado por cualquier error. Pero aquí va lo referente a los cuatro estados T del "ADD B". (Solo estoy mirando la hoja de datos en este momento para refrescar algo de mi memoria). Tenga en cuenta que cada estado T que se muestra a continuación tendrá un 0 o un 1 para indicar el borde descendente o ascendente del reloj. (Un estado T comienza con el flanco descendente):
T1-0: ; ; ; ; ; ; Pestillo a (que aparece en ); Conducir activamente .
T1-1:
T2-0: Iniciar incremento de PC; ; Flotar ( ) para permitir el acceso a circuitos externos
T2-1: Continúe con el incremento de PC (los circuitos externos pueden comenzar a proporcionar datos sobre )
T3-0: byte de instrucción que se estabiliza en
T3-1: Pestillo de y habilitar salida en bus interno
T4-0: Bus de direcciones inactivo; Pestillo de y empezar a decodificar
T4-1: Bus de dirección inactivo; Decida si se requieren dos estados más para la instrucción.
Esos son los detalles oficiales y solo describen el ciclo del autobús desde una vista externa.
Internamente, las cosas son diferentes. La instrucción ADD B necesitaría configurar el valor del código de operación de ALU y requeriría direccionar el archivo de registro para leer el registro B en el bus interno y luego en el registro temporal de ALU (su otro registro es el acumulador). Ese valor de registro temporal sería luego estar presente en una de las entradas de ALU y, en algún momento, la salida de ALU ahora presente en el bus temporal sería estable el tiempo suficiente para iniciar el proceso de reescritura en el pestillo del acumulador. Todo esto antes de que el byte de la siguiente instrucción necesite usar el bus interno para transferir el valor del latch MDR al latch IR.
Pero la esencia de T2 y T3 es permitir que el sistema de memoria externa responda a la solicitud de un byte de instrucción y obtenga ese valor de byte en el 8085A. T4 es para decodificar y determinar si la instrucción requiere más estados (o no). Sin embargo, tenga en cuenta que T1 y quizás T2 del siguiente ciclo de instrucción también podrían usarse para completar la instrucción anterior después de la decodificación (si no requiere cualquier operación de bus añadida, como lectura/escritura).
bruce abbott
Aravindh Vasu