question

Montagem de MIPS codigo multiplicar/dividir.?

Eu tenho que escrever uma implementação de software de 16 bits sem sinal de um multiplicador e um divisor no código de assembly do MIPS. Dois números inteiros positivos são lidas a partir do console. O programa é suposto para multiplicar e dividir os dois inteiros, saindo o produto, o quociente e o restante.

Aqui está um exemplo:
Insira um número inteiro: 10
Insira um número inteiro: 4
Produto é 40
Quociente é 2
Restante é 2

Eu não posso usar quaisquer instruções de multiplicar/dividir MIPS tampouco.
PODE ALGUÉM POR FAVOR ME AJUDAR COM ISSO? EU AINDA SOU UM NOVATO COM MIPS LINGUAGEM ASSEMBLY E GOSTARIA DE RECEBER QUALQUER AJUDA.
resposta Resposta
Eu não tenho escrito em conjunto por algum tempo (e eu só fiz para uma classe de qualquer maneira), portanto não é possível de código qualquer coisa fora do topo da minha cabeça, mas aqui é a idéia básica. Digamos que você tenha inteiros x e Y.

MULTIPLICA:

Multiplicação é apenas adição do mesmo número para um número especificado de vezes, certos? Portanto, você precisará manter a execução total. Inicie seu total em 0. Em seguida, executar um loop. Use x como seu contador de loop. Durante cada iteração do loop, adicionar y ao total e subtrair uma o contador. Quando o contador atinge 0, você está feito. Você adicionou y ao total x número de vezes. Eis a multiplicação!

DIVIDA:

Divisão é o oposto de multiplicação, simplesmente falando. Assim, em vez de adicionar y cada vez, vou subtraímos-lo. (Eu vou assumir que os inteiros são positivos e que x deve ser dividido por Y). Você precisará iniciar seu quociente em 0 e um divisor x "em execução". Agora podemos executar um loop. Para cada iteração do loop, você subtrair y o divisor e adicionar 1 para o quociente.

O loop vai como este:

Compare divisor para Y. Se o divisor for menor que Y, sair do loop. O que é deixado no divisor é o restante. Se divisor não é menor que Y, fazer seu subtraindo, adicionar 1 para o quociente e repita o loop.



Esperemos que isso vai te começou na direção certa. Se você precisar de mais ajuda, pergunte aqui (e mensagem me assim que eu sei que você já atualizou sua pergunta).

ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta



Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved