Programa 8085 para sumar dos números de 16 bits

Problema: Escriba un programa en lenguaje ensamblador para sumar dos números de 16 bits usando: 

  1. operación de 8 bits
  2. operación de 16 bits

Ejemplo:

1. Suma de números de 16 bits usando operación de 8 bits: 

Es un método largo y requiere más memoria en comparación con la operación de 16 bits. 

Algoritmo:

  1. Cargue la parte inferior del primer número en el registro B.
  2. Cargue la parte inferior del segundo número en A (acumulador).
  3. Agregue los números y la tienda.
  4. Cargue la parte más alta del primer número en el registro B.
  5. Cargue la parte superior del segundo número en A (acumulador).
  6. Agregue ambos números con el acarreo de los bytes inferiores (si los hay) y guárdelos en la siguiente ubicación.

Programa:

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
2000 LDA 2050 ← 2050
2003 MOV B, A B ← A
2004 LDA 2052 ← 2052
2007 AÑADIR B A ← A+B
2008 STA 3050 A → 3050
200B LDA 2051 ← 2051
200E MOV B, A B ← A
200F LDA 2053 ← 2053
2012 ADC B A ← A+B+CY
2013 STA 3051 A → 3051
2016 HLT Detiene la ejecución

Explicación:

  1. LDA 2050 almacena el valor en 2050 en A (acumulador).
  2. MOV B, A almacena el valor de A en el registro B.
  3. LDA 2052 almacena el valor en 2052 en A.
  4. ADD B agrega los contenidos de B y A y los almacena en A.
  5. STA 3050 almacena el resultado en la ubicación de memoria 3050.
  6. LDA 2051 almacena el valor en 2051 en A.
  7. MOV B, A almacena el valor de A en el registro B.
  8. LDA 2053 almacena el valor en 2053 en A.
  9. El ADC B suma el contenido de B, A, y lleva desde la suma de bits inferior y lo almacena en A.
  10. STA 3051 almacena el resultado en la ubicación de memoria 3051.
  11. HLT detiene la ejecución.

2. Adición de números de 16 bits usando una operación de 16 bits: 

Es un método muy corto y también se requiere menos memoria en comparación con las operaciones de 8 bits. 

Algoritmo:

  1. Cargue los bits inferior y superior del primer número a la vez.
  2. Copie el primer número a otro par registrado.
  3. Cargue los bits inferior y superior del segundo número a la vez.
  4. Sume ambos pares de registros y almacene el resultado en una ubicación de memoria. 

Programa:

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIOS
2000 LHLD 2050 NS ← 2050
2003 XCHG \leftrightarrow    H & E  \leftrightarrow    L
2004 LHLD 2052 NS ← 2052
2007 PAPÁ D H ← H+D & L ← L+E
2008 SHLD 3050
L → 3050 & H → 3051
200B HLT Detiene la ejecución

Explicación:

  1. LHLD 2050 carga el valor de 2050 en el registro L y el de 2051 en el registro H (primer número) 
  2. XCHG copia el contenido del registro H a D y del registro L a E 
  3. LHLD 2052 carga el valor de 2052 en el registro L y el de 2053 en el registro H (segundo número) 
  4. DAD D suma el valor de H con D y L con E y almacena el resultado en H y L 
  5. SHLD 3050 almacena el resultado en la ubicación de memoria 3050 
  6. HLT detiene la ejecución 

Publicación traducida automáticamente

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