Ściągawka – Rozkazy asemblera mikrokontrolera 8051

Dokument zawiera najczęściej używane instrukcje ASM dla rodziny 8051 wraz z opisami i przykładami.

← Wróć do instrukcji

1. Transfer danych

RozkazSkładniaOpisPrzykład
MOVMOV dst, srcKopiowanie danychMOV A, R0
MOVXMOVX A, @DPTRDostęp do zewnętrznej RAMMOVX A, @DPTR
MOVCMOVC A, @A+DPTROdczyt z pamięci programuMOVC A, @A+DPTR
PUSHPUSH directZapis na stosPUSH 30H
POPPOP directOdczyt ze stosuPOP 30H

2. Arytmetyka

RozkazSkładniaOpisPrzykład
ADDADD A, srcDodawanieADD A, R1
ADDCADDC A, srcDodawanie z przeniesieniemADDC A, 30H
SUBBSUBB A, srcOdejmowanieSUBB A, R2
INCINC dstInkrementacjaINC DPTR
DECDEC dstDekrementacjaDEC R7
MUL ABMUL ABMnożenieMUL AB
DIV ABDIV ABDzielenieDIV AB
DA ADA AKorekcja BCDDA A

3. Operacje logiczne i bitowe

RozkazSkładniaOpisPrzykład
ANLANL dst, srcANDANL A, #0F0H
ORLORL dst, srcORORL P1, #01H
XRLXRL dst, srcXORXRL A, R3
CLRCLR A / bit / CKasuj wartośćCLR P1.0
SETBSETB bit / CUstaw wartośćSETB P3.0
CPLCPL A / bitNegacjaCPL A
RL / RRRL A / RR ARotacjaRL A
RLC / RRCRLC A / RRC ARotacja z carryRLC A
SWAPSWAP AZamiana połówek bajtuSWAP A

4. Skoki i podprogramy

RozkazSkładniaOpisPrzykład
SJMPSJMP labelKrótki skok ±128BSJMP START
AJMPAJMP addr11Skok w obrębie 2KBAJMP MAIN
LJMPLJMP addr16Daleki skokLJMP INIT
JZJZ labelSkok jeśli A==0JZ ZERO
JNZJNZ labelSkok jeśli A!=0JNZ LOOP
CJNECJNE A,#data,labelPorównanie ≠CJNE A,#10,NEXT
DJNZDJNZ Rn,labelDekrementuj i skocz ≠ 0DJNZ R2,LOOP
ACALLACALL labelCall w obrębie 2KBACALL DELAY
LCALLLCALL labelDalekie wywołanieLCALL INIT
RETRETPowrót z podprogramuRET
RETIRETIPowrót z obsługi przerwaniaRETI
NOPNOP1 cykl, brak operacjiNOP

5. Instrukcje bitowe

RozkazSkładniaOpisPrzykład
JBJB bit, labelSkok jeśli bit==1JB P3.2,READ
JNBJNB bit, labelSkok jeśli bit==0JNB P1.0,WAIT
JBCJBC bit,labelSkok jeśli bit==1, potem zerujJBC P2.3,FLAG
← Wróć do instrukcji