8085 programa para intercambiar un bloque de bytes en memoria

Problema: escriba un programa de nivel ensamblador en el microprocesador 8085 para intercambiar un bloque de 4 bytes a partir de la dirección 2001 con datos a partir de la dirección 3001.

Algoritmo –

  1. Tome una cuenta igual a 4
  2. Almacene la dirección inicial de ambos bloques en 2 pares de registros diferentes
  3. Ahora intercambie los contenidos en las direcciones en ambos pares de registros
  4. Incrementa los valores de ambos pares de registros
  5. Los decrementos cuentan por 1
  6. Si el conteo no es igual a 0, repita los pasos 3 a 5

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
2500 LXI D 2001 re <= 20, mi <= 01
2503 LXI H 3001 H <= 20, L <= 01
2506 MVI C 04 C <= 04
2508 MOV B, M B <= M[ HL ]
2509 LDAX D A <= M[ DE ]
250A MOV M, A M[ NS ] <= A
250B MOV A, B A <= B
250C ESTAX D M[ DE ] <= A
250D INXH [ HL ] <= [ HL ] + 1
250E INXD [ DE ] <= [ DE ] + 1
250F DCR C C <= C – 1
2510 JNZ 2508 SALTAR A 2508 SI C NO ES 0
2513 HLT DETENER EL PROGRAMA

Explicación –

  1. LXI D 2001 – Carga el par de registros, es decir, en este caso, D=20 y E=01
    LXI H 3001 – H=30 y L=01
  2. MVI C 04 – Asigna datos inmediatos, ej.- aquí C=04
    MVI A 45 – asigna A(acumulador) con 45, A=45
  3. MOV B, M – Aquí M son los datos en el par de registros H – L y sirve como una dirección. Copia el contenido en la dirección almacenada en M para registrar B
  4. LDAX D: aquí el acumulador se carga con los datos almacenados en la dirección formada por el par de registros D – E
  5. MOV M, A: aquí el contenido de A se copia en la dirección que está almacenada en M.
    MOV A, B: copia el contenido del registro B en A.
  6. STAX D – Almacena el contenido de A (acumulador) en la dirección formada por el par de registros D – E.
  7. INX H – Incrementa el contenido del par de registros H – L
  8. INX H – Incrementa el contenido del par de registros D – E
  9. DCR C – Decrementa el contenido del registro C
  10. JNZ 2508: si el valor del registro C no es igual a 0, salte a la dirección 2508
  11. HLT – Detener la ejecución del programa

Publicación traducida automáticamente

Artículo escrito por RishabhMalik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *