Was ist ein Statusregister?
Das Statusregister - auch als Flagregister, Programmstatuswort und Bedingungscoderegister bekannt - ist als ein Kollektiv von Flagbits in einem Prozessor definiert. Ein Register ist eine Prozessorschaltung und ähnelt einem Speicherort, dh, es können Daten geschrieben und daraus gelesen werden. Im Gegensatz zu einem Speicherort hat das Statusregister häufig keine Adresse, da der Mikroprozessor diese intern verwendet. In einer 8-Bit-Zentraleinheit (CPU) kann ein Statusregister-Bit gleich der Nummer 1 gesetzt oder gleich der Nummer 0 gelöscht werden , indem die Ergebnisse der verschiedenen Prozessoroperationen angezeigt werden. Der Prozessor setzt oder löscht manchmal die Bits selbst, aber ein anderes Mal setzt oder löscht ein bestimmter Programmbefehl die Bits.
Statusregister-Bits werden auch Flags oder Flag-Bits genannt und vom Programmierer für bestimmte Programmierzwecke verwendet. Jedes Flag in einem Statusregister hat einen eindeutigen Zweck. Das Übertragsflag wird gesetzt, wenn eine vorherige Operation den Überlauf des siebten Bits oder des negativen Flags oder den Unterlauf des Übertragsflags verursacht hat. Es setzt während Verschiebungen von Logik, Vergleich und Arithmetik. Das Null-Flag wird gesetzt, wenn das letzte Operationsergebnis 0 war.
Ein Flag mit der Bezeichnung "Interrupt Disable" (Unterbrechungssperre) ermöglicht oder sperrt die Ausführung von Interrupts. Hierbei handelt es sich um Anweisungen, die bestimmte Vorgänge vorübergehend anhalten, damit andere Vorgänge ausgeführt werden können. Wenn dieses bestimmte Flag gesetzt ist, dürfen keine Interrupts ausgeführt werden. Wenn dies jedoch klar ist, sind Interrupts zulässig. Ein anderes Flag, das als Dezimalflag bezeichnet wird, ermöglicht es dem Prozessor, einem fortgeschritteneren Binärmodus zu folgen, um fehlerfreie arithmetische Gleichungen durchzuführen. Wenn das Flag gesetzt ist, wird dieser erweiterte Binärmodus verwendet. Ein weiteres Registerbit ist das Break-Flag-Bit, das gesetzt wird, wenn der Befehl Force Interrupt (BRK) ausgeführt wird.
Ein Überlauf-Flag wird während arithmetischer Operationen gesetzt, wenn eine Operation ein ungültiges Ergebnis liefert. Das negative Flag wird gesetzt, wenn das Ergebnis der letzten Operation auf 1 gesetzt wurde. Ein letztes Flag, Bit 5 genannt, ist namenlos und immer auf 1 gesetzt. Programmierer haben im Wesentlichen keine Verwendung für dieses bestimmte Bit.
Das FLAGS-Register ist ein Beispiel eines Statusregisters, das in bestimmten zentralen Prozessoreinheiten verwendet wurde und aktuelle Zustände eines Prozessors enthielt. Es war 16 Bit breit und wurde von EFLAGS und RFLAGS, einem 32-Bit-Register bzw. einem 64-Bit-Register, gefolgt. Das FLAGS-Register hatte jedoch einige Flags, die sich vom ursprünglichen 8-Bit-Register unterschieden, einschließlich des Paritätsflags, des Hilfsflags und des Trap-Flags.