Bitte aktiviere JavaScript!
8086/88 Assembler Befehlsreferenz

Maschinensprache ist die schnellste aller Programmiersprachen, da der Computer sie direkt versteht. Mit Maschinensprache lässt ohne Einschränkungen direkt auf die Hardware eines Computers zugreifen, was bei anderen Programmiersprachen nicht oder nur bedingt der Fall ist. Aus diesem Grund sind Maschinenspracheprogramme besonders leistungsfähig.

Jede Hochsprachen übersetzt das als Quelltext vorliegende Programm in Maschinensprache, den der Computer unmittelbar verstehen und ausführen kann: die Maschinensprache. Bei den Hochsprachen gibt es zwei verschiedene Verfahren, um Befehle in Maschinensprache zu übersetzen, entweder per Interpreter oder Compiler. Ein Interpreter übersetzt ein Hochsprachenprogramm während der Ausführung Befehl für Befehl in Maschinensprache. Weil jedoch beim Ausführen eines Befehls neben der Übersetzung und den gesamten Fehlerabfangroutinen auch noch die vom jeweiligen Kommando benötigten Systemroutinen aufgerufen werden müssen, ist die erreichbare Verarbeitungsgeschwindigkeit in den meisten Fällen vergleichsweise gering.

Ein Compiler hingegen übersetzt einen Quelltext nach erfolgreicher Fehlerbeseitigung in einen maschinenspracheähnlichen Code (Objectcode) oder sogar direkt in Maschinensprache. Das auf diese Weise übersetzte Programm erreicht natürlich eine wesentlich höhere Geschwindigkeit als ein Interpreter. Ein Maschinenspracheprogramm besteht aus einzelnen Maschinensprachebefehlen, die der Prozessor des Computers direkt ausführen kann.

Abkürzung Englisch Deutsch
AAA ASCII adjust after addition ASCII-Anpassung nach einer Addition
AAD ASCII adjust before divide ASCII-Anpassung vor einer Division
AAM ASCII adjust alter multiply ASCII-Anpassung nach einer Multiplikation
AAS ASCII adjust after subtract ASCII-Anpassung nach einer Subtraktion
ADC Add with carry Addiere mit Übertrag-Statusbit
ADD Add Addiere
AND And Und
CALL Call Rufe auf
CBW Convert byte to word Wandle Byte in Wort um
CLC Clear carry flag Lösche Übertrag-Statusbit
CLD Clear direction flag Lösche Richtung-Statusbit
CLI Clear interrupt flag Lösche Unterbrechung-Statusbit
CMC Complement carry flag Invertiere Übertrag-Statusbit
CMP Compare Vergleiche
CMPS Compare string Vergleiche Zeichenkette
CMPSB Compare string bytewise Vergleiche Zeichenkette byteweise
CMPSW Compare string wordwise Vergleiche Zeichenkette wortweise
CWD Convert word to double word Wandle Wort in Doppelwort um
DAA Decimal adjust after addition Dezimale Anpassung nach einer Addition
DAS Decimal adjust after subtract Dezimale Anpassung nach einer Subtraktion
DEC Decrement Vermindere
DIV Divide (unsigned) Dividiere (vorzeichenlos)
ESC Escape (to external device) Entweiche (zu externer Einheit)
HLT Halt Halt
IDIV Integer divide (signed) Ganzzahlige Division (vorzeichenbehaftet)
IMUL Integer multiply (signed) Ganzzahlige Division Ganzzahlige Multiplikation (vorzeichenbehaftet)
IN Input from Lese ein von
INC Increment Erhöhe
INT Interrupt Unterbreche
INTO Interrupt if overflow Unterbreche, wenn Überlauf
IRET Interrupt return Kehre von Unterbrechungsprogramm zurück
JA Jump if above Springe, wenn darüber
JAE Jump if above or equal Springe, wenn darüber oder gleich
JB Jump if below Springe, wenn darunter
JBE Jump if below or equal Springe, wenn darunter oder gleich
JCXZ Jump if CX equal zero Springe, wenn CX gleich 0
JE Jump if equal Springe, wenn gleich
JG Jump if greater Springe, wenn größer
JGE Jump if greater or equal Springe, wenn größer oder gleich
JL Jump if less Springe, wenn kleiner
JLE Jump if less or equal Springe, wenn kleiner oder gleich
JMP Jump Springe
JNA Jump if not above Springe, wenn nicht darüber
JNAE Jump if not above and not equal Springe, wenn nicht darüber und nicht gleich
JNB Jump if not below Springe, wenn nicht darunter
JNBE Jump if not below and not equal Springe, wenn nicht darunter und nicht gleich
JNE Jump if not equal Springe, wenn nicht gleich
JNG Jump if not greater Springe, wenn nicht größer
JNGE Jump if not greater and not equal Springe, wenn nicht größer und nicht gleich
JNL Jump if not less Springe, wenn nicht kleiner
JNLE Jump if not less and not equal Springe, wenn nicht kleiner und nicht gleich
JNO Jump if no overflow Springe, wenn kein Überlauf
JNP Jump if no parity Springe, wenn keine Parität
JNS Jump if no sign Springe, wenn kein Vorzeichen (positiv)
JNZ Jump if not zero Springe, wenn nicht 0
JO Jump if overflow Springe, wenn Überlauf
JP Jump if parity Springe, wenn Parität
JPE Jump if parity even Springe, wenn Parität gerade
JPO Jump if parity odd Springe, wenn Parität ungerade
JS Jump if sign Springe, wenn Vorzeichen (negativ)
JZ Jump if zero Springe, wenn 0
LAHF Load AH with flags Lade AH mit den Statusbits
LDS Load pointer using DS Lade Zeiger unter Verwendung von DS
LEA Load effective address to register Lade effektive Adresse in Register
LES Load pointer using ES Lade Zeiger unter Verwendung von ES
LOCK Lock Bus Verriegle den Bus
LODS Load string to AL/AX Lade Zeichenkette in AL/AX
LODSB Load string bytewise to AL Lade Zeichenkette byteweise in AL
LODSW LODSW Load string wordwise to AX Lade Zeichenkette wonweise in AX
LOOP Loop CX times Führe Schleife CX-mal aus
LOOPE Loop CX times while equal Führe Schleife CX-mal aus solange gleich
LOOPNE Loop CX times while not equal Führe Schleife CX-mal aus solange ungleich
LOOPNZ Loop CX times while not zero Führe Schleife CX-mal aus solange nicht 0
LOOPZ Loop CX times while zero Führe Schleife CX-mal aus solange 0
MOV Move Verschiebe
MOVS Move string Verschiebe Zeichenkette
MOVSB Move string bytewise Verschiebe Zeichenkette byteweise
MOVSW Move string wordwise Verschiebe Zeichenkette wortweise
MUL Muliply (unsigned) Multipliziere (vorzeichenlos)
NEG Negate Negiere
NOP No Operation Keine Operation
NOT Invert Invertiere
OR Or Oder
OUT Output to Gebe aus nach
POP Pop Hole
POPF Pop flags Hole Statusbits
PUSH Push Schiebe
PUSHF Push flags Schiebe Statusbits
RCL Rotate through carry left Rotiere durch Übertrag-Statusbit nach links
RCR Rotate through carry right Rotiere durch Übertrag-Statusbit nach rechts
REP Repeat CX times Wiederhole CX-mal
REPE Repeat CX times while equal Wiederhole CX-mal solange gleich
REPNE Repeat CX times while not equal Wiederhole CX-mal solange nicht gleich
REPNZ Repeat CX times while not zero Wiederhole CX-mal solange nicht gleich 0
REPZ Repeat CX times while zero Wiederhole CX-mal solange 0
RET Return from procedure Kehre aus Prozedur zurück
ROL Rotate left Rotiere nach links
ROR Rotate right Rotiere nach rechts
SAHF Store AH into flags Speichere AH in die Statusbits
SAL Shift arithmetic left Schiebe arithmetisch nach links
SAR Shift arithmetic right Schiebe arithmetisch nach rechts
SBB Subtract with borrow Subtrahiere mit Ausborgen
SCAS Scan string Taste Zeichenkette ab
SCASB Scan string bytewise Taste Zeichenkette byteweise ab
SCASW Scan string wordwise Taste Zeichenkette wortweise ab
SHL Shift logical left Schiebe logisch nach links
SHR Shift logical right Schiebe logisch nach rechts
STC Set carry flag Setze Übertrag-Statusbit
STD Set direction flag Setze Richtung-Statusbit
STI Set Interrupt flag Setze Unterbrechung-Statusbit
STOS Store string from AL/AX Speichere Zeichenkette aus AL/AX
STOSB Store string bytewise from AL Speichere Zeichenkette byteweise aus AL
STOSW Store string wordwise from AX Speichere Zeichenkette wortweise aus AX
SUB Subtract Subtrahiere
TEST Test Teste
WAIT Wait for test Warte auf Test-Signal
XCHG Exchange Tausche aus
XLAT Translate byte to AL Setze Byte nach AL um
XOR Exclusive or Exklusiv-Oder