Programa 8086 para restar dos números BCD de 16 bits

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 –

  1. Cargue datos desde el desplazamiento 500 para registrar AL
  2. Cargue datos del desplazamiento 502 al registro BL
  3. Resta estos dos números (contenido del registro AL y registro BL)
  4. Aplicar instrucción DAS (ajuste decimal)
  5. Almacene el resultado (contenido del registro AL) para compensar 600
  6. Cargar datos desde el desplazamiento 501 al registro AL
  7. Cargue datos del desplazamiento 503 al registro BL
  8. Reste estos dos números con préstamo (contenido del registro AL y registro BL)
  9. Aplicar instrucción DAS (ajuste decimal)
  10. Almacene el resultado (contenido del registro AL) para compensar 601
  11. Establecer registro AL a 00
  12. Agregar contenido del registro AL a sí mismo con acarreo
  13. Almacene el resultado (contenido del registro AL) para compensar 602
  14. 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 –

  1. MOV AL, [500]: cargar datos desde el desplazamiento 500 al registro AL
  2. MOV BL, [502]: cargar datos del desplazamiento 502 al registro BL
  3. SUB AL, BL: resta contenido de los registros AL Y BL
  4. DAS: ajuste decimal
  5. MOV [600], AL: almacenar datos desde el registro AL hasta el desplazamiento 600
  6. MOV AL, [501]: cargar datos del desplazamiento 501 al registro AL
  7. MOV BL, [503]: cargar datos desde el desplazamiento 503 al registro BL
  8. SBB AL, BL: resta el contenido de los registros AL Y BL con préstamo
  9. DAS: ajuste decimal
  10. MOV [601], AL: almacenar datos del registro AL al desplazamiento 601
  11. MOV AL, 00: establece el valor del registro AL en 00
  12. ADC AL, AL: agrega contenido del registro AL a AL con acarreo
  13. MOV [601], AL: almacenar datos del registro AL al desplazamiento 601
  14. 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

Deja una respuesta

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