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
Funk­tion
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
Vergleichen und Manipu­lie­ren
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­tel­len
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
Funk­tion
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
Funk­tion
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
Funk­tion
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
Funk­tion
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

Help Us Go Positive!

We offset our carbon usage with Ecologi. Click the link below to help us!

We offset our carbon footprint via Ecologi
 

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- Grundlagen zu Variablen Cheat Sheet