Flag

Flag
Flags-CPU
Flags-FPU
Flags-Weitere

Zusätzlich zu den Werten in den Registern kann eine Funktion Eigenschaften über das Resultat auf Flags speichern. Diese können andere Funktionen auswerten.
Welche Flags eine ASM-Funktion liest oder schreibt werden hier beschrieben.

Kurzbeschreibung der Zeichen

Beschreibung
R= Lesen (Auswerten)
W= Schreiben
I= Invertierten
-= Unverändert
?= Nicht Definiert (Wurde intern verändert und hat keinen bestimmbaren Zustand)
0= Zusätzliche Wertangabe für W oder R, W0 R0
1= Zusätzliche Wertangabe für W oder R, W1 R1
++= Noch nicht Eingegeben


Ist die Veränderung oder das gelesene bekannt, wird der Wert noch zusätzlich angegeben. zB. W1 R0 WR oder WR0 wären korrekte Angaben.

Kurzbeschreibung der CPU-Flags

FlagBitNameBeschreibung
ZF6Zero=1 wenn das Ergebnis einer Berechnung oder Test 0 ist. LOOP Test CMP oder vergleiche benutzen Z ebenfalls.
SF7Sign=1 wenn das höchstwertige Bit 1 ist und damit der Wert als negativ interpretiert wird, wenn sie Signet-Type ist.
PF2Parity=1 wenn das Ergebnis ungerade also erstes Bit auf 1 steht. Wird bei Datenübertragung als Checksummen Bit verwendet.
CF0Carry=1 wenn der Wert einer Operation um 1Bit des Register Typs überschritten wurde. Der Wert kann verwendet werden um zB. bei Addition den übertrag zu speichern oder ein Überlauf zu erkennen.
OF11Overflow=1 wenn das höchstwertige Bit, das als Vorzeichen-Bit verwendet werden kann, verändert wurde. Das bedeutet das Resultat ist zerstört wenn eine negative Zahl aus zB. Addition 2 positiver Zahlen entsteht. Overflow wird also gesetzt wenn das höchstwertige Bit geändert wurde während Carry gesetzt wird wenn über das höchstwertige Bit hinaus ein Bit verloren ginge. Overflow wird also nur bei signed geprüft, bei unsigned nicht.
AF4Auxiliaryähnlich dem Carry-Flag für BCD-Operationen. Hilfsübertragsflag bei einem übertrag von 3 auf 4 Bits, in 8bit Operation. Wird in BCD Arithmetik verwendet.
DF10Direction=1 String-Zeichenketten Verarbeitung aufsteigend in Adresse behandeln, =0 absteigend. SI DI +-
IF9InterruptInterrupt-Kontrolle. =1 alle Unterbrechungen zulassen / =0 keine maskierbaren Unterbrechungen zulassen. Damit kann zB. in DOS das Abruch-Kommando Strg+C verhindert werden.
TF8Trap=1 Setzt den Prozessor in dein Einzelschrit-Modus. Nach jedem Schritt wird Interrupt 1 aufgerufen und verzweigt in eine spezielle Prozedur. Wird von Debugger oder Interpreter verwendet um Programmlauf zu kontrollieren

Kurzbeschreibung der FPU-Flags

FlagBitBeschreibung
C08Bedingungscode-Bit 0
C19Bedingungscode-Bit 1
C210Bedingungscode-Bit 2
C314Bedingungscode
IE0Ungültigkeits-Status IE (invalid Operation exception)
DE1Unmaskiert-Status DE (denormalized operand exception)
ZE2Nulldivisions-Status ZE (Zero divide exception)
OE3Überlauf-Status OE (overflow exception)
UE4Unterlauf-Status UE (underflow exception)
PE5Genauigkeits-Status PE (precision exception)
B15Busy-Status B (busy)
IR7Interrupt-Status IR (interrupt request)
ST..11Stapelzeiger-Bit 0
ST..12Stapelzeiger-Bit 1
ST..13Stapelzeiger-Bit 2
-6(Reserviert)



Assembler/Funktionen/Flag.txt · Zuletzt geändert: 2010/02/25 14:35 (Externe Bearbeitung)