
DuyTan University Assembly Language Programming
CHNG 7
ASSEMBLY CHO
VI IUKHIN
I HCDUY TÂN
KHOA CÔNG NGHTHÔNG TIN
Nguyn VnTh
Bmôn in tvinthông
Khoa Công nghthông tin, i hcDuy Tân – 2007
5-2
Nguyen Van Tho – Duy Tan University
5-2
GIITHIU
Các vi b% &i'ukhi+nvà các b%vi x/lý có ba &i+mkhác
nhau chính sau:
Ki8ntrúc ph=n c>ng
PhAmvi >ng dCng
Dc&i+m tEp lFnh
Các hGvi &i'ukhi+nphHbi8n
Intel 8051
PIC16C5x
Motorola MC68xxx
AVR
PSoC
5-3
Nguyen Van Tho – Duy Tan University
5-3
VI IUKHIN8051
HiFnnay có hRn40 công ty sUnxuVtcác loAivi &i'ukhi+n
khác nhau cWa hG8051.
M%t sYcông ty có trên 40 version 8051.
Các CORE 8051 có th+&[\c tHh\ptrong các FPGA hay
ASIC.
Trên 100 triFuvi &i'ukhi+n8051 &[\cbán ra m^i n_m.
HG8051 gDthái &[\c rVtnhi'uthành công và nó c`ng
tracti8pUnh h[bng &8n cVutrúc cWacác hGvi &i'ukhi+n
hiFnnay.

DuyTan University Assembly Language Programming
5-4
Nguye n Va n Tho – Duy Tan Unive rsi ty
5-4
VI IUKHIN8051
8051 thu%c hGvi &i'ukhi+nMCS-51.
MCS-51 &[\cphát tri+n bbiIntel và các nhà sUnxuVtkhác
(nh[Siemens, Philips) là các nhà cung cVp&>ng th>hai
cWa hGnày.
Tóm tgt m%t sY&Dc&i+mchính cWa hG8051:
•4K bytes ROM trong
•128 bytes RAM trong
•4 cHng I/O 8-bit
•2 b%&jnh thki16 bit
•Giao diFn nYiti8p
•QuUnlý &[\c64K b%nhmcode bên ngoài
•QuUnlý &[\c64K b%nhmdnliFubên ngoài
5-5
Nguyen Van Tho – Duy Tan University
5-5
So KHpI8051
CPU
On-chip
RAM
On-chip
ROM for
program
code
4I/O Ports
Timer 0
Serial
Port
OSC
Interrupt
Control
External interrupts
Timer 1
Timer/Counter
Bus
Control
TxD RxD
P0 P1 P2 P3
Address/Data
Counter
Inputs
5-6
Nguyen Van Tho – Duy Tan University
5-6
CÁC CHÂN CrA8051
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
(RXD)P3.0
(TXD)P3.1
(T0)P3.4
(T1)P3.5
XTAL2
XTAL1
GND
(INT0)P3.2
(INT1)P3.3
(RD)P3.7
(WR)P3.6
Vcc
P0.0(AD0)
P0.1(AD1)
P0.2(AD2)
P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)
P0.7(AD7)
EA/VPP
ALE/PROG
PSEN
P2.7(A15)
P2.6(A14)
P2.5(A13)
P2.4(A12)
P2.3(A11)
P2.2(A10)
P2.1(A9)
P2.0(A8)
8051

DuyTan University Assembly Language Programming
5-7
Nguye n Va n Tho – Duy Tan Unive rsi ty
5-7
CÁC CsNG I/O
4 cng I/O
Port 0 (chân 32-39) P0 (P0.0 … P0.7)
Port 1 (chân 1-8) P1 (P1.0 … P1.7)
Port 2 (chân 21-28) P2 (P2.0 … P2.7)
Port 3 (chân 10-17) P3 (P3.0 … P3.7)
MAi cBng có 8 chân
ánh tên P0.X (X=0,1,...,7), P1.X, P2.X, P3.X
Ex:P0.0 là bit 0 (LSB) caP0
Ex:P0.7 là bit 7 (MSB) caP0
8bits này c%uthành 1 byte
MAi cBng có thDEFGcdùng nhFinput hay output
5-8
Nguyen Van Tho – Duy Tan University
5-8
KHÔNG GIAN BtNHRAM NtI
RAM a m#c
ích
7FH
30H
RAM Knh Ka
chLbit
2FH
20H
Bank 3
1FH
Bank 2
17H
10H
Bank 1 (Stack)
0FH
07H Default Register
Bank for R0-R7
08H
18H
00H
R7
R6
R4
R3
R5
R2
R0
R1
7F 7E 7D 7C 7B 7A 79 78
…
…
1F 1E 1D 1C 1B 1A 19 18
17 16 15 14 13 12 11 10
0F 0E 0D 0C 0B 0A 09 08
07 06 05 04 03 02 01 00
2F
2E
20
Byte address
Bit address
5-9
Nguyen Van Tho – Duy Tan University
5-9
CÁC CHxt yACHz
Các ki9u :nh :ach;cho phép xác :nh ngu?nvà ích cBa dCliDu theo
nhiEu cách khác nhau tùy tình huHng lIptrình
jnh &jach{t>cthki :
MOV A, #65H ; &[agiá trj65h vào thanh ghi A
A=65h
jnh &jach{thanh ghi
MOV R1, A ; &[a dnliFutrong thanh ghi A vào thanh ghi R1
R1=A
jnh &jach{tracti8p
MOV R0, 40H ; lVy dnliFu tAi&jach{40h &[avào thanh ghi R0
jnh &jach{gián ti8p
MOV A, @R1 ; lVy dnliFu tAi&jach{&[\cch>atrong thanh
ghi R1 &[avào thanh ghi A

DuyTan University Assembly Language Programming
5-10
Nguye n Va n Tho – Duy Tan Unive rsi ty
5-10
CÁC THANH GHI
5-11
Nguyen Van Tho – Duy Tan University
THANH GHI PSW
•CPSW.7Cknhm
•AC PSW.6 CknhmphC
•-- PSW.5 Available to user for general purpose
•RS1 PSW.4 Bit chndãy thanh ghi 1
•RS0 PSW.3 Bit chndãy thanh ghi 0
•OV PSW.2 Cktràn
•-- PSW.1 Datrn-User define bit
•PPSW.0Ckch•n l‚
CAC F0 RS1 OVRS0 P--
RS1 RS0 Register Bank Byte Address of R0-R7
0 0 0 00H-07H
0 1 1 08H-0FH
1 0 2 10H-17H
1 1 3 18H-1FH
5-12
Nguyen Van Tho – Duy Tan University
THANH GHI A & B
•THANH GHI A
•[\c s/dCng &+ ch>a dnliFu
•Có th8truy cEp&8n t„ng bit cWa A ( Acc.0, Acc.1 … Acc.7)
•THANH GHI B
•[\c s/dCng &+ ch>a dnliFunh[thanh ghi nháp
•Cùng vmithanh ghi A ch>a dnliFutrong các phép tính nhân, chia
•B&[\c&jnh &jach{bit
F0F1F2F3F4F5F6F7

DuyTan University Assembly Language Programming
5-13
Nguye n Va n Tho – Duy Tan Unive rsi ty
CON TRˆD‰LIU & CON TRˆNGŠN XxP
•CON TRˆD‰LIUDPTR
•Dùng &+ truy xuVtch[Rng trình ngoài hoDc dnliFungoài
•DPTR có th+&[\cxem nh[2thanh ghi 8 bit DPH và DPL
•CON TRˆNGŠN XxPSP
•SP ch>a&jach{&{nh ng_n x8p
•MDc&jnh SP=07h
DPH
DPL
83H
82H
5-14
Nguyen Van Tho – Duy Tan University
CÁC THANH GHI KHÁC
•THANH GHI NG•T
•Thanh ghi cho phép nggtIE
•Thanh ghi th>tanggtIP
•THANH GHI yNH THŽI
•G•m 2 thanh ghi TMOD và TCON
•Dùng &+ thi8t lEp cWa b%&jnh thki/b%&8m cWa8051
•THANH GHI CsNG NpITIxP
•G•m 2 thanh ghi SBUF và SCON
•Dùng &+ lEptrình thi8t lEpch8&% và &i'ukhi+ngiao ti8pqua
cHng nYiti8p cWa8051
5-15
Nguyen Van Tho – Duy Tan University
5-15
THANH GHI CsNG I/O
8051 có 4 thanh ghi cHng I/O : P0, P1, P2, P3
TVt cUport &'u&[\c&jnh &jach{bit
+ truy cEp&8ncác bit ta dùng cú pháp sau :
<Port name> . <bit>
Ví dC&+ xóa bit 4 cWa cHng P0
CLR P0.4