>> Tecnologia eletrônica >  >> Telefones >> Atendedores

Escreva um programa para multiplicar dois números assinados de 8 bits usando o microprocessador 8085?

Programa Assembly 8085 para multiplicar dois números assinados de 8 bits

```
OR 100H

LXIH, 2000H; Inicialize o par HL para armazenar o produto
MOV A, M; Carregue o primeiro número no acumulador
SBB B; Subtraia o segundo número do acumulador (com empréstimo)
MOV M, A; Armazene o resultado na memória
DCXH; Diminuir o par HL
MOV A, M; Carregue o segundo número no acumulador
ADICIONAR B; Adicione o primeiro número ao acumulador (com carry)
MOV M, A; Armazene o resultado na memória
INXH; Incremente o par HL
LOOP JMP; Repita o ciclo

LOOP:CMPH, 0; Compare o par HL com zero
LOOP JNZ; Se não for zero, volte para o loop
ELH; Pare o processador
```

Explicação

Este programa usa as instruções SBB (subtrair com empréstimo) e ADD (adicionar com transportar) do microprocessador 8085 para multiplicar dois números assinados de 8 bits.

O programa primeiro inicializa o par HL para armazenar o produto dos dois números. Em seguida, ele carrega o primeiro número no acumulador e subtrai dele o segundo número (com empréstimo). Isso define o sinalizador de transporte se o primeiro número for menor que o segundo número e o limpa caso contrário.

O programa então armazena o resultado na memória e decrementa o par HL. Em seguida, ele carrega o segundo número no acumulador e adiciona o primeiro número a ele (com carry). Isso define o sinalizador de transporte se a soma dos dois números for maior que 255 e o limpa caso contrário.

O programa então armazena o resultado na memória e incrementa o par HL. O programa então volta para o rótulo LOOP e repete o loop até que o par HL chegue a zero. Finalmente, o programa interrompe o processador.

Exemplo

Se o primeiro número for 10 e o segundo número for 5, o programa armazenará o produto dos dois números, que é 50, na posição de memória 2000H.