Requisito previo: programa 8086 para restar dos números BCD de 8 bits
Problema: escriba un programa en el microprocesador 8086 para averiguar la resta de dos números BCD de 16 bits, donde los números se almacenan desde el desplazamiento inicial 500 y almacenan el resultado en el desplazamiento 600.
Ejemplo –
Algoritmo –
- Cargue datos desde el desplazamiento 500 para registrar AL
- Cargue datos del desplazamiento 502 al registro BL
- Resta estos dos números (contenido del registro AL y registro BL)
- Aplicar instrucción DAS (ajuste decimal)
- Almacene el resultado (contenido del registro AL) para compensar 600
- Cargar datos desde el desplazamiento 501 al registro AL
- Cargue datos del desplazamiento 503 al registro BL
- Reste estos dos números con préstamo (contenido del registro AL y registro BL)
- Aplicar instrucción DAS (ajuste decimal)
- Almacene el resultado (contenido del registro AL) para compensar 601
- Establecer registro AL a 00
- Agregar contenido del registro AL a sí mismo con acarreo
- Almacene el resultado (contenido del registro AL) para compensar 602
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
400 | MOV AL, [500] | AL<-[500] |
404 | MOV BL, [502] | BL<-[502] |
408 | SUB AL, BL | AL<-AL-BL |
40A | DAS | ajuste decimal |
40B | MOV [600], AL | AL->[600] |
40F | MOV AL, [501] | AL<-[501] |
413 | BL MOV, [503] | BL<-[503[ |
417 | SBB AL, BL | AL<-AL-BL-prestar |
419 | DAS | ajuste decimal |
41A | MOV [601], AL | AL->[601] |
41E | MOV AL, 00 | AL<-00 |
420 | CDA AL, AL | AL<-AL+AL+pedir prestado |
422 | MOV [602], AL | A->[602] |
426 | HLT | Final |
Explicación –
- MOV AL, [500]: cargar datos desde el desplazamiento 500 al registro AL
- MOV BL, [502]: cargar datos del desplazamiento 502 al registro BL
- SUB AL, BL: resta contenido de los registros AL Y BL
- DAS: ajuste decimal
- MOV [600], AL: almacenar datos desde el registro AL hasta el desplazamiento 600
- MOV AL, [501]: cargar datos del desplazamiento 501 al registro AL
- MOV BL, [503]: cargar datos desde el desplazamiento 503 al registro BL
- SBB AL, BL: resta el contenido de los registros AL Y BL con préstamo
- DAS: ajuste decimal
- MOV [601], AL: almacenar datos del registro AL al desplazamiento 601
- 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 del registro AL al desplazamiento 601
- HL: fin
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