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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top