bom dia professor pediu para fazer uma multiplicação entre 2 números fornecidos, fiz com o código abaixo, agora ele ta pedindo para fazer uma comparação e sempre fazer as somas sucessivas com o maior numero e menor repetiçao, não sei se ficou claro, vou exemplificar
Exemplo 4x2, ele quer que compare os numero e faça a menor repetição de soma, no caso 4+4 e não 2+2+2+2, entende?
alguém pode ajudar?
IN 0x10 ; efetua leitura de valor na entrada padrão
STA A ; armazena ACC em A
IN 0x10 ; efetua leitura de valor na entrada padrão
STA B ; armazena ACC em B
; garante valores iniciais CONT = 0 e RES = 0
LDA ZERO ; armazena ZERO no ACC (ACC=0)
STA CONT; armazena ZERO em CONT (CONT=0)
STA RES ; armazena ACC em RES (RES=0)
; laço de repetição
LOOP: LDA RES ; armazena RES no ACC (ACC=RES)
ADD B ; adiciona B no ACC (ACC=RES+B)
STA RES ; armazena ACC em RES (RES=RES+B)
LDA CONT ; carrega ACC com CONT (ACC=CONT)
ADD UM ; soma UM ao ACC (ACC=CONT+1)
STA CONT; armazena ACC em CONT (CONT=CONT+1)
SUB A ; subtrai A do ACC (A é num vezes que somamos B)
JN LOOP ; se negativo, salta para LOOP (zero indica que CONT=A)
; exibição do resultado RES
LDA RES ; carrega acumulador com RES
OUT 0x10 ; exibe ACC (valor RES) na saída padrão
HLT ; fim
; Variáveis
A: 0x00 ; variável A
B: 0x00 ; variável B
RES: 0x00 ; variável auxiliar para resultado
CONT: 0x00 ; variável auxiliar contador
ZERO: 0x00 ; constante 0 (decimal)
UM: 0x01 ; constante 1 (decimal)