MIPS 汇编中的整数问题

Posted

技术标签:

【中文标题】MIPS 汇编中的整数问题【英文标题】:Integer Problem in MIPS assembly 【发布时间】:2009-11-30 05:33:20 【问题描述】:

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

例子:

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

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

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

谢谢, 核磁共振

【问题讨论】:

【参考方案1】:

除以 10,用余数得到 8,如果商不为零,再除以 10,如果商不为零,则再用余数归零。

【讨论】:

这很有意义。我完全是在想那个。感谢您的帮助。【参考方案2】:

这是@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

【讨论】:

以上是关于MIPS 汇编中的整数问题的主要内容,如果未能解决你的问题,请参考以下文章

MIPS汇编程序设计——四则运算计算器

MIPS 中的函数(过程)

汇编优化系列关于符号扩展和无符号扩展(包括mips msa实现)

汇编优化系列关于符号扩展和无符号扩展(包括mips msa实现)

优化系列MIPS架构汇编优化资料

在 mips 汇编器中编写棋盘格的 bmp 文件