MIPS汇编中的整数问题

时间:2009-11-30 05:33:20

标签: assembly user-input mips

如果我提示用户输入一个整数,那么使用MIPS汇编我怎样才能获取该整数并将其分解为必需的部分?

示例:

                 # User inputs a number
li  $v0, 5      # read value of n
    syscall

然后我将$ v0中的值存储在临时寄存器中,比如$ t0,并且需要将其分解为构成它的每个部分。因此,308必须分解为:3,0和8.我需要这样做,这样我就可以对每个部分进行平方并将它们加在一起。

用户的输入值必须以整数形式输入。

感谢, NMR

2 个答案:

答案 0 :(得分:2)

除以10,使用余数得到8,如果商为非零,再除以10,然后使用余数为零,如果商为非零重复。

答案 1 :(得分:1)

这是@ Don的回答,有一个转折

$ t0包含用户输入。 (无签名)

li   $t1,10
DIVU $t0,$t1 //divide by 10

mfhi $t2 //t2 contains the division result
mflo $t3 //t3 containts the division remainder

使用beq,bgt进行比较。

一些帮助

http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html