Popis instrukcí pro 8051
Skočit na navigaci
Skočit na vyhledávání
použito <source lang="asm"> </source>
Popis instrukcí pro 8051
Zkratka Adresa Význam
ACC* 0E0h akumulátor
B* 0F0h B registr
PSW* 0D0h stavový registr
SP 81h ukazatel na zásobník
DPTR 82h,83h ukazatel na data (DPL, DPH)
P0* 80h port 0
P1* 90h port 1
P2* 0A0h port 2
P3* 0B0h port 3
IP* 0B8h řízení priority přerušení
IE* 0A8h povolení/zákaz přerušení
TMOD 89h řízení režimu časovače/čítače
TCON* 88h řízení časovače/čítače
TH0 8Ch vyšší slabika časovače/čítače 0
TL0 8Ah nižší slabika časovače/čítače 0
TH1 8Dh vyšší slabika časovače/čítače 1
TL1 8Bh nižší slabika časovače/čítače 1
SCON* 98h řízení sériového rozhraní
SBUF 99h data sériového rozhraní
PCON 87h řízení spotřeby
---------- Aritmetické operace ------------------------------
ADD A,Rn Přičte obsah registru k akumulátoru
ADD A,direct Přičte obsah adresy k akumulátoru
ADD A,@Ri Přičte obsah nepřímé adresy k akumulátoru
ADD A,#data Přičte přímá data k akumulátoru
ADDC A,Rn Přičte CY a obsah registru k akumulátoru
ADDC A,direct Přičte CY a obsah adresy k akumulátoru
ADDC A,@Ri Přičte CY a obsah nepřímé adresy k akumulátoru
ADDC A,#data Přičte CY a přímá data k akumulátoru
SUBB A,Rn Odečte CY a obsah registru od akumulátoru
SUBB A,direct Odečte CY a obsah adresy od akumulátoru
SUBB A,@Ri Odečte CY a obsah nepřímé adresy od akumulátoru
SUBB A,#data Odečte CY a přímá data od akumulátoru
INC A Zvětší obsah akumulátoru o 1
INC Rn Zvětší obsah registru o 1
INC direct Zvětší obsah adresy o 1
INC @Ri Zvětší obsah nepřímé adresy o 1
DEC A Zmenší obsah akumulátoru o 1
DEC Rn Zmenší obsah registru o 1
DEC direct Zmenší obsah adresy o 1
DEC @Ri Zmenší obsah nepřímé adresy o 1
INC DPTR Zvětší obsah ukazatele dat o 1
MUL AB Vynásobí registry A a B
DIV AB Dělí registr A registrem B
DA A Desítková úprava obsahu akumulátoru
---------- Logické operace ------------------------------
ANL A,Rn Logický součin akumulátoru s obsahem registru
ANL A,direct Logický součin akumulátoru s obsahem adresy
ANL A,@Ri Logický součin akumulátoru s obsahem nepřímé adresy
ANL A,#data Logický součin akumulátoru s přímými daty
ANL direct,A Logický součin obsahu adresy s akumulátorem
ANL direct,#data Logický součin obsahu adresy s přímými daty
ORL A,Rn Logický součet akumulátoru s obsahem registru
ORL A,direct Logický součet akumulátoru s obsahem adresy
ORL A,@Ri Logický součet akumulátoru s obsahem nepřímé adresy
ORL A,#data Logický součet akumulátoru s přímými daty
ORL direct,A Logický součet obsahu adresy s akumulátorem
ORL direct,#data Logický součet obsahu adresy s přímými daty
XRL A,Rn Exclusive-OR akumulátoru s obsahem registru
XRL A,direct Exclusive-OR akumulátoru s obsahem adresy
XRL A,@Ri Exclusive-OR akumulátoru s obsahem nepřímé adresy
XRL A,#data Exclusive-OR akumulátoru s přímými daty
XRL direct,A Exclusive-OR obsahu adresy s akumulátorem
XRL direct,#data Exclusive-OR obsahu adresy s přímými daty
CLR A Nuluje obsah akumulátoru
CPL A Neguje obsah akumulátoru
RL A Rotace obsahu akumulátoru vlevo
RLC A Rotace obsahu akumulátoru a CY vlevo
RR A Rotace obsahu akumulátoru vpravo
RRC A Rotace obsahu akumulátoru a CY vpravo
SWAP A Vymění horní a dolní nibble obsahu akumulátoru
---------- Přesun dat ------------------------------
MOV A,Rn Přesun obsahu registru do akumulátoru
MOV A,direct Přesun obsahu adresy do akumulátoru
MOV A,@Ri Přesun obsahu nepřímé adresy do akumulátoru
MOV A,#data Přesun přímých dat do akumulátoru
MOV Rn,A Přesun obsahu akumulátoru do registru
MOV Rn,direct Přesun obsahu adresy do registru
MOV Rn,#data Přesun obsahu nepřímé adresy do registru
MOV direct,A Přesun obsahu akumulátoru na adresu
MOV direct,Rn Přesun obsahu registru na adresu
MOV dirct1,dirct2 Přesun obsahu adresy na jinou adresu
MOV direct,@Ri Přesun obsahu nepřímé adresy na jinou adresu
MOV direct,#data Přesun přímých dat na adresu
MOV @Ri,A Přesun obsahu akumulátoru na nepřímou adresu
MOV @Ri,direct Přesun obsahu adresy na nepřímou adresu
MOV @Ri,#data Přesun přímých dat na nepřímou adresu
MOV DPTR,#data16 Přesun 16-bitových dat do ukazatele dat
MOVC A,@A+DPTR Přesun kódového bajtu z adresy (A)+(DPTR)do akumulátoru
MOVC A,@A+PC Přesun kódového bajtu z adresy (A)+(PC) do akumulátoru
MOVX A,@Ri Přesun obsahu externí paměti do akumulátoru (8-bit addr)
MOVX A,@DPTR Přesun obsahu externí paměti do akumulátoru (16-bit addr)
MOVX @Ri,A Přesun obsahu akumulátoru do externí paměti (8-bit addr)
MOVX @DPTR,A Přesun obsahu akumulátoru do externí paměti (16-bit addr)
PUSH direct Uložení obsahu adresy na zásobník
POP direct Obnovení obsahu adresy ze zásobníku
XCH A,Rn Výměna obsahu akumulátoru s obsahem registru
XCH A,direct Výměna obsahu akumulátoru s obsahem adresy
XCH A,@Ri Výměna obsahu akumulátoru s obsahem nepřímé adresy
XCHD A,@Ri Výměna nižších nibblů mezi obsahem nepřímé adresy kumulátorem
---------- Booleovské instrukce ------------------------------
CLR C Vynuluje CY
CLR bit Vynuluje bit
SETB C Nastaví CY
SETB bit Nastaví bit
CPL C Neguje CY
CPL bit Neguje bit
ANL C,bit Logický součin CY s bitem
ANL C,/bit Logický součin CY s negací bitu
ORL C,bit Logický součet CY s bitem
ORL C,/bit Logický součin CY s negací bitu
MOV C,bit Přesun bitu do CY
MOV bit,C Přesun CY do bitu
---------- Větvení programu ------------------------------
ACALL addr11 Volání podprogramu uvnitř 2K stránky
LCALL addr16 Dlouhé volání podprogramu
RET Návrat z podprogramu
RETI Návrat z přerušení
AJMP addr11 Skok uvnitř 2K stránky
LJMP addr16 Dlouhý skok
SJMP rel Krátký skok (relativní adresa)
JMP @A+DPTR Skok na adresu určenou (DPTR)+(A)
---------- Podmíněné skoky ------------------------------
JC rel Skok při nastaveném CY
JNC rel Skok při nulovém CY
JB bit,rel Skok při nastaveném bitu
JNB bit,rel Skok při nulovém bitu
JBC bit,rel Skok a nulování při nastaveném bitu
JZ rel Skok při nulovém akumulátoru
JNZ rel Skok při nenulovém akumulátoru
CJNE A,direct,rel Skok při různém obsahu akumulátoru a adresy
CJNE A,#data,rel Skok při různém obsahu akumulátoru a přímých dat
CJNE Rn,#data,rel Skok při různém obsahu registru a přímých dat
CJNE @Ri,#data,rel Skok při různém obsahu nepřímé adresy a přímých dat
DJNZ Rn,rel Zmenší obsah registru a skočí, je-li <> 0
DJNZ direct,rel Zmenší obsah registru adresy a skočí, je-li <> 0
NOP Žádná operace