0

如果我提示用户输入一个整数,则使用 MIPS 程序集,然后我如何获取该整数并将其分解为必要的部分?

例子:

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

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

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

谢谢,核磁共振

4

2 回答 2

2

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

于 2009-11-30T05:48:38.877 回答
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

于 2009-11-30T05:56:39.953 回答