为什么mips中的异常处理程序会覆盖寄存器?

时间:2014-09-03 19:00:26

标签: assembly mips

我读过的原因是该程序可能正在使用这些寄存器,我们不想丢失它们所持有的值。但是,在这种情况下,我们可以像往常一样在函数调用中将先前的值写入堆栈。这有什么问题?

编辑:登记除了$ k0,$ k1当然!

1 个答案:

答案 0 :(得分:3)

可以使用其他寄存器,但必须将它们存储在全局存储器中。进入中断处理程序的可能原因可能是由于堆栈指针损坏导致的异常。因此,寄存器保存在静态分配的全局存储器中。