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

Inf*_*ity 5 assembly mips

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

Rus*_*mov 2

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

  • 这正是我的问题。由于乘积是 64 位长而寄存器是 32 位,我该如何处理它们? (3认同)