CodeBezeichnungFlagsBeschreibung AAA
ASCII adjust for addition
AC
AAD
ASCII adjust for division
PSZ
AAM
ASCII adjust for multiply
PSZ
AAS
ASCII adjust for subtraktion
AC
ADC
Add with carry
ACOPSZ
Addiere zwei Operanden und CY
ADD
Addition
ACOPSZ
Addition ohne Übertrag
AND
And: logical conjunction
COPSZ
Logische Operation "UND"
CALL
Unterprogramm aufrufen
CBW
Convert byte to word
AH wird mit Bit 7 von AL gefüllt. Code 98H - 10011000
CLC
Clear carry flag
C
Lösche CF. Code F8H = 11111000
CLD
Clear direction flag
Lösche DF. Code FCH = 11111100
CLI
Clear interrupt enable flag
Sperrt maskierbare Interrupts. Code FAH = 11111010
CMC
Complement carry flag
C
Komplementiere CF. Code F5H = 11110101
CMP
Compare two operands
ACOPSZ
Logischer Vergleich: Die Operanden werden subtrahiert, die Flags gesetzt, das Ergebnis verworfen.
CMPSB
Compare byte string
ACOPSZ
Das durch ES:[DI] adressierte Byte wird vom Operanden DS:[SI] subtrahiert, Flags gesetzt, das Ergebnis verworfen. SI und DI werden geändert: +1, wenn (DF)=0, sonst -1. Code 1010011w
CMPSW
Compare word string
ACOPSZ
Das durch ES:[DI] adressierte Wort wird vom Operanden DS:[SI] subtrahiert, Flags gesetzt, das Ergebnis verworfen. SI und DI werden geändert: +2, wenn (DF)=0, sonst -2. Code 1010011w
CWD
Convert word to doubleword
Vorzeichengerechte Erweiterung: DX wird mit Bit 15 von AX gefüllt. Code 99H = 10011001
DAA
Decimal adjust for addition
ACPSZ
Korrigiere AL nach BCD-Addition
DAS
Decimal adjust for subtraction
ACPSZ
Korrigiere AL nach BCD-Subtraktion
DEC
Decrement destination by 1
AOPSZ
Operand wird um 1 verringert. Operand ist Register oder Speicher, Byte oder Wort.
DIV
Vorzeichenlose Division
ESC
Speicherzugriff für Coprozessoren
HLT
Die CPU hält an bis Reset oder einem erlaubten externen Interrupt. Code: F4H = 11110100
IDIV
Integer division, signed
ACOPSF
Vorzeichengerechte Integer-Division
IMUL
Integer multiply accumulator by register-or-memory; signed
CO
Integer-Multiplikation mit Vorzeichen
IN
Input byte / word
Überträgt Byte/Wort vom Eingabeport (Adr. im DX oder als Direktoperand < 255) nach AL/AX.
INC
Increment destination by 1
AOPSZ
Operand wird um 1 vergrößert.
INT
Interrupt
Software-Interrupt: Indirekter FAR-Sprung über Interruptvektor 0 ... 255 mit Speichern der Rückkehradresse.
INTO
Interrupt if overflow
Wenn OF wird INT 4 ausgeführt.
IRET
Interrupt return
Rücksprung aus INT- bzw. INTO- Routine.
JA
Jump if above
Sprung wenn Ergebnis größer ist
JAE
Jump if above or equal
Sprung wenn größer oder gleich
JB
Jump if below
Sprung wenn Ergebnis kleiner ist
JBE
Jump if below or equal
Sprung wenn Ergebnis kleiner/gleich
JC
Jump if Carry
Sprung wenn CF gesetzt ist
JCXZ
Jump if CX = 0
Sprung wenn Register CX = 0 ist
JE
Jump if equal
Sprung wenn log. Ergebnis gleich ist
JG
Sprung wenn Ergebnis einer log. Operation arithmetisch größer ist
JGE
Sprung wenn Ergebnis arithmetisch größer oder gleich ist
JL
Sprung wenn Ergebnis einer log. Operation arithmetisch kleiner ist
JMP
Jump
Springe zu angegebener Adresse
JNA
Jump if not above
Sprung wenn Ergebnis nicht größer ist
JNAE
Jump if not above or equal
Sprung wenn nicht größer oder gleich
JNB
Jump if not below
Sprung wenn Ergebnis nicht kleiner ist
JNBE
Jump if not below or equal
Sprung wenn Ergebnis nicht kleiner/gleich
JNC
Jump if not Carry
Sprung wenn CF gelöscht ist
JNE
Jump if not equal
Sprung wenn log. Ergebnis nicht gleich ist
JNG
Jump if not greater
Sprung wenn Ergebnis einer log. Operation nicht arith. größer ist
JNGE
Jump if not greater or equal
Sprung wenn Ergebnis nicht arithmetisch größer oder gleich ist
JNL
Sprung wenn Ergebnis einer log. Operation nicht arith. klein ist
JNLE
Sprung wenn Ergebnis einer log. Op. nicht arith. kleiner oder gleich ist
JNO
Sprung, wenn Flag OF nicht gesetzt ist
JNP
Sprung bei ungerader Parität (Flag PF gelöscht)
JNS
Jump if not signed
Sprung wenn Ergebnis einer log. Operation positiv ist
JNZ
Jump if non zero
Sprung, wenn log. Ergebnis ungleich ist.
JO
Sprung, wenn Flag OF gesetzt ist
JP
Sprung bei gerader Parität (Flag PF gesetzt)
JPO
Sprung bei ungerader Parität (Flag PF gelöscht)
JS
Jump if signed
Sprung wenn Ergebnis einer log. Operation negativ ist
JZ
Jump if zero
Sprung, wenn log. Ergebnis gleich ist.
LAHF
Load AH from flags
SZAPC
Bits von AH werden mit Flags gefüllt: Bit 7->S, 6->Z, 4->A, 2->P, 0->C. Code: 9FH = 10011111
LDS
Load data segment register)
Von einem DWORT (Pointer, Vektor) wird LOW in ein 16 Bit Register (außer SS-Reg) und HIGH ins DS- Register geladen
LEA
Load effective adress
Die Offset- Adr. eines Speicheroperanden wird in ein Register geladen. Nur verwenden, wenn die EA zur Laufzeit berechnet werden muss, sonst MOV ..., OFFSET ... verwenden!
LES
Load extra-segment register
Lade Physikalische Adr. nach ES:
LOCK
Sperre den Bus
LODSB
Load byte string
Überträgt Byte DS:[SI] nach AL. SI + bzw. - um 1 je nach DF. Code 10101l0w
LODSW
Load word string
Überträgt Word DS:[SI] nach AX. SI + bzw. - um 2 je nach DF. Code 10101l0w
LOOP
Iterate instruktion sequence
until count complete
Das Count Register (CX) wird um 1 dekrementiert. Wenn CX #0, wird relativ gesprungen: IF (CX) #0 THEN (IP) := (IP) + disp(sign-extended to 16 bits. Code 11100010
LOOPZ
Loop on zero
identisch mit LOOPE
LOOPE
Loop on equal
CX := CX-1 . Solange CX #0 und wenn ZF =1 : Relativer Sprung. Code 11100001 disp
LOOPNZ
Loop on non zero
identisch mit LOOPNE
LOOPNE
Loop on not equal
CX := CX-1 . Solange CX #0 und wenn kein ZF: Relativer Sprung. Code 11100000 disp
MOV
MOVE
Lade Wert
MOVSB
Move byte string
Speichert DS:[SI] nach ES:[DI], dann SI und DI + bzw. - um 1. Ist eine Kombination der Befehle LODSB und STOSB. Code 10100l0w
MOVSW
Move word string
Speichert DS:[SI] nach ES:[DI], dann SI und DI + bzw. - um 2. Ist eine Kombination der Befehle LODSW und STOSW. Code 10100l0w
MUL
Multiply accumulator by register-or-memory; unsigned
CO
AL bzw. AX werden mit dem Operanden multipliziert. Obere Hälfte des Resultats in AH bzw. DX. Wenn High #0 ist, werden CF und OF gesetzt. Code 111101lw
NEG
Form 2's complement
Negation (Zweier-Komplement)
NOP
No operation
Code 90H = 10010000
NOT
Form 1's complement
invertiert Operand und speichert zurück.
OR
Or, inclusive
COPSZ
Zwei Operanden werden bitweise verknüpft, CF und OF gelöscht.
OUT
Output byte / word
siehe IN
POP
Pop word off stack into destination
Holt Wort aus Stack, speichert es nach Register oder Memory und erhöht SP um zwei.
POPF
Pop flags off stack
Alle
Hole Wort vom Stack ins Statusregister, Siehe PUSHF. Code 9DH = 10011101
PUSH
Push word onto stack
Wort in Stack speichern. Verringert SP um 2 und speichert Register bzw. Memory-Wort.
PUSHF
Push flags onto stack)
Rettet Flags in den Stack (siehe POPF) und verringert SP um 2.
RCL
Rotate left through carry
CO
Rotiere links durch das CF Flag
RCR
Rotate right through carry
CO
Rotiere rechts durch das Flag CF
REP
Repeat string operation
FLAGS: Siehe konkrete String-Operation. Die nachfolgende primitive String- Operation (MOVS, SCAS, CMPS) wird wiederholt, wenn (CX) # 0 ist. CX wird um 1 verringert.
REPZ
identisch mit REPE
REPE
Repeat string operation
FLAGS: Siehe konkrete String-Operation. Die nachfolgende primitive String- Operation (MOVS, SCAS, CMPS) wird wiederholt, wenn (CX) # 0 ist. CX wird um 1 verringert. Der Zyklus wird auch abgebrochen, wenn die Bedingung nicht erfüllt ist.
REPNE
identisch mit REPNZ
REPNZ
Repeat string operation
FLAGS: Siehe konkrete String-Operation. Die nachfolgende primitive String- Operation (MOVS, SCAS, CMPS) wird wiederholt, wenn (CX) # 0 ist. CX wird um 1 verringert. Der Zyklus wird auch abgebrochen, wenn die Bedingung nicht erfüllt ist.
RET
Return from procedure
Lädt IP und evt. noch CS aus dem Stack und erhöht SP um 2 bzw. 4 (je nachdem ob Inter-Segment- bzw. Intra-Segment-Rücksprung. Wenn Konstant-Operand angegeben ist, wird er zum Stack addiert.
ROL
Rotate left
CO
Rotiere nach links. Verschiebeanzahl im CL oder =1 ist möglich. Wenn Verschiebung nur einmalig, wird OF gesetzt, falls vor Verschiebung die 2 obersten Bits ungleich waren.
ROR
Rotate right
CO
Rotiere nach rechts. Siehe ROL
SAHF
Store AH to flags
Flags werden mit den Bits von AH geladen:
Bit 7 6 5 4 3 2 1 0
Flag SF ZF xx AF xx PF xx CF (xx = undefin. Wert). Code: 9EH = 10011110
SAL=
SHL
Shift arithmetic left and shift logical left
COPSZ
In untere Bits werden Nullen eingeschoben. Das oberste Bit wird nach CF geschoben. Verschiebeanzahl im CL oder =1. Wenn Verschiebung einmalig, wird OF gesetzt, falls vor Verschiebung die 2 obersten Bits ungleich waren.
SAR
Shift arithmetic right
COPSZ
Das oberste Bit wird gleich nach dem alten obersten Bit eingeschoben. Das unterste Bit wird nach CF geschoben. Verschiebeanzahl im CL oder =1. Wenn Verschiebeanzahl=1, wird OF gesetzt, falls vor Verschiebung die beiden obersten Bits ungleich waren.
SBB
Subtrakt with borrow
ACOPSZ
Vorzeichenlose Subtraktion inclusive CF
SCASB
Scan byte string
ACOPSZ
Das Byte ES[DI] wird mit AL verglichen. Dann wird DI um 1 erhöht (wenn DF=0) bzw. erniedrigt.
SCASW
Scan word string
ACOPSZ
Das Wort ES[DI] wird mit AX verglichen. Dann wird DI um 2 erhöht (wenn DF=0) bzw. erniedrigt.
SHL
Shift logical left
siehe bei SAL
SHR
Shift logical right
COPSZ
Schiebe nach rechts. In obere Bits werden Nullen eingeschoben. Das unterste Bit wird nach CF geschoben. Verschiebeanzahl im CL oder =1. Wenn Verschiebeanzahl =1, wird OF gesetzt, falls vor Verschiebung die beiden obersten Bits ungleich waren.
STC
Set carry flag
C
Setze das Carry Flag. Code: F9H = 11111001
STD
Set direction flag
D
Setze das Zählrichtungs-Flag DF. Code: FDH = 11111101
STI
Set interrupt enable flag
Erlaubt maskierbare externe Interrupts nach Ausführung des nächsten Befehls. Code: FBH = 11111011
STOSB
Store byte string
AL wird nach ES:[DI] gespeichert. DI wird um 1 erhöht, wenn DF =0 ist, sonst dekrementiert. Code: 101010lw
STOSW
Store word string
AX wird nach ES:[DI] gespeichert. DI wird um 2 erhöht, wenn DF =0 ist, sonst dekrementiert. Code: 101010lw
SUB
Subtrakt
ACOPSZ
Vorzeichenlose Subtraktion
TEST
Test, or logical compare
COPSZ
Operanden werden verglichen (AND). CF und OF werden gelöscht.
WAIT
Warten, bis der BUSY-Eingang nicht aktiv ist
XCHG
Exchange
Byte oder Wort wird zwischen Registern oder Reg. und Speicher ausgetauscht. Für Sreg nicht anwendbar.
XLAT
Translate
Übersetzen: AL := <DS:BX+AL> Lädt ein Byte aus einer Tabelle (im DS) nach AL. Das AL- Reg. wird als Index einer durch das BX- Register adressierten Tabelle verwendet. Der so adressierte Operand wird nach AL geladen. Code: D7H = 11010111. z.B. MOV BX, OFFSET TAB_NAME, XLAT BYTE PTR [BX]
XOR
Exclusive or
COPSZ
Operanden werden verglichen und Bits gesetzt, wo ungleich. CF und OF werden gelöscht.