Professional Documents
Culture Documents
GT KTVXL
GT KTVXL
*****
BI GING
K THUT VI X L
H NI 06-2010
-1-
Li ni u
Cc b vi x l ng vai tr quan trng trong cc h thng s v chng c s dng
trong rt nhiu ng dng nh cc h thng iu khin, h thng thng tin lin lc. Ti liu
ny gii thiu cc khi nim cn bn ca h vi x l v tp trung trnh by vi x l Intel 8086
v ghp ni tiu biu to nn h vi x l 8086, tin than ca cc h vi x l x86 sau ny.
Cc kin thc thu nhn c t vic xy dng h vi x l 8086 cng s rt b ch cho vic
pht trin cc h vi x l phc tp hn cng nh cc h thng nhng.
Cu trc ca ti liu nh sau.
Chng 2 trnh by chi tit v vi x l Intel 8086 bao gm s khi v cch t chc
b nh. Ngoi ra, chng ny gii thiu tp lnh x86 v qu trnh thc hin lnh.
Chng 4 tp trung gii thiu cch thc ghp ni vi x l 8086 vi cc thit b khc
to thnh h vi x l cn bn. Chng ny trnh by chu trnh c/ghi ca vi x l 8086. y
l c s tin hnh ghp ni d liu vi cc thit b khc nh b nh hay cc thit b vo/ra
khc. Chng ny gii thiu c ch truyn thng ni tip v cch thc ghp ni vi vi x l
8086.
-2-
Chng 6 trnh by s b cc khi nim v cc h vi iu khin (hay h vi x l trn
mt vi mch). Chng ny cn cung cp cc thng tin cn bn v h vi iu khin Intel 8051
v mt s ng dng.
Ti liu c bin son da trn tham kho cc ti liu c bit l cun K thut Vi
x l ca tc gi Vn Th Minh v da trn trao i kinh nghim ging dy vi cc ng
nghip v phn hi ca sinh vin ti Hc vin Cng ngh Bu chnh Vin thng. Ti liu c
th c dng lm ti liu hc tp cho sinh vin i hc, cao ng ngnh cng ngh thng
tin. Trong qu trnh bin son, d c nhiu c gng song khng trnh khi thiu st, nhm
tc gi mong nhn c cc gp cho cc thiu st cng nh kin cp nht v hon thin
ni dung ca ti liu.
H ni, 06/2010
Tc gi
-3-
Mc lc
Chng I. Tng quan v vi x l v h vi x l ................................................................. 6
I.1 Gii thiu v vi x l ................................................................................................................. 6
I.2 H vi x l ................................................................................................................................. 7
I.3 Cc c im cu trc ca vi x l ............................................................................................ 9
I.3.1 Cu trc cn bn ................................................................................................................... 9
I.3.2 Kin trc RISC v CISC ...................................................................................................... 11
I.3.3 Cc c im ....................................................................................................................... 12
I.4 Lch s pht trin v phn loi cc b vi x l ........................................................................ 12
I.4.1 Giai on 1971-1973 .......................................................................................................... 12
I.4.2 Giai on 1974-1977 .......................................................................................................... 13
I.4.3 Giai on 1978-1982 .......................................................................................................... 13
I.4.4 Giai on 1983-1999 .......................................................................................................... 13
I.4.5 Giai on 2000-2006 .......................................................................................................... 14
I.4.6 Giai on 2007-nay............................................................................................................. 15
-4-
IV.1.5 Biu thi gian ca cc lnh ghi/c ............................................................................... 70
IV.2 Phi ghp vi x l vi b nh .................................................................................................. 72
IV.2.1 Gii thiu b nh ................................................................................................................ 72
IV.2.2 Gii m a ch cho b nh ................................................................................................. 74
IV.3 Phi ghp vi x l vi thit b vo ra ....................................................................................... 79
IV.3.1 Gii thiu v thit b vo/ra................................................................................................. 79
IV.3.2 Gii m a ch thit b vo ra ............................................................................................ 80
IV.4 Gii thiu mt s vi mch h tr vo ra................................................................................... 82
IV.4.1 Ghp ni song song dng 8255A ......................................................................................... 83
IV.4.2 Truyn thng ni tip dng 8251 ........................................................................................ 87
-5-
Chng I. Tng quan v vi x l v h vi x l
Mt my tnh thng thng bao gm cc khi chc nng c bn nh: khi x l trung
tm CPU (Central Processing Unit), b nh, v khi phi ghp vi thit b ngoi vi (I/O,
input/output). Tu theo quy m, phc tp hiu nng ca cc khi chc nng k trn m
ngi ta phn cc my tnh in t v ang s dng ra thnh cc loi sau:
My tnh ln (Mainframe) l loi my tnh c thit k gii cc bi ton ln vi tc
nhanh. My tnh ny thng lm vic vi s liu t 64 bt hoc ln hn na v c trang
b nhiu b x l tc cao v b nh rt ln. Chnh v vy my tnh cng ln v kch thc
vt l. Chng thng c dng tnh ton iu khin cc h thng thit b dng trong qun
s hoc cc h thng my mc ca chng trnh nghin cu v tr, x l cc thng tin
trong ngnh ngn hng, ngnh kh tng, cc cng ty bo him. . . Loi my ln nht trong
cc my ln c gi l supercomputer (nh loi my Y-MP/832 ca Cray).
My tnh con (Minicomputer) l mt dng thu nh v kch thc cng nh v tnh nng
ca my tnh ln. N ra i nhm tho mn cc nhu cu s dng my tnh cho cc ng dng
va phi m nu dng my tnh ln vo th s gy lng ph. My tnh con thng c
dng cho cc tnh ton khoa hc k thut, gia cng d liu quy m nh hay iu khin quy
trnh cng ngh. Tiu biu cho nhm ny l loi my VAX 6360 ca Digital Equipment
Corporation v MV/8000II ca Data genaral.
My vi tnh (Microcomputer) l loi my tnh rt thng dng hin nay. Mt my vi tnh
c th l mt b vi iu khin (microcontroller), mt my vi tnh trong mt vi mch (one-chip
microcomputer), v mt h vi x l c kh nng lm vic vi s liu c di 1 bt, 4 bt, 8
bt, 16 bt hoc ln hn. Hin nay mt s my vi tnh c tnh nng c th so snh c vi
my tnh con, lm vic vi s liu c di t l 32 bt (thm ch l 64 bt). Ranh gii
phn chia gia my vi tnh v my tnh con chnh v th ngy cng khng r nt.
Cc b vi x l hin c tn th trng thng c xp theo cc h ph thuc vo cc
nh sn xut v chng rt a dng v chng loi. Cc nh sn xut vi x l ni ting c th k
ti Intel vi cc sn phm x86, Motorola vi 680xx, Sun Microsystems vi SPARC. Tnh
n thi im hin nay cc chng trnh vit cho tp lnh x86 ca Intel chim t l p o
trong mi trng my vi tnh.
Chng I .Tng quan v vi x l v h vi x l
I.2 H vi x l
But d liu
But iu
khin
B x l trung B nh
tm Phi ghp vo/ra Thit b vo
(ROM-RAM)
(I/O)
(CPU)
Thit b ra
Thanh ghi trong Thanh ghi ngoi Thanh ghi ngoi
But a ch
-7-
Chng I .Tng quan v vi x l v h vi x l
-8-
Chng I .Tng quan v vi x l v h vi x l
l s phi hp hot ng ca cc thanh ghi trong v ngoi ni trn thc hin s bin i
d liu hoc s trao i d liu theo cc yu cu nh trc.
I.3 Cc c im cu trc ca vi x l
I.3.1 Cu trc cn bn
Nh trnh by trong phn trn, vi x l chnh l n v x l trung tm CPU ca my
vi tnh. Nh vy sc mnh x l ca my vi tnh c quyt nh bi nng lc ca vi x l.
Trn nguyn tc, vi x l c th c chia thnh cc n v chc nng chnh nh trong Hnh
I-2.
Cc thanh ghi
n v s hc v
l-gc ALU Thanh ghi lnh
But d liu Thanh ghi a ch
Thanh ghi tm
n v iu khin
CU
-9-
Chng I .Tng quan v vi x l v h vi x l
ii. B m chng trnh: cha a ch ca lnh hay m thc thi (op-code). Thng
thng, thanh ghi ny cha a ch ca cu lnh k. Thanh ghi ny c c im sau:
1. Khi khi ng li, a ch ca lnh u tin c thc hin c np vo
thanh ghi ny.
2. thc hin lnh, vi x l np ni dung ca b m chng trnh vo but
a ch v c nh a ch . Gi tr ca b m chng trnh t ng
tng theo b l-gc trong ca vi x l. Nh vy, vi x l thc hin cc lnh
tun t tr phi chng trnh c cc lnh lm thay i trt t tnh ton.
3. Kch c ca b m chng trnh ph thuc vo kch c ca but a ch.
4. Nhiu lnh lm thay i ni dung ca thanh ghi ny so vi trnh t thng
thng. Khi , gi tr ca thanh ghi c xc nh thng qua a ch ch nh
trong cc lnh ny.
iii. Thanh ghi a ch b nh: cha a ch ca d liu. Vi x l s dng cc a ch ny
nh l cc con tr trc tip ti b nh. Gi tr ca cc a ch ny chnh l d liu
ang c trao i v x l.
iv. Thanh ghi dng chung: cn c gi l thanh ghi gp (accumulator). Thanh ghi ny
thng l cc thanh ghi 8 bt dng th lu hu ht cc kt qu tnh ton ca n v x
l s hc v l-gc ALU. Thanh ghi ny cn dng trao i d liu vi cc thit b
vo/ra.
I.3.1.3 n v iu khin CU
Chc nng chnh ca n v iu khin CU l c v gii m cc lnh t b nh
chng trnh. thc hin lnh, CU kch hot khi ph hp trong ALU cn c vo m lnh
(op-code) trong thanh ghi lnh. M lnh xc nh thao tc CU thc thi. CU thng dch ni
dung ca thanh ghi lnh v sau sinh ra mt chui cc tn hiu kch hot tng ng vi lnh
nhn c. Cc tn hiu ny kch hot cc khi chc nng ph hp bn trong ALU.
CU sinh ra cc tn hiu iu khin dn ti cc thnh phn khc ca vi x l qua but
iu khin. Ngoi ra, CU cng p ng li cc tn hiu iu khin trn but iu khin do cc
b phn khc gi ti. Cc tn hiu ny thay i theo tng loi vi x l. Mt s tn hiu iu
khin tiu biu nh khi ng li RESET, c ghi (R/W), tn hiu ngt (INT/IRQ),
-10-
Chng I .Tng quan v vi x l v h vi x l
I.3.3 Cc c im
T cu trc cn bn ca vi x l, c th rt ra cc c im cu trc nh sau:
Tc xung nhp. Vi x l l thit b s nn s dng tn hiu xung nhp (clock)
ng b cc hot ng ca mnh. Tc xung nhp cng ln vi x l chy cng
nhanh.
Khi lng d liu x l c: th hin qua kch c cc thanh ghi d liu. Vi kch
c thanh ghi d liu l 32 bt, vi x l c kh nng c/ghi 4 byte cho mi thao tc
vi b nh.
Dung lng b nh trc tip: th hin qua dung lng thanh ghi a ch. Vi dung
lng 32 bt, vi x l c th qun l trc tip 4GB b nh.
Nng lc tnh ton: c quyt nh bi nng lc ca b s hc v l-gc. Bn cnh
cc thao tc s hc thng thng cn c cc n v chc nng phc v cc yu cu
chuyn bit khc nh n v x l du phy ng cho cc tinh ton s thc.
Kh nng thc hin lnh: th hin nng lc v phc tp ca n v iu khin.
n v ny c th cho php qu trnh x l tun t n gin hay phc tp nh xen
k cc lnh nhm nng cao hiu nng ca vi x l trn chu k lnh. Cc thit k
phc tp cho php n v iu khin thc hin nhiu lnh trong mt chu trnh.
-12-
Chng I .Tng quan v vi x l v h vi x l
-13-
Chng I .Tng quan v vi x l v h vi x l
-14-
Chng I .Tng quan v vi x l v h vi x l
l ring bit trn cng mt vi mch. Ngay sau , AMD cng a ra vi x l a nhn ca
mnh Athlon2. Thc t cho thy thit k ca AMD mang li hiu nng tt hn so vi Intel.
-15-
Chng II. B vi x l Intel 8086
II.1.1 S khi
Trong s khi, vi x l 8086 c hai khi chnh BIU v EU. V chi tit, vi x l ny
bao gm cc n v iu khin, s hc v l-gc, hng i lnh v tp cc thanh ghi. Chi tit
cc khi v n v chc nng ny c trnh by trong phn sau.
Chng II. B vi x l Intel 8086
-17-
Chng II. B vi x l Intel 8086
-18-
Chng II. B vi x l Intel 8086
U khng s dng.
C hoc CF (Carry Flag): c nh. CF = 1 khi c nh hoc mun t bt c ngha ln
nht MSB (Most Significant Bit).
P hoc PF (Parity Flag): c parity. PF phn nh tnh chn l ca tng s bt 1 c
trong kt qu. C PF =1 khi tng s bt 1 trong kt qu l chn (even parity).
A hoc AF (Auxiliary Carry Flag): c nh ph rt c ngha khi ta lm vic vi
cc s BCD (Binary Coded Decimal). AF = 1 khi c nh hoc mun t mt s
BCD thp (4 bt thp) sang mt s BCD cao (4 bt cao).
Z hoc ZF (Zero Flag): c rng. ZF =1 khi kt qu = 0.
S hoc SF (sign flag): c du. SF = 1 khi kt qu m.
O hoc OF (Overflow Flag): c trn. OF = 1 khi kt qu l mt s b 2 vt qua
ngoi gii hn biu din dnh cho n.
Trn y l 6 bt c trng thi phn nh cc trng thi khc nhau ca kt sau mt thao
tc no , trong 5 bt c u thuc byte thp ca thanh c l cc c ging nh ca b vi
x l 8 bt 8085 ca Intel. Chng c lp hoc xo tu theo cc iu kin c th sau cc
thao tc ca ALU. Ngoi ra, b vi x l 8086/8088 cn c cc c iu khin sau y (cc c
ny c lp hoc xo bng cc lnh ring):
T hoc TF (Trap Flag): c by. TF = 1 th CPU lm vic ch chy tng lnh
(ch ny dng khi cn tm li trong mt chng trnh).
I hoc IF (Interrupt Enable Flag): c cho php ngt. IF = 1 th CPU cho php cc
yu cu ngt (che c) c tc ng.
D hoc DF (Direction Flag): c hng. DF = 1 khi CPU lm vic vi chui k t
theo th t t phi sang tri (v vy D chnh l c li)
-19-
Chng II. B vi x l Intel 8086
-20-
Chng II. B vi x l Intel 8086
-21-
Chng II. B vi x l Intel 8086
Hnh v trn biu din dng thc cc byte dng m ho lnh MOV. T y ta thy
rng m ho lnh MOV ta phi cn t nht l 2 byte, trong 6 bt ca byte u dng
cha m lnh. i vi cc lnh MOV. Bt W dng ch ra rng 1 byte (W = 0) hoc 1 t (W
= 1) s c chuyn. Trong cc thao tc chuyn d liu, mt ton hng lun bt buc phi l
thanh ghi. B vi x l dng 2 hoc 3 bt m ho cc thanh ghi trong CPU nh sau:
-22-
Chng II. B vi x l Intel 8086
Ghi ch:
addr8, addr16 tng ng vi a ch 8 v 16 bt
Cc gi tr cho trong cc ct 2, 3, 4 (ng vi MOD =00, 01, 10) l cc a ch
hiu dng (EA) s c cng vi DS to ra a ch vt l (ring BP phi
c cng vi SP)
II.3.2 Cc ch a ch ca 8086/8088
Ch a ch (addressing mode) l cch CPU tm thy ton hng cho cc lnh ca
n khi hot ng. Mt b vi x l c th c nhiu ch a ch. Cc ch a ch ny c
xc nh ngay t khi ch to ra b bi x l v sau ny khng th thay i c. B vi x l
8088 v c h 80x86 ni chung u c 7 ch a ch sau:
1. Ch a ch thanh gi (register addressing mode).
2. Ch a ch tc th (immediate addressing mode).
3. Ch a ch trc tip (direct addressing mode).
4. Ch a ch gin tip qua thanh ghi (register indirect addressing mode).
5. Ch a ch tng i c s (based indexed relative addressing mode).
-23-
Chng II. B vi x l Intel 8086
II.3.2.2 Ch a ch tc th
Trong ch a ch ny, ton hng ch l mt thanh ghi hay mt nh, cn ton
hng ngun l mt hng s v v tr ca ton hng ny ngay sau m lnh. Ch a ch
ny c th c dng np d liu cn thao tc vo bt k thanh ghi no (ngoi tr cc
thanh ghi on v thanh c) hoc vo bt k nh no trong on d liu DS.
V d II-2
MOV CL, 100 ; chuyn 100 vo CL.
MOV AX, 0FF0H ; chuyn 0FF0H vo AX ri a
MOV DS, AX ; vo DS (v khng th chuyntrc tip vo thanh ghi
on)
MOV [BX], 10 ; ch DS:BX.
-24-
Chng II. B vi x l Intel 8086
II.3.2.5 Ch a ch tng i c s
Trong ch a ch ny cc thanh ghi c s nh BX v BP v cc hng s biu din
cc gi tr dch chuyn (displacement values) c dng tnh a ch hiu dng ca ton
hng trong cc vng nh DS v SS. S c mt ca cc gi tr dch chuyn xc nh tnh tng
i ca a ch so vi a ch c s.
V d II-5
MOV CX, [BX] +10 ; chuyn 2 nh lin tip c a ch DS: [BX + 10] v
; DS: [BX + 10] vo CX.
MOV CX, [BX+10] ; mt cch vit khc ca lnh trn.
MOV CX, 10 [BX] ; mt cch vit khc ca lnh u.
MOV AL, [BP] +5 ; chuyn nh SS: [BP+5] vo AL.
ADD AL, Table [BX] ; cng AL vi nh do BX ch ra trong bng table
; (bng ny nm trong DS), kt qu da vo AL.
Trong v d trn:
10 v 5 l cc gi tr c th cho bit mc dch chuyn ca cc ton hng. Table
l tn mng biu din kiu dch chuyn ca mng (phn t u tin) so vi a
ch u ca on d liu DS.
[BX + 10] hoc [BP+5] gi l a ch hiu dng (Effective Address EA. theo
cch gi ca Intel).
DS: [BX + 10] hoc SS: [BP+5] chnh l logic tng ng vi mt a ch vt
l.
Theo cch nh ngha ny th a ch hiu dng ca mt phn t th BX no
(k t 0) trong mng Table [BX] thuc on DS l EA = Table+BX v ca
phn t u tin l EA = Table.
II.3.2.6 Ch a ch tng i ch s c s
Kt hp hai ch a ch ch s v c s ta c ch a ch ch s c s. Trong ch
a ch ny ta dng c thanh ghi c s ln thanh ghi ch s tnh a ch ca ton hng.
Nu ta dng thm c thnh phn biu din s dch chuyn ca a ch th ta c ch a ch
phc tp nht: ch a ch tng i ch s c s. Ta c th thy ch a ch ny rt ph
hp cho vic a ch ho cc mng hai chiu.
V d II-6
MOV AX, [ BX ] [SI ]+8 ;chuyn 2 nh lin tip c a ch
; DS:[BX+SI+8] v DS:[BX+SI+9] vo AX
MOV AX, [BX+SI+8] ; mt cch vit khc ca lnh trn
-25-
Chng II. B vi x l Intel 8086
II.3.2.7 Tng kt cc ch a ch
Cc ch a ch trnh by trn c th tm tt li trong Bng II-1.
Bng II-1. Tm tt cc ch a ch
Thanh ghi on ngm
Ch a ch Ton hng
nh
Thanh ghi Reg
Tc th Data
Trc tip [offset] DS
[BX] DS
Gin tip qua thanh ghi [SI] DS
[DI] DS
[BX]+disp DS
Tng i c s
[BP] +DISP SS
[DI]+Disp DS
Tng i ch s
[SI]+ DISP DS
[BX]+[DI]+DISP DS
[BX]+[SI]+DISP DS
Tng i ch s c s
[BP]+[DI]+DISP SS
[BP]+[SI]+DISP SS
-26-
Chng II. B vi x l Intel 8086
Nu ta mun thay i, khng ly ton hng trong on d liu DS, m li ly ton hng
trong on d liu ph ES a vo AL, th ta phi vit li lnh trn thnh
MOV AL, ES:[BX]
Trong ta dng ES: loi b thanh ghi on ngm nh DS v ch r thanh ghi
on mi dng trong lnh ny by gi l ES.
-27-
Chng II. B vi x l Intel 8086
-28-
Chng II. B vi x l Intel 8086
-29-
Chng II. B vi x l Intel 8086
-30-
Chng II. B vi x l Intel 8086
M t: ch Gc.
Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau.
Nhng phi cha d liu c cng di v khng c php ng thi l 2 nh.
Lnh ny ch to cc c, khng lu kt qu so snh, sau khi so snh cc ton hng
khng b thay i. Lnh ny thng c dng to c cho cc lnh nhy c iu kin
(nhy theo c).
Cc c chnh theo quan h ch v gc khi so snh 2 s khng du:
CF ZF
ch = Gc 0 1
ch > Gc 0 1
ch > Gc 1 0
Cp nht: AF, CF, OF, PF, SF, ZP.
-31-
Chng II. B vi x l Intel 8086
-32-
Chng II. B vi x l Intel 8086
II.3.3.4 iu khin vi x l.
Cc cu lnh ny tc ng ln thanh ghi c l thay i trng thi hot ng ca vi x l.
Bng II-6. Cc lnh iu khin vi x l tiu biu
M gi nh Chc nng
STC, CLC, CMC Lp, xa c nh
STD, CLD Lp xa c hng
STI, CLI Lp xa c cho php ngt
PUSHF, POPF Np vo, ly ra thanh ghi c ti/t ngn xp
NOP Khng lm g c
WAIT Ch tn hiu TEST
HLT Treo vi x l
-34-
Chng II. B vi x l Intel 8086
+ INT 5-INT 1FH; dnh ring cho Intel trong cc b vi x l cao cp khc,
+ INT 20H-INT FFH: dnh cho ngi s dng.
-35-
Chng II. B vi x l Intel 8086
-36-
Chng III. Lp trnh hp ng vi 8086/8088
Trong trng m lnh ni chung s c cc lnh tht hoc lnh gi. i vi cc lnh tht
th trng ny cha cc m lnh gi nh. M lnh ny s c chng trnh dch dch ra m
my. i vi cc hng dn chng trnh dch th trng ny cha cc lnh gi v s khng
c dch ra m my.
c) Trng ton hng
i vi mt lnh th trng ny cha cc ton hng ca lnh. Ty theo tng loi lnh
m ta c th c 0, 1 hoc 2 ton hng trong mt lnh. Trong trng hp cc lnh vi 1 ton
hng thng thng ta c ton hng l ch hoc gc, cn trong trng hp lnh vi 2 ton
hng th ta c 1 ton hng l ch v 1 ton hng l gc.
i vi hng dn chng trnh dch th trng ny cha cc thng tin khc nhau lin
quan n cc lnh gi ca hng dn.
d) Trng ch gii
Li gii thch trng ch gii phi c bt u bng du chm phy (;). Trng ch
gii ny c dnh ring cho ngi lp trnh ghi cc li gii thch cho cc lnh ca
chng trnh vi mc ch gip cho ngi c chng trnh d hiu cc thao tc ca chng
trnh hn. Thng thng li ch gii cn phi mang thng tin gii thch v thao tc ca
lnh trong hon cnh c th v nh th th mi c ch cho ngi c.
-38-
Chng III. Lp trnh hp ng vi 8086/8088
mt a ch nht nh trong b nh. nh ngha cc kiu d liu khc nhau ta thng dng
cc lnh gi sau:
DB (define byte) : nh ngha bin kiu byte
DW (define word) : nh ngha bin kiu t
DD (define double word) : nh ngha bin kiu t kp
a) Bin byte
Bin kiu byte s chim 1 byte trong b nh. Hng dn chng trnh dch nh
ngha bin kiu byte c dng tng qut nh sau:
Tn DB gi_ tr_khi_u
V d:
B1 DB 4
V d trn nh ngha bin byte c tn l B1 v dnh 1 byte trong b nh cho n
cha gi tr khi u bng 4.
Nu trong lnh trn ta dng du? thay vo v tr ca s 4 th bin B1 s c dnh ch
trong b nh nhng khng c gn gi tr khi u. C th dng lnh gi:
B2 DB ?
ch nh ngha 1 bin byte c tn l B2 v dnh cho n mt byte trong b nh.
Mt trng hp c bit ca bin byte l bin k t. Ta c th c nh ngha bin k
t nh sau:
C1 DB ' $'
C2 DB 34
b) Bin t
Bin t cng c nh ngha theo cch ging nh bin byte. Hng dn chng
trnh dch nh ngha bin t c dng nh sau:
Tn DB gi_ tr_khi_u
V d:
W1 DW 40
V d trn nh ngha bin t c tn l W1 v dnh 2 byte trong b nh cho n
cha gi tr khi u bng 40.
Chng ta cng c th s dng du? ch nh ngha v dnh 2 byte trong b nh cho
bin t W2 m khng gn gi tr u cho n bng dng lnh sau:
W2 DW ?
c) Bin mng
Bin mng l bin hnh thnh t mt dy lin tip cc phn t cng loi byte hoc t,
khi nh ngha bin mng ta gn tn cho mt dy lin tip cc byte hay t trong b nh cng
vi cc gi tr ban u tng ng.
-39-
Chng III. Lp trnh hp ng vi 8086/8088
V d:
M1 DB 4, 5, 6, 7, 8, 9
V d trn nh ngha bin mng c tn l M1 gm 6 byte v dnh ch cho n trong
b nh t a ch ng vi M1 cha cc gi tr khi u bng 4, 5, 6, 7, 8, 9. Phn t u
tng mng l 4 v c a ch trng vi a ch ca M1, phn t th hai l 5 v c a ch
M1+1. . .
Khi chng ta mun khi u cc phn t ca mng vi cng mt gi tr chng ta c
th dng thm ton t DUP trong lnh.
V d:
M2 DB 100 DUP (0)
M3 DB 100 DUP (?)
V d trn nh ngha mt bin mng tn l M2 gm 100 byte, dnh ch trong b nh
cho n cha 100 gi tr khi u bng 0 v bin mng khc tn l M3 gm 100byte, dnh
sn ch cho n trong b nh cha 100 gi tr nhng cha c khi u.
Ton t DUP c th lng nhau nh ngha ra 1 mng.
V d: dng lnh
M4 DB 4, 3, 2, 2 DUP(1, 2 DUP(5), 6)
S nh ngha ra mt mng M4 tng ng vi lnh sau:
M4 DB 4, 3, 2, 1, 5, 5, 6, 1, 5, 5, 6
Mt iu cn ch na l i vi cc b vi x l ca Intel, nu ta c mt t t trong
b nh th byte thp ca n s c t vo nh c a ch thp, byte cao s c t vo
nh c a ch cao. Cch lu gi s liu kiu ny cng cn c th thy cc my VAX ca
Digital hoc ca mt s hng khc v thng gi l 'quy c u b' (little endian, byte thp
c ct ti a ch thp). Cng nn ni thm y l cc b vi x l ca motorola li c
cch ct s liu theo th t ngc li hay cn c gi l 'quy c u to' (big endian byte
cao c ct ti a ch thp).
V d: Sau khi nh ngha bin t c tn l WORDA nh sau:
WORDA DW 0FFEEH
Th trong b nh thp (EEH) s c ti a ch WORDA cn byte cao (FFH) s
c ti a ch tip theo, tc l ti WORDA+1
d) Bin kiu xu k t
Bin kiu xu k t l mt trng hp c bit ca bin mng, trong cc phn t ca
mng l cc k t. Mt xu k t c th c nh ngha bng cc k t hoc bng m ASCII
ca cc k t . Cc v d sau u l cc lnh ng v u nh ngha cng mt xu k t
nhng gn n cho cc tn khc nhau:
STR1 DB 'string'
STR2 DB 73h, 74h, 72h, 69h, 6Eh, 67h
-40-
Chng III. Lp trnh hp ng vi 8086/8088
-41-
Chng III. Lp trnh hp ng vi 8086/8088
-42-
Chng III. Lp trnh hp ng vi 8086/8088
CR DB 13
LF EQU 10
III.1.2.2.c Khai bo on m
on m cha m lnh ca chng trnh. Vic khai bo on m c thc hin nh
hng dn chng trnh dch. CODE nh sau:
. CODE
Bn trong on m, cc dng lnh phi c t chc mt cch hp l, ng ng php
di dng mt chng trnh chnh (CTC) v nu cn thit th km theo cc chng trnh con
(ctc). Cc chng trnh con s c gi ra bng cc lnh CALL c mt bn trong chng
trnh chnh.
Mt th tc c nh ngha nh cc lnh gi PROC v ENDP. Lnh gi PROC bt
u mt th tc cn lnh gi ENDP c dng kt thc n. Nh vy mt chng trnh
chnh c th c nh ngha bng cc lnh gi PROC v ENDP theo mu sau:
Tn_CTC Proc
; Cc lnh ca thn chng trnh chnh
CALL Tn_ ctc; gi ctc
Tn_CTC Endp
Ging nh chng trnh chnh con cng c nh ngha di dng mt th tc nh
cc lnh gi PROC v ENDP theo mu sau:
Tn_ctc Proc
; cc lnh thn chng trnh con
RET
Tn_ctc Endp
Trong cc chng trnh ni trn, ngoi cc lnh gi c tnh nghi thc bt buc ta cn
ch n s b tr ca lnh gi (CALL) trong chng trnh chnh v lnh v (RET) trong
chng trnh con.
-43-
Chng III. Lp trnh hp ng vi 8086/8088
. Code
MAIN Proc
; Khi u cho DS
MOV AX, @Data
MOV DS, AX
; Cc lnh ca chng trnh chnh ti y
; Tr v DOS dng hm 4CH ca INT 21H
MOV AH, 4CH
INT 21 H
MAIN Endp
; cc chng trnh con (nu c) ti y
END MAIN
Trong khung chng trnh trn, ti dng cui cng ca chng trnh ta dng hng dn
chng trnh dch END v tip theo l MAIN kt thc ton b chng trnh. Ta c nhn
xt rng MAIN l tn ca chng trnh chnh nhng quan trng hn v v thc cht th n l
ni bt u cc lnh ca chng trnh trong on m.
Khi mt chng. EXE c np vo b nh. H iu hnh DOS s to ra mt mng
gm 256 byte ca ci gi l on mo u chng trnh (Program Segment Prefix - PSP)
dng cha cc thng tin lin quan n chng trnh v cc thanh ghi DS v ES. Do vy
DS v ES khng cha gi tr a ch ca cc on d liu cho chng trnh ca chng ta.
chng trnh c th chy ng ta phi c cc lnh sau khi u cho thanh ghi DS (hoc ES
nu cn):
MOV AX, @Data
MOV DS, AX
Trong @Data l tn ca on d liu. Data nh ngha bi hng dn chng trnh
dch s dch tn @Data thnh gi tr s ca on d liu. Ta phi dng thanh ghi AX lm
trung gian cho vic khi u DS nh trn l do b vi x l 8086/8088, V nhng l do k
thut, khng cho php chuyn gi tr s (ch a ch tc th) vo cc thanh ghi on.
Thanh ghi AX cng c th c thay th bng cc thanh ghi khc.
Sau y l v d ca mt chng trnh hp ng c vit dch ra chng trnh vi
ui. EXE. khi cho chy, chng trnh ny s hin ln mn hnh li cho 'Hello' nm gia hai
dng trng cch u cc dng mang du nhc ca DOS.
V d III-1. Chng trnh Hello. EXE
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, ' $ '
MSG DB ' Hello!$ '
. Code
MAIN Proc
; khi u thanh ghi DS
MOV AX, @Data
-44-
Chng III. Lp trnh hp ng vi 8086/8088
MOV DS, AX
; v u dng mi dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, MSG
INT 21H
; v u dng mi dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CFLF
INT 21H
; tr v DOS dng hm 9 ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
-45-
Chng III. Lp trnh hp ng vi 8086/8088
-46-
Chng III. Lp trnh hp ng vi 8086/8088
a ch lch
CONTINUE:
(chiu tin ca m & d liu)
(chiu tin ca ngn xp)
FFFEH SP
-47-
Chng III. Lp trnh hp ng vi 8086/8088
; hin th li cho
MOV AH, 9
LEA DX, CRLF
INT 21H
; tr v DOS
INT 20H
MAIN Endp
END START
Trong V d III-3 ta khng cn n cc thao tc khi u cho thanh ghi DS, nh ta
phi lm trong V d III-1, v trong chng trnh. COM khng c on d liu nm ring r.
Stack
Chng Chng
trnh trnh
SS
CS
DS
100h ES 100h
PSP PSP
.COM .EXE
Hnh III-2. Mun chng trnh. COM v. EXE trong b nh.
Cui cng kt thc phn ni v cc chng trnh kiu. COM v. EXE ta a ra hnh
nh ca cc chng trnh ny khi chng c ti vo trong b nh c th tin so snh
(Hnh III-2).
-48-
Chng III. Lp trnh hp ng vi 8086/8088
To ra tp vn bn ca chng trnh
*.asm
s
Dch c ra.com?
Dng EXE2BIN dch *.exe thnh
*.com
Ngy nay, trong khi tin hnh vic thit k h thng ngi ta thng dng phng php
thit k t trn xung di. Bn cht ca phng php thit k ny l u tin ta chia chng
trnh tng th thnh cc khi chc nng nh hn, cc khi chc nng nh ny li c chia
tip thnh cc khi chc nng nh hn na, vic phn chia chc nng phi lm cho n khi
mi khi nh ny tr thnh cc khi chc nng n gin v d thc hin.
Trong khi thc hin cc khi chc nng thnh phn, thng thng ngi ta s dng cc
cu trc lp trnh c bn thc hin cc nhim c ca khi . iu ny lm cho cc
chng trnh vit ra tr thnh c cu trc vi cc u im chnh l d pht trin, d hiu
chnh hoc ci tin v d lp ti liu.
-49-
Chng III. Lp trnh hp ng vi 8086/8088
gii quyt cc cng vic khc nhau thng thng trong khi vit chng trnh ta ch
cn n 3 cu trc lp trnh c bn sau:
+ Cu trc tun t.
+ Cu trc la chn (IF-THEN-ELSE) v
+ Cu trc lp (WHILE. DO).
Thay i cc cu trc ny mt cht t, ta c th to thm 4 cu trc khc cng rt c tc
dng trong khi vit chng trnh:
+ cu trc chn kiu IF-THEN
+ cu trc chn kiu CASE,
+ cu trc lp kiu REPEAT-UNTIL v
+ cu trc lp kiu FOR-DO.
c im chung ca tt c cc cu trc lp trnh c bn l tnh cu trc chi c mt li
vo cu trc v mt li ra ra khi cu trc .
Gii
Ta c th thc hin cng vic trn bng mu chng trnh sau:
XOR AX, AX ;tng ti AX lc u l 0.
ADD AX, BX ;cng thm b.
ADD AX, CX ;cng thm c.
SHL AX, l ;nhn i kt qu trong AX.
RA: ;li ra ca cu trc.
-50-
Chng III. Lp trnh hp ng vi 8086/8088
iu kin iu kin
S S
ai ai ng
ng
Cng vic Cng vic 1 Cng vic 1
-51-
Chng III. Lp trnh hp ng vi 8086/8088
Biuthc
Gitr1 Gitr2 GitrN
-52-
Chng III. Lp trnh hp ng vi 8086/8088
Gii
Ta c th thc hin cc cng vic trn bng mu chng trnh sau:
CMP AX, 0 ; Kim tra du ca AX.
JL AM ; AX<0.
JE KHONG ; AX =0.
JG DUONG ; AX > 0.
AM: MOV CX, -1
JMP RA
DUONG: MOV CX, 1
JMP RA
KHONG: XOR CX. CX
RA: ; li ra ca cu trc.
Khi u b m
Cng vic
Gim b m i 1
sai
B m=0
ng
Bi tp III-5
Hin th mt dng k t '$' trn mn hnh.
Gii
Mt dng mn hnh trn my IBM PC cha c nhiu nht l 80 k t.
-53-
Chng III. Lp trnh hp ng vi 8086/8088
Bi tp III-6
m s k t c c t bn phm, khi gp k t CR th thi.
Gii
Ta c th thc hin cng vic trn bng mu chng trnh sau:
XOR CX, CX ; tng s k t c c lc u l 0
MOV AH, 1 ; hm c k t t bn phm.
TIEP: INT 21H ; c 1 k , Al cha m k t.
CMP AL, 13 ; c c CR?
JE RA ; ng, ra.
INC CX ; sai, thm 1 k t vo tng.
RA: ; li ra ca cu trc.
-54-
Chng III. Lp trnh hp ng vi 8086/8088
Ngt INT 20H dnh ring kt thc chng trnh loi. COM
Hm 1 ca ngt INT 21H: c 1 k t t bn phm
Vo: AH = 1
Ra: AL = m ASCH ca k t cn hin th
Al = 0 khi k t g vo l t cc phm chc nng
Hm 2 ca ngt INT 21H: hin 1 k t ln mn hnh
Vo: AH = 2
DL = m ASCH ca k t cn hin th.
Hm 9 ca ngt INT 21H: hin chui k t vi $ cui ln mn hnh
Vo: AH = 9
DX = a ch lch ca chui k t cn hin th.
Hm 4CH ca ngt INT 21H: kt thc chng trnh loi. EXE
Vo: AH = 4CH
-55-
Chng III. Lp trnh hp ng vi 8086/8088
III.4.1 V d 1
Trong phn u ca chng trnh hp ng ta c gii thiu mt chng trnh hin li
cho bng ting Anh "Hello". By gi ta phi thm mt li cho bng ting Vit khng du
"Chao ban" nm cch li cho "Hello" trc y mt s dng nht nh no .
Gii
Ta cng vn s dng phng php c dng chng trnh mu trc y hin
th li cho 'ty', hin cc dng gin cch v hin li cho 'ta'. Trong v d ny ta cng b bt
i cc dng cch u v cui chng trnh rm r.
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
Chao tay DB 'hello!$'
ChaoTa DB 'Chao ban!$'
. Code
MAIN Proc
MOV AX, @ Data ; khi u thanh ghi DS
MOV DS, AX
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
; cch 5 dng dng hm 9 ca INT 21H
LEA DX, CELF
MOV CX, 6 ;CX cha s dng cch +1
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4 CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong chng trnh trn ta dng thanh ghi CX cha s dng phi gin cch. Vi
cch lm ny mi khi mun thay i s dng dn cch gia 2 li cho ta v li cho ty, ta
phi gn gi tr khc cho thanh ghi CX.
III.4.2 V d 2
Trn c s v d trc, ta phi vit chng trnh sao cho s dng gin cch c th thay
i c ngay trong khi chy chng trnh.
-56-
Chng III. Lp trnh hp ng vi 8086/8088
Gii
Mun c s dng cch thay i c theo mun gia 2 li cho ta v ty khi chy
chng trnh m khng phi thay gi tr mi cho thanh ghi CX ngay trong chng trnh nh
v d trc, ta cn dng thm 1 bin mi cha s dng cch v vit chng trnh sao cho
mi khi cho chy th chng trnh c thm phn i thoi ngi s dng c th thay i
gi tr ca s dng gin cch .
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
ChaoTay DB 'Hello!S'
ChaoTa DB 'Chao ban!S'
Thongbao DB 'go vao so dong cach:S'
SoCRLF DB ?
. Code
MAIN Proc
MOV AX, @Data ; khi u thanh ghi DS
MOV DS, AX
; hin thng bo dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, Thongbao
INT 21H
; c s dng cch dng hm 1 ca INT 21H
MOV AH, 1
INT 21H ; c s dng cch
AND AL, OFH ; i ra h hai
MOV SoCRLE, AL ; ct i
; cch 1 dng dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
LEA DX, CFLF
-57-
Chng III. Lp trnh hp ng vi 8086/8088
XOR CX, CX
MOV CL, SoCRLE ; CX cha s dng cch
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong v d trn c mt iu cn ch l khi c mt k t t bm phm (trong trng
hp c th ny th l s dng cch) ta s thu c trong thanh ghi AL m ASCII ca k t
(s) g. s dng n trong trng hp c th nh mt gi tr s v ct n ti bin
SoCRLF, ta phi bin i m ASCII ny thnh h s hai. i m ASCII ca mt s ra tr
s hoc ngc li ta cn nh rng gia gi tr s v m ASCII ca s c mt khong cch
l 30H. V d s 9 c m ASCII l 39H (c th c vit l "9"), tng t s 0 c m ASCII
l 30H (c th c vit l "0"). Nh vy vic bin i m ASCII (gi thit c sn trong
AL) ra gi tr s c th thc hin c bng mt trong cc lnh sau:
+ SUB AL, 30H
+ AND AL, 0FH
Tng t nh vy, vic bin i ngc li t s h hai (thng gi thit c sn trong
thanh ghi DL) ra m ASCII ( a ra hin ln mn hnh) c th lm c bng mt trong
cc lnh sau:
+ ADD DL, 30H
+ OR DL, 30H
III.4.3 V d 3
c t bn phm mt s h hai (di nht l 16 bt), kt qu c c ti thanh ghi
BX. Sau hin ni dung thanh ghi BX ra mn hnh.
Gii
Cng vic ca bi ny thc cht gm hai phn, mt phn u ta phi c c s h hai
v ct n ti BX, trong phn tip theo ta phi a c ni dung ca thanh ghi BX ra mn
hnh.
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
-58-
Chng III. Lp trnh hp ng vi 8086/8088
III.4.4 V d 4
Trong thanh ghi BX c sn 4 s h mi su, mi s c biu din bng 1 mu:
-60-
Chng III. Lp trnh hp ng vi 8086/8088
END MAIN
III.4.5 V d 5
C mt chui k t thng trong b nh. Hy to ra mt chui k t ch hoa t chui
trn ri ct chui trong b nh.
Gii:
V d ny v v d trc khi khc nhau cht t trong vic x l cc k t ca chui, v
vy phn trn cc lnh c tnh cht chun b trc v sau cc thao tc vi chui c th coi l
nh nhau. gii bi ton ny c th ng dng cc lnh LODSB v STOSB vi chui
cho. Thut ton l:
Ly tng k t ca chui gc (c) bng lnh LODSB,
Bin i thnh ch hoa bng cch tr i 20H,
Ct k t bin i vo chui ch (mi) bng lnh STOSB.
Sau y l cch t chc d liu v chng trnh cho bi ton trn vi di chui l 8
byte. minh ho mt cch thao tc khc so vi cch v d trc trong v d ny l dng
cch thao tc li i vi chui k t.
. Model Small
. Stack 100
. Data
Str1 DB 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
Tbao DB 'chui c i: ', 10, 13
DB '$'
. Code
MAIN Proc
MOV AX, @Data ; khi u u cho DS v ES
MOV DS, AX
MOV ES, AX
LEA SI, Str1+7 ; SI ch vo cui chui c
LEA DI, Str2+7 ; DI ch vo cui chui mi
STD ; nh hng li
MOV CX, 8 ; CX cha s byte phi i
LAP: LODSB ; ly 1 k t ca chui c
SUB AL, 20H ; i thnh ch hoa
STOSB ; ct vo chui mi
LOOP LAP ; lm cho n ht
LEA DX, Tbao ; chun b hin chui mi
MOV AH, 9
INT 21H
MOV AH, 4CH ; v DOS
INT 21H
MAIN Endp
END MAIN
-61-
Chng IV. Phi ghp vi x l vi b nh v cc thit b vo/ra
Hnh v trn cho chng ta thy tnh hiu ca 8086. Cc tn hiu ca 8086 v 8088 ch
khc s lng knh d liu. 8086 c 16 ng d liu trong khi 8088 ch c 8 ng d
liu. Di y trnh by ngha cc tn hiu ca 8086,
Chc nng cc tn hiu ti cc chn c th nh sau:
ADO AD15 [I;O: tn hiu vo v ra]: Cc chn dn knh cho cc tn hiu but d
liu v but a ch. Xung ALE s bo cho mnh ngoi bit khi no trn cc ng
c tn hiu d liu (ALE = 0) hoc a ch (ALE = 1). Cc chn ny trng thi tr
khng cao khi P chp nhn treo.
A16/S3, A17/S4, A18/S5, A19/S6 [O]: Cc chn dn knh ca a ch phn cao v
trng thi. a ch A16 - A19 c truyn trn cc chn khi ALE = 1 cn khi AEL
= 0 th trn cc chn c cc tn hiu trng thi S3 - S6. Cc chn ny trng thi
tr khng cao khi P chp nhn treo. Vic kt hp S3 v S4 biu din truy nhp
cc thanh ghi nh trong bng di y.
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Bng IV-1. Cc bt trng thi v vic truy nhp cc thanh ghi on.
S4 S3 Truy nhp n
0 0 on d liu ph
0 1 on ngn xp
1 0 on m hoc khng on no
1 1 on d liu
RD [O]: Xung cho php c. Khi RD = 0 th but d liu sn sng nhn s liu ti
b nh hoc thit b ngoi vi. Chn RD trng thi tr khng cao khi P chp nhn
treo.
READY [I]: Tn hiu bo cho CPU bit tnh trng sn sng ca thit b ngoi vi hay
b nh. Khi READY = 1 th CPU thc ghi/c m khng cn chn thm cc chu k
i. Ngc li khi thit b ngoi vi hay b nh c tc hot ng chm, chng c
th a tn hiu READY = 0 bo cho CPU bit. Lc ny CPU t ko di thi gian
thc hin lnh ghi/c bng cch chn thm cc chu k i.
INTR [I]: Tn hiu yu cu ngt che c. Khi c yu cu ngt m c cho php ngt
IF = 1 th CPU kt thc lnh ang lm d, sau n i vo chu k chp nhn ngt v
a ra bn ngoi tn hiu INTA = 0.
TEST [I]: Tn hiu ti chn ny c kim tra bi lnh WAIT. Khi CPU thc hin
lnh WAIT m lc tn hiu TEST =1, n s ch cho n khi tn hiu TEST = 0 th
mi thc hin lnh tip theo.
NMI [I]: Tn hiu yu cu ngt khng che c. Tn hiu ny khng b khng ch bi
c IF v n s c CPU nhn bit bng cc tc ng ca sn ln ca xung yu cu
ngt. Nhn c yu cu ny CPU kt thc lnh ang lm d, sau n chuyn sang
thc hin chng trnh phc v ngt kiu INT2.
RESET [I]: tn hiu khi ng li 8086/8088. khi RESET = 1 ko di t nht trong
thi gian 4 chu k ng h th 8086/8088 b buc phi khi ng li: n xo cc thanh
ghi DS, ES, SS, IP v FR v 0 v bt u thc hin chng trnh ti a ch
CS:IP=FFFF:0000H (ch c IF 0 cm cc yu cu ngt khc tc ng vo
CPU v c TF0 b vi x l khng -b t trong ch chy tng lnh).
CLK [I]: Tn hiu ng h (xung nhp). Xung nhp c rng l 77% v cung cp
nhp lm vic cho CPU.
Vcc [I]: Chn ngun. Ti y CPU c cung cp 5V10%. 340mA
GND [O]: Hai chn ngun ni vi im 0V ca ngun nui.
MN/MX [I]: Chn iu khin hot ng ca CPU theo ch MIN/MAX. Do
8086/8088 c th lm vic 2 ch khc nhau nn c mt s chn tn hiu ph
thuc vo cc ch .
a) Ch MIN (Chn MN/MX cn c ni thng vo +5V m khng qua in tr)
o Trong ch MIN tt c cc tn hiu iu khin lin quan n cc thit b
ngoi vi truyn thng v b nh ging nh trong h 8085 u c sn trong
-63-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
o WR [O]: Xung cho php ghi. Khi CPU a ra WR =0 th trn but d liu cc
d liu n nh v chng s c ghi vo b nh hoc thit b ngoi vi ti
thi im WR = 1. Chn WR trng thi tr khng cao khi P chp nhn treo.
o INTA [O]: Tn hiu bo cho cc mch bn ngoi bit CPU chp nhn yu cu
ngt INTR. Lc ny CPU a ra INTA = 0 bo l n ang ch mch ngoi
a vo s hiu ngt (kiu ngt) trn but d liu.
o ALE [O]: Xung cho php cht a ch. Khi ALE = 1 c ngha l trn but dn
knh AD c cc a ch ca thit b vo/ra hay ca nh. ALE khng bao gi
b th ni (trong trng thi tr khng cao) khi CPU b treo th ALE = 0.
o DT/ R [O]: Tn hiu iu khin cc m 2 chiu ca but d liu chn
chiu chuyn ca vn d liu trn but D. Chn ny trng thi tr khng cao
khi P chp nhn treo.
-64-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-65-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-66-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
8086 Ch max
DIR
EN#
74LS245
74LS245 D15:D0
x2
ADDR/Data x2
ASYNC : Chn ng b hai tng hoc ng b mt tng cho tn hiu RDY1, RDY2.
Trong ch ng b mt tng ( ASYNC = 1) tn hiu RDY c nh hng n tn hiu
READY ti sn xung ca xung ng h tip theo. Cn trong ch ng b hai
tng ( ASYNC = 0) tn hiu RDY ch c nh hng n tn hiu READY khi c sn
xung ca xung ng h tip theo.
READY: Ni n u READY ca CPU. Tn hiu ny c ng b vi cc tn hiu
RDY1, RDY2.
X1, X2: Ni vi hai chn ca thch anh vi tn s fx, thch anh ny l mt b phn
ca mt mch dao ng bn trong 8284 c nhim v to xung chun dng lm tn
hiu ng h cho ton h thng.
-67-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
F/ C : Dng chn ngun tn hiu chun cho 8284. Khi chn ny mc cao th xung
ng h bn ngoi s c dng lm xung nhp cho 8284, ngc li th xung ng h
ca mch dao ng bn trong dng thch anh s c chn lm xung nhp.
EFI: li vo cho xung t b dao ng ngoi.
CLK: Xung nhp fCLK=fx/3vi rng 77% ni n chn ca CLK ca 8086/8088.
PCLK: Xung nhp fCLK=fx/6vi rng 50% dnh cho thit b ngoi vi.
OSC: Xung nhp c khuch i c tn s bng fx ca b dao ng.
-68-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-69-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-70-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
T1 T2 T3 T4
CLOCK
__
DT/R
ALE
AD15
A15 A0 Rc D liu ngoi
- AD0
__
IO/M
____
RD
______
DEN
Xung c
Truy nhp
a ch
Xc lp
Tr a d liu
ch
T1 T2 T3 T4
CLOCK
__
DT/R
ALE
rng xung
ghi
2 xung nhp
Tr iu
Ch d liu khin
-71-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Chu k T3:
Trong chu k ny CPU dnh thi gi cho b nh hay thit b ngoi vi khi nhp d liu.
Nu l chu k c d liu th ti cui T3 CPU s ly mu tn hiu ca but d liu.
Nu ti cui chu k ng h T2 (hoc gia mi chu k T ca Tw) m CPU pht hin ra
tn hiu READY=0 (do b nh hay thit b ngoi vi a n) th CPU t xen vo sau T3 mt
vi chu k T to chu k i Tw = n*T nhm ko di thi gian thc hin lnh, to iu kin
cho b nh hoc thit b ngoi vi c thi gian hon tt vic ghi/c d liu.
Chu k T4:
Trong chu k ny cc tn hiu trn but c a v trng thi b ng chun b cho
chu k but mi. Tn hiu WR trong khi chuyn trng thi t 0 ln 1 s kch hot ng qu
trnh a vo b nh hay thit b ngoi vi.
Trn cc biu c ghi cng biu din cc thng s quan trng v mt thi gian lin
quan n tc hot ng ti thiu cn thit ca cc b nh hoc thit b ngoi vi nu chng
mun lm vic vi CPU 5MHz.
Trong biu thi gian c (Hnh IV-6) ta thy vic truy nhp b nh ko di trong
khong thi gian t T1 - T3 (gn 3 chu k ng h 3*T = 600 ms). Trong tng s thi gian
ny phi tnh n thi gian tr khi chuyn a ch ttr a ch = 110ns, thi gian gi ca d liu
khi c tgiR = 30 ns v thi gian tr do vic truyn tn hiu qua cc mch m nhiu nht l
ttr m = 40ns. Nh vy cc b nh ni vi 8086/8088 - 5MHz cn phi c thi gian truy nhp
nh hn:
3*T - ttr a ch - tgiR - ttr m = 600 - 110 - 30 - 40 = 420ns.
Mt khc vi CPU 8086/8088 5MHz th rng xung c l TRD = 325ns, l thi
gian di cho b nh vi thi gian truy nhp c 420ns lm vic.
Trong biu thi gian ghi (Hnh IV-7) ta thy phi c mt thi gian gi d liu ti
thiu ghi tgiW = 88ns sau khi WR t bin t 0 ln 1. trong thc t thi gian ny gn nh
bng 0 i vi b nh thng dng. di ca xung ghi i vi CPU 8086/8088 - 5MHz l
tWR = 340ns cng l ph hp vi cc b nh vi thi gian truy nhp c 450ns.
-72-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-73-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-74-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
thm tr thi gian ca tn hiu t CPU ti b nh hoc thit b ngoi vi. Tu theo quy m ca
mch gii m m ta c th c u ra mt hay nhiu tn hiu chn v.
-75-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Hnh IV-10 gii thiu mch gii m cho mch EPROM 2716 c dung lng 2K nh
mi cha 8 bt, lm vic trong di a ch FF800H-FFFFFH. Do mch nh c dung lng
2K tng ng vi di a ch 0FFH-7FFH (tng ng vi A0. . . A10). Nh vy, s lng cc
tn hiu a ch dng sinh ra tn hiu kch hot chp nh ny l A11-A19. Vi di a ch cho
trc FF800H-FFFFFH th t hp A11=. . . =A19=1 s sinh ra tn hiu chn v cho EPROM
2716. Bn cnh , ta cn phi hp vi cc tn hiu iu khin IO/ M v RD ( mc thp)
to ra tn hiu chn v.
-76-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
F8 1111 1 0 0 0
F9 1111 1 0 0 1
FA 1111 1 0 1 0
FB 1111 1 0 1 1
FC 1111 1 1 0 0
FD 1111 1 1 0 1
FE 1111 1 1 1 0
FF 1111 1 1 1 1
Qua bng trn, ta thy ch c cc tn hiu A12-A14 l thay i cn A15-A19 bng 1 v
khng i. Nh vy ta c th s dng mch gii m 74LS138 sinh ra cc tn hiu chn v
cho cc mch nh nh hnh sau:
Trong hnh v di y, cc tn hiu A12-A14 c ni trc tip vo tn hiu u vo
(A-C) ca 74LS138. Cc tn hiu a ch cn li A15-A19 v cc tn hiu iu khin IO/ M
c ni vo tn hiu iu khin ca 74LS138 (G2A, G2B). Tn hiu G1 lun mc l-gc 1.
Cc u ra ca 74LS138 c ni ln lt vi cc mch nh ng vi di a ch gn trc.
Ti th d ny ta thy mch gii m c sn 74LS138 c s lng u vo a ch v u
vo cho php hn ch. Nu ta c s lng u vo cho a ch ln m ta li phi gii m y
thc hin b gii m hon chnh ta vn phi dng thm cc mch logic ph. y
cng l l do ngi ta thay th cc b gii m kiu ny bng cc b gii m dng PROM
-77-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1
1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
-78-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Theo bng trn, trong di a ch t F8H-FFH ca ROM ta ghi 8 gi tr sao cho tn hiu
d liu u ra ch c duy nht mt tn hiu mc thp cn tt c cc tn hiu cn li u mc
cao. Ngoi 8 nh ny, tt c cc nh khc ca ROM u c in gi tr FFH.
Mch gii m cho b nh PROM c th hin trn hnh trn so vi cch thc hin b
gii m bng 74LS138 chng ta khng phi dng n cc mch ph iu ny lm gim ng
k kch thc vt l ca b gii m. Ngoi ra ta c th d dng thay i a ch ca cc mch
nh bng cch thay i v tr v gi tr d liu trong mch nh gii m ROM.
-79-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-80-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Hnh IV-17 biu din ghp ni gia 8086 vi bn phm 16 s dng tip im. Vi mch
74LS374 c dng iu khin cc tn hiu hng v 74LS244 dng iu khin cc tn
hiu ct ca bn phm. Nguyn tc hot ng ca mt phm nh sau. Nu tn hiu X mc
cao (l-gc 1) th i-t s kha li, vy nn tip im Y c ng xung hay khng th ti u
O ta lun thu c in p 5V (khng c dng in). Nu tn hiu X mc thp (l-gc 0),
th i-t m v khi tip im Y ng xung ti u O ta thu c in p 0V. Bng cch qut
tun t cc hng v c trn cc ct ta s xc nh c phm bm. Gi s tn hiu a ch
gii m vi mch m cng 374 l 0AH cn 244 l 0BH, on m sau y cho php xc nh
phm C c c bm hay khng:
Hang EQU 0AH
Cot EQU 0BH
MOV AL,11111110b ; Ch c D0=0
OUT Hang, AL
Ktra: IN AL, Cot ; c tn hiu ct
AND AL,00001000b ; Gi li bt D3 ng vi phm C
JNZ Ktra ; Khng bm
... ; Phm C c bm
-81-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Hnh IV-18 biu din mt mch hin th s s dng vi mch 7447 v. LED by on.
7447 cho php iu khin cc LED by on bng cch gii m s BCD ti u vo (A-D) v
sinh ra cc tn hiu kch hot cc thanh led ca LED by on (a-g). tit kim chi ph,
7447 c dng chung cho c 7 LED by on. Vic kch hot LED by on c iu
khin thng qua cng A v cc transitor Q1-Q7, d liu s cn hin th c gi qua cng B.
on m sau y dng kim tra h thng LED bng cch hin th trn c 7 LED s 8. Ch
rng bt 1 LEDi ta cn a tn hiu d liu Di=0 trn cng 0AH ti transitor Qi tng
ng.
DK_LED EQU 0AH ; Cng iu khin LED
DL_LED EQU 0BH ; Cng d liu hin th
MOV AL,FFH ; Tt tt c cc LED
OUT DK_LED, AL
MOV CX,16 ; Tr
Tre: NOP
LOOP Tre
MOV AL,8 ; a s 8 ra 7447
OUT DL_LED,AL
XOR AL,AL ; t AL=0
OUT DK_LED,AL ; Bt tt c cc LED
hay trao i d liu ni tip nh Intel 8251 hay 8250. Hai phng php u c u v nhc
im ring. Vi vic trao i d liu song song, knh d liu c th ghp ni trc tip vi cc
thit b bn ngoi m khng cn phi thc hin vic bin i tn hiu, tc trao i d liu
ln, tuy nhin khong cch ghp ni cc thit b ngn. Ghp ni ni tip cho php m rng
c ly ghp ni thit b, tuy nhin tc trao i d liu hn ch v phi thc hin vic bin
i d liu trn knh d liu song song ca h vi x l thnh chui cc tn hiu ni tip.
Phn di y gii thiu ghp ni d liu song song s dng vi mch Intel 8255A v
truyn thng ni tip s dng vi mch Intel 8251A.
Nhm A
iu Cng A
khin (8)
nhm A
Nhm A
Cng C
(4)
m
d liu
Nhm B
Cng C
(4)
L-gc iu
iu khin
khin nhm B Nhm B
ghi/c Cng B
(8)
-83-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
But a ch
But iu khin
But d liu
Hnh IV-20. Cc ch 0
b) Ch 1: Vo/ra thm d
Ch ny ch c cung cp trn hai cng A,B, mi cng c knh d liu l 8
bt v 4 tn hiu iu khin ly t cng C. D liu trn knh c th l vo hay ra. Cc
nhm tn hiu iu khin vo/ra nh sau:
u vo u ra
STB: Kim tra u vo (mc thp) OBF: D liu ra sn sng (mc thp)
IBF: D liu sn sng (mc cao) ACK: Nhn xong d liu (mc thp)
INTR: Bo ngt CPU (mc cao) INTR: Bo ngt CPU (mc cao)
Cc tn hiu iu khin ca hai cng A v B ly t cng C nh sau:
-84-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-85-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-86-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-87-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Trong cch truyn thng d b, d liu c truyn i theo tng k t ring bit. di
k t c th thay i t 5 n 8 bt. K t cn truyn i c gn thm 1 bt nh du u
bo bt u k t (Start bit) v mt hoc hai bt bo kt thc k t (Stop bit), v mt bt
kim tra tnh ton vn d liu (Parity bit). V mi k t c nhn dng ring bit nn n c
th c truyn i vo bt k lc no. Gia cc k t truyn i c th c cc khong cch v
thi gian. Dng thc ca d liu truyn i theo phng php d b c th hin trn hnh
di y.
-88-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-89-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-90-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Thanh ghi ch :
-91-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-92-
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
Hnh IV-35 gii thiu mch gii m a ch cho 8251A v ghp ni tn hiu ni tip
theo chun RS232. Vi mch 8251A hot ng 2 cng 78H v 79H (0111 100x). Lu c
c th c trin khai nh sau:
DK EQU 79H ; Thanh ghi iu khin
TThai EQU 79H : Thanh ghi trng thi
DL EQU 78H ;Thanh ghi d liu
khoitao: MOV AL, 11001111b ; Xc lp ch 8251A d b 2 bt stop,
OUT DK,AL ; 8 bt d liu khng chn l, tc x64
Ktra: IN AL, TThai ; Kim tra trng thi
AND AL,02H ; Bt 2 thanh ghi trng thi RxRDY
JNZ Ktra
DocDL: IN AL, DL
.... ; X l d liu
-93-
Chng V. Tng quan v cc phng php vo ra d liu
Cc mch kt ni trong Hnh IV-17 v Hnh IV-18 l cc v d tiu biu cho phng
php vo/ra lp trnh. Vi bn phm, CPU lin tc kim tra trng thi cc phm v nu c
phm c bm CPU s c thng tin trn cng vo xc nh phm no c bm. Vi b
hin th LED, CPU lin tc a d liu ra cc cng ra thit b c th hin th cc thng tin.
Khi s lng cc thit b vo/ra tng ln th thi gian dnh cho vic xc nh trng thi
ca thit b vo/ra cng tng ln nhanh chng nh trong Hnh V-1. CPU kim tra ln lt cc
-95-
Chng V. Tng quan v cc phng php vo ra d liu
thit b pht hin trng thi sn sng trao i d liu ca tng thit b v thc hin cc lnh
trao i d liu. Cc thit b c kim tra thm d theo trt t ngu nhin hoc theo mc
u tin ca cc thit b. Cch thc ny d n gin song c nhc im l thi gian qut
trng thi ca cc thit b chim t trng rt ng k trong sut qu trnh vo/ra nht l khi
cc thit b cha c d liu trao i.
-96-
Chng V. Tng quan v cc phng php vo ra d liu
-97-
Chng V. Tng quan v cc phng php vo ra d liu
-98-
Chng V. Tng quan v cc phng php vo ra d liu
o ICW1
Bt D0 ca ICW1 quyt nh 8259A s c ni vi h vi x l no. lm vic vi
h 16-32bt (8088 hoc h x86) th ICW nht thit phi c ICW4 = 0 (v nh vy cc bt ca
ICW4 s b xa v 0). Cc bt cn li ca ICW1 nh ngha cch thc tc ng ca xung yu
cu ngt (tc ng theo sn hay theo mc) ti cc chn yu cu ngt IR ca mch 8259A v
vic b tr cc mch 8259A khc trong h lm vic n l hay theo ch ni tng.
-99-
Chng V. Tng quan v cc phng php vo ra d liu
o ICW2
T iu khin khi u ny cho php chn kiu ngt (s hiu ngt) ng vi cc bt
T3-T7 cho cc u vo yu cu ngt. Cc bt T0-T2 c 8259A t ng gn gi tr ty theo
u vo yu cu ngt c th IRi. V d nu ta mun cc u vo ca mch 8259A c kiu
ngt l 40-47H ta ch cn ghi 40H vo cc bt T3-T7. Nu lm nh vy th IR0 s c kiu
ngt l 40H, IR1 s c kiu ngt l 41H. . .
o ICW3
T iu khin khi u ny ch dng n khi bt SNGL thuc t iu khin khi u
ICW1 c gi tr 0, ngha l trong h c cc mch 8259A lm vic ch ni tng. Chnh v
vy tn ti 2 loi ICW3: 1 cho mch 8259A ch v 1 cho mch 8259A th.
ICW3 cho mch ch: dng ch ra u vo yu cu ngt IRi no ca n c tn hiu
INT ca mch th ni vo.
ICW3 cho mch th: dng lm phng tin cc mch ny c nhn bit.
V vy t iu khin khi u ny phi cha m s i ng vi u vo Iri ca mch ch m
-100-
Chng V. Tng quan v cc phng php vo ra d liu
-101-
Chng V. Tng quan v cc phng php vo ra d liu
Bt BUF cho php nh ngha mch 8259A lm vic vi CPU trong trng hp c
m hoc khng c m ni vi but h thng. Khi lm vic ch c m (BUF = 1). Bt
M/S = 1/0 cho php ta chn mch 8259A lm vic ch ch/ th. SP/EN tr thnh u
ra cho php m m PIC v CPU thng vi but h thng.
Bt AEOI = 1 cho php chn cch kt thc yu cu ngt t ng. Khi AEOI = 1 th
8259A t ng xa ISRi = 0 khi xung INTA cui cng chuyn ln mc cao m khng lm
thay i th t u tin. Ngc li. Khi ta chn cch kt thc yu cu ngt thng (AEOI = 0)
th chng trnh phc v ngt phi c thm lnh EOI t trc lnh IRET kt thc cho
8259A.
-102-
Chng V. Tng quan v cc phng php vo ra d liu
OCW2
Cc bt R., SL, v EOI phi hp vi nhau cho php chn ra cc cch thc kt thc
yu cu ngt khc nhau. Mt vi cch thc yu cu ngt cn tc ng ti cc yu cu ngt
c ch ch danh vi mc u tin c gii m ha ca 3 bt L2, L1, L0.
Trc khi ni v cc cch kt thc yu cu ngt cho cc ch ta cn m du ngoc
y gii thiu cc ch lm vic ca 8259A.
Ch u tin c nh:
y l ch lm vic ngm nh ca 8259A sau khi n c np cc t
iu khin khi u. Trong ch ny, cc u vo IR7-IRO c gn cho cc
mc u tin c nh: IRO c gn cho mc u tin cao nht cn IR7 mc u
tin thp nht. Mc u tin ny c gi khng thay i cho n khi ghi mch
8259A b lp trnh khc i do OCW2.
Trong ch u tin c nh ti mt thi im ch c mt yu cu ngt i c
phc v (bt ISRi = 1) lc ny tt c c yu cu khc vi mc u tin thp hn
u b cm, tt c cc yu cu khc vi mc u tin thp hn u c th ngt
yu cu khc vi mc u tin thp hn.
Ch quay mc u tin (u tin lun phin) t ng:
ch ny sau khi mt yu cu ngt c phc v xong, 8259A s xo bt
tng ng ca n trong thanh ghi ISR v gn cho u vo ca n mc u tin
thp nht to iu kin cho cc yu cu ngt khc c c hi c phc v.
Ch quay (i) mc u tin ch ch danh:
ch ny ta cn ch r (ch danh) u vo IRi no, vi i=L2L1L0, c gn
mc u tin thp nht, u vo IRi+1 s uc t ng gn mc u tin cao nht.
-103-
Chng V. Tng quan v cc phng php vo ra d liu
-104-
Chng V. Tng quan v cc phng php vo ra d liu
-105-
Chng V. Tng quan v cc phng php vo ra d liu
D7 D6 D5 D4 D3 D2 D1 D0
-106-
Chng V. Tng quan v cc phng php vo ra d liu
V.4 Vo/ra bng truy nhp trc tip b nh (Direct memory Access)
-107-
Chng V. Tng quan v cc phng php vo ra d liu
Trong thc t c nhng khi ta cn trao i d liu tht nhanh vi thit b ngoi vi: nh
khi cn a d liu hin th ra mn hnh hoc trao i d liu vi b iu khin a. Trong
cc trng hp ta cn c kh nng ghi /c d liu trc tip vi b nh th mi p ng
c yu cu v tc trao i d liu. lm c iu ny cc h vi x l ni chung u
phi dng thm mch chuyn dng iu khin vic truy nhp trc tip vo b nh DMAC
(Direct Memory Access Controller)
V d di y minh ha iu ny. Trong khi mt mch DMAC nh 8237A ca Inter
c th iu khin vic chuyn mt byte trong mt mng d liu t b nh ra thit b ngoi vi
ch ht 4 chu k ng h th b vi x l 8086/8088 phi lm ht c 4 chu k:
; s chu k ng h
LAP: MOV AL, (SI ) ;10
OUT PORT, AL ;10
INC SI ;2
LOOP LAP ; 17
; CNG:39 chu k
h tr cho vic trao i d liu vi thit b ngoi vi bng cch truy nhp trc tip
vo b nh. CPU thng c tn hiu yu cu treo HOLD mi khi thit b cn dng but
cho vic trao i d liu vi b nh th thng qua chn ny m bo cho CPU bit. n lt
CPU, khi nhn c yu cu treo th n t treo ln (t tch ra khi h thng bng cch a
cc bt vo trng thi tr khng cao) v a xung HLDA ra ngoi thng bo CPU cho
php s dng but.
S khi ca mt h vi x l c kh nng trao i d liu theo kiu DMA c th
hin trn hnh di y.
Ta nhn thy trong h thng ny, khi CPU t tch ra khi h thng bng cch t treo
(ng vi v tr hin thi ca cc cng tc chuyn mch), DMAC phi chu trch nhim iu
-108-
Chng V. Tng quan v cc phng php vo ra d liu
khin ton b hot ng trao i d liu ca h thng. Nh vy, DMAC phi c kh nng to
ra c cc tn hiu iu khin cn thit ging nh cc tn hiu ca CPU v bn thn n phi
l mt thit b lp trnh c. Qu trnh hot ng ca h thng trn c th c tm tt nh
sau:
Khi thit b ngoi vi c yu cu trao i d liu kiu DMA vi b nh, n a yu cu
DREQ=1 n DMAC, DMAC s a yu cu treo HRQ=1 n chn HOLD ca CPU. Nhn
c yu cu treo, CPU s treo cc but ca mnh v tr li chp nhn treo qua tn hiu
HLDA=1 n chn HACK ca DMAC, DMAC s thng bo cho thit b ngoi vi thng qua
tn hiu DACK=1 l n cho php thit b ngoi vi trao i d liu kiu DMA. khi qu trnh
DMA kt thc th DMAC a ra tn hiu HRQ=0.
-109-
Chng V. Tng quan v cc phng php vo ra d liu
V.4.2.3 Tn dng thi gian CPU khng dng but trao i d liu.
Trong cch trao i d liu ny, ta phi c cc logic ph bn ngoi cn thit pht
hin ra cc chu k x l ni b ca CPU (khng dng n but ngoi) v tn dng cc chu k
vo vic trao i d liu gia thit b ngoi vi vi b nh. Trong cch lm ny th DMAC
v CPU lun phin nhau s dng but v vic truy nhp trc tip b nh kiu ny khng nh
hng g ti hot ng bnh thng ca CPU.
-110-
Chng V. Tng quan v cc phng php vo ra d liu
Mch DMAC 8237A cha 4 knh trao i d liu DMA vi mc u tin lp trnh
c. DMAC 8237A c tc truyn 1 MB/s cho mi knh, mt knh c th truyn mt
mng c di 64KB.
-111-
Chng V. Tng quan v cc phng php vo ra d liu
-112-
Chng V. Tng quan v cc phng php vo ra d liu
-113-
Chng V. Tng quan v cc phng php vo ra d liu
-114-
Chng V. Tng quan v cc phng php vo ra d liu
-115-
Chng V. Tng quan v cc phng php vo ra d liu
Trong ch DMA theo yu cu. DMAC tin hnh chuyn d liu cho n khi c tn hiu
EOP t bn ngoi hoc cho n khi khng cn yu cu DMA na (DREQ tr nn khng tch
cc)
Trong ch DMA chuyn tng byte, chng no vn cn yu cu DMA (DREQ vn l
tch cc) th DMAC a ra HRQ=0 trong thi gian 1 chu k but sau mi ln chuyn sang 1
byte. Sau n li a ra HRQ=1. C nh vy DMAC v CPU lun phin nhau s dng but
cho n khi m ht (TC).
Trong ch DMA chuyn c mng, c mt mng gm mt s byte bng ni dung b
m c chuyn lin mt lc. Chn yu cu chuyn d liu DREQ khng cn phi gi c
mc tch cc sut trong qu trnh chuyn. Ch ni tng c dng khi c nhiu b
DMAC c dng trong h thng m rng s knh c th yu cu DMA.
D7 D6 D5 D4 D3 D2 D1 D0
D7=1: Knh 0 c yu cu D0=1: Knh 0 t s m
D6=1: Knh 1 c yu cu D1=1: Knh 1 t s m
D5=1: Knh 2 c yu cu D2=1: Knh 2 t s m
D4=1: Knh 3 c yu cu D3=1: Knh 3 t s m
V.4.3.4 Cc lnh c bit cho DMAC 8237A
C 3 lnh c bit iu khin hot ng ca DMAC 8237A. Cc lnh ny ch thc
hin bng cc lnh OUT vi cc a ch cng xc nh th theo thanh ghi m khng cn n
gi tr c th ca thanh ghi AL.
1. Lnh xa mch lt byte u/byte cui (First/Lt, F/L): F/L l mt mch lt bn
trong DMAC bt ch ra byte no trong cc thanh ghi 16bt (thanh ghi a ch
hoc thanh ghi s m c chn lm vic. Nu F/L=1 thi s l MSB, cn
nu F/L=O) th s l LSB. Mch lt F/L t ng thay i trng thi khi ta ghi
/c cc thanh ghi . khi khi ng xong th F/L=O
2. Lnh xo ton b cc thanh ghi: lnh ny c tc ng nh thao tc khi ng.
Tt c cc thanh ghi u b xo ring thanh ghi mt n tng hp th c lp
cm cc yu cu trao i d liu.
3. Lnh xo thanh ghi mt n tng hp: Lnh ny cho php cc knh ca DMAC
bt u yu cu trao i d liu.
+ xo mt lt F/L
+cm cc yu cu ca cc knh
+ghi LSB ri MSB ca thanh ghi a ch
+ghi LSB ri MSB ca thanh ghi s m
Di y l mt on m cho 8237A c a ch c s 70H v c ghp vi vi
x l 8088 nh trong Hnh V-18.
ChotB EQU 010H ; a ch mch cht B
FL EQU 07CH ; a ch mch lt
C0 EQU 070H ; a ch knh 0
C1 EQU 072H ; a ch knh 1
Dem_C1 EQU 073H ; a ch knh 0
CheDo EQU 07BH ; a ch thanh ghi ch
Lenh EQU 078H ; a ch thanh ghi lnh
MatNa EQU 07FH ; a ch thanh ghi mt n
YeuCau EQU 079H ; a ch thanh ghi yu cu
TThai EQU 078H ; a ch thanh ghi trng thi
SoByte DW 0100H ; S byte cn chuyn
A16_19 DB 01H ; 4 bt a ch cao
Nguon DW 00000H ; a ch ngun
Dich DW 04000H ; a ch ch
;
MOV AL,A16_19
OUT ChotB, AL ; Gi a ch cao ra mch cht
OUT FL, AL ; Xa mch lt
MOV AX, Nguon ;a ch ngun ra knh 0
OUT C0,AL
MOV AL, AH
OUT C0, AL
MOV AX, Dich ; a ch ch ra knh 1
OUT C1, AL
MOV AL, AH
OUT C1, AL
DEC SoByte
-118-
Chng V. Tng quan v cc phng php vo ra d liu
-119-
Chng V. Tng quan v cc phng php vo ra d liu
-120-
Chng VI. Cc b vi iu khin
-122-
Chng VI Cc b vi iu khin
VI.2.1 S khi
-123-
Chng VI Cc b vi iu khin
Cc tn hiu ngt ca 8051 c th chia thnh 2 loi bn trong v bn ngoi khi xng.
Khi ngt din ra, chng trnh ang chy s b dng v chng trnh phc v ngt c kch
hot. Khi kt thc, vi iu khin s quay tr li chng trnh b dng nh cha c g xy ra.
Ngt xy ra ng thi c x l theo u tin.
B nh thi hay b m l chui mch lt thay i trng thi theo tng tn hiu vo/ra.
Hai b m T0, T1 c th c lp trnh chia 256, 8192 hay 65536 v sinh ra cc tn hiu
ngt khi kt thc. Tn hiu ny c th c pht hin thng qua phn mm.
-124-
Chng VI Cc b vi iu khin
dng km vi thanh ghi A trong cc thao tc nhn chia. Ngoi ra, 8051 cn 32 thanh ghi khc
nm trong b nh RAM trong chia thnh bn bng, B0-B3, gm 8 thanh ghi R0-R7.
C l cc thanh ghi 1 bt cho bit trng thi ca mt s lnh v c gp vo thanh ghi
t trng thi chng trnh (Program Status Word PSW). 8051 c cc c nh C, ph AC, trn
OV v chn l P. Cc c ngi dng F0 v GF0-1. Cc c ngi dng c th ty bin theo
yu cu ngi vit chng trnh nh lu cc s kin.
Con tr ngn xp SP l thanh ghi 8 bt lu v tr nh ngn xp trong b nh RAM trong
ca 8051.
Cc thanh ghi chc nng c bit nm trong b nh RAM trong t a ch 00-7Fh. Cc
thanh ghi ny c th c t tn ring trong mt m lnh v tham chiu qua a ch. V d
thanh ghi A cn c tham chiu qua a ch 0E0h.
VI.2.3 Tp lnh
8051 h tr cc ch a ch sau:
1. Ch a ch trc tip: d liu dnh cho lnh l mt phn trong m lnh. T
gi nh cho ch ny l du #. V d MOV A, #100.
2. Ch a ch thanh ghi: thanh ghi lu gi tr d liu.
3. Ch a ch trc tip: a ch nh l mt phn ca cu lnh
4. Ch a ch gin tip: gi tr thanh ghi cho bit a ch ca d liu. T gi
nh l @. V d MOV A, @R0 ; Np d liu ti nh c gi tr R0 vo thanh
ghi A.
Tp lnh 8051 h tr cc thao tc di chuyn d liu, cc thao tc l-gc, cc php
ton s hc v cc cu lnh nhy v gi hm.
V d VI-1
on chng trnh 8051
Nhan: INC 3Ch ; Tng gi tr nh 3Ch ln 1
MOV A, #2Ah ; A=2Ah
XRL A, 3Ch ; XOR A vi gi tr ti nh 3Ch
JNZ Nhan ; Nhy ti Nhan nu kt qu XOR khc 0
NOP ;khng lm g c
-125-
Chng VI Cc b vi iu khin
-126-
Chng VI Cc b vi iu khin
-127-
Chng VI Cc b vi iu khin
-128-
Chng VII. Gii thiu mt s vi x l tin tin
Cc thanh ghi MMX: bao gm 8 thanh ghi h tr c ch thc hin 1 lnh v nhiu
d liu vi cc thao tc cc s nguyn (1 byte, 2 byte hay 4 byte) c xp vo gi
64 bt.
Cc thanh ghi XMM: h tr cc thao tc s nguyn v s thc c xp vo cc gi
128 bt.
Cc vi x l th h sau h tr IA-32 p dng cc tnh nng thc thi lnh tin tin cho
php thc hin c nhiu hn 1 lnh trong 1 chu trnh lnh nh k thut ng ng, siu v
hng, hay siu phn lung. Cc th h Pentium u tin s dng cc vi kin trc siu v
hng cho php thc hin 3 lnh trong mt chu k xung nhp vi cc siu ng ng 12 on
v c ch thc thi v hng (out-of-order execution). Vi kin trc Netburst trong Hnh VII-1.
Vi kin trc Netburst tng cng tnh nng kin trc Pentium th h u bng vic tng
cng nng lc ca n v x l, nng cao hiu nng ca b m tch hp, m rng giao tip
but. Cc vi x l IA-32 th h mi cn h tr c ch a nhn (multi-core) bn cnh kin trc
siu phn lung cho php chy nhiu ng dng ng thi. Vic kt hp hai kin trc lm cho
cc chng trnh ng dng c th s dng 4 b vi x l l-gc trn 2 b vi x l vt l. Bn
cnh , b x l th h mi h tr cng ngh o ha cho php nhiu h iu hnh v ng
dng chy trn cc my o khc nhau cng chia s h thng phn cng.
-130-
Chng VII. Gii thiu mt s vi x l tin tin
V m hnh b nh, cc chng trnh khng truy nhp trc tip vo b nh vt l. Thay
vo , cc chng trnh c th s dng cc m hnh truy nhp:
1. Tuyn tnh: Chng trnh coi b nh nh mt chui lin tip cc byte. on
m, d liu v ngn xp u nm trong khng gian a ch ny.
2. Phn on: B nh c chia thnh cc khng gian khc nhau c gi l on.
Thng thng d liu, on m, ngn xp s dng cc on khc nhau. B x
l h tr IA-32 c th cung cp 16. 383 on vi cc kch c khc nhau, kch c
ln nht ca 1 on l 4GB.
3. a ch thc: y l m hnh b nh ca 8086.
4. Phn trang v b nh o: khi ny b nh chng trnh c chia thnh cc trang
nh x vo b nh o. Sau , b nh o c nh x vo b nh thc. Nu h
iu hnh s dng phn trang, c ch nh x hon ton trong sut i vi
chng trnh ng dng
VII.1.2 Cc vi x l h tr IA-32
Vi u th ca cng ngh v thit k vi kin trc mi, mi mt th h vi x l IA-32
mi u vt ngng tc (tn s hot ng) v nng lc thc hin ca cc vi x l th h
trc. Bng di y lit k cc vi x l IA-32 th h u khng c b m tch hp trong vi
x l (GP-thanh ghi dng chung; FPU-thanh ghi du phy ng).
Bng VII-1. Vi x l h tr IA-32 th h u
But d
Nm sn Tn s B nh
Vi x l S thanh ghi liu m B m
xut (MHz) ti a
rng
80386DX 1985 20 32GP 32 4GB
32GP
Intel 486DX 1989 25 32 4GB 8KB L1
80 FPU
32GP
Pentium 1993 60 64 4GB 16KB L1
80 FPU
16KB L1
32GP
Pentium Pro 1995 200 64 64GB 256-512KB
80 FPU
L2
32GP 32KB L1
Pentium II 1997 266 80 FPU 64 64GB 256-512KB
64 MMX L2
32GP
80 FPU 32KB L1
Pentium III 1999 500 64 64GB
64 MMX 512KB L2
128 XMM
-131-
Chng VII. Gii thiu mt s vi x l tin tin
Kin trc Intel IA-64 b sung khng gian a ch chng trnh 64 bt h tr khng gian
nh vt l ti 40 bt v ch IA-32e so vi kin trc IA-32 trc . Kin trc IA-64 m
bo tnh tng thch ngc cho php chy cc chng trnh vit cho kin trc IA-32. Cc ch
mi ca IA-64 bao gm:
Ch tng thch: cho php chy cc ng dng 16 v 32 bt m khng phi bin dch
li. Ch ny tng t nh ch bo v trong IA-32. Cc ng dng ch truy nhp
c 4GB u trong khng gian nh tuyn tnh. Tuy nhin, ng dng c th s dng
khng gian nh ln hn vi ch m rng a ch vt l.
Ch 64 bt. Cho php chng trnh truy nhp khng gian nh tuyn tnh 64 bt. Ch
ny m rng s lng cc thanh ghi dng chung v thanh ghi XMM t 8 ln 16. Cc
thanh ghi dng chung c kch c 64 bt.
Ch 64 c kch hot trn c s on m. Kch c mc nh cho a ch l 64 bt cn
ton hng 32 bt. Kch c ca ton hng c th thay i theo tng lnh s dng tin t
-132-
Chng VII. Gii thiu mt s vi x l tin tin
-133-
Chng VII. Gii thiu mt s vi x l tin tin
-134-
Chng VII. Gii thiu mt s vi x l tin tin
-135-
Ti liu tham kho
1. Crisp J. Introduction to microprocessors and microcontrollers, Newnes 2004
2. David Calcutt, Fred Cowan,Hassan Parchizadeh, 8051 Microcontrollers An
Applications-Based Introduction, Newnes 2004
3. Douglas V. Hall. Microprocessor and Interfacing- programming and hardware,
2nd edition. McGraw Hill. 1997.
4. Hari BalaKrishnan & Samel Madden. The lecture notes on Computer Systems
Engineering, Open Courses Ware. Massachusets Institute of Technology.
5. H Khnh Lm, K thut vi x l, NXB Bu in 2005
6. Intel Corp. Intel 64 and IA-32 Architectures Software Developers Manual
7. Rafiquzzaman M. Microprocessor theory and applications with 68000/68020 and
Pentium, John Wiley&Sons 2008
8. Vn Th Minh. K thut vi x l. NXB Gio dc 1999.