mult
指令可以将两个 32 位整数相乘,从而得到 64 位结果。结果的高 32 位 (32 - 63) 保存在 Hi 中,低位 (0 - 31) 保存在 Lo 中。乘法后我可以使用 mfhi
和 mflo
将结果移至寄存器。但是显然不可能把64位的数写到32位的寄存器中。如何将结果存储回寄存器并使用它?我应该将每个部分保存在单独的寄存器中并将它们连接起来吗?
最佳答案
你是正确的,你保存了 mfhi
和 mflo
分别注册。您只需要检查您的产品是否同时使用两个寄存器(当 Hi 不为零时),然后您将其考虑在内并处理两者。
关于assembly - MIPS 汇编乘法并将 Hi 和 Lo 移入寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24703706/