`` `Assembléia
.Model pequeno
.Stack 100H
.dados
num1 dB -12; Primeiro número assinado de 8 bits
Num2 dB 5; Segundo número a multiplicar por
resultado dw?; Resultado de multiplicação (16 bits)
.código
PROC
mov ax, @data; Inicializar o registro do segmento de dados
mov ds, machado
mov al, num1; Carregue o primeiro número no registro al
mov bl, num2; Carregue o segundo número no BL Register
imul bl; Multiplique Al por BL (resultado em AX)
resultado mov, machado; Armazene o resultado na variável 'resultado'
; Exibir o resultado (opcional)
; ...
mov ah, 4ch; Programa de saída
int 21h
ENDP PRINCIPAL
final principal
`` `
Explicação: 1.
Inicialização: - `.model small` define o modelo de memória (modelo pequeno) e configura a estrutura do programa.
- `.Stack 100H` reserva 100h bytes para a pilha.
- A seção .Data` declara variáveis:`num1`,` num2` e `resultado`.
2.
Carregando os números: - `mov al, num1` carrega o primeiro número no registro` al`, que é usado para operações de 8 bits.
- `mov bl, num2` carrega o segundo número no registro` bl`.
3.
multiplicação: - `Imul Bl` executa a multiplicação assinada de` al 'por `bl`. O resultado será armazenado no registro `ax` (16 bits).
4.
armazenando o resultado: - `MOV Result, ax` armazena o resultado de 16 bits da` ax` na variável `resultado`.
5.
Exibição opcional: - Você pode adicionar código para exibir o resultado usando `int 21h` com os códigos de função apropriados. Esse snippet de código se concentra na própria multiplicação.
6.
saindo do programa: - `MOV AH, 4CH` Define o` AH` Registre -se no código de função do DOS para sair do programa.
- `int 21h` chama a interrupção do DOS para executar a função de saída.
Notas importantes: -Este programa usa multiplicação assinada de 8 bits, o que significa que o resultado pode ser um valor assinado de 16 bits. A instrução `imul` lida com a extensão de sinal automaticamente.
- A variável `resultado` é declarada como uma palavra (` dw`) para manter o resultado de 16 bits.
- Você pode modificar `num1` e` num2` para alterar os números que deseja multiplicar.
- O código de montagem precisará ser montado usando um assembler como MASM ou TASM e, em seguida, vinculado para criar um arquivo executável.