gpt4 book ai didi

assembly - 如何在 mips 程序集中打印大于 32 位的数字?

转载 作者:行者123 更新时间:2023-12-02 02:35:09 24 4
gpt4 key购买 nike

在我的 mips 汇编代码中,我使用 multi 指令将 2 个大数相乘,因为结果无法放入一个寄存器中。这意味着该数字保存在 hi 和 lo 特殊寄存器中。我的问题是如何打印乘法结果。我可以访问 hi 和 lo 并将它们放入其他寄存器(即 $t0、$t1),但我不知道如何组合这两个数字以打印结果。谢谢。

最佳答案

(这个答案故意保持高水平,因为我很确定没有人在 mips 汇编中打印数字,除非他们是为了家庭作业而这样做。)

如果你不介意用十六进制,那没问题;只需以十六进制打印一个单词,然后打印下一个。不要忘记在第二个单词上加上前导零! (实际上,我认为您正在使用的 spim 只能以 10 为基数打印,所以即使这样也可能有点麻烦)。

如果您希望它以 10 为基数,那么这个问题很快就会进入我称之为“棘手问题”的类别。在“现实生活”中,我不会打扰;用 C 语言进行打印,某个地方的编译器专家为您解决了所有这些问题。对于家庭作业,请自己编写一个函数,将输入重复除以 10,最终您将得到要打印的数字。如果 mips 没有 64 位除法指令(无法告诉你),这将是一个非常有趣的问题,你需要解决。

关于assembly - 如何在 mips 程序集中打印大于 32 位的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com