2015-01-13 8 views
5

Ich frage mich, was sind $k0 und $k1 Register in MIPS-Architektur. Da es auf WikiBooks MIPS Assembly

Die k-Register werden für die Verwendung durch das OS-Kernel reserviert.

Aber ich konnte nichts über finden, wofür sind sie nützlich? und auch wie man sie benutzt?

Vielen Dank.

+0

'$ k0' und' $ k1' sind nur Aliase für die Register '$ 26' und' $ 27'. Der "reservierte" Teil ist nur per Konvention, die CPU ist es egal. Das Betriebssystem kann es für alles verwenden, was es will. Kann als Scratch-Register nützlich sein, das verwendet werden kann, ohne Angst davor zu haben, den Benutzer-Space-Status zu beschädigen. – Jester

+0

@Jester OK, und so, Wie kann OS diese Register verwenden? (Wie '$ 1', das vom Assembler benutzt wird, während Pseudobefehle in Anweisungen umgewandelt werden) (Als ich nach meinen Antworten suchte, stieß ich auf Begriffe wie:" Sie werden zur Verwaltung der Interrupts verwendet "und so. Wie werden sie verwendet Reihenfolge der Verwaltung von Interrupts oder was sie nützlich sind?) – AliLotfi

+0

Sie sind normale Register, Sie können sie wie gewohnt verwenden. Versteh deine Frage nicht. Zur Verwaltung von Interrupts können sie als Scratch-Register verwendet werden, bis der Benutzerstatus gespeichert wird. Das habe ich schon gesagt. – Jester

Antwort

9

Ein Interrupt-Handler muss alle allgemeinen Register speichern, die er verwenden soll (um bei der Rückkehr wiederhergestellt zu werden). Dazu müssen Sie jedoch mindestens ein Register zuerst ändern (etwas wie sw $t0, saved_t0 wird auf zwei Maschinenanweisungen erweitert, indem $at verwendet wird).

Diese Situation wird durch das Verbot von Anwenderprogrammen aus mit zwei allgemeinen aufgelöst - Universalregistern, $k0 und $k1 (Die k steht für Kernel, der ein Exception-Handler Teil ist). Der Interrupt-Handler darf $k0 und $k1 verwenden, ohne ihre Werte speichern oder wiederherstellen zu müssen. Dies erlaubt gerade genug Spielraum, um das Speichern von Registern zu starten, sowie das Zurückkehren von dem Interrupt-Handler zu ermöglichen.