在MIPS中,HI和LO是什么

问题描述 投票:22回答:3

我正在阅读有关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寄存器吗?它们是什么数字寄存器?

assembly mips cpu-registers
3个回答
28
投票

这些是特殊寄存器,用于存储乘法和除法的结果。它们与$0 .. $31通用寄存器分开,不能直接寻址。可通过特殊指令mfhimflo(从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。


11
投票

HI和LO不是编号寄存器,IIRC。它们仅用于存储不适合单个寄存器的运算结果(例如,将两个32位整数相乘可能会导致64位整数,因此溢出发生在HI中)]


2
投票

LO的作用是进行乘法运算,它存储最低有效位,而HI存储其余位,但主要是,我们只关注LO部分进行乘法运算。在划分方面,我们专注于两者。在除法中,LO应除以商,而HI是余数。

© www.soinside.com 2019 - 2024. All rights reserved.