Lista rozkazów
1
LISTA ROZKAZÓW MIKROKONTROLERÓW '51
Lista rozkazów mikrokontrolerów '51 zawiera 111 rozkazów,
w ród których jest 49 jednobajtowych, 45 dwubajtowych i 17 trzybajtowych. Wyko-
nywane s one w ci gu jednego lub dwóch cykli maszynowych. Wyj tkiem s rozkazy
mno enia i dzielenia, które wykonywane s w ci gu czterech cykli maszynowych.
W opisie rozkazów przyj to nast puj ce oznaczenia:
A
- akumulator,
B
- rejestr B,
Rr
- rejestr roboczy (R0...R7),
Ri
- rejestr roboczy - wska nik danych: i=0,1. (R0 i R1),
DPTR
- wska nik danych,
PC
- licznik rozkazów,
SP
- wska nik stosu,
C (CY)
- wska nik przeniesienia,
AC
- znacznik (flaga) przeniesienia pomocniczego,
OV
- znacznik (flaga) przepełnienia,
ad
- 8-bitowy adres bezpo redni,
n
- 8-bitowy argument bezpo redni,
nn
- 16-bitowy argument bezpo redni,
bit
- 8-bitowy adres bitu w pami ci RAM lub SFR,
adr11
- adres 11-bitowy,
adr16
- adres 16-bitowy,
d
- 8-bitowe przesuni cie o warto ci z przedziału <-128, 127>
(w praktyce d oznacza etykiet lub adres),
@
- w mnemoniku rozkazu poprzedza adres po redni,
#
- w mnemoniku rozkazu poprzedza argument bezpo redni,
x
- w zapisie operacji oznacza zawarto ć rejestru x,
(x)
- w zapisie operacji oznacza zawarto ć pami ci o adresie x,
- miejsce pobrania argumentu i zapisania wyniku operacji,
- miejsce pobrania drugiego argumentu operacji,
- rejestr bazowy,
- wska nik danych,
Lista rozkazów
2
LISTA ROZKAZÓW POGRUPOWANYCH FUNKCJONALNIE
Rozkazy przesyłania danych
Kod rozkazu Mnemonik Operacja Bajty Cykle
(hex)
E8-EF MOV A,Rr 1 1
A ! Rr
E5 MOV A,ad 2 1
A ! (ad)
E6-E7 MOV A,@Ri 1 1
A ! (Ri)
74 MOV A,#n 2 1
A ! n
F8-FF MOV Rr,A 1 1
Rr ! A
A8-AF MOV Rr,ad 2 2
Rr ! (ad)
78-7F MOV Rr,#n 2 1
Rr ! n
F5 MOV ad,A 2 1
(ad) ! A
88-8F MOV ad,Rr 2 2
(ad) ! Rr
85 MOV ad1,ad2 3 2
(ad1) ! (ad2)
86-87 MOV ad,@Ri 2 2
(ad) ! (Ri)
75 MOV ad,#n 3 2
(ad) ! n
F6-F7 MOV @Ri,A 1 1
(Ri) ! A
A6-A7 MOV @Ri,ad 2 2
(Ri) ! (ad)
76-77 MOV @Ri,#n 2 1
(Ri) ! n
90 MOV DPTR,#nn 3 2
DPTR ! nn
93 MOVC A,@A + DPTR 1 2
A ! (A+DPTR)
83 MOVC A,@A + PC 1 2
A ! (A+PC)
E2-E3 MOVX A,@Ri 1 2
A ! (Ri)
F2-F3 MOVX @Ri,A 1 2
(Ri) ! A
E0 MOVX A,@DPTR 1 2
A ! (DPTR)
F0 MOVX @DPTR,A 1 2
(DPTR) ! A
C8-CF XCH A,Rr 1 1
A "! Rr
C5 XCH A,ad 2 1
A "! (ad)
C6-C7 XCH A,@Ri 1 1
A "! (Ri)
D6-D7 XCHD A,@Ri 1 1
A3..0 "! (Ri)3..0
Lista rozkazów
3
Rozkazy operacji arytmetyczno logicznych
Kod rozkazu
Mnemonik Operacja Bajty Cykle
(hex)
28-2F ADD A,Rr 1 1
A ! A + Rr
25 ADD A,ad 2 1
A ! A + (ad)
26-27 ADD A,@Ri 1 1
A ! A + (Ri)
24 ADD A,#n 2 1
A ! A + n
38-3F ADDC A,Rr 1 1
A ! A + Rr + C
35 ADDC A,ad 2 1
A ! A + (ad) + C
36-37 ADDC A,@Ri 1 1
A ! A + (Ri) + C
34 ADDC A,#n 2 1
A ! A + n + C
98-9F SUBB A,Rr 1 1
A ! A Rr C
95 SUBB A,ad 2 1
A ! A (ad) C
96-97 SUBB A,@Ri 1 1
A ! A (Ri) C
94 SUBB A,#n 2 1
A ! A n C
04 INC A 1 1
A ! A + 1
08-0F INC Rr 1 1
Rr ! Rr + 1
05 INC ad 2 1
(ad) ! (ad) + 1
06-07 INC @Ri 1 1
(Ri) ! (Ri) + 1
A3 INC DPTR 1 2
DPTR ! DPTR + 1
14 DEC A 1 1
A ! A 1
18-1F DEC Rr 1 1
Rr ! Rr 1
15 DEC ad 2 1
(ad) ! (ad) 1
16-17 DEC @Ri 1 1
(Ri) ! (Ri) 1
A4 MUL AB 1 4
B.A ! A x B
84 DIV AB 1 4
A ! A div B
D4 DA A Korekcja dziesi tna 1 1
A (nie dotyczy odej-
mowania)
58-5F ANL A,Rr 1 1
A ! A '" Rr
55 ANL A,ad 2 1
A ! A '" (ad)
56-57 ANL A,@Ri 1 1
A ! A '" (Ri)
54 ANL A,#n 2 1
A ! A '" n
52 ANL ad,A 2 1
(ad) ! (ad) '" A
53 ANL ad,#n 3 2
(ad) ! (ad) '" n
48-4F ORL A,Rr 1 1
A ! A (" Rr
45 ORL A,ad 2 1
A !A (" (ad)
46-47 ORL A,@Ri 1 1
A ! A (" (Ri)
44 ORL A,#n 2 1
A ! A (" n
Lista rozkazów
4
42 ORL ad,A 2 1
(ad) ! (ad) '" A
43 ORL ad,#n 3 2
(ad) ! (ad) (" n
68-6F XRL A,Rr 1 1
A ! A " Rr
65 XRL A,ad 2 1
A ! A " (ad)
66-67 XRL A,@Ri 1 1
A ! A " (Ri)
64 XRL A,#n 2 1
A ! A " n
62 XRL ad,A 2 1
(ad) ! (ad) " A
63 XRL ad,#n 3 2
(ad) ! (ad) " n
E4 CLR A 1 1
A ! 0
F4 CPL A 1 1
A ! A
C4 SWAP A 1 1
A3...0 "! A7...4
23 RL A Przesu w lewo 1 1
33 RLC A Przesu w lewo z 1 1
przeniesieniem
03 RR A Przesu w prawo 1 1
13 RRC A Przesu w prawo z 1 1
przeniesieniem
Rozkazy operacji na bitach
Kod rozkazu
Mnemonik Operacja Bajty Cykle
(hex)
C3 CLR C 1 1
CY ! 0
C2 CLR bit 2 1
(bit) ! 0
D3 SETB C 1 1
CY ! 1
D2 SETB bit 2 1
(bit) ! 1
B3 CPL C 1 1
CY ! C
B2 CPL bit 2 1
(bit) ! ( bit )
82 ANL C,bit 2 2
CY ! CY '" (bit)
B0 ANL C,/bit 2 2
CY ! CY '" ( bit )
72 ORL C,bit 2 2
CY ! CY (" (bit)
A0 ORL C,/bit 2 2
CY ! CY (" ( bit )
A2 MOV C,bit 2 1
CY ! (bit)
92 MOV bit,C 2 2
(bit) ! CY
Rozkazy skoków i rozkazy steruj ce
Kod rozkazu
Mnemonik Operacja Bajty Cykle
(hex)
01,21,41,61,8 AJMP adr11 Skocz bezwarunko- 2 2
Lista rozkazów
5
1,A1,C1,E1 wo na stronie
02 LJMP adr16 Skocz bezwarunko- 3 2
wo
80 SJMP d Skocz wzgl dem PC 2 2
73 JMP @A + DPTR Skocz po rednio 1 2
40 JC d Skocz, je li CY=1 2 2
50 JNC d Skocz, je li CY=0 2 2
60 JZ d Skocz, je li A=0 2 2
70 JNZ d 2 2
Skocz, je li A`"0
20 JB bit,d Skocz, je li bit=1 3 2
30 JNB bit,d Skocz, je li bit=0 3 2
10 JBC bit,d Je li bit=1, to zeruj 3 2
go i skocz
B5 CJNE A,ad,d 3 2
Skocz, je li A`"(ad)
B4 CJNE A,#n,d 3 2
Skocz, je li A`"n
B8-BF CJNE Rr,#n,d 3 2
Skocz, je li Rr`"n
B6-B7 CJNE @Ri,#n,d 3 2
Skocz, je li (Ri)`"n
D8-DF DJNZ Rr,d Zmniejsz o 1 i skocz, 2 2
je li Rr`"0
D5 DJNZ ad,d Zmniejsz o 1 i skocz, 3 2
je li (ad)`"0
00 NOP Nie rób nic 1 1
Rozkazy obsługi podprogramów, przerwa i operacji na stosie
Kod rozkazu
Mnemonik Operacja Bajty Cykle
(hex)
11,31,51,71,9 ACALL adr11 Skocz do podprogra- 2 2
1,B1,D1,F1 mu na stronie
12 LCALL adr16 Skocz do podprogra- 3 2
mu
22 RET Powróć z podprogra- 1 2
mu
32 RETI Powróć z przerwania 1 2
C0 PUSH ad Zdejmij ze stosu 2 2
D0 POP ad Wy lij na stos 2 2
Lista rozkazów
6
DOKAADNY OPIS ROZKAZÓW
Rozkazy przesyłania danych
MOV bit,C Zawarto ć znacznika przeniesienia przesyłana jest do
Prze lij flag CY do bitu bitu o podanym adresie bezpo rednim.
(bit) ! CY
MOV C,bit Zawarto ć bitu o podanym adresie bezpo rednim prze-
Prze lij warto ć bitu do flagi syłana jest do znacznika przeniesienia.
przeniesienia
Cy ! (bit)
MOV DPTR,#nn
Do 16-bitowego rejestru DPTR wpisywany jest argu-
Wpisz 16-bitow warto ć do
ment bezpo redni, podany jako drugi i trzeci bajt roz-
wska nika danych
kazu. Pierwszy bajt argumentu wpisywany jest do reje-
stru DPH, a drugi do rejestru DPL.
DPTR ! nn
MOV , O miobitowy argument jest przesyłany do miejsca
Prze lij dane wskazanego przez argument . Mo liwe jest pi tna-
cie kombinacji adresowania argumentów:
MOV A,Rr A ! Rr
MOV A,@Ri A ! (Ri)
MOV A,ad A ! (ad)
MOV A,#n A ! n
MOV Rr,A Rr ! A
MOV Rr,ad Rr ! (ad)
MOV Rr,#n Rr ! n
MOV @Ri,A (Ri) ! A
MOV @Ri,ad (Ri) ! (ad)
MOV @Ri,#n (Ri) ! n
MOV ad,A (ad) ! A
MOV ad,Rr (ad) ! Rr
MOV ad,@Ri (ad) ! (Ri)
MOV ad1,ad2 (ad1) ! (ad2)
MOV ad,#n (ad) ! n
MOVC A, @A +
Do akumulatora przesyłana jest zawarto ć komórki
Prze lij bajt z pami ci pro- pami ci programu o adresie b d cym sum zawarto ci
gramu do akumulatora akumulatora i 16-bitowego rejestru bazowego
.
Lista rozkazów
7
Jako rejestry bazowe mog być u yte wska nik danych
DPTR i licznik rozkazów PC. Je eli rejestrem bazo-
wym jest PC, to adresem bazowym jest adres pierw-
szego bajtu rozkazu nast pnego po MOVC.
MOVC A,@A + DPTR A ! (A + DPTR)
MOVC A,@A + PC A ! (A + PC)
MOVX A,@ Do akumulatora wpisywane s dane z komórki ze-
Prze lij bajt z zewn trznej wn trznej pami ci danych o adresie po rednim zawar-
pami ci danych do akumula- tym we wska niku danych . Wska nikiem danych
tora mo e być rejestr roboczy R0 lub R1 albo rejestr DPTR.
Je eli wska nikiem danych jest rejestr R0 lub R1, to
adres 8-bitowy wysłany jest tylko przez port P0, nato-
miast je eli wska nikiem danych jest DPTR, to 16-
bitowy adres wysyłany jest przez porty P0 i P2 .
MOVX A,@DPTR A ! (DPTR)
MOVX A,@Ri A ! (Ri)
MOVX @,A Do komórki zewn trznej pami ci danych o adresie po-
Prze lij bajt z akumulatora rednim zawartym we wska niku danych wpisy-
do zewn trznej pami ci da- wane s dane z akumulatora. Wska nikiem danych
nych mo e być rejestr roboczy R0 lub R1 albo rejestr DPTR.
Je eli wska nikiem danych jest rejestr R0 lub R1, to
adres 8-bitowy wysłany jest tylko przez port P0, na-
tomiast je eli wska nikiem danych jest DPTR, to
16-bitowy adres wysyłany jest przez porty P0 i P2.
MOVX @DPTR,A (DPTR) ! A
MOVX @Ri,A (Ri) ! A
XCH A, Zawarto ć akumulatora wymieniana jest z zawarto ci
Wymie akumulator z za- wskazanego argumentu. Mo liwe s trzy tryby adre-
warto ci komórki pami ci sowania argumentu:
XCH A,Rr A "! Rr
XCH A,@Ri A "! (Ri)
XCH A,ad A "! (ad)
Lista rozkazów
8
XCHD A,@Ri Zawarto ć mniej znacz cych bitów akumulatora (bity
Wymie półbajty z akumu- 3...0) zostaje wymieniona z zawarto ci mniej znacz -
latora i pami ci cych bitów komórki wewn trznej pami ci danych o
adresie zawartym w rejestrze Ri (R1 lub R0). Bardziej
znacz ce bity akumulatora (bity 7...4) i komórki pa-
mi ci pozostaj bez zmian.
A3...0 "! (Ri)3...0
Rozkazy operacji arytmetyczno logicznych
ADD A, Wskazany argument dodawany jest do akumulatora, do
Dodaj do akumulatora którego wpisywany jest wynik. Znaczniki CY, AC
i OV ustawiane s zgodnie z wynikiem operacji. Mo -
liwe s cztery tryby adresowania argumentu :
ADD A,Rr A ! A + Rr
ADD A,@Ri A ! A + (Ri)
ADD A,ad A ! A + (ad)
ADD A,#n A ! A + n
ADDC A, Do akumulatora dodawany jest wskazany argument
Dodaj do akumulatora z i zawarto ć znacznika przeniesienia, przy czym wynik
przeniesieniem wpisywany jest do akumulatora. Znaczniki CY, AC
i OV ustawiane s zgodnie z wynikiem operacji. Mo -
liwe s cztery tryby adresowania argumentu :
ADDC A,Rr A ! A + Rr + CY
ADDC A,@Ri A! A + (Ri) + CY
ADDC A,ad A! A + (ad) + CY
ADDC A,#n A! A + n + CY
SUBB A, Zawarto ć wskazanego argumentu oraz zawarto ć
Odejmij od akumulatora z znacznika przeniesienia CY odejmowana jest od aku-
po yczk mulatora, przy czym wynik operacji wpisywany jest do
akumulatora i ustawiane s znaczniki CY, AC i OV.
Mo liwe s cztery tryby adresowania argumentu:
SUBB A,Rr A ! A - Rr - CY
SUBB A,@Ri A ! A - (Ri) - CY
Lista rozkazów
9
SUBB A,ad A ! A - (ad) - CY
SUBB A,#n A ! A - n - CY
INC Do wskazanego argumentu dodawana jest jedynka,
Zwi ksz o 1 przy czym stan znaczników nie ulega zmianie. Je eli
rozkaz u yty jest do zmiany stanu wyj cia, to jest od-
czytywana i modyfikowana zawarto ć rejestru wyj-
ciowego portu, a nie stan logiczny ko cówek układu.
Mo liwe s cztery tryby adresowania argumentu:
INC A A ! A + 1
INC Rr Rr ! Rr + 1
INC @Ri (Ri) ! (Ri) + 1
INC ad (ad)! (ad) + 1
INC DPTR Do 16-bitowego rejestru DPTR dodawana jest 1, przy
Zwi ksz o 1 wska nik da- czym stan znaczników nie ulega zmianie.
nych
DPTR ! DPTR + 1
DEC Od wskazanego argumentu odejmowana jest jedynka,
Zmniejsz o 1 przy czym stan znaczników nie ulega zmianie. Je eli
rozkaz u yty jest do zmiany stanu wyj cia, to jest od-
czytywana i modyfikowana zawarto ć rejestru wyj-
ciowego portu, a nie stan logiczny ko cówek układu.
Mo liwe s cztery tryby adresowania argumentu:
DEC A A ! A - 1
DEC Rr Rr ! Rr - 1
DEC @Ri (Ri) ! (Ri) - 1
DEC ad (ad) ! (ad) - 1
MUL AB O miobitowa liczba dwójkowa bez znaku z akumulato-
Pomnó
ra mno ona jest przez 8-bitow liczb bez znaku
z rejestru B. Osiem bardziej znacz cych bitów
16-bitowego wyniku wpisywanych jest do rejestru B,
natomiast 8 mniej znacz cych do akumulatora. Je li
wynik mno enia jest wi kszy od 255, to jest ustawiany
znacznik OV, w przeciwnym razie znacznik ten jest
zerowany. Znacznik CY jest zerowany.
Lista rozkazów
10
B.A ! [A x B]
DIV AB Operacja dokonuje dzielenia o miobitowej liczby bez
Podziel znaku zawartej w akumulatorze przez o miobitow
liczb bez znaku zawart w rejestrze B. Cz ć całkowi-
ta wyniku dzielenia wpisywana jest do akumulatora,
reszta za do rejestru B. Znaczniki CY i OV s zero-
wane. Je li w rejestrze B jest 0, to po wykonaniu roz-
kazu zawarto ć akumulatora i rejestru B jest nieokre-
lona, a znacznik OV = 1.
A ! [A/B]
B ! reszta (A/B)
DA A Wykonywana jest korekcja dziesi tna wyniku dodawa-
Korekcja dziesi tna nia (nie jest dokonywana korekcja wyniku odejmowa-
nia!). Je eli argumenty podane s w formacie BCD, to
wynik przedstawiany jest w postaci dwóch cyfr dzie-
si tnych w tym kodzie. Je li liczba dziesi tna jest
wi ksza od 99, ustawiany jest znacznik przeniesienia
CY. Nie zmienia si stan znaczników AC i OV.
ANL , Wykonywane jest mno enie logiczne wskazanych ar-
Wymnó logicznie gumentów, przy czym wynik operacji wpisywany jest
do miejsca, z którego został pobrany argument .
Nale y pami tać, e je eli rozkaz jest u yty do zmiany
stanu wyj cia, to jest odczytywana i zapisywana zawar-
to ć rejestru wyj ciowego portu, a nie stan logiczny
z ko cówek układu. Mo liwych jest sze ć ró nych try-
bów adresowania argumentów:
ANL A,Rr A ! A '" Rr
ANL A,@Ri A ! A '" (Ri)
ANL A,ad A ! A '" (ad)
ANL A,#n A ! A '" n
ANL ad,A ad ! (ad) '" A
ANL ad,#n ad ! (ad) '" n
ANL C,bit Znacznik przeniesienia C jest zerowany, je eli warto ć
Lista rozkazów
11
Wymnó logicznie przez logiczna bitu o podanym adresie jest równa 0, w prze-
bit ciwnym wypadku nie zmienia si .
CY ! CY '" (bit)
ANL C,/bit Znacznik przeniesienia C jest zerowany, je eli warto ć
Wymnó logicznie przez logiczna bitu o podanym adresie jest równa 1, w prze-
negacj zawarto ci bitu ciwnym wypadku nie zmienia si .
CY ! CY'" ( bit )
ORL , Wykonywana jest suma logiczna wskazanych argu-
Sumuj logicznie mentów, przy czym wynik wpisywany jest do miejsca,
z którego pobrany został argument . Je eli operacja
została u yta do zmiany stanu wyj cia, to zmianie ule-
ga zawarto ć rejestru wyj ciowego portu a nie stan lo-
giczny ko cówek układu. Mo liwych jest sze ć kom-
binacji adresowania argumentów:
ORL A,Rr A ! A (" Rr
ORL A,@Ri A ! A (" Ri
ORL A,ad A ! A (" (ad)
ORL A,#n A ! A (" n
ORL ad,A (ad) ! (ad) (" A
ORL ad,#n (ad) ! (ad) (" n
ORL CY,bit Wykonana zostaje operacja sumowania logicznego fla-
Sumuj logicznie CY z bi- gi przeniesienia CY z zawarto ci bitu o podanym ad-
tem resie bezpo rednim: je li warto ć logiczna bitu równa
jest 1, to flaga CY przyjmuje warto ć 1. W przeciw-
nym razie zawarto ć CY nie zmienia si .
CY ! CY (" (bit)
ORL C,/bit Wykonana zostaje operacja sumowania logicznego fla-
Sumuj logicznie CY z ne- gi przeniesienia CY z negacj zawarto ci bitu
gacj bitu o podanym adresie bezpo rednim: je li warto ć logicz-
na bitu równa jest 0, to flaga CY przyjmuje warto ć 1.
W przeciwnym razie zawarto ć CY nie zmienia si .
CY ! CY (" ( bit )
XRL , Wykonywana jest suma mod 2 wskazanych argumen-
Lista rozkazów
12
Sumuj mod 2 tów, przy czym wynik wpisywany jest do miejsca,
z którego pobrany został argument . Mo liwych
jest sze ć kombinacji trybów adresowania argumen-
tów:
XRL A,Rr A ! A " Rr
XRL A,@Ri A ! A " (Ri)
XRL A,ad A ! A " (ad)
XRL A,#n A ! A " n
XRL ad,A (ad) ! (ad) " A
XRL ad,#n (ad) ! (ad) " n
CLR A Zawarto ć akumulatora zostaje wyzerowana.
Wyzeruj akumulator
A ! 0
CPL A Zawarto ć akumulatora jest negowana bit po bicie.
Negacja akumulatora
A !A
SWAP A Zawarto ć bardziej znacz cych bajtów (MSB) wymie-
Wymie półbajty w akumu- niona zostaje z zawarto ci mniej znacz cych bajtów,
latorze co jest równowa ne z czterokrotnym cyklicznym prze-
suni ciem akumulatora.
A7...4 "! A3...0
RL A Zawarto ć akumulatora przesuwana jest cyklicznie
Przesu akumulator cy- w lewo.
klicznie w lewo
A
7 6 5 4 3 2 1 0
RLC A Zawarto ć akumulatora przesuwana jest cyklicznie
Przesu akumulator cy- w lewo z uwzgl dnieniem flagi CY. Wykonanie tego
klicznie w lewo z CY rozkazu przy zerowej warto ci flagi CY odpowiada
pomno eniu przez 2 liczby zawartej w akumulatorze.
A
CY
7 6 5 4 3 2 1 0
RR A Zawarto ć akumulatora przesuwana jest cyklicznie
Przesu akumulator cy- w prawo.
klicznie w prawo
Lista rozkazów
13
A
7 6 5 4 3 2 1 0
RRC A Zawarto ć akumulatora przesuwana jest cyklicznie
Przesu akumulator cy- w prawo z uwzgl dnieniem flagi CY. Wykonanie tego
klicznie w prawo z CY rozkazu przy zerowej warto ci flagi CY odpowiada
podzieleniu przez 2 liczby zawartej w akumulatorze.
A
CY 7 6 5 4 3 2 1 0
Rozkazy operacji na bitach
CLR bit Zerowany jest bit o podanym adresie bezpo rednim.
Wyzeruj bit
(bit) ! 0
CLR C Zerowany jest znacznik (flaga) przeniesienia.
Wyzeruj znacznik (flag )
C ! 0
przeniesienia
CPL bit Negowany jest bit o podanym adresie bezpo rednim.
Negacja bitu
(bit) ! ( bit )
CPL C Negowany jest znacznik (flaga) przeniesienia.
Negacja CY
CY ! CY
ANL C,bit Znacznik przeniesienia C jest zerowany, je eli warto ć
Pomnó logicznie przez bit. logiczna bitu o podanym adresie jest równa 0, w prze-
ciwnym wypadku nie zmienia si .
CY ! CY '" (bit)
ANL C,/bit Znacznik przeniesienia C jest zerowany, je eli warto ć
Pomnó logicznie przez logiczna bitu o podanym adresie jest równa 1, w prze-
negacj zawarto ci bitu ciwnym wypadku nie zmienia si .
CY ! CY'" ( bit )
ORL , Wykonywana jest suma logiczna wskazanych argu-
Sumuj logicznie mentów, przy czym wynik wpisywany jest do miejsca,
z którego pobrany został argument . Je eli operacja
Lista rozkazów
14
została u yta do zmiany stanu wyj cia, to zmianie ule-
ga zawarto ć rejestru wyj ciowego portu, a nie stan lo-
giczny ko cówek układu. Mo liwych jest sze ć kom-
binacji adresowania argumentów:
ORL A,Rr A ! A (" Rr
ORL A,@Ri A ! A (" Ri
ORL A,ad A ! A (" (ad)
ORL A,#n A ! A (" n
ORL ad,A (ad) ! (ad) (" A
ORL ad,#n (ad) ! (ad) (" n
ORL CY,bit Wykonana zostaje operacja sumowania logicznego fla-
Sumuj logicznie CY z bi- gi przeniesienia CY z zawarto ci bitu o podanym ad-
tem resie bezpo rednim: je li warto ć logiczna bitu równa
jest 1, to flaga CY przyjmuje warto ć 1.
W przeciwnym razie zawarto ć CY nie zmienia si .
CY ! CY (" (bit)
ORL C,/bit Wykonana zostaje operacja sumowania logicznego fla-
Sumuj logicznie CY gi przeniesienia CY z negacj zawarto ci bitu o poda-
z negacj bitu nym adresie bezpo rednim: je li warto ć logiczna bitu
równa jest 0, to flaga CY przyjmuje warto ć 1.
W przeciwnym razie zawarto ć CY nie zmienia si .
CY ! CY (" ( bit )
MOV bit,C Zawarto ć flagi przeniesienia przesyłana jest do bitu o
Prze lij flag CY do bitu podanym adresie bezpo rednim.
(bit) ! CY
MOV C,bit Zawarto ć bitu o podanym adresie bezpo rednim prze-
Prze lij warto ć bitu do fla- syłana jest do flagi przeniesienia.
gi przeniesienia
Cy ! (bit)
Rozkazy skoków i rozkazy steruj ce
AJMP adr11 Zawarto ć licznika rozkazów zwi ksza si o 2. Do bi-
Lista rozkazów
15
Skocz bezwarunkowo na tów 0...10 licznika rozkazów jest wpisywany
stron
11-bitowy adres bezpo redni, przy czym pi ć bardziej
znacz cych bitów licznika rozkazów nie zmienia si .
Skok wykonywany jest pod adres na stronie, na której
jest umieszczony pierwszy bajt rozkazu nast pnego po
AJMP.
PC10...0 ! adr11
CJNE ,,d Wskazane argumenty i s porównywane. Je li
Porównaj argumenty nie s równe, to nast puje skok wzgl dem adresu
i skocz, je li nie s równe pierwszego bajtu rozkazu nast pnego po CJNE. Je eli
warto ć jest mniejsza ni , to znacznik C
przyjmuje warto ć 1, w przeciwnym razie C jest zero-
wany. Mo liwe s cztery tryby adresowania argumen-
tów:
CJNE A,ad,d PC ! PC + 3, je li A = (ad)
PC ! PC + d, je li A `" (ad)
CJNE A,#n,d PC ! PC + 3, je li A = n
PC ! PC + d, je li A `" n
CJNE Rr,#n,d PC ! PC + 3, je li Rr = n
PC ! PC + d, je li Rr `" n
CJNE @Ri,#n,d PC ! PC + 3, je li (Ri) = n
PC ! PC + d, je li (Ri) `" n
DJNZ ,d Od wskazanego argumentu odejmowana jest jedynka.
Zmniejsz o 1 i skocz, je li Je li po tej operacji argument nie jest równy zero, to
nie zero wykonywany jest skok wzgl dem adresu pierwszego
bajtu rozkazu nast pnego po DJNZ, przy czym stan
znaczników nie ulega zmianie. Mo liwe s dwa rodzaje
trybów adresowania:
DJNZ Rr,d Rr ! Rr - 1,
je li Rr `" 0, to PC ! PC + d
je li Rr = 0, to PC ! PC + 2
DJNZ ad,d (ad) ! (ad) - 1,
je li (ad) `" 0, to PC ! PC + d
je li (ad) = 0, to PC ! PC + 2
Lista rozkazów
16
JB bit,d Je eli warto ć bitu o podanym adresie wynosi 1, to na-
Skocz, je li bit=1 st puje skok wzgl dem adresu pierwszego bajtu rozka-
zu nast pnego po JB (do wska nika licznika rozkazów
dodaje si przesuni cie d). Testowany bit nie ulega
zmianie.
PC ! PC + d, je li (bit) = 1
PC ! PC + 3, je li (bit) = 0
JBC bit,d Je li warto ć bitu o wskazanym adresie bezpo rednim
Zeruj bit je li jest ustawio- wynosi 1, to jest on zerowany i wykonywany jest skok
ny i skocz wzgl dem pierwszego bajtu rozkazu nast pnego po
JBC (do zawarto ci licznika rozkazów dodawane jest
przesuni cie d).
PC ! PC + 3, je li (bit) = 0
PC ! PC + d, je li (bit) = 1
JC d Je eli warto ć flagi przeniesienia CY wynosi 1, to wy-
Skocz, je li wyst piło prze- konywany jest skok wzgl dem pierwszego bajtu rozka-
niesienie (je li CY= 1) zu nast pnego po JC, czyli do licznika rozkazów do-
dawane jest przesuni cie d.
PC ! PC + 2, je li CY = 0
PC ! PC + d, je li CY = 1
JMP @A + DPTR Wykonywany jest skok pod adres b d cy sum warto-
Skocz po rednio ci DPTR i warto ci akumulatora, przy czym zawarto ć
akumulatora traktowana jest jako liczba dwójkowa bez
znaku (z zakresu 0...255). Do licznika rozkazów wpi-
sywana jest suma zawarto ci rejestru DPTR
i akumulatora.
PC ! A + DPTR
JNB bit,d Je eli warto ć bitu o podanym adresie bezpo rednim
Skocz, je li bit o podanym jest zerowa, to wykonywany jest skok wzgl dem adre-
adresie jest zerowy su pierwszego bajtu rozkazu nast pnego po JNB (do
zawarto ci licznika rozkazów dodawane jest przesuni -
cie d), przy czym warto ć testowanego bitu nie ulega
Lista rozkazów
17
zmianie.
PC ! PC +3, je li (bit) = 1
PC ! PC + d, je li (bit) = 0
JNC d Je eli warto ć flagi przeniesienia CY wynosi 0, to wy-
Skocz, je li nie wyst piło konywany jest skok wzgl dem adresu pierwszego bajtu
przeniesienie (je li CY=0) rozkazu nast pnego po JNC, czyli do zawarto ci licz-
nika rozkazów dodawane jest przesuni cie d.
PC ! PC + 2, je li CY = 1
PC ! PC + d, je li CY = 0
JNZ d Je eli zawarto ć akumulatora nie jest równa zeru, to
Skocz, je li akumulator nie nast puje skok wzgl dem adresu pierwszego bajtu roz-
jest zerowy kazu nast pnego po JNZ, czyli do licznika rozkazów
dodawane jest przesuni cie d.
PC ! PC + 2, je li A = 0
PC ! PC + d, je li A `" 0
JZ d Je eli zawarto ć akumulatora jest równa 0, to nast puje
Skocz, je li akumulator jest skok wzgl dem adresu pierwszego bajtu rozkazu na-
zerowy st pnego po JZ, czyli do licznika rozkazów dodawane
jest przesuni cie d.
PC ! PC + 2, je li A `" 0
PC ! PC + d, je li A = 0
LJMP adr16
Do licznika rozkazów wpisywany jest 16-bitowy adres
Skocz bezwarunkowo
bezpo redni, pozwalaj c na skok pod dowolny adres
w całej przestrzeni pami ci programu
PC ! adr16
NOP adna operacja nie jest wykonywana.
Rozkaz pusty (nie rób nic)
SJMP d Do zawarto ci licznika rozkazów dodawane jest prze-
skocz bezwarunkowo suni cie d. Skok jest wykonywany wzgl dem adresu
pierwszego bajtu nast pnego rozkazu.
PC ! PC + 2
PC ! PC + d
SETB bit Do bitu o podanym adresie bezpo rednim wpisywana
Lista rozkazów
18
Ustaw bit jest 1.
(bit) ! 1
SETB C Do flagi przeniesienia wpisywana jest 1.
Ustaw flag przeniesienia
CY ! 1
Rozkazy obsługi podprogramów, przerwa i operacji na stosie
Zawarto ć licznika rozkazów PC zwi kszana jest o 2,
ACALL adr11 a nast pnie odkładana na stos. Wska nik stosu jest
Skocz do podprogramu na
zwi kszany o 2, do bitów 0-10 licznika rozkazów jest
stronie
wpisywany 11-bitowy adres bezpo redni, przy czym
pi ć bardziej znacz cych bitów licznika rozkazów nie
zmienia si . Skok do podprogramu wykonuje si na tej
stronie, na której jest umieszczony pierwszy bajt roz-
kazu nast pnego po ACALL.
PC ! PC + 2
SP ! SP + 1
(SP) ! PC7...0
SP ! SP + 1
(SP) ! PC15...8
PC10...0 ! adr11
LCALL adr16 Podczas pobrania rozkazu zawarto ć licznika rozkazów
Wywołaj podprogram jest powi kszana o 3 i ładowana na stos. Zawarto ć
wska nika stosu jest zwi kszana o 2, a do licznika roz-
kazów jest wpisywany 16-bitowy adres bezpo redni,
pozwalaj c na skok do podprogramu pod dowolny ad-
res w pami ci programu.
PC ! PC + 3
SP ! SP + 1
(SP) ! PC7...10
SP ! SP + 1
(SP) ! PC15...8
PC ! adr16
POP ad Do komórki wewn trznej pami ci danych o podanym
Lista rozkazów
19
Zdejmij ze stosu adresie bezpo rednim wpisywane s dane z wierzchoł-
ka stosu, tzn komórki wewn trznej pami ci danych
o adresie zawartym we wska niku stosu SP. Warto ć
SP zmniejszana jest o 1.
(ad) ! SP
SP ! SP - 1
PUSH ad Zawarto ć wska nika stosu zwi kszana jest o 1, a na-
Aaduj na stos st pnie na wierzchołek stosu jest wpisywana zawarto ć
komórki wewn trznej pami ci danych lub rejestru spe-
cjalnego SFR o podanym adresie bezpo rednim.
SP ! SP + 1
(SP) ! (ad)
RET Rozkaz powrotu z podprogramu. Adres powrotu jest
Wróć z podprogramu wpisywany ze stosu do licznika rozkazów, po czym
zawarto ć wska nika stosu zmniejszana jest o dwa.
PC15...8 ! (SP)
SP ! SP - 1
PC7...0 ! (SP)
SP ! SP - 1
RETI Rozkaz powrotu z podprogramu obsługi przerwania.
Wróć z przerwania Adres powrotu jest wpisywany ze stosu do licznika
rozkazów, po czym zawarto ć wska nika stosu zmniej-
szana jest o dwa. Wykonanie tego rozkazu jest dla sys-
temu przerwa sygnałem zako czenia obsługi prze-
rwania, czyli adne zgłoszenie przerwania o takim sa-
mym lub ni szym priorytecie nie b dzie wcze niej
przyj te.
PC15...8 ! (SP)
SP ! SP 1
PC7...0 ! (SP)
SP ! SP 1
Wyszukiwarka
Podobne podstrony:
!!! Lista rozkazów 51 na podstawie KURSU EDW
8051 Lista rozkazow
Skrócona lista rozkazów mikroprocesora 8086
ATMEL lista rozkazow
Wykład 6 Lista rozkazów
Lista rozkazowa
50 51 SPA CONCEPT Nie tylko w filizance
lista 51 100
51 kol (4)
Rozdział 51
więcej podobnych podstron