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 –
- Tome una cuenta igual a 4
- Almacene la dirección inicial de ambos bloques en 2 pares de registros diferentes
- Ahora intercambie los contenidos en las direcciones en ambos pares de registros
- Incrementa los valores de ambos pares de registros
- Los decrementos cuentan por 1
- 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 –
- 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 - MVI C 04 – Asigna datos inmediatos, ej.- aquí C=04
MVI A 45 – asigna A(acumulador) con 45, A=45 - 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
- LDAX D: aquí el acumulador se carga con los datos almacenados en la dirección formada por el par de registros D – E
- 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. - STAX D – Almacena el contenido de A (acumulador) en la dirección formada por el par de registros D – E.
- INX H – Incrementa el contenido del par de registros H – L
- INX H – Incrementa el contenido del par de registros D – E
- DCR C – Decrementa el contenido del registro C
- JNZ 2508: si el valor del registro C no es igual a 0, salte a la dirección 2508
- 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