Por qué la instrucción SHLD tarda 5 ciclos de máquina en el 8085

Desglose de la instrucción SHLD

SHLD addr almacena el par de registros HL (16 bits) en memoria en las direcciones addr y addr+1. Requiere 5 ciclos de máquina:

  1. Obtención de opcode (4T): Leer el opcode SHLD desde memoria.
  2. Obtención de dirección de bajo orden (3T): Leer el byte bajo de la dirección de 16 bits.
  3. Obtención de dirección de alto orden (3T): Leer el byte alto de la dirección.
  4. Escritura en memoria bajo (3T): Escribir el registro L en la dirección de memoria.
  5. Escritura en memoria alto (3T): Escribir el registro H en la dirección de memoria+1.

¿Por qué no 4 como XCHG?

XCHG intercambia HL y DE internamente — sin acceso a memoria más allá de la obtención del opcode. SHLD escribe dos bytes en memoria, añadiendo dos ciclos de escritura en memoria (4+3+3+3+3 = 16 T-estados totales).

Punto clave

Cada lectura/escritura de memoria = 1 ciclo de máquina (3 T-estados). Las operaciones de memoria de 16 bits necesitan dos bytes de dirección + dos bytes de datos = 4 ciclos de memoria + 1 obtención de opcode = 5 ciclos de máquina.