Professional Documents
Culture Documents
Chng 4:
I.
45
46
Kieu nh a ch tc thi.
Kieu nh a ch dai.
Kieu nh a ch nh v.
a. Kieu nh a ch dung thanh ghi (Register Addressing) :
Kieu nay thng c dung cho cac lenh x ly d lieu ma d
lieu luon lu trong cac thanh ghi. oi vi vi ieu khien th ma lenh
thuoc kieu nay ch co 1 byte.
V du:
Mov A,R1
; copy noi dung thanh ghi R1 vao thanh
ghi A
b. Kieu nh a ch trc tiep (Direct Addressing) :
Kieu nay thng c dung e truy xuat d lieu cua bat ky o
nh nao trong 256 byte bo nh RAM noi cua vi ieu khien 89C51.
Cac lenh thuoc kieu nay thng co ma lenh 2 byte: byte th
nhat la ma lenh, byte th 2 la a ch cua o nh:
Opcode
Direct Addressing
V du:
Mov A,05H
vao thanh ghi A
47
V du:
Mov A,@R1
trong thanh ghi R1 vao
Immediate Data
V du:
Mov a,#30H
ghi A
e. nh a ch tng oi :
Kieu nh a ch tng oi ch s dung vi nhng lenh nhay. Ni
nhay en co a ch bang a ch ang lu trong thanh ghi PC cong vi
1 gia tr 8 bit [con goi la gia tr lech tng oi: relative offset] co gia
tr t 128 en +127 nen vi ieu khien co the nhay lui [neu so
cong vi so am] va nhay ti [ neu so cong vi so dng]. Lenh
nay co ma lenh 2 byte, byte th 2 chnh la gia tr lech tng oi:
Opcode
Relative Offset
Opcode
48
Addr 7 Addr 0
Addr 15 Addr 8
Addr 7 Addr 0
V du:
MOVX A, @A + DPTR ;lay d lieu trong o nh co a ch
bang DPTR + A
Khi khao sat tap lenh mot cach chi tiet th chc nang cua cac
thanh ghi va cac kieu truy xuat nay se c trnh bay ro rang hn.
III. KHAO SAT TAP LENH VI IEU KHIEN MCS51:
Ly thuyet & thc hanh.
49
50
51
Cu phap :
Mov Rn, A
Ma lenh :
1
1
1
1
1
n2 n1 n0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Chuyen noi dung cua thanh ghi A vao thanh
ghi Rn.
V du :
Gia s A co noi dung 47h , lenh:
Mov R0, A
;ket qua nh sau: (R0) = 47h, (A) =
47h.
6. Lenh chuyen d lieu t o nh trc tiep vao thanh ghi Rn :
Cu phap :
MOV Rn, direct
Ma lenh :
1
0
1
0
1
n2 n1 n0
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Chuyen noi dung cua o nh trong Ram noi
co a ch direct vao thanh ghi Rn.
V du : Gia s R1 co noi dung 47h, o nh co a ch
30h cha noi dung 0afh. Lenh:
Mov R1,30h
Lenh chuyen noi dung o nh co a ch 30h sang thanh ghi
R1.
Ket qua nh sau: (R1) = 0afh, d lieu trong o nh co a
ch 30h khong oi.
7. Lenh chuyen tc thi d lieu 8 bit vao thanh ghi Rn :
Cu phap :
MOV Rn, #data
Ma lenh :
0
1
1
1
1
n2 n1 n0
d7 D6 d5 d4 D3 d2 d1 d0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Nap d lieu 8 bit data (d0 en d7) vao thanh
ghi Rn.
V du:
Gia s muon chuyen d lieu 47h vao thanh
ghi R1:
Mov R1,#47h ;ket qua nh sau: (R1)= 47h.
8. Lenh chuyen d lieu t thanh ghi A vao o nh trc tiep :
Cu phap :
MOV direct, A
Ma lenh :
1
1
1
1
0
1
0
1
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Chuyen noi dung cua thanh ghi A vao o
nh trong Ram noi co a ch direct.
Ly thuyet & thc hanh.
52
53
bang FFH.
12.
14.
Lenh chuyen d lieu t o nh trc tiep vao o nh
gian tiep :
Cu phap :
MOV @Ri, direct
Ma lenh :
1
0
1
0
0
1
1
i
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Chuyen noi dung o nh co a ch direct
vao o nh co a ch cha trong thanh ghi Ri.
15.
54
16.
Lenh chuyen d lieu tc thi 16 bit vao thanh ghi con
tro d lieu :
Cu phap :
MOV dptr, #data16
Ma lenh :
1
0
0
1
0
0
0
0
d1 d1 d1 d1 d1 d1 d9 d8
5
4
3
2
1
0
d7 d6 d5 d4 d3 d2 d1 d0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Nap d lieu data 16 bit vao thanh ghi con
tro d lieu dptr.
17.
vao
18.
vao
19.
Lenh chuyen d lieu t o nh ngoai gian tiep (8 bit
a ch) vao thanh ghi A :
Cu phap :
MOVX A, @Ri
Ma lenh :
1
1
1
0
0
0
1
I
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Y ngha cua lenh : chuyen noi dung o nh ngoai co
a ch cha trong thanh ghi Ri vao thanh ghi A.
55
20.
Lenh chuyen d lieu t o nh ngoai gian tiep (16 bit
a ch) vao thanh ghi A :
Cu phap :
MOVX A,@DPTR
Ma lenh :
1
1
1
0
0
0
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Y ngha cua lenh : chuyen noi dung cua o nh ngoai
co a ch cha trong thanh ghi dptr vao thanh ghi A.
21.
Lenh chuyen d lieu t thanh ghi A vao o nh ngoai
gian tiep (8 bit a ch) :
Cu phap :
MOVX @ Ri, A
Ma lenh :
1
1
1
1
0
0
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Y ngha cua lenh : chuyen noi dung cua thanh ghi A ra o
nh ngoai co a ch cha trong thanh ghi Ri.
22.
Lenh chuyen d lieu t thanh ghi A vao o nh ngoai
gian tiep (16 bit a ch) :
Cu phap :
MOVX @DPTR, A
Ma lenh :
1
1
1
1
0
0
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Y ngha cua lenh : Chuyen noi dung cua thanh ghi A ra o
nh ngoai co a ch cha trong thanh ghi dptr.
23.
24.
tiep
56
25.
26.
ghi A
27.
ghi A
28.
Lenh trao oi 4 bit d lieu gia o nh gian tiep vi
thanh ghi A :
Cu phap :
XCHD A,@Ri
Ma lenh :
1
1
0
1
0
1
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : Trao oi d lieu 4 bit thap cua o
nh co a ch cha trong thanh ghi Ri vi d lieu 4 bit
thap trong thang ghi A.
B. Nhom lenh so hoc :
1. Lenh cong thanh ghi A vi thanh ghi :
Ly thuyet & thc hanh.
57
Cu phap :
ADD A,Rn
Ma lenh :
0
0
1
0
1
n2 n1 n0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : cong noi dung thanh ghi A vi noi
dung thanh ghi Rn, ket qua lu trong thanh ghi A. Lenh co
anh hng en thanh ghi trang thai.
V du 1: Gia s A co noi dung 47h va R0 co noi dung
la 32h, lenh:
ADD A,R0
;ket qua nh sau: (A) = 79h,
(C) = 0.
58
(C) = 0.
92h, (C)=1.
6. Lenh cong noi dung o nh trc tiep vao thanh ghi A co bit
carry :
Cu phap :
ADDC A, direct
Ma lenh :
0
0
1
1
0
1
0
1
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Cong noi dung cua o nh co a direct
noi dung thanh ghi A va bit C, ket qua cha thanh ghi
A. Lenh co anh hng en thanh ghi trang thai.
59
79h, (C) = 0.
(C) = 1.
7. Lenh cong noi dung o nh gian tiep vao thanh ghi A co bit
carry :
Cu phap :
ADDC A,@Ri
Ma lenh :
0
0
1
1
0
1
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : cong noi dung cua o nh co a
ch cha trong thanh ghi Ri vi thanh ghi A vi bit C, ket
qua lu tr trong thanh ghi A. Lenh co anh hng en
thanh ghi trang thai.
V du 1: Gia s A co noi dung 47h, o nh 30h co noi
dung 32h, R0 co noi dung la 30h va c (C) = 0, lenh:
ADDC A,@R0
;ket qua nh sau: (A) = 79h,
(C) = 0.
92h, (C)=1.
8. Lenh cong d lieu 8 bit vao thanh ghi A co bit carry :
Cu phap :
ADDC A, #data
Ma lenh :
0
0
1
1
0
1
0
0
d7 d6 d5 d4 d3 d2 d1 d0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may.
Chc nang: Cong d lieu data 8 bit (d0 en d7) vi noi
dung thanh ghi A va bit C, ket qua lu tr trong A. Lenh
co anh hng en thanh ghi trang thai.
9. Lenh tr thanh ghi A vi thanh ghi :
Cu phap :
SUBB A,Rn
Ma lenh :
1
0
0
1
1
n2 n1 n0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : Tr noi dung thanh ghi A vi noi dung
thanh ghi Rn va tr cho c Carry, ket qua lu trong thanh
ghi A. Lenh co anh hng en thanh ghi trang thai.
60
(C)=0.
(C) =0.
10.
tiep
11.
tiep
12.
Lenh tr noi dung thanh ghi A cho d lieu tc thi 8
bit :
Cu phap :
SUBB A, #data (subbtract: tr)
Ma lenh :
1
0
0
1
0
1
0
0
d7 d6 d5 d4 d3 d2 D1 d0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Tr noi dung thanh ghi A cho d lieu 8 bit d0
en d7 va tr cho c carry, ket qua lu tr trong A.
Lenh co anh hng en thanh ghi trang thai.
13.
61
(increment: tang
14.
0
0
0
0
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : Tang noi dung thanh ghi A len 1.
V du 1:
Gia s A co noi dung 35h, lenh:
INC A
;ket qua nh sau: (A) = 36h.
V du 2:
Gia s A co noi dung FFh, lenh:
INC A
;ket qua nh sau: (A) = 00h.
15.
16.
(30h) = 36h
17.
18.
62
Cu phap :
DEC A
Ma lenh :
0
0
0
1
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : Giam noi dung thanh ghi A xuong 1.
V du 1:
Gia s A co noi dung 35h, lenh:
DEC A
;ket qua nh sau: (A) =
34h.
V du 2:
FFh.
19.
20.
21.
22.
63
1
0
1
0
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
4 chu ky may
Y ngha cua lenh : Noi dung cua thanh ghi A nhan vi
noi dung cua thanh ghi B, ket qua la mot d lieu 16
bit, 8 bit thap lu tr trong thanh ghi A, 8 bit cao lu tr
trong thanh ghi B.
V du :
Gia s thanh ghi A co noi dung la 50h,thanh ghi B co noi
dung 0A0h , lenh:
MUL AB
;
Ket qua nh sau: 50h*A0h:= 3200h th (A) = 00 va (B) = 32h.
23.
24.
64
Mov A ,#10110011b
Mov R0,#11001011b
Anl a,r0
65
Anl 10h,a
lu 10110000b.
6. Lenh and noi dung o nh trc tiep vi d lieu tc thi 8
bit :
Cu phap :
ANL direct, #data
Ma lenh :
0
1
0
1
0
0
1
1
a7 a6 a5 a4 a3 A2 a1 a0
d7 d6 d5 d4 d3 d2 d1 d0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Noi dung cua o nh co a ch direct and
vi 8 bit d lieu 8 bit, ket qua lu tr vao o nh.
7. Lenh or thanh ghi A vi thanh ghi :
Cu phap :
ORL A, Rn
Ma lenh :
0
1
0
0
1
n2 n1 n0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A or vi noi dung thanh
ghi Rn, ket qua lu tr trong thanh ghi A.
V du :
Mov A ,#10110011b
Mov R0,#11001011b
Orl a,r0
;ket qua (A) = 11111011b.
8. Lenh or thanh ghi A vi noi dung o nh trc tiep :
Cu phap :
ORL A, direct
Ma lenh :
0
1
0
0
0
1
0
1
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A or vi noi dung cua o
nh co a ch direct, ket qua cha thanh ghi A.
9. Lenh or thanh ghi A vi noi dung o nh gian tiep :
Cu phap :
ORL A, @Ri
Ma lenh :
0
1
0
0
0
1
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A or vi o nh co a
ch cha trong thanh ghi Ri, ket qua lu tr trong thanh
ghi A.
10.
66
11.
A:
Cu phap :
ORL A, #data
Ma lenh :
0
1
0
0
0
1
0
0
d7 d6 d5 d4 d3 d2 d1 d0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung cua thanh ghi A or vi d lieu 8
bit data (t d0 en d7), ket qua lu tr trong thanh ghi A.
Lenh or noi dung o nh trc tiep vi noi dung thanh ghi
Cu phap :
ORL direct, A
Ma lenh :
0
1
0
0
0
0
1
0
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung o nh co a ch direct or vi
noi dung cua thanh ghi A, ket qua lu tr trong o nh
co a ch direct.
12.
8 bit
13.
14.
67
15.
16.
Chc nang: Noi dung thanh ghi A ex-or vi noi dung cua
o nh co a ch direct, ket qua cha thanh ghi A.
Lenh ex-or thanh ghi A vi noi dung o nh gian tiep :
Cu phap :
XRL A, @Ri
Ma lenh :
0
1
1
0
0
1
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A ex-or vi o nh co
a ch cha trong thanh ghi Ri, ket qua lu tr trong
thanh ghi A.
Lenh ex-or thanh ghi A vi d lieu tc thi 8 bit :
Cu phap :
XRL A, #data
Ma lenh :
0
1
1
0
0
1
0
0
d7 d6 d5 d4 d3 d2 d1 d0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung cua thanh ghi A ex-or vi d lieu
datat, ket qua lu tr trong thanh ghi A.
17.
ghi A
18.
thi
19.
68
(clear a)
0
20.
21.
A7
A6
A5
A4
A3
A2
A7
A1
A0
A7
V du :
Mov A,#1011 0011b
;
RL A
;
Ga tr ban au cua C ta khong can quan tam en
ket qua sau khi xoay th (A) = 0110 0111b va c (C) = 1 la do bit A7 bang
1 chuyen sang.
RL A
ket qua sau khi xoay th (A) = 11001110b va c (C) = 0 la do bit A7 bang
0 chuyen sang.
22.
69
A7
A6
A5
A4
A3
A2
A7
A1
A0
A7
V du 1:
gia s cho c C = 0 trc khi thc hien lenh
Mov A ,#10110011b
RLC A
;ket qua (A) = 01100110b va c (C)
V du 2:
Setb c
;lam c C bang 1
Mov A,#00000000b
RLC A
;ket qua (A) = 0000 0001b va c
=1
(C) = 0
Setb c
RLC A
;lam c C bang 1
;ket qua (A) = 0000 0011b va c
.
Setb c
RLC A
;lam c C bang 1
;ket qua (A) = 0111 1111b va c
Setb c
RLC A
Setb c
RLC A
clr c
RLC A
;lam c C bang 0
;ket qua (A) = 1111 1110b va c
(C) = 0
(C) = 0
(C) = 0
(C) = 1
;xxxx
(C) = 1
23.
24.
70
25.
1
1
1
0
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A va bit C c xoay phai
1 bit ngc vi lenh RLC A.
Lenh xoay thanh ghi A 4 bit :
Cu phap :
SWAP A
Ma lenh :
1
1
0
1
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: hoan chuyen 4 bit thap va 4 bit cao trong
thanh ghi A.
V du :
Mov A,#3EH
Swap A
;ket qua (A) = E3H
71
72
73
11.
12.
74
13.
14.
15.
16.
r7 r6 r5 r4 r3 r2 r1 r0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: neu bit carry C = 0 th vi ieu khien se nhay
en thc hien chng trnh tai a ch rel.
Lenh nhay neu bit = 1 :
Cu phap :
JB bit, rel
Ma lenh :
0
0
1
0
0
0
0
0
b7 b6 b5 b4 b3 b2 b1 b0
r7 r6 r5 r4 r3 r2 r1 r0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: neu noi dung cua bit co a ch bit [c
xac nh bi byte th 2] bang 1 th vi ieu khien se
nhay en thc hien chng trnh tai a ch rel.
Lenh nhay neu bit = 0 :
Cu phap :
JNB bit, rel
Ma lenh :
0
0
1
1
0
0
0
0
b7 b6 b5 b4 b3 b2 b1 b0
r7 r6 r5 r4 r3 r2 r1 r0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: neu noi dung cua bit co a ch bit [c
xac nh bi byte th 2] bang 0 th vi ieu khien se
nhay en thc hien chng trnh tai a ch bang rel.
Lenh nhay neu bit = 1 va xoa bit :
Cu phap :
JBC bit, rel
Ma lenh :
0
0
0
1
0
0
0
0
b7 b6 b5 b4 b3 b2 b1 b0
r7 r6 r5 r4 r3 r2 r1 r0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: neu bit c xac nh bi byte th 2 bang
1 th bit nay c xoa ve 0 va vi ieu khien se nhay
en thc hien chng trnh tai a ch rel.
Lenh so sanh o nh trc tiep vi noi dung thanh ghi A :
Cu phap :
CJNE A, direct, rel (compare jump if not
equal)
Ma lenh :
1
0
1
1
0
1
0
0
a7 a6 a5 a4 a3 a2 a1 a0
r7 r6 r5 r4 r3 r2 r1 r0
75
17.
A:
18.
76
19.
20.
21.
22.
NOP
77
Ma lenh :
0
0
0
0
0
0
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung cua PC tang len 1 va tiep tuc
thc hien lenh tiep theo.
78
6. Lenh bu bit :
Cu phap :
CPL bit
Ma lenh :
1
0
1
1
0
0
1
0
b7 b6 b5 b4 b3 b2 b1 b0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Bu bit co a ch xac nh bi byte th 2,
neu trc o bit nay = 0 th ket qua bit nay bang 1
va ngc lai neu trc o bang 1 th no se bang 0.
7. Lenh and bit carry vi bit :
Cu phap :
ANL C, bit
Ma lenh :
1
0
0
0
0
0
1
0
b7 b6 b5 b4 b3 b2 b1 b0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Bit C and vi bit co a ch c xac nh
bi byte th 2, ket qua cha bit C.
8. Lenh and bit carry vi bu bit :
Cu phap :
ANL C, /bit
Ma lenh :
1
0
1
1
0
0
0
0
b7 b6 b5 b4 b3 b2 b1 b0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Bit C and vi bu bit co a ch c xac
nh bi byte th 2, ket qua cha bit C.
9. Lenh or bit carry vi bit :
Cu phap :
ORL C, bit
Ma lenh :
0
1
1
1
0
0
1
0
b7 b6 b5 b4 b3 b2 b1 b0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Bit C or vi bit co a ch c xac nh
bi byte th 2, ket qua cha bit C.
10.
bu bit :
C, /bit
0
b3
79
0
b2
0
b1
0
b0
11.
12.
0
b0
gian thc hien lenh la
xac nh bi byte th
code
D2 D1 D0
n2 n1 n0
1 0 1
a2 a1 a0
80
Hexa
decimal
E8 EF
E5
Byte 2
Explanation
(A) (Rn)
(A) (direct)
MOV A,@Ri
MOV A, #data
MOV Rn, A
MOV Rn,direct
MOV Rn #data
MOV direct,A
MOV direct,Rn
MOV
direct,direct
MOV direct,@Ri
MOV
direct,#data
MOV @Ri, A
MOV @Ri,
direct
MOV @Ri,
#data
MOV
dptr,#data16
1
0
d7
1
1
a7
0
d7
1
a7
1
a7
1
a7
a7
1
a7
0
a7
d7
1
1
a7
0
d7
1
d15
d7
1
1
d6
1
0
a6
1
d6
1
a6
0
a6
0
a6
a6
0
a6
1
a6
d6
1
0
a6
1
d6
0
d14
d6
1
1
d5
1
1
a5
1
d5
1
a5
0
a5
0
a5
a5
0
a5
1
a5
d5
1
1
a5
1
d5
0
d13
d5
0 0 1 1 I
1 0 1 0 0
d4 d3 d2 d1 d0
1 1 n2 n1 n0
0 1 n2 n1 n0
a4 a3 a2 a1 a0
1 1 n2 n1 n0
d4 d3 d2 d1 d0
1 0 1 0 1
a4 a3 a2 a1 a0
0 1 n2 n1 n0
a4 a3 a2 a1 a0
0 0 1 0 1
a4 a3 a2 a1 a0
a4 a3 a2 a1 a0
0 0 1 1 I
a4 a3 a2 a1 a0
1 0 1 0 1
a4 a3 a2 a1 a0
d4 d3 d2 d1 d0
1 0 1 1 I
0 0 1 1 I
a4 a3 a2 a1 a0
1 0 1 1 i
d4 d3 d2 d1 d0
1 0 0 0 0
d12 d11 d10 d9 d8
d4 d3 d2 d1 d0
E6 E7
74
Byte 2
F8 FF
A8 AF
Byte 2
78 7F
Byte 2
F5
Byte 2
88 8F
Byte 2
85
Byte 2
Byte 3
86 87
Byte 2
75
Byte 2
Byte 3
F6 F7
A6 A7
Byte 2
76 77
Byte 2
90
Byte 2
Byte 3
MOVC A, @A +
dptr
MOVC A, @A +
PC
MOVX A, @Ri
1 0 0 1 0 0 1
93
1 0 0 0 0 0 1
83
1 1 1 0 0 0 1
E2 E3
MOVX A,@dptr
1 1 1 0 0 0 0
E0
MOVX @Ri, A
MOVX @ dptr,
A
PUSH direct
1 1 1 1 0 0 1
1 1 1 1 0 0 0
i
0
F2 F3
F0
1
a7
1
a7
1
1
a7
1
1
0
a0
0
a0
n0
1
a0
i
i
C0
Byte 2
D0
Byte 2
POP direct
XCH A, Rn
XCH A, direct
XCH A, @Ri
XCHD A, @Ri
1
a6
1
a6
1
1
a6
1
1
0
a5
0
a5
0
0
a5
0
0
0
a4
1
a4
0
0
a4
0
1
0
a3
0
a3
1
0
a3
0
0
0
a2
0
a2
n2
1
a2
1
1
0
a1
0
a1
n1
0
a1
1
1
81
C8 CF
C5
Byte 2
C6 C7
D6 D7
(A) ((Ri))
(A) #data
(Rn) (A)
(Rn) (direct)
(Rn) #data
(direct) (A)
(direct) (Rn)
(direct) (direct)
(source)
(destination)
(direct) ((Ri))
(direct) #data
((Ri)) (A)
((Ri)) (direct)
((Ri)) (data)
(dptr) #data 15-0
(dpH) #data 15-8
(dpL) #data 7-0
(A) ((A) + (dptr))
External Ram
(A) ((A) + (PC))
External Ram
(A)((Ri))
External Ram
(A)((dptr))
External Ram
((Ri)) (A)
((dptr)) (A)
(SP) (SP) + 1
((SP)) (direct)
(direct) ((SP))
(SP)
(SP) - 1
(A) (Rn)
(A) (direct)
(A) ((Ri))
(A3-0) ((Ri3-0))
Explanation
(A) (A) + (Rn)
(A) (A) + (direct)
(A) (A) + ((Ri))
(A) (A) + #data
(A)
(A)
(C)
(A)
(A)
(C)
(A)
(A)
(C)
(A)
(A)
(A) (A) + 1
(Rn) (Rn) + 1
(direct) (direct) + 1
((Ri)) ((Ri)) + 1
(dptr) (dptr) + 1
(A) (A) - 1
(Rn) (Rn) - 1
(direct) (direct) - 1
((Ri)) ((Ri)) - 1
(B15-8),(A7-0) (A)(B)
(A15-8),(B7-0) (A)/(B)
Content of A la BCD
Logic Instructions.
Mnemonic
ANL A,Rn
ANL A,direct
ANL A,@Ri
ANL A,#data
ANL direct, A
Instruction
D7 D6 D5 D4 D3
0 1 0 1 1
0 1 0 1 0
a7 a6 a5 a4 a3
0 1 0 1 0
0 1 0 1 0
d7 d6 d5 d4 d3
0 1 0 1 0
code
D2 D1 D0
n2 n1 n0
1 0 1
a2 a1 a0
1 1 I
1 0 0
d2 d1 d 0
0 1 0
82
Hexa
Decimal
58 5F
55
Byte 2
56 57
54
Byte 2
52
Explanation
(A) (A) AND (Rn)
(A) (A) AND (direct)
(A) (A) AND ((Ri))
(A) (A) AND #data
(direct)(direct) and
ANL direct,
#data
ORL A, Rn
ORL A, direct
ORL A, @Ri
ORL A, #data
ORL direct, A
ORL direct,
#data
XRL A, Rn
XRL A, direct
XRL A, @Ri
XRL A, #data
XRL direct, A
XRL direct,
#data
CLR A
CPL A
a7
0
a7
d7
0
0
a7
0
0
d7
0
a7
0
a7
d7
0
0
a7
0
0
d7
0
a7
0
a7
d7
1
1
a6
1
a6
d6
1
1
a6
1
1
d6
1
a6
1
a6
d6
1
1
a6
1
1
d6
1
a6
1
a6
d6
1
1
a5
0
a5
d5
0
0
a5
0
0
d5
0
a5
0
a5
d5
1
1
a5
1
1
d5
1
a5
1
a5
d5
1
1
a4
1
a4
d4
0
0
a4
0
0
d4
0
a4
0
a4
d4
0
0
a4
0
0
d4
0
a4
0
a4
d4
0
1
a3
0
a3
d3
1
0
a3
0
0
d3
0
a3
0
a3
d3
1
0
a3
0
0
d3
0
a3
0
a3
d3
0
0
a2
0
a2
d2
n2
1
a2
1
1
d2
0
a2
0
a2
d2
n2
1
a2
1
1
d2
0
a2
0
a2
d2
1
1
a1
1
a1
d1
n1
0
a1
1
0
d1
1
a1
1
a1
d1
n1
0
a1
1
0
d1
1
a1
1
a1
d1
0
0
a0
1
a0
d0
n0
1
a0
I
0
d0
0
a0
1
a0
d0
n0
1
a0
I
0
d0
0
a0
1
a0
d0
0
0
Byte 2
53
Byte 2
Byte 3
48 4F
45
Byte 2
46 47
44
Byte 2
42
Byte 2
43
Byte 2
Byte 3
68 6F
65
Byte 2
66 67
64
Byte 2
62
Byte 2
63
Byte 2
Byte 3
E4
F4
RL A
0 0 1 0 0 0 1 1
23
RLC A
0 0 1 1 0 0 1 1
33
RR A
0 0 0 0 0 0 1 1
03
RRC A
0 0 0 1 0 0 1 1
13
SWAP A
1 1 0 0 0
C4
1 0 0
83
Hexa
decimal
(A)
(direct)(direct) and
#data
(A) (A) OR (Rn)
(A) (A) OR (direct)
(A) (A) OR ((Ri))
(A) (A) OR #data
(direct)(direct) OR
(A)
(direct)(direct) OR
#data
(A) (A) XOR (Rn)
(A) (A) XOR (direct)
(A) (A) XOR ((Ri))
(A) (A) XOR #data
(direct)(direct) XOR
(A)
(direct)(direct) XOR
#data
(A) 0
(A) ( A) lenh not
hay bu 1
The contents of the
accumulator are
rotated left by one bit.
The contents of the
accumulator and carry
are rotated left by one
bit.
The contents of the
accumulator are
rotated right by one
bit.
The contents of the
accumulator and carry
are rotated right by
one bit.
(A3-0) (A7-4)
Explanation
ACALL addr 11
A10 a9 a8 1 0 0 0 1
a7 a6 a5 a4 a3 a2 a1 a0
Byte 1
Byte 2
LCALL addr 16
0 0 0 1 0 0 1 0
a15 a14 a13 a12 a11 a10 a9 a8
a7 a6 a5 a4 a3 a2 a1 a0
12
Byte 2
Byte 3
RET
0 0 1 0 0
0 1 0
22
RETI
0 0 1 1 0
0 1 0
32
AJMP addr 11
a10 a9 a8 0 0 0 0 1
a7 a6 a5 a4 a3 a2 a1 a0
0 0 0 0 0 0 1 0
a15 a14 a13 a12 a11 a10 a9 a8
a7 a6 a5 a4 a3 a2 a1 a0
1 0 0 0 0 0 0 0
r7 r6 r5 r4 r3 r2 r1 r0
0 1 1 1 0 0 1 1
0 1 1 0 0 0 0 0
r7 r6 r5 r4 r3 r2 r1 r0
Byte
Byte
02
Byte
Byte
80
Byte
73
60
Byte
JNZ rel
0 1 1 1 0 0 0 0
r7 r6 r5 r4 r3 r2 r1 r0
70
Byte 2
JC rel
0 1 0 0 0 0 0 0
r7 r6 r5 r4 r3 r2 r1 r0
40
Byte 2
JNC rel
0 1 0 1 0 0 0 0
r7 r6 r5 r4 r3 r2 r1 r0
50
Byte 2
JB bit, rel
0
b7
r7
0
b7
r7
20
Byte
Byte
30
Byte
Byte
LJMP addr 16
SJMP rel
JMP @A + dptr
JZ rel
0
b6
r6
0
b6
r6
1
b5
r5
1
b5
r5
0
b4
r4
1
b4
r4
0
b3
r3
0
b3
r3
0
b2
r2
0
b2
r2
0
b1
r1
0
b1
r1
84
0
b0
r0
0
b0
r0
1
2
2
3
2
2
3
2
3
(PC) (PC) + 2
(SP) (SP) + 1
((SP)) (PC7-0)
(SP) (SP) + 1
((SP)) (PC15-8)
(PC) page address
(PC) (PC) + 3
(SP) (SP) + 1
((SP)) (PC7-0)
(SP) (SP) + 1
((SP)) (PC15-8)
(PC) addr15-0
(PC15-8) ((SP))
(SP) (SP) - 1
(PC7-0) ((SP))
(SP) (SP) - 1
(PC15-8) ((SP))
(SP) (SP) - 1
(PC7-0) ((SP))
(SP) (SP) - 1
(PC) (PC) + 2
(PC) page address
(PC) addr15-0
(PC) (PC) + 2
(PC) (PC) + rel
(PC) (A) + (dptr)
(PC) (PC) + 2
IF (A) = 0 then
(PC)(PC) + rel
(PC) (PC) + 2
IF (A) 0 then (PC)(PC)
+ rel
(PC) (PC) + 2
IF (C) = 1 then
(PC)(PC) + rel
(PC) (PC) + 2
IF (C) = 0 then
(PC)(PC) + rel
(PC) (PC) + 3
IF (bit) =1 then
(PC)(PC) + rel
(PC) (PC) + 3
IF (bit) = 0 then
(PC)(PC) + rel
0 0 0 1 0 0 0 0
b7 b6 b5 b4 b3 b2 b1 b0
r7 r6 r5 r4 r3 r2 r1 r0
10
Byte 2
Byte 3
CJNE A, direct,
rel
1 0 1 1 0 1 0 1
a7 a6 a5 a4 a3 a2 a1 a0
r7 r6 r5 r4 r3 r2 r1 r0
B5
Byte 2
Byte 3
CJNE A, #data,
rel
1 0 1 1 0 1 0 0
d7 d6 d5 d4 d3 d2 d1 d0
r7 r6 r5 r4 r3 r2 r1 r0
B4
Byte 2
Byte 3
CJNE Rn,#data,
rel
1 0 1 1 0 n2 n 1 n 0
d7 d6 d5 d4 d3 d2 d1 d0
r7 r6 r5 r4 r3 r2 r1 r0
B8 BF
Byte 2
Byte 3
CJNE @Ri,#data,
rel
1 0 1 1 0 1 1 0
d7 d6 d5 d4 d3 d2 d1 d0
r7 r6 r5 r4 r3 r2 r1 r0
B6 B7
Byte 2
Byte 3
1 1 0 1 1 n2 n 1 n 0
r7 r6 r5 r4 r3 r2 r1 r0
D8 DF
Byte 2
1 1 0 1 0 1 0 1
a7 a6 a5 a4 a3 a2 a1 a0
r7 r6 r5 r4 r3 r2 r1 r0
D5
Byte 2
Byte 3
0 0 0 0 0 0 0 0
00
NOP
(PC) (PC) + 3
IF (bit)= 1 then (bit) 0
(PC)(PC) + rel
(PC) (PC) + 3
IF (direct) (A) then
(C)0 and
(PC)(PC) + rel
IF (direct) (A) then
(C)1 and
(PC)(PC) + rel
(PC) (PC) + 3
IF #data (A) then
(C)0 and
(PC)(PC) + rel
IF #data (A) then
(C)1 and
(PC)(PC) + rel
(PC) (PC) + 3
IF #data (Rn) then
(C)0 and
(PC)(PC) + rel
IF #data (Rn) then
(C)1 and
(PC)(PC) + rel
(PC) (PC) + 3
IF #data ((Ri)) then
(C)0 and
(PC)(PC) + rel
IF #data ((Ri)) then
(C)1 and
(PC)(PC) + rel
(PC) (PC) + 2
(Rn) (Rn) 1
IF ((Rn)) 0 then
(PC)(PC) + rel
(PC) (PC) + 3
(direct) (direct) 1
IF (direct) 0 then
(PC)(PC) + rel
(PC) (PC) + 1
Instructi
on code
D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 0 0 0 1 1
85
Hexa
decimal
C3
Explanation
(C) 0
CLR bit
SETB C
SETB bit
CPL C
CPL bit
ANL C,bit
ANL C,/bit
ORL C,bit
ORL C,/bit
MOV C,bit
MOV bit,C
1
b7
1
1
b7
1
1
b7
1
b7
1
b7
0
b7
1
b7
1
b7
1
b7
1
b6
1
1
b6
0
0
b6
0
b6
0
b6
1
b6
0
b6
0
b6
0
b6
0
b5
0
0
b5
1
1
b5
0
b5
1
b5
1
b5
1
b5
1
b5
0
b5
0
b4
1
1
b4
1
1
b4
0
b4
1
b4
1
b4
0
b4
0
b4
1
b4
0
b3
0
0
b3
0
0
b3
0
b3
0
b3
0
b3
0
b3
0
b3
0
b3
0
b2
0
0
b2
0
0
b2
0
b2
0
b2
0
b2
0
b2
0
b2
0
b2
1
b1
1
1
b1
1
1
b1
1
b1
0
b1
1
b1
0
b1
1
b1
1
b1
86
0
b0
1
0
b0
1
0
b0
0
b0
0
b0
0
b0
0
b0
0
b0
0
b0
C2
Byte 2
D3
D2
Byte 2
B3
B2
Byte 2
82
Byte 2
B0
Byte 2
72
Byte 2
A0
Byte 2
A2
Byte 2
92
Byte 2
(bit) 0
(C) 1
(bit) 1
(C) ( C)
(bit) (bit)
(C) (C) AND (bit)
(C) (C) AND (bit)
(C) (C) OR (bit)
(C) (C) OR (bit)
(C) (bit)
(bit) (C)