like share button
header.self8051
Suche   ||   HOME   ||   Eigenschaften   ||   Befehlsreferenz   ||   Derivate   ||  
 Eigenschaften
 Befehlsreferenz
     Einführung
    > alle Befehle
        ACALL
        ADD
        ADDC
        AJMP
        ANL
        ANL  C
        CJNE
        CLR
        CLR  A
        CPL
        CPL  A
        DA  A
        DEC
        DIV  AB
        DJNZ
        INC
        INC  DPTR
        JB
        JBC
        JC
        JMP
        JNB
        JNC
        JNZ
        JZ
        LCALL
        LJMP
        MOV
        MOV  C
        MOV  DPTR
        MOVC
        MOVX
        MUL  AB
        NOP
        ORL
        ORL  C
        POP
        PUSH
        RET
        RETI
        RL  A
        RLC  A
        RR  A
        RRC  A
        SETB
        SJMP
        SUBB
        SWAP  A
        XCH
        XCHD
        XRL
 Derivate
 Forum
 interessante Links
 Bücher-Shop
 SiteMap
Sie sind hier: SELF8051 || Befehlsreferenz || alle Befehle

alle Befehle



alle Befehle der 8051-Mikrocontroller-Familie
 

> Übersicht: Arithmetische Operationen
> Übersicht: Logische Operationen
> Übersicht: Datentransport-Befehle
> Übersicht: Bitoperationen mit Booleschen Variablen
> Übersicht: Programmverzweigung
> alle Befehle, alphabetisch sortiert

 

 

Übersicht: Arithmetische Operationen

Mnemonik Funktion / Beschreibung Bytes Zyklen Op.code (hex.)
ADD     A,Rr Addiere Register  r  zum Akkumulator 1 1 28 .. 2F
ADD     A,direct Addiere direktes Byte zum Akkumulator 2 1 25
ADD     A,@Ri Addiere indirekt aus RAM zum Akkumulator 1 1 26, 27
ADD     A,#data Addiere unmittelbare Daten zum Akkumulator 2 1 24
ADDC     A,Rr Addiere Register  r und Übertrag zum Akkumulator 1 1 38 .. 3F
ADDC     A,direct Addiere direktes Byte und Übertrag zum Akkumulator 2 1 35
ADDC     A,@Ri Addiere indirekt aus RAM sowie Übertrag zum Akkumulator 1 1 36, 37
ADDC     A,#data Addiere unmittelbare Daten und Übertrag zum Akkumulator 2 1 34
SUBB     A,Rr Subtrahiere Register  r und Übertrag vom Akkumulator  1 1 98 .. 9F
SUBB     A,direct Subtrahiere direktes Byte und Übertrag vom Akkumulator 2 1 95
SUBB     A,@Ri Subtrahiere indirekt aus RAM sowie Übertrag vom Akkumulator 1 1 96, 97
SUBB     A,#data Subtrahiere unmittelbare Daten und Übertrag vom Akkumulator 2 1 94
INC     A Inkrementiere Akkumulator (A = A +1) 1 1 04
INC     Rr Inkrementiere Register  r  (erhöhe um 1) 1 1 08 .. 0F
INC     direct Inkrementiere direktes Byte 2 1 05
INC     @Ri Inkrementiere indirekt RAM-Byte 1 1 06, 07
INC     DPTR Inkrementiere Datenzeiger (DPTR = DPTR +1) 1 2 A3
DEC     A Dekrementiere Akkumulator (A = A -1) 1 1 14
DEC     Rr Dekrementiere Register  r  (verringere um 1) 1 1 18 .. 1F
DEC     direct Dekrementiere direktes Byte 2 1 15
DEC     @Ri Dekrementiere indirekt RAM-Byte 1 1 16, 17
MUL     AB Multipliziere Akkumulator mit Register B 1 4 A4
DIV     AB Dividiere Akkumulator durch Register B 1 4 84
DA     A Dezimalkorrektur des Akkumulators bei Addition 1 1 D4

 

Übersicht: Logische Operationen

Mnemonik Funktion / Beschreibung Bytes Zyklen Op.code (hex.)
ANL     A,Rr Verknüpfe Register  r  durch logisches UND zum Akkumulator 1 1 58 .. 5F
ANL     A,direct Verknüpfe direktes Byte durch logisches UND zum Akkumulator 2 1 55
ANL     A,@Ri Verknüpfe indirekt aus RAM durch logisches UND zum Akkumulator 1 1 56, 57
ANL     A,#data Verknüpfe unmittelbare Daten durch logisches UND zum Akkumulator 2 1 54
ANL     direct,A Verknüpfe Akkumulator durch logisches UND zu direktem Byte 2 1 52
ANL     direct,#data Verknüpfe unmittelbare Daten durch logisches UND zu direktem Byte 3 2 53
ANL     C,bit Verknüpfe direktes Bit durch logisches UND zum Übertragsbit (CY) 2 2 82
ANL     C,/bit Verknüpfe Komplement des direkten Bits durch logisches UND zum Übertragsbit 2 2 0B
ORL     A,Rr Verknüpfe Register  r  durch logisches ODER zum Akkumulator 1 1 48 .. 4F
ORL     A,direct Verknüpfe direktes Byte durch logisches ODER zum Akkumulator 2 1 45
ORL     A,@Ri Verknüpfe indirekt aus RAM durch logisches ODER zum Akkumulator 1 1 46, 47
ORL     A,#data Verknüpfe unmittelbare Daten durch logisches ODER zum Akkumulator 2 1 44
ORL     direct,A Verknüpfe Akkumulator durch logisches ODER zu direktem Byte 2 1 42
ORL     direct,#data Verknüpfe unmittelbare Daten durch logisches ODER zu direktem Byte 3 2 43
ORL     C,bit Verknüpfe direktes Bit durch logisches ODER zum Übertragsbit (CY) 2 2 72
ORL     C,/bit Verknüpfe Komplement des direkten Bits durch logisches ODER zum Übertragsbit 2 2 A0
XRL     A,Rr Verknüpfe Register  r  durch logisches Exklusiv-ODER zum Akkumulator 1 1 68 .. 6F
XRL     A,direct Verknüpfe direktes Byte durch logisches Exklusiv-ODER zum Akkumulator 2 1 65
XRL     A,@Ri Verknüpfe indirekt aus RAM durch logisches Exklusiv-ODER zum Akkumulator 1 1 66, 67
XRL     A,#data Verknüpfe unmittelbare Daten durch logisches Exklusiv-ODER zum Akkumulator 2 1 64
XRL     direct,A Verknüpfe Akkumulator durch logisches Exklusiv-ODER zu direktem Byte 2 1 62
XRL     direct,#data Verknüpfe unmittelbare Daten durch logisches Exklusiv-ODER zu direktem Byte 3 2 63
CLR     A Lösche Akkumulator (= 00H setzen) 1 1 E4
CPL     A Komplementiere Akkumulator (einzelne Bits umdrehen) 1 1 F4
RL     A Schiebe Akkumulator nach links rund 1 1 23
RLC     A Schiebe Akkumulator nach links durch Übertragsbit (CY) rund 1 1 33
RR     A Schiebe Akkumulator nach rechts rund 1 1 03
RRC     A Schiebe Akkumulator nach rechts durch Übertragsbit rund 1 1 13
SWAP     A Vertausche Halbbytes (Nibbles) im Akkumulator 1 1 C4

 

Übersicht: Datentransport-Befehle

      Mnemonik Funktion / Beschreibung Bytes Zyklen Op.code (hex.)

i
n
t

R
A
M

MOV     A,Rr Kopiere Register  r  zum Akkumulator (transportiere, schreibe den Wert) 1 1 E8 .. EF
MOV     A,direct Kopiere direktes Byte zum Akkumulator 2 1 E5
MOV     A,@Ri Kopiere indirekt aus RAM zum Akkumulator 1 1 E6, E7
MOV     A,#data Lade den Akkumulator mit unmittelbaren Daten 2 1 74
MOV     Rr,A Kopiere Akkumulator zum Register  r 1 1 F8 .. FF
MOV     Rr,direct Kopiere direktes Byte zum Register  r 2 2 A8 .. AF
MOV     Rr,#data Lade unmittelbare Daten in das Register  r 2 1 78 .. 7F
MOV     direct,A Kopiere Akkumulator zu direktem Byte 2 1 F5
MOV     direct,Rr Kopiere Register  r  zu direktem Byte 2 2 88 .. 8F
MOV     direct,direct Kopiere direktes Byte zu direktem Byte 3 2 85
MOV     direct,@Ri Kopiere indirekt aus RAM zu direktem Byte 2 2 86, 87
MOV     direct,#data Kopiere unmittelbare Daten zu direktem Byte 3 2 75
MOV     @Ri,A Kopiere Akkumulator indirekt zum RAM 1 1 F6, F7
MOV     @Ri,direct Kopiere direktes Byte indirekt zum RAM 2 2 A6, A7
MOV     @Ri,#data Kopiere unmittelbare Daten indirekt zum RAM 2 1 76, 77
MOV     C,bit Kopiere direktes Bit zum Übertragsbit (CY) 2 1 A2
MOV     bit,C Kopiere Übertragsbit zum direkten Bit 2 2 92
MOV     DPTR,#data16 Lade den Datenzeiger mit einem 16bit-Wert 3 2 90

e
x
t

R
A
M

MOVX     A,@Ri Kopiere indirekt vom externen RAM (8bit-Adresse) zum Akkumulator 1 2 E2, E3
MOVX     A,@DPTR Kopiere indirekt vom externen RAM (16bit-Adresse) zum Akkumulator 1 2 E0
MOVX     @Ri,A Kopiere Akkumulator indirekt zu externem RAM (8bit-Adresse) 1 2 F2, F3
MOVX     @DPTR,A Kopiere Akkumulator indirekt zu externem RAM (16bit-Adresse) 1 2 F0

i
n
t

R
A
M

SWAP     A Vertausche die Bytehälften des Akkumumators 1 2 C4
PUSH     direct Bringe direktes Byte in den Stack 2 2 C0
POP     direct Hole vom Stack und bringe in direktes Byte 2 2 D0
XCH     A,Rr Vertausche Register  r  mit Akkumulator 1 1 C8 .. CF
XCH     A,direct Vertausche direktes Byte mit Akkumulator 2 1 C5
XCH     A,@Ri Vertausche indirekt aus RAM mit Akkumulator 1 1 C6, C7
XCHD     A,@Ri Vertausche unteres Halbbyte (Nibble) indirekt aus RAM mit unterem Halbbyte des Akkumulators 1 1 D6, D7

R
O
M

MOVC     A,@A+DPTR Kopiere Programmbyte relativ zum Datenzeiger (DPTR) zum Akkumulator 1 2 93
MOVC     A,@A+PC Kopiere Programmbyte relativ zum Programmzähler (PC) zum Akkumulator 1 2 83

 

Übersicht: Bitoperationen mit Booleschen Variablen

Mnemonik Funktion / Beschreibung Bytes Zyklen Op.code (hex.)
CLR     C Lösche Übertragsbit (CY = 0) 1 1 C3
CLR     bit Lösche direktes Bit 2 1 C2
SETB     C Setze Übertragsbit (CY = 1) 1 1 D3
SETB     bit Setze direktes Bit 2 1 D2
CPL     C Komplementiere Übertragsbit (aus 0 wird 1, aus 1 wird 0) 1 1 B3
CPL     bit Komplementiere direktes Bit 2 1 B2
ANL     C,bit Verknüpfe direktes Bit durch logisches UND zum Übertragsbit (CY) 2 2 82
ANL     C,/bit Verknüpfe Komplement des direkten Bits durch logisches UND zum Übertragsbit 2 2 B0
ORL     C,bit Verknüpfe direktes Bit durch logisches ODER zum Übertragsbit 2 2 72
ORL     C,/bit Verknüpfe Komplement des direkten Bits durch logisches ODER zum Übertragsbit 2 2 A0
MOV     C,bit Kopiere den Wert des direkten Bits in das Übertragsbit (CY) 2 1 A2
MOV     bit,C Kopiere den Wert des Übertragsbits in das direkte Bit 2 2 92
JC     rel Springe, wenn Übertragsbit gesetzt ist (CY = 1) 2 2 40
JNC     rel Springe, wenn Übertragsbit nicht gesetzt ist (CY = 0) 2 2 50
JB     bit,rel Springe, wenn direktes Bit gesetzt ist (=1) 3 2 20
JNB     bit,rel Springe, wenn direktes Bit nicht gesetzt ist (=0) 3 2 30
JBC     bit,rel Springe, wenn direktes Bit gesetzt ist (=1) und lösche das Bit 3 2 10

 

Übersicht: Programmverzweigung

Mnemonik Funktion / Beschreibung Bytes Zyklen Op.code (hex.)
ACALL     addr11 Unbedingter Aufruf einer Subroutine innerhalb 2 kBytes im Programmspeicher 2 2 11, 31, 51,
71, 91, B1,
D1, F1
LCALL     addr16 Unbedingter Aufruf einer Subroutine innerhalb des 64kByte-Programmspeicher 3 2 12
RET Rücksprung von der Subroutine 1 2 22
RETI Rücksprung von Interrupt 1 2 32
AJMP     addr11 Unbedingter Sprung innerhalb 2 kBytes im Programmspeicher 2 2 01, 21, 41,
61, 81, A1,
C1, E1
LJMP     addr16 Unbedingter Sprung innerhalb des 64kByte-Programmspeicher 3 2 02
SJMP     rel Unbedingter Sprung innerhalb -128 .. +128 im Programmspeicher 2 2 80
JMP     @A+DPTR Springe indirekt relativ zu DPTR 1 2 73
JB     bit,rel Springe, wenn direktes Bit gesetzt ist (=1) 3 2 20
JNB     bit,rel Springe, wenn direktes Bit nicht gesetzt ist (=0) 3 2 30
JBC     bit,rel Springe, wenn direktes Bit gesetzt ist (=1) und lösche das Bit 3 2 10
JC     rel Springe, wenn Übertragsbit gesetzt ist (CY = 1) 2 2 40
JNC     rel Springe, wenn Übertragsbit nicht gesetzt ist (CY = 0) 2 2 50
JZ     rel Springe, wenn Akkumulator Null ist (A = 0) 2 2 60
JNZ     rel Springe, Wenn Akkumulator nicht Null ist (A = 1) 2 2 70
CJNE     A,direct, rel Vergleiche direktes Byte mit Akkumulator und springe, wenn sie ungleich sind 3 2 B5
CJNE     A,#data,rel Vergleiche unmittelbare Daten mit Akkumulator und springe, wenn sie ungleich sind 3 2 B4
CJNE     Rr,#data,rel Vergleiche unmittelbare Daten mit Register  r  und springe, wenn sie ungleich sind 3 2 B8 .. BF
CJNE     @Ri,#data,rel Vergleiche unmittelbare mit indirekten Daten und springe, wenn sie ungleich sind 3 2 B6, B7
DJNZ     Rr,rel Dekrementiere (verringere um 1) Register  r  und springe, wenn es dann ungleich Null ist 3 2 D8 .. DF
DJNZ     direct,rel Dekrementiere direktes Byte und springe, wenn es dann ungleich Null ist 3 2 D5
 NOP keine Operation - mache nichts 1 1 00

 

alle Befehle, alphabetisch sortiert
 
  ACALL     <addr11>
Funktion: Unbedingter Aufruf einer Subroutine innerhalb 2kBytes im Programmspeicher
 
  ADD     A,<Operand>
Funktion: Addieren (ohne Berücksichtigung des Übertragsbit (CY))
 
  ADDC     A,<Operand>
Funktion: Addieren mit Berücksichtigung des Übertragsbit (CY)
 
  AJMP     <addr11>
Funktion:  Unbedingter Sprung innerhalb 2kBytes im Programmspeicher
 
  ANL     <Zielbyte>,<Quellenbyte>
Funktion: Logische UND-Verknüpfung zweier Byte-Variablen
 
  ANL     C,<Quellenbit>
Funktion: Logische UND-Verknüpfung eines Bits mit Übertragsbit (CY)
 
  CJNE     <Operand1>,<Operand2>,<rel>
Funktion: Vergleiche und springe, wenn ungleich
 
  CLR     <bit>
Funktion: Lösche Bit
 
  CLR     A
Funktion: Lösche Akkumulator (A = 0)
 
  CPL     <bit>
Funktion: Komplementiere direktes Bit
 
  CPL     A
Funktion: Komplementiere Akkumulator (A)
 
  DA     A
Funktion: Dezimalkorrektur des Akkumulators (A) nach der Addition zweier gepackter BCD-Ziffern
 
  DEC     <byte>
Funktion: Dekrementieren (um 1 verringern)
 
  DIV     AB
Funktion: Dividiere Akkumulator (A) durch Register B
 
  DJNZ     <byte>,<rel>
Funktion: Dekrementiere und springe, wenn ungleich Null
 
  INC     <byte>
Funktion: Inkrementieren (um 1 erhöhen)
 
  INC     DPTR
Funktion: Inkrementiere Datenzeiger (DPTR = DPTR +1)
 
  JB     <bit>,<rel>
Funktion: Springe, wenn direktes Bit gesetzt ist
 
  JBC     <bit>,<rel>
Funktion: Springe, wenn direktes Bit gesetzt ist und lösche das Bit
 
  JC     <rel>
Funktion: Springe, wenn das Übertragsbit gesetzt ist (CY=1)
 
  JMP     @A+DPTR
Funktion: Springe indirekt relativ zum Datenzeiger (DPTR)
 
  JNB     <bit>,<rel>
Funktion: Springe, wenn direktes Bit nicht gesetzt ist
 
  JNC     <rel>
Funktion: Springe, wenn das Übertragsbit nicht gesetzt ist (CY=0)
 
  JNZ     <rel>
Funktion: Springe, wenn der Akkumulator nicht Null ist (A !=0)
 
  JZ     <rel>
Funktion: Springe, wenn der Akkumulator Null ist (A=0)
 
  LCALL     <addr16>
Funktion: Unbedingter Aufruf einer Subroutine innerhalb des 64kByte-Programmspeichers
 
  LJMP     <addr16>
Funktion: Unbedingter Sprung innerhalb des 64kByte-Programmspeichers
 
  MOV     <Zielbyte>,<Quellenbyte>
Funktion: Kopiere Byte-Variablen
 
  MOV     <Zielbit>,<Quellenbit>
Funktion: Kopiere direktes Bit zum Übertragsbit (CY) oder umgekehrt
 
  MOV     DPTR,#data16
Funktion: Lade Datenzeiger mit 16bit-Konstante
 
  MOVC     A,@A+<Basisregister>
Funktion: Kopiere Programmbyte in den Akkumulator (A)
 
  MOVX     <Zielbyte>,<Quellenbyte>
Funktion: Transportiere vom oder zum externen RAM
 
  MUL     AB
Funktion: Multipliziere Akkumulator (A) mit Register B
 
  NOP
Funktion: Keine Operation - mache nichts
 
  ORL     <Zielbyte>,<Quellenbyte>

Funktion: Logische ODER-Verknüpfung zweier Byte-Variablen

 
  ORL     C,<Quellenbit>
Funktion: Logische ODER-Verknüpfung eines Bits mit Übertragsbit (CY)
 
  POP     <byte>
Funktion: Hole vom Stack und bringe in direktes Byte
 
  PUSH    <byte>
Funktion: Bringe direktes Byte in den Stack
 
  RET
Funktion: Rücksprung von Subroutine
 
  RETI
Funktion: Rücksprung vom Interrupt
 
  RL     A
Funktion: Schiebe Akkumulator (A) nach links rund
 
  RLC     A
Funktion: Schiebe Akkumulator (A) nach links durch das Übertragsbit (CY) rund
 
  RR     A
Funktion: Schiebe Akkumulator (A) nach rechts rund
 
  RRC     A
Funktion: Schiebe Akkumulator (A) nach rechts durch das Übertragsbit (CY) rund
 
  SETB     <bit>
Funktion: Setze Bit
 
  SJMP     <rel>
Funktion:  Unbedingter Sprung innerhalb -128 .. +127 Bytes im Programmspeicher
 
  SUBB     A,<Operand>
Funktion: Subtrahiere (mit Berücksichtigung des Übertragsbit (CY))
 
  SWAP     A
Funktion: Vertausche Halbbytes (Nibbles) im Akkumulator (A)
 
  XCH     A,<Byte>
Funktion: Vertausche variables Byte mit Akkumulator (A)
 
  XCHD     A,@Ri
Funktion: Vertausche unterres Halbbyte indirekt aus RAM mit unterem Halbbyte des Akkumulators (A)
 
  XRL     <Zielbyte>,<Quellenbyte>
Funktion: Logische Exklusiv-ODER-Verknüpfung zweier Byte-Variablen
 

 
 

Seite drucken

Send a Friend

 
 zum Seitenanfang || Impressum   © Autor Dipl. Ing. Sven Pohl

Tipp: rechtssichere Patientenverfügung einfach online erstellen für nur 14,90 €

  

Wertschätzen Sie den Aufwand und den Inhalt mit einer kleinen Spende. Danke.

Sie bestimmen die Höhe, jeder noch so kleine Betrag hilft.
   
HASM - Skyscrapper 1