Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para restar dos números BCD de 8 bits.
Ejemplo –
Algoritmo –
- Cargue los datos de la dirección 2051 en A
- Mover los datos de A a C
- Mueve los datos 99 en A
- Restar el contenido de los registros A y C
- Incrementa el contenido de A en 1
- Mover los datos de A a B
- Cargue los datos de la dirección 2050 en A
- Agregue los contenidos de A y C y ajústelos en formato BCD usando la instrucción DAA
- Almacene el resultado en la dirección de memoria 3050
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
2000 | LDA 2051 | A <- 2051 | |||||||||
2003 | MOV C, A | C <- A | |||||||||
2004 | MVI A 99 | A <- 99 | |||||||||
2006 | SUB C | A = A – C | 2007 | USD A | UN = UN + 1 | ||||||
2008 | MOV B, A | B <- A | |||||||||
2009 | LDA 2050 | A <- 2050 | |||||||||
200C | AÑADIR B | A = A + B | 200D | DAA | Convierte el valor hexadecimal a valor BCD | 200E | STA 3050 | 3050 <- A | 2011 | HLT | Deténgase |
Explicación –
- LDA 2051 se utiliza para cargar los datos de la dirección 2051 en A.
- MOV C, A se utiliza para mover los datos de A a C.
- MVI A 99 se utiliza para mover los datos al registro A.
- SUB C se utiliza para restar el contenido de los registros A y C.
- INR A se utiliza para incrementar el contenido de A en 1.
- MOV B, A se utiliza para mover los datos de A a B.
- LDA 2050 se utiliza para cargar los datos de la dirección 2050 en A.
- ADD B se utiliza para sumar el contenido de los registros A y B.
- DAA se utiliza para convertir el valor hexadecimal en acumulador a valor BCD.
- STA 3050 se utiliza para almacenar el contenido de A a 3050.
- HLT se utiliza para finalizar el programa.
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA