Me estoy preparando para una prueba y actualmente me quedé con la siguiente pregunta.
Tenemos un microprocesador 6502. Para la ejecución de un salto absoluto, la dirección de salto con el byte alto de dirección (ADH) y el byte bajo de dirección (ADL) se cargan en el contador de programa (PCH, PCL). La pregunta ahora es, ¿por qué no se pueden cargar ambos bytes de dirección en la PC, sino que la ADL debe almacenarse primero en el búfer de datos?
La instrucción de salto 6502 tiene una longitud de tres bytes:
JMP ADRL ADRH
No es posible cargar ambos bytes de la PC al mismo tiempo, ya que el 6502 es una CPU de 8 bits y solo puede obtener un byte a la vez.
Por tanto, se ejecuta en tres ciclos, uno por cada byte. Una vez que se ha decodificado la instrucción, la CPU sabe que es una instrucción JMP. El byte bajo de la dirección de destino (ADRL) se obtiene y luego se retiene hasta el comienzo del ciclo 3 , de modo que el valor de PC original (actualizado) se puede usar para obtener el byte alto de la dirección (ADRH) en el ciclo 3.
Al comienzo del ciclo 3, se inicia una nueva búsqueda de memoria con la PC original para obtener el byte alto de la nueva dirección. Al mismo tiempo, el valor retenido que comprende ADRL se usa para actualizar el byte bajo de la PC.
Al final del ciclo 3, el valor obtenido (ADRH) se usa para actualizar la dirección alta de la PC. Esto completa la instrucción de salto, ya que la siguiente instrucción se obtendrá desde la nueva ubicación de la PC.
usuario_1818839
Lorenzo Donati apoya a Ucrania
Lorenzo Donati apoya a Ucrania
Sincrondino
Lorenzo Donati apoya a Ucrania