DuyTan University Assembly Language Programming
CHNG 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+n 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 gDti &[\c rVtnhi'uthành công và c`ng
tracti8pUnh h[bng &8n cVutrúc cWac 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 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
QuUn&[\c64K b%nhmcode bên ngoài
QuUn&[\c64K b%nhmdnliFubên ngoài
5-5
Nguyen Van Tho – Duy Tan University
5-5
So 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 CHxt yACHz
Các ki9u :nh :ach;cho phép xác :nh ngu?n í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.0Ckchn 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
th8truy cEp&8n tng 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ˆDLIU & CON TRˆNGŠN XxP
CON TRˆDLIUDPTR
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 NGT
Thanh ghi cho phép nggtIE
Thanh ghi th>tanggtIP
THANH GHI yNH THŽI
Gm 2 thanh ghi TMOD và TCON
Dùng &+ thi8t lEp cWa b%&jnh thki/b%&8m cWa8051
THANH GHI CsNG NpITIxP
Gm 2 thanh ghi SBUF và SCON
Dùng &+ lEptrình thi8t lEpch8&% &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 pháp sau :
<Port name> . <bit>
dC&+ xóa bit 4 cWa cHng P0
CLR P0.4