assembly - MIPS 汇编乘法并将 Hi 和 Lo 移入寄存器

标签 assembly mips

mult指令可以将两个 32 位整数相乘,从而得到 64 位结果。结果的高 32 位 (32 - 63) 保存在 Hi 中,低位 (0 - 31) 保存在 Lo 中。乘法后我可以使用 mfhimflo将结果移至寄存器。但是显然不可能把64位的数写到32位的寄存器中。如何将结果存储回寄存器并使用它?我应该将每个部分保存在单独的寄存器中并将它们连接起来吗?

最佳答案

你是正确的,你保存了 mfhimflo分别注册。您只需要检查您的产品是否同时使用两个寄存器(当 Hi 不为零时),然后您将其考虑在内并处理两者。

关于assembly - MIPS 汇编乘法并将 Hi 和 Lo 移入寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703706/

相关文章:

assembly - 与 CMPSB 指令混淆

linux - 如何在 Gasm (Gnu Assembler) 中比较符号和字符串?

mips - (解析器)语法错误 "array: .word 2,5,3,7,9,(some random numbers)"

c++ - 汇编代码的输出 - 与 add 混淆?

linker - 没有足够的 GOT 空间用于本地 GOT 条目

Xcode:运行 ASM

c - 如何获取c程序的操作码

c++ - 优化可变长度编码

c - 读取C中的汇编文件

floating-point - MIPS 浮点错误