WikiDer > Zustandscode

Conditiecode

Das Bedingungscode ist der Inhalt einer bestimmten registrieren im Prozessor eines Computers.

Wird es einen geben Anweisung B. eine Addition durchgeführt wird, wird dem Bedingungscode automatisch ein Wert zugewiesen.Normalerweise wird der Bedingungscode ignoriert, aber es ist möglich, dass das Programmje nach Zustand des Bedingungscodes einen bedingten Sprung ausführt.

Es gibt auch Anweisungen, wie die Gleichungen, die keinerlei Wirkung haben, außer den Bedingungscode zu setzen.

IBM 360

In der Architektur des IBM 360 ist der Bedingungscode Teil des Programmstatuswort, die 64 Bit enthält. Der Bedingungscode selbst besteht nur aus zwei Bits. Der Bedingungscode hat also vier Möglichkeiten, nämlich:

Bitsnach dem Vergleichnach Berechnungnach der Anweisung TMSprungaufgaben
nach dem Vergleichnach Berechnungnach TM
BNOPBH
(hoch)
BL
(niedrig)
SEIN
(gleich)
BP
(Plus)
BM
(Minus)
BZ
(Null)
BO
(Überlauf)
BO
(Einsen)
BM
(gemischt)
BZ
(Null)
00gleichNullNullenX---X--X---X
10kleinerNegativgemischtX--X--X---X-
01größerpositivX-X--X------
11ÜberlaufEinsenX-------XX--

Verbindungen mit der Assemblersprache

Beim Entwurf der Architektur wurde die Assemblersprache berücksichtigt. Als Ergebnis wird der Sprungbefehl BM nach einer Berechnung verwendet werden (Zweig wenn Minus), aber auch nach TM (Zweig, wenn gemischt). Für den Assembler macht es keinen Unterschied, ob die ich bedeutet „gemischt“ oder „minus“. Das gleiche gilt für den Sprungbefehl BO (Verzweigung bei Überlauf oder Verzweigung bei Einsen).

Moderne Mikroprozessoren: das FLAGS-Register

Bei modernen Mikroprozessoren besteht der Bedingungscode aus viel mehr Bits. Diese arbeiten unabhängiger voneinander. Die einzelnen Bits werden auch genannt Flaggen genannt und zusammen werden sie auch genannt FLAGS-Register.

Intel 8080

Der Bedingungscode heißt hier Flags-Register und besteht aus acht Bits, die nicht alle eine Bedeutung haben.Eines der Bits ist das Interrupt-Bit, das anzeigt, unterbrechen akzeptiert werden soll oder nicht.Dieses Bit ist eigentlich kein Bedingungscode.

Das Akkumulator (Register A) und das Flags-Register werden zusammen als PSW bezeichnet, von Programmstatuswort.

Intel x86-Prozessoren

Es FLAGGEN-registrieren ist ein Register im Intelx86Mikroprozessor die den Zustand enthält, in dem sich der Prozessor befindet. Dieses Register ist 16 Bit breit. Die Nachfolger, die Register EFLAGS und RFLAGS, sind 32 bzw. 64 Bit breit. Die breiteren Register sind mit den schmaleren Registern kompatibel, da der untere Teil dieser breiteren Register immer den schmaleren Registern entspricht.

Intel x86 FLAGS-Registrierung
bisschen #AbkürzungBeschreibungKategorie
FLAGGEN
0CFFlagge tragenStatusflagge
11Reserviert 
2PFParitätsflaggeStatusflagge
30Reserviert 
4AFFlagge anpassenStatusflagge
50Reserviert 
6ZFNullflaggeStatusflagge
7SFFlagge unterschreibenStatusflagge
8TPTreppenfahne (einstufig)Systemflagge
9WENNUnterbrechungsfreigabe-FlagSystemflagge
10DFRichtungsflaggeKontrollflagge
11ODERÜberlaufflaggeStatusflagge
12, 13IOPLE/A-Berechtigungsstufe (ab 286)Systemflagge
14NTFlag für verschachtelte Aufgaben (von 286)Systemflagge
150Reserviert 
FLAGS
16HFResume-Flag (von 386)Systemflagge
17VMVirtual-8086-Modus-Flag (von 386)Systemflagge
18ACAusrichtungsprüfung (ab 486SX)Systemflagge
19VIFVirtuelles Interrupt-Flag (Pentium)Systemflagge
20VIPVirtueller Interrupt anstehend (Pentium )Systemflagge
21ICH WÜRDEIdentifikation (Pentium)Systemflagge
220Reserviert 
230Reserviert 
240Reserviert 
250Reserviert 
260Reserviert 
270Reserviert 
280Reserviert 
290Reserviert 
300Reserviert 
310Reserviert 
RFLAGS
32-630Reserviert 

Siehe auch