如何使用 MIPS $k0 和 $k1 寄存器

How to use MIPS $k0 and $k1 registers

我想知道,MIPS架构中的$k0$k1寄存器是什么。 正如 WikiBooks MIPS Assembly

The k registers are reserved for use by the OS kernel.

但是我找不到关于它们有什么用处?以及如何使用它们的任何信息?

谢谢。

中断处理程序必须保存它将要使用的任何通用寄存器(将在 return 处恢复)。但这样做需要您首先修改至少一个寄存器(某物 像 sw $t0, saved_t0 使用 $at).

扩展为两条机器指令

通过禁止用户程序使用两个通用寄存器 $k0$k1(k 代表内核,异常处理程序是内核的一部分)来解决这种情况。允许中断处理程序使用 $k0$k1 而无需保存或恢复它们的值。这允许有足够的余地来开始保存寄存器,以及使 return 从中断处理程序中调用成为可能。