Problema: escriba un programa en el microprocesador 8086 para averiguar la suma de dos números BCD de 8 bits, donde los números se almacenan desde la dirección de memoria inicial 2000: 500 y almacenan el resultado en la dirección de memoria 2000: 600 y se llevan a 2000: 601.
Ejemplo –
Algoritmo –
- Cargue datos desde el desplazamiento 500 para registrar AL (primer número)
- Cargue datos del desplazamiento 501 al registro BL (segundo número)
- Sume estos dos números (contenido del registro AL y registro BL)
- Aplicar instrucción DAA (ajuste decimal)
- Almacene el resultado (contenido del registro AL) para compensar 600
- Establecer registro AL a 00
- Agregar contenido del registro AL a sí mismo con acarreo
- Almacene el resultado (contenido del registro AL) para compensar 601
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
400 | MOV AL, [500] | AL<-[500] |
404 | BL MOV, [501] | BL<-[501] |
408 | AÑADIR AL, BL | AL<-AL+BL |
40A | DAA | AJUSTE DECIMAL AL |
40B | MOV [600], AL | AL->[600] |
40F | MOV AL, 00 | AL<-00 |
411 | CDA AL, AL | AL<-AL+AL+cy(anterior) |
413 | MOV [601], AL | AL->[601] |
417 | HLT | FINAL |
Explicación –
- MOV AL, [500] : cargar datos desde el desplazamiento 500 al registro AL
- MOV BL, [501] : cargar datos desde el desplazamiento 501 al registro BL
- ADD AL, BL : ADD contenido de registros AL AND BL
- DAA : ajuste decimal AL
- MOV [600], AL : almacenar datos desde el registro AL hasta el desplazamiento 600
- MOV AL, 00 : establece el valor del registro AL en 00
- ADC AL, AL : agrega contenido del registro AL a AL con acarreo
- MOV [601], AL : almacenar datos desde el registro AL hasta el desplazamiento 601
- HLT : detener
Publicación traducida automáticamente
Artículo escrito por Amber_Saxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA