MIPS: Como analisar dígitos de um número? Pergunta básica, mas ainda difícil
Pergunta
Atualmente, estou aprendendo MIPs para uma aula e escrevi o código de exemplo abaixo.
# UNTITLED PROGRAM
.data # Data declaration section
.text
main: # Start of code section
li $t1, 72
move $a0, $t1
li $v0,1
exit:
li $v0, 10
syscall
# END OF PROGRAM
Como mostrado, o valor de '72' é armazenado no registro $ T1. Agora, como faço para analisar os '7' e '2'?
Solução
Divida por 10, o módulo é o seu próximo dígito, repita até que o resultado da divisão seja 0. Isso assumindo que você não está trabalhando com números de ponto flutuante.
Outras dicas
Não é um especialista em MIPs ... mas:
72 / f = 7 "7"
7 * f = 70
72 - 70 = 2 "2"
Você pode aplicar essa lógica usando F * (número do total de dígitos - 1) para obter cada dígito individual.
-r
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow