Show Menu
Cheatography

Befehle Microcontroller 8051 (Auszug) Cheat Sheet by

Transf­erb­efehle

Befehl
Funktion
MOV [Ziel], [Quelle]
Kopie, bezogen auf Register und internen Datenb­ereich
MOVX [Ziel], [Quelle]
Kopiert Daten zwischen Akku und externem Speicher
MOVC [Ziel], [Quelle]
Kopiert ein Byte von Code oder Progra­mms­peicher in den Akku
XCH A, [Operand]
Tauscht die Bytes zwischen Akku und dem Operanden aus.
XCHD A, [Rx]
Tauscht das nieder­wertige Nibble des Akkus mit dem nieder­wer­tigen Nibble des indirekten RAM
CLR [Ziel]
Setzt das angegebene Ziel auf 0
SWAP A
Tauscht das nieder­wertige mit dem höherw­ertigen Nibble des Akkus aus
PUSH [Quelle]
Inkrem­entiert den Stack Pointer und speichert den Wert der Quelle an der entspr­ech­enden Stelle im RAM
POP [Ziel]
Speichert den Wert an der Stelle des SP im angege­benen Ziel

unbedingte Sprung­befehle

Befehl
Funktion
AJMP [Label]
Springt innerhalb des aktuellen 2 KByte Blocks.
Befehl wird in 2 Buszyklen abgear­beitet.
LJMP [Label]
Springt innerhalb des kompletten 64 KByte Blocks.
Befehl wird in 2 Buszyklen abgear­beitet.
SJMP [Label]
Springt um -128 Bytes oder +127 Bytes.
JMP @A+DPTR
Im DPTR kann die Grunda­dresse einer Sprung­tabelle gespei­chert werden. im Akkumu­lator der Offset innerhalb der Tabelle

Bedingte Sprung­befehle

Abhängig von Testbit
Befehl
Funktion
JB [Testbit] [Label]
Springt zum angege­benen Ziel, wenn das Testbit = 1.
JNB [Testbit] [Label]
Springt zum angege­benen Ziel, wenn das Testbit ungleich 1.
JNC [Testbit] [Label]
Springt zum angege­benen Ziel, wenn das Testbit = 1.
Löscht das Testbit!
Abhängig von Akkumu­lat­ori­nhalt
Befehl
Funktion
JZ [Label]
Springt, wenn Akkumu­lat­ori­nhalt = 0
JNZ [Label]
Springt, wenn Akkumu­lat­ori­nhalt ungleich 0
Abhängig von Carry Flag
Befehl
Funktion
JC [Label]
Springt, wenn Carry Flag = 1
JNC [Label]
Springt, wenn Carry Flag ungleich 0
Vergle­ichen und Manipu­lieren
DJNZ [Register], [Label]
Dekrem­entiert das Register und springt, wenn Ergebnis ungleich 0
DJNZ [direkt adr. Speicherstelle] [Label]
Dekrem­entiert die Speich­ers­telle und springt, wenn Ergebnis ungleich 0
Vergleich von 2 Speich­ers­tellen
CJNE A, [direkt adr. RAM-In­halt], [Label]
Vergleicht Akkumu­lat­ori­nhalt mit direktem RAM-Inhalt und springt bei Unglei­chheit
CJNE A, [Konst­ante], [Label]
Vergleicht Akkumu­lat­ori­nhalt mit der Konstanten und springt bei Unglei­chheit.
CJNE [Regis­ter], [Konst­ante], [Label]
Vergleicht Regist­eri­nhalt mit der Konstanten und springt bei Unglei­chheit.
CJNE [@Regi­ster], [Konst­ante], [Label]
Vergleicht indirekten RAM-Inhalt mit der Konstanten und springt bei Unglei­chheit.
 

Bitver­arb­eit­ung­sbe­fehle

Unäre Befehle
Befehl
Funktion
CLR [Ziel]
Löscht das angegebene Bit (setzt es auf 0)
SETB [Ziel]
Setzt das angegebene Bit. (1)
CPL [Ziel]
Komple­men­tiert das angegebene Bit
Befehle für 2 Operanden
Befehl
Funktion
ANL [Ziel] [2. Operand]
Logisches UND; Vergleicht die beiden Operanden und speichert das Ergebnis im Zielop­eranden
ORL [Ziel] [2. Operand]
Logisches ODER; Vergleicht die beiden Operanden und speichert das Ergebnis im Zielop­eranden
MOV [Ziel], [Quelle]
Kopiert das angegebene Bit an die Zielad­resse
Rotationsbefehle
Befehl
Funktion
RL A
Rotati­ons­befehl links ohne Carry
Bit 7 -> Bit 0; Bit 0 -> Bit 1
RLC A
Rotati­ons­befehl links mit Carry
Bit 7 -> Carry; Carry -> Bit 1
RR A
Rotati­ons­befehl rechts ohne Carry
Bit 0 -> Bit 7; Bit 7 -> Bit 6
RRC A
Rotati­ons­befehl rechts mit Carry
Bit 0 -> Carry; Carry -> Bit 7

Arithm­etische Verarb­eit­ung­sbe­fehle

Befehl
Funktion
ADD A, [Operand]
Addiert den Wert des Operanden zum Akkumu­lator ohne Berück­sic­htigung des Carrys
ADDC A, [Operand]
Addiert den Wert des Operanden zum Akkumu­lator mit Berück­sic­htigung des Carrys
SUBB A, [Operand]
Subtra­hiert den Wert des Operanden und den Carry vom Operanden.
Für Subtra­ktion ohne Borrow vorher Carry löschen.
MUL AB
Multip­liziert Wert des Akkumu­lators mit dem Wert des Hilfsa­kku­mul­ators B.
Das High-Byte wird in B gespei­chert, das Low-Byte wird in A gespei­chert.
DIV AB
Dividiert Wert des Akkumu­lators mit dem Wert des Hilfsa­kku­mul­ators B.
Legt das 8-Bit Ergebnis in A und den Rest in B ab. Overflow bei Div/0
INC [Operand]
Inkrem­entiert den angege­benen Operanden
DEC [Operand]
Dekrem­entiert den angege­benen Operanden.
DA A
Korrigiert das Ergebnis der Addition zweier BCD-Za­hlen.

Unterp­rog­ram­mbe­fehle

Sprungbefehle
LCALL [Label]
Ruft Unterp­rog­ramme innerhalb des aktuellen 2 KByte Blocks auf
ACALL [Label]
Ruft Unterp­rog­ramme innerhalb des gesamten 64 KByte Adress­raums auf.
Rückkehrbefehle
RET
Rückkehr aus dem Unterp­rogramm
RETI
Rückker von Interr­upt­-Se­rvi­ce-­Rou­tinen

Sonstige Befehle

Befehl
Funktion
NOP
No Operation. Dauert 1 Taktzy­klus, macht nichts.

Assemb­ler­dir­ektiven

Direktive
Funktion
END
Markiert das Ende des Quellt­extes
ORG
Definiert die genaue Position der auf diese Anweisung folgenden Instru­ktionen im Progra­mms­pei­cher.
$INCLUDE [Datei­name]
Bindet Textda­teien an der Stelle der Anweisung ein
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          More Cheat Sheets by TimSch

          C - printf/scanf Cheat Sheet
          C- Grundlagen zu Variablen Cheat Sheet