Programa 8086 para multiplicar dos números de 16 bits

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

Ejemplo –

Algoritmo –

  1. Primero cargue los datos en AX (acumulador) desde la memoria 3000
  2. Cargue los datos en el registro BX desde la memoria 3002
  3. Multiplicar BX con Acumulador AX
  4. Mover datos de AX (acumulador) a la memoria
  5. Mover datos de DX a AX
  6. Mover datos de AX (acumulador) a la memoria
  7. Deténgase

Programa –

Memoria Mnemotécnica operandos Comentario
2000 MOVIMIENTO HACHA, [3000] [EJE] <- [3000]
2004 MOVIMIENTO BX, [3002] [BX] <- [3002]
2008 mul BX [AX] <- [AX] * [BX]
200A MOVIMIENTO [3004], HACHA [3004] <- HACHA
200E MOVIMIENTO hacha, dx [AX] <- [DX]
2010 MOVIMIENTO [3006], HACHA [3006] <- HACHA
2014 HLT Deténgase

Explicación –

  1. MOV se utiliza para cargar y almacenar datos.
  2. MUL se utiliza para multiplicar dos números de 16 bits.
  3. HLT se utiliza para detener el programa.
  4. AX es un acumulador que se utiliza para almacenar el resultado.
  5. BX, DX son registros de propósito general donde BX se usa para la multiplicación y DX se usa para el resultado.

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 *