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



我读到的原因是程序可能正在使用这些寄存器,我们不想丢失它们所包含的值。但是,在这种情况下,我们可以像通常在函数调用中那样,将以前的值写入堆栈。怎么了?

编辑:除了$k0,当然还有$k1注册!

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

最新更新