为什么在MIPS ISA中拆分临时寄存器?

为什么在MIPS ISA中拆分临时寄存器?,mips,cpu-registers,calling-convention,abi,instruction-set,Mips,Cpu Registers,Calling Convention,Abi,Instruction Set,我目前正在学习一门涉及MIPS ISA的课程,我注意到的一件事是临时寄存器中的拆分: 临时寄存器$t0到$t7存储在$8到$15中,但是$t8和$t9存储在$24和$25中。为什么会这样?为什么不让临时寄存器连续?对汇编程序来说可能更容易?由于寄存器编号的低位现在在两个列中都相同,因此较早版本的寄存器布局使用或保留寄存器$24-$25用于其他用途(例如,保留它们用于内核)但事实证明,他们并不是为了这个目的而被需要的。也许你会得到关于历史事件的更好的答案,除非这个公约的作者在场,那么就没有答案了

我目前正在学习一门涉及MIPS ISA的课程,我注意到的一件事是临时寄存器中的拆分:


临时寄存器
$t0
$t7
存储在
$8
$15
中,但是
$t8
$t9
存储在
$24
$25
中。为什么会这样?为什么不让临时寄存器连续?

对汇编程序来说可能更容易?由于寄存器编号的低位现在在两个列中都相同,因此较早版本的寄存器布局使用或保留寄存器$24-$25用于其他用途(例如,保留它们用于内核)但事实证明,他们并不是为了这个目的而被需要的。也许你会得到关于历史事件的更好的答案,除非这个公约的作者在场,那么就没有答案了。这通常不是一个如此重要的问题。太宽泛了,没有答案。这不应该被关闭。