Flags: CPU

WRITEME noch nicht vollständig, fehlende Daten sind mit ?+ markiert.

Flag
Flags-CPU
Flags-FPU
Flags-Weitere

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 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.

Flag-CPU

IDNumASMZFSFPFCFOFAFDFIFTF
0010MOV---------
0020MOVSX?+?+?+?+?+?+?+?+?+
0030MOVZX?+?+?+?+?+?+?+?+?+
0040LEA?+?+?+?+?+?+?+?+?+
0050LAR?+?+?+?+?+?+?+?+?+
0060XCHG?+?+?+?+?+?+?+?+?+
0070XADDWWWWWW---
0080CALL---------
0090RET---------
0100RETF?+?+?+?+?+?+?+?+?+
0110RETN?+?+?+?+?+?+?+?+?+
0120
0130INCWWW-WW---
0140DECWWW-WW---
0150ADDWWWWWW---
0160ADCWWWWRWW---
0170SUBWWWWWW---
0180SBBWWWWRWW---
0190IMUL???WW?---
0200IDIV??????---
0210MUL???WW?---
0220DIV??????---
0230NEGWWWWWW---
0240SAL?+?+?+?+?+?+?+?+?+
0250SAR?+?+?+?+?+?+?+?+?+
0260SHL?+?+?+?+?+?+?+?+?+
0270SHLD?+?+?+?+?+?+?+?+?+
0280SHR?+?+?+?+?+?+?+?+?+
0290SHRD?+?+?+?+?+?+?+?+?+
0300ROL?+?+?+?+?+?+?+?+?+
0310ROR?+?+?+?+?+?+?+?+?+
0320RCL?+?+?+?+?+?+?+?+?+
0330RCR?+?+?+?+?+?+?+?+?+
0340NOT---------
0350ANDWWWW0W0?---
0360ORWWWW0W0?---
0370XOR?+?+?+?+?+?+?+?+?+
0380BT???W??---
0390BTS???W??---
0400BTR???W??---
0410BTC???W??---
0420BSFW?????---
0430BSRW?????---
0440
0450CLC---W0-----
0460STC---W1-----
0470CMC---I-----
0480CLD------W0--
0490STD------W1--
0500CLI-------W0-
0510STI-------W1-
0520LAHFRRRR-R---
0530SAHFWWWW-W---
0540CLTS--------?+
0550SALC?+?+?+?+?+?+?+?+?+
0560PUSHFRRRRRRRRR
0570PUSHFWRRRRRRRRR
0580PUSHFDRRRRRRRRR
0590POPFWWWWWWWWW
0600POPFWWWWWWWWWW
0610POPFDWWWWWWWWW
0620
0630AAA???W?W---
0640DAAWWWW?W---
0650AAS???W?W---
0660DASWWWW?W---
0670AADWWW???---
0680AAMWWW???---
0690CBW---------
0700CWD---------
0710CWDE---------
0720CDQ---------
0730BSWAP---------
0740
0750PUSH?+?+?+?+?+?+?+?+?+
0760POP?+?+?+?+?+?+?+?+?+
0770PUSHA?+?+?+?+?+?+?+?+?+
0780PUSHAW?+?+?+?+?+?+?+?+?+
0790PUSHAD?+?+?+?+?+?+?+?+?+
0800POPA?+?+?+?+?+?+?+?+?+
0810POPAW?+?+?+?+?+?+?+?+?+
0820POPAD?+?+?+?+?+?+?+?+?+
0830ENTER---------
0840LEAVE?+?+?+?+?+?+?+?+?+
0850
0860TESTWWWW0W0?---
0870CMPWWWWWW---
0880CMPSBWWWWWW---
0890CMPSWWWWWWW---
0900CMPSDWWWWWW---
0910CMPXCHGWWWWWW---
0920CMPXCHG486WWWWWW---
0930CMPXCHG8BWWWWWW---
0940
0950JMP?+?+?+?+?+?+?+?+?+
0960Jcc?+?+?+?+?+?+?+?+?+
0970JER1--------
0980JNER0--------
0990JAR0--R0-----
1000JNAR1--R1-----
1010JB---R1-----
1020JNB---R0-----
1030JAE---R0-----
1040JNAE---R1-----
1050JBER1--R1-----
1060JNBER0--R0-----
1070JGR0R0-------
1080JNGR1R1-------
1090JL-R1-------
1100JNL-R0-------
1110JGE-R0-------
1120JNGE-R1-------
1130JLER1R1-------
1140JNLER0R0-------
1150JZR1--------
1160JNZR0--------
1170JS-R1-------
1180JNS-R0-------
1190JC---R1-----
1200JNC---R0-----
1210JO----R1----
1220JNO----R0----
1230JP--R1------
1240JNP--R0------
1250JPE--R1------
1260JPO--R0------
1270JCXZ---------
1280JECXZ---------
1290LOOP---------
1300LOOPE?+?+?+?+?+?+?+?+?+
1310LOOPNE?+?+?+?+?+?+?+?+?+
1320LOOPZ?+?+?+?+?+?+?+?+?+
1330LOOPNZ?+?+?+?+?+?+?+?+?+
1340
1350MOVSB?+?+?+?+?+?+?+?+?+
1360MOVSD?+?+?+?+?+?+?+?+?+
1370MOVSW?+?+?+?+?+?+?+?+?+
1380LODSB?+?+?+?+?+?+?+?+?+
1390LODSW?+?+?+?+?+?+?+?+?+
1400LODSD?+?+?+?+?+?+?+?+?+
1410STOSB?+?+?+?+?+?+?+?+?+
1420STOSW?+?+?+?+?+?+?+?+?+
1430STOSD?+?+?+?+?+?+?+?+?+
1440SCASB?+?+?+?+?+?+?+?+?+
1450SCASW?+?+?+?+?+?+?+?+?+
1460SCASD?+?+?+?+?+?+?+?+?+
1470CMPSD?+?+?+?+?+?+?+?+?+
1480
1490LDS?+?+?+?+?+?+?+?+?+
1500LES?+?+?+?+?+?+?+?+?+
1510LFS?+?+?+?+?+?+?+?+?+
1520LGS?+?+?+?+?+?+?+?+?+
1530LSL?+?+?+?+?+?+?+?+?+
1540LSS?+?+?+?+?+?+?+?+?+
1550LTR?+?+?+?+?+?+?+?+?+
1560
1570HLT?+?+?+?+?+?+?+?+?+
1580NOP---------
1590WAIT?+?+?+?+?+?+?+?+?+
1600IN?+?+?+?+?+?+?+?+?+
1610INSB?+?+?+?+?+?+?+?+?+
1620INSW?+?+?+?+?+?+?+?+?+
1630INSD?+?+?+?+?+?+?+?+?+
1640OUT?+?+?+?+?+?+?+?+?+
1650OUTSB?+?+?+?+?+?+?+?+?+
1660OUTSW?+?+?+?+?+?+?+?+?+
1670OUTSD?+?+?+?+?+?+?+?+?+
1680CPUID---------
1690LMSW?+?+?+?+?+?+?+?+?+
1700INT?+?+?+?+?+?+?+?+?+
1710INT01?+?+?+?+?+?+?+?+?+
1720INT1?+?+?+?+?+?+?+?+?+
1730INT03?+?+?+?+?+?+?+?+?+
1740INT3?+?+?+?+?+?+?+?+?+
1750INTO?+?+?+?+?+?+?+?+?+
1760INVD?+?+?+?+?+?+?+?+?+
1770INVLPG?+?+?+?+?+?+?+?+?+
1780IRET?+?+?+?+?+?+?+?+?+
1790IRETD?+?+?+?+?+?+?+?+?+
1800IRETW?+?+?+?+?+?+?+?+?+
1810LGDT?+?+?+?+?+?+?+?+?+
1820LIDT?+?+?+?+?+?+?+?+?+
1830LLDT?+?+?+?+?+?+?+?+?+
1840SGDT?+?+?+?+?+?+?+?+?+
1850SIDT?+?+?+?+?+?+?+?+?+
1860SLDT?+?+?+?+?+?+?+?+?+
1870
1880FCMOVB?+?+?+?+?+?+?+?+?+
1890FCMOVBE?+?+?+?+?+?+?+?+?+
1900FCMOVE?+?+?+?+?+?+?+?+?+
1910FCMOVNB?+?+?+?+?+?+?+?+?+
1920FCMOVNBE?+?+?+?+?+?+?+?+?+
1930FCMOVNE?+?+?+?+?+?+?+?+?+
1940FCMOVNU?+?+?+?+?+?+?+?+?+
1950FCMOVU?+?+?+?+?+?+?+?+?+



Assembler/Funktionen/Flags-CPU.txt · Zuletzt geändert: 2010/02/25 14:32 (Externe Bearbeitung)