Programa 8085 para restar dos números de 16 bits con o sin préstamo

Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para restar dos números de 16 bits.

Suposición –

  • Dirección inicial del programa: 2000
  • Ubicación de la memoria de entrada: 2050, 2051, 2052, 2053
  • Ubicación de la memoria de salida: 2054, 2055

Ejemplo –

INPUT:
       (2050H) = 19H
       (2051H) = 6AH 
       (2052H) = 15H 
       (2053H) = 5CH

OUTPUT:
        (2054H) = 04H
        (2055H) = OEH

RESULTADO:
Por lo tanto, hemos restado dos números de 16 bits.

Algoritmo –

  1. Obtenga el LSB en el registro L y el MSB en el registro H del número de 16 bits.
  2. Intercambiar el contenido del registro HL con el registro DE.
  3. De nuevo, obtenga el LSB en el registro L y el MSB en el registro H del número de 16 bits.
  4. Reste el contenido del registro L del contenido del registro E.
  5. Reste el contenido del registro H del contenido del registro D y tome prestado del paso anterior.
  6. Almacene el resultado en la ubicación de la memoria.

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
2000 LHLD 2050 Cargar par HL con dirección 2050
2003 XCHG INTERCAMBIO HL PAR POR DE PAR
2004 LHLD 2052 Cargar par HL con dirección 2052
2007 MVI C, 00 C<-00H
2009 MOV A, E A<-E
200A SUBL A<-AL
200B ESTADO 2054 2054<-A
200E MOV A, D A<-D
200F SBBH RESTA CON PRÉSTAMO
2010 STA 2055 2055<-A
2013 HLT TERMINA EL PROGRAMA

Explicación –

  1. LHLD 2050: cargar par HL con dirección 2050.
  2. XCHG: intercambia el contenido del par HL con DE.
  3. LHLD 2052: cargar par HL con dirección 2050.
  4. MOV A, E: mueve el contenido del registro E a A.
  5. SUB L: restar el contenido de A con el contenido del registro L.
  6. STA 2054: almacena el resultado del acumulador en la dirección de memoria 2054.
  7. MOV A, D: mueve el contenido del registro D al A.
  8. SBB H: resta el contenido de A con el contenido del registro H con préstamo.
  9. STA 2055: almacena el resultado del acumulador en la dirección de memoria 2055.
  10. HLT: deja de ejecutar el programa y detiene cualquier ejecución posterior.

Publicación traducida automáticamente

Artículo escrito por Akashkumar17 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 *