Integer Problema na montagem MIPS
-
10-07-2019 - |
Pergunta
Usando MIPS assembly se eu pedir um utilizador para introduzir um número inteiro como posso em seguida, tomar esse inteiro e dividi-lo em TI de peças necessárias?
Exemplo:
# User inputs a number
li $v0, 5 # read value of n
syscall
Eu, então, armazenar o valor em $ v0 num registo temporário, digamos $ t0, e necessidade de dividi-lo em cada parte que torna-se. Assim, 308 tem de ser dividido em:. 3, 0 e 8. Eu necessidade de fazer isso para que eu possa, em seguida, quadrado cada uma dessas partes e adicioná-los juntos
O valor de entrada do utilizador tem de ser introduzido como um número inteiro.
graças, RMN
Solução
Este é @ resposta de Don, com uma torção
$ t0 contém a entrada do usuário. (Asume não assinado)
li $t1,10
DIVU $t0,$t1 //divide by 10
mfhi $t2 //t2 contains the division result
mflo $t3 //t3 containts the division remainder
uso beq, bgt para fazer as comparações.
Alguns ajuda
http://www.mrc.uidaho.edu /mrc/people/jff/digital/MIPSir.html
Outras dicas
Dividir por 10, usar o restante para obter a 8, se quociente é diferente de zero, divida por 10 novamente e usar então restante para o zero, se quociente é diferente de zero repetição.