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 –
- Primero cargue los datos en AX (acumulador) desde la memoria 3000
- Cargue los datos en el registro BX desde la memoria 3002
- Multiplicar BX con Acumulador AX
- Mover datos de AX (acumulador) a la memoria
- Mover datos de DX a AX
- Mover datos de AX (acumulador) a la memoria
- 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 –
- MOV se utiliza para cargar y almacenar datos.
- MUL se utiliza para multiplicar dos números de 16 bits.
- HLT se utiliza para detener el programa.
- AX es un acumulador que se utiliza para almacenar el resultado.
- BX, DX son registros de propósito general donde BX se usa para la multiplicación y DX se usa para el resultado.