.modelo pequeño
.
.datos
num1 db -12; Primer número firmado de 8 bits
num2 db 5; Segundo número para multiplicar por
Resultado DW?; Resultado de la multiplicación (16 bits)
.código
proceso principal
mov ax, @data; Inicializar el registro del segmento de datos
mov ds, hacha
mov al, num1; Cargue el primer número en AL Registro
MoV BL, num2; Cargue el segundo número en el registro BL
imul bl; Multiplicar Al por BL (resultado en Ax)
resultado de mov, hacha; Almacene el resultado en la variable 'Resultado'
; Muestra el resultado (opcional)
; ...
mov ah, 4ch; Programa de salida
int 21h
Endp principal
final
`` `` ``
Explicación:
1. Inicialización:
- `.Model Small` Define el modelo de memoria (modelo pequeño) y establece la estructura del programa.
- `. STACK 100H` Reserva 100H bytes para la pila.
- La sección `.Data` declara variables:` num1`, `num2` y` resultado '.
2. Cargando los números:
- `MOV AL, NUM1` Cargue el primer número en el registro` al`, que se utiliza para operaciones de 8 bits.
- `Mov BL, Num2` carga el segundo número en el registro` BL`.
3. Multiplicación:
- `imul bl` realiza la multiplicación firmada de` al` por `bl`. El resultado se almacenará en el registro `Ax` (16 bits).
4. Almacenando el resultado:
- `MOV Result, Ax` almacena el resultado de 16 bits de` Ax` en la variable `resultado`.
5. Pantalla opcional:
- Puede agregar código para mostrar el resultado usando `int 21h` con los códigos de función apropiados. Este fragmento de código se centra en la multiplicación en sí.
6. Salir del programa:
- `MOV AH, 4CH` Establece el registro` AH` en el código de función DOS para salir del programa.
- `int 21h` llama a la interrupción de DOS para ejecutar la función de salida.
Notas importantes:
-Este programa utiliza una multiplicación firmada de 8 bits, lo que significa que el resultado podría ser un valor firmado de 16 bits. La instrucción `imul` maneja la extensión de signo automáticamente.
- La variable `Result` se declara como una palabra (` DW`) para contener el resultado de 16 bits.
- Puede modificar `num1` y` num2` para cambiar los números que desea multiplicar.
- El código de ensamblaje deberá ensamblarse utilizando un ensamblador como MASM o TASM y luego vinculado para crear un archivo ejecutable.