我正在阅读有关MIPS中的除法的信息,并且已经找到了该div
[将$ s除以$ t并存储$ LO中的商,其余部分中的商$ HI
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
维基百科说
HI和LO用于访问乘/除法结果,可通过mfhi(从高位移动)和mflo命令访问。
http://en.wikipedia.org/wiki/MIPS_architecture
HI和LO寄存器吗?它们是什么数字寄存器?
这些是特殊寄存器,用于存储乘法和除法的结果。它们与$0 .. $31
通用寄存器分开,不能直接寻址。可通过特殊指令mfhi
和mflo
(从HI / LO移动)访问其内容。
它们存在于乘法单元中,每个都是32位。更多信息here。作为一对,它们保存32x32位整数mult
的64位完整结果。
[Raymond Chen的博客文章The MIPS R4000, part 3: Multiplication, division, and the temperamental HI and LO registers提供了一些有关早期MIPS的非直观行为的非常好的信息,包括mtlo
/ mtlo
分别使先前的hi
/ lo
无效。
早期MIPS的不完整整数指令集参考(在问题中链接)也有一些详细信息,http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html,或参阅MIPS的官方PDF手册,或经典MIPS CPU的手册PDF。
HI和LO不是编号寄存器,IIRC。它们仅用于存储不适合单个寄存器的运算结果(例如,将两个32位整数相乘可能会导致64位整数,因此溢出发生在HI中)]
LO的作用是进行乘法运算,它存储最低有效位,而HI存储其余位,但主要是,我们只关注LO部分进行乘法运算。在划分方面,我们专注于两者。在除法中,LO应除以商,而HI是余数。