Programa 8086 para sumar dos números de 16 bits con o sin carry

Problema: escriba un programa para sumar dos números de 16 bits donde la dirección inicial sea 2000 y los números estén en las direcciones de memoria 3000 y 3002 y almacene el resultado en las direcciones de memoria 3004 y 3006 .

Ejemplo –

Algoritmo –

  1. Cargue 0000H en el registro CX (para llevar)
  2. Cargue los datos en AX (acumulador) desde la memoria 3000
  3. Cargue los datos en el registro BX desde la memoria 3002
  4. Añadir BX con Acumulador AX
  5. Salta si no lleva
  6. Incrementar CX en 1
  7. Mover datos de AX (acumulador) a la memoria 3004
  8. Mover datos del registro CX a la memoria 3006
  9. Deténgase

Programa –

Memoria Mnemotécnica operandos Comentario
2000 MOVIMIENTO CX, 0000 [CX] <- 0000
2003 MOVIMIENTO HACHA, [3000] [EJE] <- [3000]
2007 MOVIMIENTO BX, [3002] [BX] <- [3002]
200B AGREGAR HACHA, BX [AX] <- [AX] + [BX]
200D JNC 2010 Salta si no lleva
200F CÍA CX [CX] <- [CX] + 1
2010 MOVIMIENTO [3004], HACHA [3004] <- [EJE]
2014 MOVIMIENTO [3006], CX [3006] <- [CX]
2018 HLT Deténgase

Explicación –

  1. MOV se utiliza para cargar y almacenar datos.
  2. ADD se usa para sumar dos números donde su único número está en acumulador o no.
  3. JNC es un comando de 2 bits que se usa para verificar si el acarreo se genera desde el acumulador o no.
  4. INC se utiliza para incrementar un registro en 1.
  5. HLT se utiliza para detener el programa.
  6. AX es un acumulador que se utiliza para cargar y almacenar los datos.
  7. BX, CX son registros de propósito general donde BX se usa para almacenar el segundo número y CX se usa para almacenar el acarreo.

Publicación traducida automáticamente

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