You are on page 1of 42

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Chng 4:

I.

Cac khai niem ve chng trnh, lenh va tap lenh, ngon ng


gi nh:
II. Cac kieu nh a ch truy xuat bo nh cua vi ieu khien e
truy xuat d lieu:
III. Khao sat tap lenh cua vi ieu khien MCS51.
a. Nhom lenh di chuyen d lieu 8 bit.
b. Nhom lenh so hoc.
c. Nhom lenh logic.
d. Nhom lenh chuyen quyen ieu khien.
e. Nhom lenh x ly bit.
IV. Tom tat lenh cua vi ieu khien MCS51.

I. CAC KHAI NIEM VE CHNG TRNH , LENH VA TAP LENH,


NGON NG GI NH:
Ly thuyet & thc hanh.

45

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Vi ieu khien hay vi x ly la cac IC lap trnh, khi ban a thiet ke


he thong ieu khien co s dung vi x ly hay vi ieu khien v du nh
he thong ieu khien en giao thong cho mot nga t gom co cac
en Xanh, Vang, o va cac led 7 oan e hien th thi gian th o
mi ch la phan cng, muon he thong van hanh th ban phai viet
mot chng trnh ieu khien nap vao bo nh noi ben trong vi ieu
khien hoac bo nh ben ngoai va gan vao trong he thong e he
thong van hanh va d nhien ban phai viet ung th he thong mi
van hanh ung. Chng trnh goi la phan mem.
Phan mem va phan cng co quan he vi nhau, ngi lap trnh
phai hieu ro hoat ong cua phan cng e viet chng trnh.
chng nay se trnh bay chi tiet ve tap lenh cua vi ieu khien giup
ban hieu ro tng lenh e ban co the lap trnh c.
Cac khai niem ve chng trnh, lenh, tap lenh va ngon ng gi
nh a trnh bay chng 1 va 2, ay ch tom tat lai.
Chng trnh la mot tap hp cac lenh c to chc theo mot
trnh t hp l e giai quyet ung cac yeu cau cua ngi lap trnh.
Ngi lap trnh la ngi biet giai thuat e viet chng trnh va
sap xep ung cac lenh theo giai thuat. Ngi lap trnh phai biet
chc nang cua tat ca cac lenh cua vi ieu khien e viet chng
trnh.
Tat ca cac lenh co the co cua mot ngon ng lap trnh con goi
la tap lenh.
Ho vi ieu khien MCS-51 eu co chung 1 tap lenh, cac vi ieu
khien the he sau ch phat trien nhieu ve phan cng con lenh th t
m rong.
Tap lenh ho MCS-51 co ma lenh 8 bit nen co kha nang cung cap
28= 256 lenh, trong so nay co mot vai lenh cha c xay dng.
Co lenh co 1 hoac 2 byte bi d lieu hoac a ch them vao
Opcode.
Trong toan bo tap lenh cua vi ieu khien co139 lenh 1 byte, 92
lenh 2 byte va 24 lenh 3 byte.
Lenh cua vi ieu khien la mot so nh phan 8 bit [con goi la ma
may]. 256 byte t 0000 0000b en 1111 1111b tng ng vi 256 lenh
khac nhau. Do ma lenh dang so nh phan qua dai va kho nh nen
cac nha lap trnh a xay dng mot ngon ng lap trnh Assembly cho
de nh, ieu nay giup cho viec lap trnh c thc hien mot cach
de dang va nhanh chong cung nh oc hieu va g roi chng trnh.
Khi viet chng trnh bang ngon ng lap trnh Assembly th vi ieu
khien se khong thc hien c ma phai dung chng trnh bien dch
Assembler e chuyen oi cac lenh viet bang Assembly ra ma lenh nh
phan tng ng roi nap vao bo nh khi o vi ieu khien mi thc
hien c chng trnh.
Ngon ng lap trnh Assembly do con ngi tao ra, khi s dung ngon
ng Assembly e viet th ngi lap trnh vi ieu khien phai hoc het
tat ca cac lenh va viet ung theo qui c ve cu phap, trnh t sap
xep d lieu e chng trnh bien dch co the bien dch ung.
II. CAC KIEU NH A CH BO NH CUA VI IEU KHIEN E
TRUY XUAT D LIEU:

Ly thuyet & thc hanh.

46

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Phan nay a trnh bay mot cach tong quat chng 2, ay


se trnh bay mot cach chi tiet hn. Cac kieu nh a ch la mot qui
c thong nhat cua tap lenh.
Cac kieu nh a ch cho phep nh ro ni lay d lieu hoac ni
nhan d lieu tuy thuoc vao cach thc s dung lenh cua ngi lap
trnh.
Vi ieu khien ho MCS-51 co 8 kieu nh a ch nh sau:

Kieu nh a ch dung thanh ghi.

Kieu nh a ch trc tiep.

Kieu nh a ch gian tiep.

Kieu nh a ch tc thi.

Kieu nh a ch tng oi.

Kieu nh a ch tuyet oi.

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

; copy noi dung o nh co a ch 05H

c. nh a ch gian tiep (Indirect Addressing) :


Kieu nh a ch gian tiep c tng trng bi ky hieu @ va
c at trc cac thanh ghi R0, R1 hay DPTR. R0 va R1 co the hoat
ong nh mot thanh ghi con tro, noi dung cua no cho biet a ch cua
mot o nh trong RAM noi ma d lieu se ghi hoac se oc. Con dptr
dung e truy xuat o nh ngoai. Cac lenh thuoc dang nay ch co 1
byte.
Opcode

Ly thuyet & thc hanh.

47

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

V du:
Mov A,@R1
trong thanh ghi R1 vao

; copy noi dung o nh co a ch


;thanh ghi A

d. nh a ch tc thi (Immediate Addressing) :


Kieu nh a ch tc thi c tng trng bi ky hieu # va
c at trc mot hang so. Lenh nay thng dung e nap 1 gia
tr la 1 hang so byte th 2 (hoac byte th 3) vao thanh ghi hoac o
nh.
Opcode

Immediate Data

V du:

Mov a,#30H

; nap d lieu la con so 30H vao thanh

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

Ni nhay en thng c xac nh bi nhan (label) va trnh bien


dch se tnh toan gia tr lech.
nh v tng oi co u iem la ma lenh co nh, nhng khuyet
iem la ch nhay ngan trong pham vi -128127 byte [256byte], neu ni
nhay en xa hn th lenh nay khong ap ng c se co loi.
V du:
Sjmp X1
;nhay en nhan co ten la X1 nam trong
tam vc 256 byte
f. nh a ch tuyet oi (Absolute Addressing) :
Kieu nh a ch tuyet oi c dung vi cac lenh ACALL va
AJMP. Cac lenh nay co ma lenh 2 byte cho phep phan chia bo nh
theo trang - moi trang co kch thc ung bang 2Kbyte so vi gia tr
cha trong thanh ghi PC hien hanh. 11 bit a ch A10A0 c thay the
cho 11 a ch thap trong thanh ghi PC nam trong cau truc ma lenh nh
sau:
Addr 10 Addr
8

Ly thuyet & thc hanh.

Opcode

48

Addr 7 Addr 0

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

nh a ch tuyet oi co u iem la ma lenh ngan (2 byte),


nhng khuyet iem la ma lenh thay oi va gii han pham vi ni nhay
en, goi en khong qua 2 kbyte.
V du:
Ajmp X1
;nhay en nhan co ten la X1 nam trong
tam vc 2 kbyte
g. nh a ch dai (Long Addressing) :
Kieu nh a ch dai c dung vi lenh LCALL va LJMP. Cac lenh
nay co ma lenh 3 byte trong o co 2 byte (16bit) la a ch cua ni
en. Cau truc ma lenh la 3 byte nh sau:
Opcode

Addr 15 Addr 8

Addr 7 Addr 0

u iem cua nh a ch dai la co the goi 1 chng trnh con


hoac co the nhay en bat ky vung nh nao vung nh 64K, nhc
iem la cac lenh o dai 3 byte va phu thuoc vao v tr ieu nay
se bat li bi chng trnh khong the di toan bo ma lenh cua
chng trnh sang cac vung nh khac co ngha la khi chng trnh a
viet bat au tai a ch 1000h th sau khi dch ra ma lenh dang so nh
phan th sau o nap ma nh phan cua chng trnh vao bo nh th a
ch bat au phai ung vi a ch a viet la 1000h; neu nap khac
a ch 1000h th chng trnh se thc hien sai.
V du:
Ljmp X1
;nhay en nhan co ten la X1 nam trong
tam vc 64kbyte
h. nh a ch ch so (Index Addressing) :
Kieu nh a ch ch so dung mot thanh ghi c ban: la bo em
chng trnh PC hoac bo em d lieu DPTR ket hp vi mot gia tr
lech (offset) con goi la gia tr tng oi [thng lu trong thanh ghi] e
tao ra 1 a ch cua o nh can truy xuat hoac la a ch cua ni
nhay en. Viec ket hp c minh hoa nh sau:
Base Register
Offset
Effective Address
PC (or PDTR)

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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

e khao sat tap lenh th phai thong nhat mot so qui nh ve


cac t ng k hieu trong tap lenh thng c s dung:
- Direct tng trng cho o nh noi co a ch Direct.
- Rn tng trng cho cac thanh ghi t thanh ghi R0 en thanh ghi R7.
- @Ri tng trng cho o nh co a ch lu trong thanh ghi Ri va Ri
ch co 2 thanh ghi la R0 va R1.
- Cac lenh thng xay ra gia cac oi tng sau:
+ Thanh ghi A.
+ Thanh ghi Rn.
+ O nh co a ch direct.
+ O nh co a ch lu trong thanh ghi @Ri.
+ D lieu 8 bit #data.
+ addr11 la a ch 11 bit t A11 A0: a ch nay phuc vu cho
lenh nhay hoac lenh goi chng trnh con trong pham vi 2 kbyte.
+ Addr16 la a ch 16 bit t A15 A0: a ch nay phuc vu cho
lenh nhay va lenh goi chng trnh con xa trong pham vi 64
kbyte o chnh la a ch nhay en, hoac a ch cua
chng trnh con.
Khi viet chng trnh ngi lap trnh co the thay the a ch bang
nhan (label) e khoi phai tnh toan cac a ch cu the. Nhan (label)
se c at tai v tr addr thay cho addr va phai co mot nhan at tai
ni muon nhay en - goi la 1 cap nhan cung ten.
Co the nhieu ni nhay en cung mot nhan. Khong c at cac
nhan cung ten.
- Cac lenh co anh hng en thanh ghi trang thai th co trnh
bay trong lenh, con cac lenh khong e cap en thanh ghi trang
thai th co ngha la no khong anh hng.
A. Nhom lenh di chuyen d lieu (8 bit) :
1. Lenh chuyen d lieu t mot thanh ghi vao thanh ghi A:
Cu phap :
Mov A,Rn
Ma lenh :
1
1
1
0
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 Rn vao thanh
ghi A, noi dung thanh ghi Rn van gi nguyen.
V du: Gia s thanh ghi R0 co noi dung la 32h , lenh:
Mov A,R0
;ket qua nh sau: (A) = 32h, (R0) =
32h.
Gia tr ban au cha trong A th khong can
quan tam.
2. Lenh chuyen d lieu t o nh trc tiep vao thanh ghi A :
Cu phap :
MOV A, direct
Ma lenh :
1
1
1
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

Ly thuyet & thc hanh.

50

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Chc nang: Chuyen noi dung cua o nh trong Ram noi


co a ch direct byte th hai vao thanh ghi A. Trc
tiep co ngha la a ch cua o nh c ghi trong
lenh.
V du:
Gia s o nh co a ch 30h lu noi dung
32h. Lenh:
Mov A,30h
11100101
00110000
;chuyen noi dung cua o nh co a ch la
30h sang thanh ghi A.
;Ket qua nh sau: (A)= 32h. chu y a ch 30h
ghi trong lenh.
;a7..a0 = 00110000b la a ch cua o nh 30h

3. Lenh chuyen d lieu t o nh gian tiep vao thanh ghi A :


Cu phap :
MOV A,@Ri
Ma lenh :
1
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: Chuyen noi dung o nh trong Ram noi, co
a ch cha trong thanh ghi Ri, vao thanh ghi A.

V du1: thay v thc hien mov A,30h cua v du tren th ta


co the thay bang lenh mov A,@R0 se co cung 1 ket
qua neu a ch 30h lu vao R0. a ch 30h khong
con ghi trong lenh ma c thay bang @R0 nen kieu
lenh nay goi la lenh gian tiep v a ch 30h khong
con xuat hien trong lenh. Chu y trc khi s dung
lenh nay ta phai lam cho R0 mang gia tr la 30h.

V du2: Gia s R0 co noi dung la 70h, o nh co a


ch 70h cha noi dung la 0B8h. Lenh:
Mov A,@R0 ;ket qua nh sau: (A) = 0B8h.

4. Lenh nap d lieu 8 bit vao thanh ghi A :


Cu phap :
MOV A, #data
Ma lenh :
0
1
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: Nap d lieu 8 bit data (d0 en d7) vao thanh
ghi A.
V du :
Gia s A co noi dung 47h, d lieu trc tiep
la 32h, lenh:
Mov A,#32h ;ket qua nh sau: (A) = 32h.
;d7..d0 = 00110010b
5. Lenh chuyen d lieu t thanh ghi A vao thanh ghi :
Ly thuyet & thc hanh.

51

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

V du : cho noi dung thanh ghi (A ) = 35H, noi dung o nh


co a ch 10H bang 50H.
Mov 10h,A
Sau khi thc hien xong th noi dung o nh co a ch 10h
bang 35H.

9. Lenh chuyen d lieu t thanh ghi Rn vao o nh trc tiep :


Cu phap :
MOV direct, Rn
Ma lenh :
1
0
0
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
2 chu ky may
Chc nang: Chuyen noi dung cua thanh ghi Rn vao o
nh trong Ram noi co a ch direct.
V du : cho noi dung thanh ghi (R0 ) = 35H, noi dung o nh
10H bang 50H.
Mov 10h,R0
Sau khi thc hien xong th noi dung o nh co a ch 10h
bang 35H.
10.
trc

Lenh chuyen d lieu t o nh trc tiep vao o nh


tiep :
Cu phap :
MOV direct, direct
Ma lenh :
1
0
0
0
0
1
0
1
a7 a6 a5 a4 a3 a2 a1 a0
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Chuyen noi dung cua o nh trong Ram noi
co a ch direct vao o nh co a ch trc direct.
V du : cho noi dung o nh co a ch 20H bang 35H,
va noi dung o nh co a ch 10H bang 50H.
Mov 10h,20h
Sau khi thc hien xong th noi dung o nh co a ch
10h bang 35H.
11.
Lenh chuyen d lieu t o nh gian tiep vao o nh
trc tiep :
Cu phap :
MOV direct, @Ri
Ma lenh :
1
0
0
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 cha
trong thanh ghi Ri vao o nh co a ch direct.

Ly thuyet & thc hanh.

53

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

V du : cho noi dung thanh ghi (R0 ) = 05H, noi dung o nh


co a ch 05h bang FFH va noi dung o nh co a
ch 10H bang 50H.
Mov 10h,@r0
Sau khi thc hien xong th noi dung o nh co a ch 10h

bang FFH.
12.

Lenh chuyen d lieu vao o nh trc tiep :


Cu phap :
MOV direct, #data
Ma lenh :
0
1
1
1
0
1
0
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: Nap d lieu data 8 bit (d0 en d7 ) vao o
nh co a ch direct.
V du : cho noi dung o nh co a ch 05h bang FFH.
Mov 05h,#25H
Sau khi thc hien xong th noi dung o nh co a ch

05h bang 25H.


13.
tiep

Lenh chuyen d lieu t thanh ghi A vao o nh gian


:
Cu phap :
MOV @Ri, A
Ma lenh :
1
1
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 : Chuyen noi dung cua thanh ghi A vao
o nh trong Ram noi co a ch cha trong thanh ghi Ri.

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.

Lenh chuyen d lieu tc thi vao o nh gian tiep :


Cu phap :
MOV @Ri, #data
Ma lenh :
0
1
1
1
0
1
1
I
d7 d6 d5 d4 d3 d2 d1 D0

Ly thuyet & thc hanh.

54

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Lenh nay chiem 2 byte va thi gian thc hien lenh la


1 chu ky may
Chc nang: Nap d lieu data 8 bit (d0 en d7) vao o
nh co a ch cha trong thanh ghi Ri.

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

Lenh chuyen d lieu t o nh co a ch la Dptr + A


thanh ghi A :
Cu phap :
MOVC A,@A+DPTR
Ma lenh :
1
0
0
1
0
0
1
1
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 bang dptr cong vi gia tr cha trong
A, chuyen vao thanh ghi A.

18.
vao

Lenh chuyen d lieu t o nh co a ch la PC + A


thanh ghi A :
Cu phap :
MOVC A,@A+PC
Ma lenh :
1
0
0
0
0
0
1
1
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 bang PC cong vi gia tr cha trong A
c chuyen vao thanh ghi A.

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.

Ly thuyet & thc hanh.

55

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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.

Lenh cat noi dung o nh trc tiep vao ngan xep :


Cu phap :
PUSH direct
Ma lenh :
1
1
0
0
0
0
0
0
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: cat noi dung cua o nh co a ch direct
vao o nh ngan xep. Con tro ngan xep SP tang len 1
trc khi lu noi dung.

24.
tiep

Lenh lay d lieu t ngan xep tra ve o nh trc


:
Cu phap :
POP direct
Ma lenh :
1
1
0
1
0
0
0
0
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 2 byte va thi gian thc hien lenh la
2 chu ky may

Ly thuyet & thc hanh.

56

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

25.

Chc nang: lay noi dung cua o nh ngan xep tra


cho o nh co a ch direct. Con tro ngan xep SP giam
1 sau khi lay d lieu ra.

Lenh trao oi d lieu gia thanh ghi vi thanh ghi A :


Cu phap :
XCH A,Rn
Ma lenh :
1
1
0
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 : Trao oi noi dung cua thanh ghi Rn
vi thanh ghi A.
V du : cho noi dung cua thanh ghi (A) = 35H va (R0) = 70H
XCH A,R0
Ket qua sau khi thc hien (A) = 70H va (R0) = 35H

26.
ghi A

Lenh trao oi d lieu gia o nh trc tiep vi thanh


:
Cu phap :
XCH A,Direct
Ma lenh :
1
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
Y ngha cua lenh : Trao oi noi dung cua thanh ghi A
vi no dung o nh co a ch direct.

27.
ghi A

Lenh trao oi d lieu gia o nh gian tiep vi thanh


:
Cu phap :
XCH A,@Ri
Ma lenh :
1
1
0
0
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 noi dung cua o nh co
a ch cha trong thanh ghi Ri vi thanh 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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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.

V du 2: Gia s A co noi dung 0D9h va R0 co noi dung


la 0B8h, lenh:
ADD A,R0
;ket qua nh sau: (A) =

91h, (C) =1.


2. Lenh cong noi dung o nh trc tiep vao thanh ghi A :
Cu phap :
ADD A, direct
Ma lenh :
0
0
1
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: Cong noi dung cua o nh co a ch
direct vi noi dung thanh ghi A, ket qua cha thanh ghi
A. Lenh co anh hng en thanh ghi trang thai.
V du 1: Gia s A co noi dung 0D9h va o nh co a
ch 30h lu noi dung 0B8h, lenh:
ADD A,30h
;ket qua nh sau: (A) = 81h, (C) =1.

V du 2: Gia s A co noi dung 47h va o nh co a


ch 30h lu noi dung 32h, lenh: ADD A,30h
;ket qua nh sau: (A) = 79h, (C) =0.

3. Lenh cong noi dung o nh gian tiep vao thanh ghi A :


Cu phap:
ADD A,@Ri
Ma lenh:
0
0
1
0
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, ket qua lu
tr trong thanh ghi A. Lenh co anh hng en thanh ghi
trang thai.
V du: Gia s A co noi dung 0D9h, o nh co a ch
30h co noi dung la 0B8h, R0 co noi dung la 30h, lenh:
ADD A,@R0
;ket qua nh sau: (A) =
91h, (C) =1.

Ly thuyet & thc hanh.

58

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

4. Lenh cong d lieu tc thi 8 bit vao thanh ghi A :


Cu phap :
ADD A, #data
Ma lenh :
0
0
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
Y ngha cua lenh: Cong d lieu data 8 bit (d0 en d7)
vi noi dung thanh ghi A, ket qua lu tr trong A. Lenh
co anh hng en thanh ghi trang thai.
V du1: Gia s A co noi dung 47h, d lieu trc tiep la
32h, lenh:
ADD A,#32h
;ket qua nh sau: (A) =
79h, (C) = 0.
V du2: Gia s A co noi dung D9h, d lieu trc tiep la
B8h, lenh:
ADD A,#0B8h
;ket qua nh sau: (A) =
91h, (C) = 1.
5. Lenh cong thanh ghi A vi thanh ghi co bit carry :
Cu phap :
ADDC A,Rn
Ma lenh :
0
0
1
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 : cong noi dung thanh ghi A vi noi
dung thanh ghi Rn vi bit C, ket qua lu trong thanh ghi A.
Lenh co anh hng en thanh ghi trang thai.

V du1: Gia s A co noi dung 47h, R1 co noi dung 32h


va c (C) = 1, lenh:
ADDC A,R1
;ket qua nh sau: (A) = 7ah,

V du2: Gia s A co noi dung 0D9h, R0 co noi dung la


0B8h, (C) =1, lenh:
ADDC A,R0
;ket qua nh sau: (A) =

(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.

Ly thuyet & thc hanh.

59

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

V du 1: Gia s A co noi dung 47h, o nh 30h co noi


dung 32h va c (C) = 0, lenh:
ADDC A,30h
;ket qua nh sau: (A) =

V du 2: Gia s A co noi dung 0D9h, o nh 30h co noi


dung la 0B8h, C:=1, lenh:
ADDC A,30h
;ket qua nh sau: (A) = 92h,

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.

V du 2: Gia s A co noi dung 0D9h, o nh 30h co noi


dung la 0B8h, R0 co noi dung 30h va (C) =1, lenh:
ADDC A,@R0
;ket qua nh sau: (A) =

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.

Ly thuyet & thc hanh.

60

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

V du 1: Gia s A co noi dung 47h, noi dung thanh ghi R0


la 32h va c (C)=0, lenh:
SUBB A,R0
;ket qua nh sau: (A) = 15h

V du 2: Gia s A co noi dung 0B9h, thanh ghi R0 co noi


dung la 5Ah va (C)=1, lenh:
SUBB A,R0
;ket qua nh sau: (A) = 5Eh,

(C)=0.

(C) =0.
10.
tiep

Lenh tr noi dung thanh ghi A cho noi dung o nh trc


:
Cu phap :
SUBB A, direct
Ma lenh :
1
0
0
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: Tr noi dung thanh ghi A cho noi dung cua
o nh co a ch direct va tr cho c Carry, ket qua
cha thanh ghi A. Lenh co anh hng en thanh ghi
trang thai.

11.
tiep

Lenh tr noi dung thanh ghi A cho noi dung o nh gian


:
Cu phap :
SUBB A,@Ri
Ma lenh :
1
0
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 : Tr noi dung cua thanh ghi A cho d
lieu cua o nh co a ch cha trong thanh ghi Ri va
tr cho c carry, ket qua lu tr trong thanh ghi A. Lenh
co anh hng en thanh ghi trang thai.

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.

Lenh tang noi dung thanh ghi A :


Cu phap :
INC A
len 1 n v)
Ma lenh :

Ly thuyet & thc hanh.

61

(increment: tang

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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.

Lenh tang noi dung cua thanh ghi :


Cu phap :
INC Rn
Ma lenh :
0
0
0
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 : Tang noi dung thanh ghi Rn len 1.

15.

16.

Lenh tang noi dung o nh trc tiep :


Cu phap :
INC direct
Ma lenh :
0
0
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: Tang noi dung cua o nh co a ch trc
tiep byte th 2 len 1.
Lenh tang noi dung o nh gian tiep :
Cu phap :
INC @Ri
Ma lenh :
0
0
0
0
0
1
1
i
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Y ngha cua lenh : Tang noi dung cua o nh co a
ch cha trong thanh ghi Ri len 1.
V du :
Gia s noi dung o nh 30h la 35h, thanh ghi
R0 co noi dung la 30h, lenh:
INC R0
;ket qua nh sau: o nh

(30h) = 36h
17.

18.

Lenh tang noi dung con tro d lieu Dptr :


Cu phap :
INC dptr
Ma lenh :
1
0
1
0
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Y ngha cua lenh : Tang noi dung cua thanh ghi con tro
d lieu dptr len 1.
Lenh giam noi dung thanh ghi A :

Ly thuyet & thc hanh.

62

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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:

Gia s A co noi dung 00h, lenh:


DEC A
;ket qua nh sau: (A) =

Lenh giam noi dung cua thanh ghi :


Cu phap :
DEC Rn
Ma lenh :
0
0
0
1
1
n2 n1 n0

FFh.
19.

20.

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 Rn xuong 1.
V du : Gia s R0 la 35h , lenh:
DEC R0
;ket qua nh sau: (R0) =34h.

Lenh giam noi dung o nh trc tiep :


Cu phap :
DEC direct
Ma lenh :
0
0
0
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: Giam noi dung cua o nh co a ch
direct byte th 2 xuong 1.
V du: Gia s o nh 30h co noi dung la 35h , lenh:
DEC 30h
;ket qua nh sau: o nh co a
ch la 30h lu 34h.

21.

22.

Lenh giam noi dung o nh gian tiep :


Cu phap :
DEC @Ri
Ma lenh :
0
0
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 : Giam noi dung cua o nh co a
ch cha trong thanh ghi Ri xuong 1.
Lenh nhan thanh ghi A vi thanh ghi B :
Cu phap :
MUL AB
Ma lenh :

Ly thuyet & thc hanh.

63

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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.

Lenh chia thanh ghi A cho thanh ghi B :


Cu phap :
DIV AB
Ma lenh :
1
0
0
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 chia cho noi
dung cua thanh ghi B, ket qua cua phep chia lu tr
trong thanh ghi A, so d lu tr trong thanh ghi B. Lenh
anh hng en thanh ghi trang thai: Bit C va bit OV b
xoa ve 0, neu phep chia nay ma d lieu trong thanh
ghi B = 00h th noi dung thanh ghi A khong thay oi, noi
dung cha trong thanh ghi B khong xac nh va bit OV =
1, bit Cy = 0.

24.

Lenh ieu chnh thap phan noi dung thanh ghi A :


Cu phap :
DA A
Ma lenh :
1
1
0
1
0
1
0
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
4 chu ky may
Y ngha cua lenh : Neu 4 bit thap A3A2A1A0>9 hoac bit
AC = 1th A3A2A1A0 + 6, ket qua lu tr lai trong A. Neu 4
bit cao A7A6A5A4>9 hoac bit Cy = 1 th A7A6A5A4 + 6, ket
qua lu tr lai thanh ghi A. Ket qua sau cung trong thanh
ghi A la so BCD.

C. Nhom lenh logic :


1. Lenh and thanh ghi A vi thanh ghi :
Cu phap :
ANL A,Rn (and logic)
Ma lenh :
0
1
0
1
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 and vi noi dung thanh
ghi Rn, ket qua lu tr trong thanh ghi A.
V du :
Ly thuyet & thc hanh.

64

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Mov A ,#10110011b
Mov R0,#11001011b
Anl a,r0

;ket qua (A) = 10000011b

2. Lenh and thanh ghi A vi noi dung o nh trc tiep :


Cu phap :
ANL A, direct
Ma lenh :
0
1
0
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: Noi dung thanh ghi A and vi noi dung cua
o nh co a ch direct, ket qua cha thanh ghi A.
3. Lenh and thanh ghi A vi noi dung o nh gian tiep :
Cu phap :
ANL A, @Ri
Ma lenh :
0
1
0
1
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 and vi o nh co a
ch cha trong thanh ghi Ri, ket qua lu tr trong thanh
ghi A.
4. Lenh and thanh ghi A vi d lieu tc thi 8 bit :
Cu phap :
ANL A, #data
Ma lenh :
0
1
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: Noi dung cua thanh ghi A and vi d lieu d0
en d7 , ket qua lu tr trong thanh ghi A.
V du :
Mov A ,#10110011b
Anl a,#00001111b
;ket qua (A) = 00000011b
5. Lenh and noi dung o nh trc tiep vi noi dung thanh ghi A :
Cu phap :
ANL direct, A
Ma lenh :
0
1
0
1
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 and vi
noi dung cua thanh ghi A, ket qua lu tr vao o nh.
V du :
Mov A ,#10110011b
Mov 10h,#11110000b

Ly thuyet & thc hanh.

65

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Anl 10h,a

;ket qua o nh co a ch 10h

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.

Lenh or thanh ghi A vi d lieu tc thi 8 bit :

Ly thuyet & thc hanh.

66

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Lenh or noi dung o nh trc tiep vi d lieu tc thi


:
Cu phap :
ORL direct, #data
Ma lenh :
0
1
0
0
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 or
vi d lieu 8 bit (t d0 en d7 ) byte th 3, ket qua
lu tr trong o nh.

13.

14.

Lenh ex-or thanh ghi A vi thanh ghi :


Cu phap :
XRL A, Rn
Ma lenh :
0
1
1
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 ex-or vi noi dung thanh
ghi Rn, ket qua lu tr trong thanh ghi A.
Lenh ex-or thanh ghi A vi noi dung o nh trc tiep :
Cu phap :
XRL A, direct
Ma lenh :
0
1
1
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

Ly thuyet & thc hanh.

67

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Lenh ex-or noi dung o nh trc tiep vi noi dung thanh


:
Cu phap :
XRL direct, A
Ma lenh :
0
1
1
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 ex-or vi
noi dung cua thanh ghi A, ket qua lu tr vao o nh.

18.
thi

Lenh ex-or noi dung o nh trc tiep vi d lieu tc


8 bit :
Cu phap :
XRL direct, #data
Ma lenh :
0
1
1
0
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 ex-or
vi 8 bit d lieu data 8 bit, ket qua lu tr vao o nh.

19.

Lenh xoa noi dung thanh ghi A :


Cu phap :
CLR A
Ma lenh :
1
1
1
0
0
1
0

Ly thuyet & thc hanh.

68

(clear a)
0

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

20.

21.

Lenh nay chiem 1 byte va thi gian thc hien lenh la


1 chu ky may
Chc nang: Noi dung thanh ghi A bang zero.
Lenh bu noi dung thanh ghi A :
Cu phap :
CPL A
(complement A)
Ma lenh :
1
1
1
1
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 c lay bu 1, ket
qua cha trong A.
V du :
Mov A ,#10110011b
Cpl a
;ket qua (A) = 01001100b.
Lenh xoay trai noi dung thanh ghi A :
Cu phap :
RL A
(rotate left)
Ma lenh :
0
0
1
0
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A c xoay trai 1 bit minh
hoa nh hnh ve.
C

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.

Lenh xoay trai noi dung thanh ghi A va bit carry :


Cu phap :
RLC A
Ma lenh :
0
0
1
1
0
0
1
1
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 trai
1 bit.

Ly thuyet & thc hanh.

69

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51


C

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

;lam c C bang 1 (lan th 8)


;ket qua (A) = 1111 1111b va c

Setb c
RLC A

;lam c C bang 1 (lan th 9)


;ket qua (A) = 1111 1111b va c

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.

Lenh xoay phai noi dung thanh ghi A :


Cu phap :
RR A
(rotate right)
Ma lenh :
0
0
0
0
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Noi dung thanh ghi A c xoay phai 1 bit
ngc vi lenh RL A.
Lenh xoay phai noi dung thanh ghi A va bit carry :
Cu phap :
RRC A
Ma lenh :

Ly thuyet & thc hanh.

70

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

D. Nhom lenh chuyen quyen ieu khien :


Nhom lenh nay la nhom lenh chuyen quyen ieu khien co
ngha la vi ieu khien ang thc hien lenh tai a ch nay th co the
nhay en hoac chuyen en thc hien lenh tai mot a ch khac.
Trong nhom nay gom co lenh goi chng trnh con, lenh ket thuc
chng trnh con tr ve chng trnh chnh, lenh nhay khong ieu kien
va lenh nhay co ieu kien.
Cac lenh nhay bao gom lenh nhay tng oi, lenh nhay tuyet
oi, lenh nhay dai.
Cac lenh nhay co ieu kien th khi thoa ieu kien th lenh se
nhay con neu khong thoa ieu kien th se thc hien lenh ke ngay
sau lenh nhay. ay ch trnh bay ieu kien thoa con ieu kien
khong thoa th ta hieu ngam.
1. Lenh goi chng trnh con dung a ch tuyet oi :
Cu phap :
ACALL addr11
Ma lenh :
a1 a9 a8 1
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
2 chu ky may.
Chc nang: Khi lenh nay c thc hien th vi ieu
khien se thc hien chng trnh con tai a ch addr11.
Chng trnh con khong c cach lenh goi qua 2 kbyte.
Addr11 cua chng trnh con co the thay bang nhan (ten
cua chng trnh con).

Ly thuyet & thc hanh.

71

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Chu y: Trc khi nap a ch mi vao thanh ghi PC th


a ch cua lenh ke trong chng trnh chnh c cat
vao bo nh ngan xep.

2. Lenh goi chng trnh con dung a ch dai 16 bit :


Cu phap :
LCALL addr16
Ma lenh :
0
0
0
1
0
0
1
0
A15 a1 a1 a1 a1 a1 a9 a8
4
3
2
1
0
A7
a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Khi lenh nay c thc hien th vi ieu
khien se thc hien chng trnh con tai a ch addr16.
Lenh nay co the goi chng trnh con au cung c
trong vung 64kbyte. Addr16 cua chng trnh con co the
thay bang nhan (ten cua chng trnh con).

16 bit a ch A15 A0 c nap vao PC, vi ieu khien


se thc hien chng trnh con tai a ch va nap vao
PC. Chu y: Trc khi nap a ch vao thanh ghi PC th a
ch cua lenh ke trong chng trnh chnh c cat vao
bo nh ngan xep.

3. Lenh tr ve t chng trnh con :


Cu phap :
RET
Ma lenh :
0
0
1
0
0
0
1
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Lenh nay se ket thuc chng trnh con, vi
ieu khien se tr lai chng trnh chnh e tiep tuc thc
hien chng trnh.
Chu y: lenh nay se lay a ch cua lenh ke a lu
trong bo nh ngan xep (khi thc hien lenh goi) tra lai
cho thanh ghi PC e tiep tuc thc hien chng trnh chnh.
Khi viet chng trnh con th phai luon luon ket
thuc bang lenh ret.
4. Lenh tr ve t chng trnh con phuc vu ngat :
Cu phap :
RETI
Ma lenh :
0
0
1
1
0
0
1
0
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: Lenh nay se ket thuc chng trnh phuc vu
ngat, vi ieu khien se tr lai chng trnh chnh e tiep
tuc thc hien chng trnh.

Ly thuyet & thc hanh.

72

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

5. Lenh nhay dung a ch tuyet oi :


Cu phap :
AJMP addr11
Ma lenh :
a1 a9 a8 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
2 chu ky may
Y ngha cua lenh: vi ieu khien se nhay en en a
ch addr11 e thc hien chng trnh tai o. Addr11 co
the thay the bang nhan. Nhan hay a ch nhay en
khong qua 2 kbyte.

11 bit a ch A10 A0 c nap vao PC, cac bit cao cua


PC khong thay oi, vi ieu khien se nhay en thc
hien lenh tai a ch PC mi va nap.
Lenh nay khac vi lenh goi chng trnh con la khong
cat a ch tr ve. Ni nhay en khong qua 2 kbyte so
vi lenh nhay.

6. Lenh nhay dung a ch 16 bit :


Cu phap :
LJMP addr16
Ma lenh :
0
0
0
0
0
0
1
0
a1 a1 a1 a1 a1 a1 a9 a8
5
4
3
2
1
0
a7 a6 a5 a4 a3 a2 a1 a0
Lenh nay chiem 3 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: vi ieu khien se nhay en a ch addr16
e thc hien chng trnh tai o. Ni nhay en tuy y
nam trong vung 64 kbyte.
7. Lenh nhay tng oi :
Cu phap :
SJMP rel
Ma lenh :
1
0
0
0
0
0
0
0
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: vi ieu khien se nhay en lenh co a
ch tng oi (rel) e thc hien tiep. Co the thay the
rel bang nhan.
Lenh nay ch nhay trong tam vc 256 byte: co the
nhay ti 128 byte va co the nhay lui 128 byte. Khi tam
vc nhay xa hn ta nen dung lenh AJMP hay LJMP.
Chu y: rel [relative: tng oi]: cac lenh co xuat hien
rel eu lien quan en lenh nhay: ni nhay en c
tnh bang cach lay noi dung cua PC cong vi so lng
byte cua cac lenh nam gia lenh nhay va ni nhay
Ly thuyet & thc hanh.

73

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

en. Chung ta khong can quan tam en ieu nay v


chng trnh bien dch cua may tnh se tnh giup chung
ta.
8. Lenh nhay gian tiep :
Cu phap :
JMP @A + DPTR
Ma lenh :
0
1
1
1
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
2 chu ky may
Chc nang: lenh se nhay en ni co a ch bang
noi dung cua A cong vi dptr e tiep tuc thc hien
chng trnh tai o.
9. Lenh nhay neu c Z =1 (noi dung thanh ghi A bang 0) :
Cu phap :
JZ rel
(jump zero)
Ma lenh :
0
1
1
0
0
0
0
0
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 Z = 1 th vi ieu khien se nhay en
thc hien chng trnh tai a ch rel (thoa ieu kien),
neu Z = 0 th vi ieu khien se tiep tuc thc hien lenh
ke (khong thoa ieu kien).
10.

11.

12.

Lenh nhay neu c Z = 0 (noi dung thanh ghi A khac 0):


Cu phap :
JNZ rel
Ma lenh :
0
1
1
1
0
0
0
0
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 Z = 0 th vi ieu khien se nhay en
thc hien chng trnh tai a ch rel.
Lenh nhay neu bit carry = 1 :
Cu phap :
JC rel
Ma lenh :
0
1
0
0
0
0
0
0
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 = 1 th vi ieu khien se nhay
en thc hien chng trnh tai a ch rel.
Lenh nhay neu bit carry = 0 :
Cu phap :
JNC rel
Ma lenh :
0
1
0
1
0
0
0

Ly thuyet & thc hanh.

74

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Ly thuyet & thc hanh.

75

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Lenh nay chiem 3 byte va thi gian thc hien lenh la


2 chu ky may
Chc nang: lenh nay anh hng en c C va thc
hien viec nhay nh sau:
Neu noi dung cua A noi dung cua o nh co a
ch direct th bit C = 0.
Neu noi dung cua A < noi dung cua o nh co a
ch direct th bit C = 1.
Neu noi dung cua A khac noi dung cua o nh co
a ch direct th lenh se nhay en va thc hien
lenh tai a ch rel.
Neu noi dung cua A bang noi dung cua o nh co
a ch direct th khong nhay va lam lenh ke.

17.
A:

Lenh so sanh d lieu tc thi vi noi dung thanh ghi


Cu phap :
CJNE A, #data, rel
Ma lenh :
1
0
1
1
0
1
0
0
d7 d6 d5 d4 d3 d2 d1 d0
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: lenh nay anh hng en c C va thc
hien viec nhay nh sau:
Neu noi dung cua A data 8 bit th bit C = 0.
Neu noi dung cua A < data 8 bit th bit C = 1.
Neu noi dung cua A khac data 8 bit th lenh se nhay
en thc hien lenh tai a ch rel.
Neu noi dung cua A bang data 8 bit th khong nhay
va lam lenh ke.

18.

Lenh so sanh d lieu tc thi vi noi dung thanh ghi :


Cu phap :
CJNE Rn, #data, rel
Ma lenh :
1
0
1
1
1
n2 n1 n0
d7 d6 d5 d4 d3 d2 d1 d0
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: lenh nay anh hng en c C va thc
hien viec nhay nh sau:
Neu noi dung cua thanh ghi Rn data 8 bit th bit C = 0.
Neu noi dung cua thanh ghi Rn < data 8 bit th bit C = 1.
Neu noi dung cua thanh ghi Rn khac data 8 bit th lenh
se nhay en thc hien lenh tai a ch rel.
Neu noi dung cua thanh ghi Rn bang data 8 bit th
khong nhay va lam lenh ke.

Ly thuyet & thc hanh.

76

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

19.

20.

21.

22.

Lenh so sanh d lieu tc thi vi d lieu gian tiep :


Cu phap :
CJNE @Ri, #data, rel
Ma lenh :
1
0
1
1
0
1
1
i
d7 d6 d5 d4 d3 d2 d1 d0
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: lenh nay anh hng en c C va thc
hien viec nhay nh sau:
Neu noi dung cua o nh co a ch lu trong thanh
ghi Ri data 8 bit th bit C = 0.
Neu noi dung cua o nh co a ch lu trong thanh
ghi Ri < data 8 bit th bit C = 1.
Neu noi dung cua o nh co a ch lu trong thanh
ghi Ri khac data 8 bit th lenh se nhay en thc hien
lenh tai a ch rel.
Neu noi dung cua o nh co a ch lu trong thanh
ghi Ri bang data 8 bit th khong nhay va lam lenh ke.
Lenh giam thanh ghi va nhay :
Cu phap :
DJNZ Rn, rel
(decrement and jump if
not zero)
Ma lenh :
1
1
0
1
1
n2 n1 n0
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: Noi dung cua thanh ghi Rn giam i 1 va neu
ket qua trong thanh ghi Rn sau khi giam khac 0 th vi ieu
khien se thc hien chng trnh tai a ch rel, neu ket
qua bang 0 th vi ieu khien se tiep tuc thc hien
lenh ke.
Lenh giam o nh trc tiep va nhay :
Cu phap :
DJNZ direct, rel
Ma lenh :
1
1
0
1
0
1
0
1
a7 a6 a5 a4 a3 a2 a1 a0
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 o nh co a ch direct
giam i 1 va neu ket qua sau khi giam khac 0 th vi
ieu khien se thc hien chng trnh tai a ch rel,
ngc lai neu ket qua bang 0 th vi ieu khien se tiep
tuc thc hien lenh ke.
Lenh Nop :
Cu phap :

Ly thuyet & thc hanh.

NOP
77

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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.

E. Nhom lenh x ly bit :


1. Lenh xoa bit carry :
Cu phap :
CLR C
Ma lenh :
1
1
0
0
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: Xoa bit C ve 0.
2. Lenh xoa bit :
Cu phap :
CLR bit
Ma lenh :
1
1
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: Xoa bit co a ch c xac nh bi byte
th 2 ve 0.
3. Lenh at bit carry :
Cu phap :
SETB C
Ma lenh :
1
1
0
1
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Chc nang: at bit C = 1.
4. Lenh at bit :
Cu phap :
SETB bit
Ma lenh :
1
1
0
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: at bit co a ch c xac nh bi byte
th 2 len 1.
5. Lenh bu bit carry :
Cu phap :
CPL C
Ma lenh :
1
0
1
1
0
0
1
1
Lenh nay chiem 1 byte va thi gian thc hien lenh la
1 chu ky may
Ly thuyet & thc hanh.

78

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Chc nang: Bu bit carry, neu trc o C = 1 th C = 0,


ngc lai C = 0 th C = 1.

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.

Lenh or bit carry vi


Cu phap :
ORL
Ma lenh :
1
0
1
0
b7 b6 b5 b4

Ly thuyet & thc hanh.

bu bit :
C, /bit
0
b3

79

0
b2

0
b1

0
b0

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

11.

12.

Lenh nay chiem 2 byte va thi gian thc hien lenh la


2 chu ky may
Chc nang: Bit C or vi bu bit co a ch c xac
nh bi byte th 2, ket qua cha bit C.
Lenh di chuyen bit vao bit carry :
Cu phap :
MOV C, bit
Ma lenh :
1
0
1
0
0
0
1
b7 b6 b5 b4 b3 b2 b1
Lenh nay chiem 2 byte va thi
1 chu ky may
Chc nang: Bit co a ch c
2 c chuyen vao bit C.

0
b0
gian thc hien lenh la
xac nh bi byte th

Lenh di chuyen bit carry vao bit :


Cu phap :
MOV bit, C
Ma lenh :
1
0
0
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 c chuyen vao bit co a ch c
xac nh bi byte th 2.

IV. TOM TAT TAP LENH VI IEU KHIEN MCS51:


Data Transfer Instructions.
Instruction
Mnemonic
D7 D6 D5 D4 D3
MOV A,Rn
1 1 1 0 1
MOV A,direct
1 1 1 0 0
a7 a6 a5 a4 a3
Ly thuyet & thc hanh.

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)

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Ly thuyet & thc hanh.

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))

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

Mathematical (Arithmetic) Instructions.


Instructi
Hexa
Mnemonic
on code
Decimal
D7 D6 D5 D4 D3 D2 D1 D0
ADD A,Rn
0 0 1 0 1 n2 n1 n0
28 2F
ADD A,direct
0 0 1 0 0 1 0 1
25
a7 a6 a5 a4 a3 a2 a1 a0
Byte 2
ADD A,@Ri
0 0 1 0 0 1 1 I
26 27
ADD A,#data
0 0 1 0 0 1 0 0
24
d7 d6 d5 d4 d3 d2 d1 d0
Byte 2
ADDC A, Rn
0 0 1 1 1 n2 n1 n0
38 3F
ADDC A, direct
0 0 1 1 0 1 0 1
35
a7 a6 a5 a4 a3 a2 a1 a0
Byte 2
ADDC A, @Ri
0 0 1 1 0 1 1 I
36 37
ADDC A,
0 0 1 1 0 1 0 0
34
#data
d7 d6 d5 d4 d3 d2 d1 d0
Byte 2
SUBB A,Rn
1 0 0 1 1 n2 n1 n0
98 9F
SUBB A,direct
1 0 0 1 0 1 0 1
95
a7 a6 a5 a4 a3 a2 a1 a0
Byte 2
SUBB A,@Ri
1 0 0 1 0 1 1 I
96 97
SUBB A,#data
1 0 0 1 0 1 0 0
94
d7 d6 d5 d4 d3 d2 d1 d0
Byte 2
INC A
0 0 0 0 0 1 0 0
04
INC Rn
0 0 0 0 1 n2 n1 n0
08 0F
INC direct
0 0 0 0 0 1 0 1
05
a7 a6 a5 a4 a3 a2 a1 a0
Byte 2
INC @Ri
0 0 0 0 0 1 1 I
06 07
INC dptr
1 0 1 0 0 0 1 1
A3
DEC A
0 0 0 1 0 1 0 0
14
DEC Rn
0 0 0 1 1 n2 n1 n0
18 1F
DEC direct
0 0 0 1 0 1 0 1
15
a7 a6 a5 a4 a3 a2 a1 a0
Byte 2
DEC @Ri
0 0 0 1 0 1 1 I
16 17
MUL AB
1 0 1 0 0 1 0 0
A4
DIV AB
1 0 0 0 0 1 0 0
84
DA A
1 1 0 1 0 1 0 0
D4

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) + (Rn) + (C)


(A) + (direct) +
(A) + ((Ri)) + (C)
(A) + #data +
(A) - (Rn) - (C)
(A) - (direct) (A) - ((Ri)) - (C)
(A) - #data -(C)

(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

Ly thuyet & thc hanh.

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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Control Transfer Instructions.


Instruction code
Mnemonic
D7 D6 D5 D4 D3 D2 D1 D0
Ly thuyet & thc hanh.

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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

JNB bit, rel

0
b6
r6
0
b6
r6

Ly thuyet & thc hanh.

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

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

JBC bit, 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

DJNZ Rn, rel

1 1 0 1 1 n2 n 1 n 0
r7 r6 r5 r4 r3 r2 r1 r0

D8 DF
Byte 2

DJNZ direct, rel

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

Bit Oriented Instructions.


Mnemonic
CLR C

Instructi
on code
D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 0 0 0 1 1

Ly thuyet & thc hanh.

85

Hexa
decimal
C3

Explanation
(C) 0

Chng 4: Khao sat tap lenh cua vi ieu khien MCS51

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

Ly thuyet & thc hanh.

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)

You might also like