You are on page 1of 136

-1-

HC VIN CNG NGH BU CHNH VIN THNG


*****
PHM HONG DUY





BI GING
K THUT VI X L











H NI 06-2010

-2-


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 1 gii thiu cc khi nim tng quan ca h vi x l v cc b phn cn bn
cu thnh h vi x l ni chung. Chng ny cng tm tt qu trnh pht trin v phn loi
cc b vi x l n nay.
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 3 cung cp cc kin thc cn bn lp trnh vi vi x l 8086 bng cch gii
thiu cc cu trc chng trnh v cc cu trc r nhnh v lp tiu biu kt hp vi cc v
d.
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.
Chng 5 cung cp cc kin thc cn bn v cc k thut trao i d liu vi cc thit
b ghp ni vi h vi x l ni chung bao gm vo/ra thm d (lp trnh), vo/ra s dng ngt
v vo/ra trc tip b nh. Trong ba phng php, vo/ra trc tip b nh cho php trao i
khi lng d liu ln vi tc cao v cn c vi mch c bit. Chng ny cng gii thiu
vi mch tr gip cho cc phng php vo ra nh vi mch iu khin ngt, vi mch iu
khin vo ra trc tip b nh.

-3-

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.
Chng 7, chng cui cng, gii thiu mt s b vi x l tin tin ca Sun
Microsystems v Intel da trn kin trc IA-32 v IA-64.
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



-4-

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
Chng II. B vi x l Intel 8086 ....................................................................................... 16
II.1 Cu trc bn trong ca 8086/8088 ........................................................................................... 16
II.1.1 S khi ............................................................................................................................ 16
II.1.2 Cc n v chc nng: BIU, EU, cc thanh ghi v but trong ............................................ 17
II.1.3 Phn on b nh ca 8086/8088 ....................................................................................... 20
II.2 B ng x l ton hc 8087 ................................................................................................... 21
II.3 Tp lnh ca 8086/8088 ........................................................................................................... 22
II.3.1 Khi nim lnh, m ho lnh v qu trnh thc hin lnh ................................................... 22
II.3.2 Cc ch a ch ca 8086/8088 ...................................................................................... 23
II.3.3 Tp lnh ca 8086/8088 ...................................................................................................... 27
II.4 Ngt v x l ngt trong 8086/8088 ......................................................................................... 33
II.4.1 S cn thit phi ngt CPU ................................................................................................. 33
II.4.2 Cc loi ngt trong h 8088 ................................................................................................ 33
II.4.3 p ng ca CPU khi c yu cu ngt ............................................................................... 34
II.4.4 X l u tin khi ngt .......................................................................................................... 36
Chng III. Lp trnh hp ng vi 8086/8088 .................................................................... 37
III.1 Gii thiu khung ca chng trnh hp ng ............................................................................ 37
III.1.1 C php ca chng trnh hp ng .................................................................................... 37
III.1.2 D liu cho chng trnh .................................................................................................... 38
III.2 Cch to v chy chng trnh hp ng................................................................................... 48
III.3 Cc cu trc lp trnh c bn .................................................................................................... 49
III.4 Gii thiu mt s chng trnh c th ...................................................................................... 55
III.4.1 V d 1 ................................................................................................................................. 56
III.4.2 V d 2 ................................................................................................................................. 56
III.4.3 V d 3 ................................................................................................................................. 58
III.4.4 V d 4 ................................................................................................................................. 60
III.4.5 V d 5 ................................................................................................................................. 61
Chng IV. Phi ghp vi x l vi b nh v cc thit b vo/ra ...................................... 62
IV.1 Cc tn hiu ca vi x l v cc mch ph tr ......................................................................... 62
IV.1.1 Cc tn hiu ca 8086/8088................................................................................................. 62
IV.1.2 Phn knh tch thng tin v vic m cho cc but ....................................................... 66
IV.1.3 Mch to xung nhp 8284. ................................................................................................... 67
IV.1.4 Mch iu khin but 8288 ................................................................................................. 68

-5-

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
Chng V. Tng quan v cc phng php vo ra d liu ............................................. 94
V.1 Gii thiu ................................................................................................................................. 94
V.2 Vo/ra bng phng php thm d .......................................................................................... 95
V.3 Vo/ra bng ngt ...................................................................................................................... 96
V.3.1 Gii thiu............................................................................................................................. 96
V.3.2 B x l ngt u tin 8259 .................................................................................................. 96
V.4 Vo/ra bng truy nhp trc tip b nh (Direct memory Access) ......................................... 107
V.4.1 Khi nim v phng php truy nhp trc tip vo b nh .............................................. 107
V.4.2 Cc phng php trao i d liu .................................................................................... 109
V.4.3 B iu khin truy nhp trc tip vo b nh Intel 8237A ................................................ 110
Chng VI. Cc b vi iu khin ....................................................................................... 121
VI.1 Gii thiu v vi iu khin v cc h nhng .......................................................................... 121
VI.1.1 Gii thiu........................................................................................................................... 121
VI.1.2 Cc kiu vi iu khin ....................................................................................................... 121
VI.2 H vi iu khin Intel 8051 .................................................................................................... 122
VI.2.1 S khi .......................................................................................................................... 123
VI.2.2 Cc thanh ghi .................................................................................................................... 124
VI.2.3 Tp lnh ............................................................................................................................. 125
VI.3 Gii thiu mt s ng dng tiu biu ca vi iu khin ......................................................... 125
VI.3.1 Chuyn i s tng t (D/A) ........................................................................................... 126
VI.3.2 Chuyn i tng t s (A/D) ........................................................................................... 127
Chng VII. Gii thiu mt s vi x l tin tin ................................................................ 129
VII.1 Cc vi x l tin tin da trn kin trc Intel IA-32 .............................................................. 129
VII.1.1 Gii thiu IA-32 ................................................................................................................ 129
VII.1.2 Cc vi x l h tr IA-32 ................................................................................................... 131
VII.2 Cc vi x l tin tin da trn kin trc Intel IA-64 .............................................................. 132
VII.3 Cc vi x l tin tin ca Sun Microsystems ......................................................................... 134
Ti liu tham kho .................................................................................................................. 136

Chng I. Tng quan v vi x l v h vi x l
I.1 Gii thiu v 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
-7-

I.2 H vi x l
B vi x l l mt thnh phn rt c bn, khng thiu c to nn my vi tnh.
Trong thc t b vi x l cn phi c th kt hp thm vi cc b phn in t khc nh b
nh v b phi ghp vo/ra to nn mt h vi x l hon chnh. Cn lu rng, ch mt
h thng c cu trc nh trn, thut ng h vi x l mang ngha tng qut hn so vi
thut ng my vi tnh, v my vi tnh ch l mt ng dng c th cu h vi x l. Hnh I-1
gii thiu s khi tng qut ca mt h vi x l.

Hnh I-1. S khi ca h vi x l
Trong s ny ta thy r cc khi chc nng chnh ca h vi x l gm:
Khi x l trung tm (Central Processing unit, CPU)
B nh bn dn (ROM-RAM)
Khi phi ghp vi cc thit b ngoi vi (Input/Output - I/O)
Cc but truyn thng tin.
Ba khi chc nng u lin h vi nhau thng qua qp cc ng day truyn tn hiu
gi chung l But h thng. But h thng bao gm 3 but thnh phn ng vi cc tn hiu
a ch, d liu v iu khin ta c but a ch, but d liu v but iu khin.
CPU ng vai tr ch o trong h vi x l. y l mt mch vi in t c tch hp
rt cao. Khi hot ng, CPU c m lnh c ghi di dng cc bt 0 v bt 1 t b nh, sau
s gii m cc lnh ny thnh cc dy xung iu khin ng vi cc thao tc trong lnh
iu khin cc khi khc thc hin tng bc cc thao tc . lm c vic ny bn
trong CPU c thanh ghi dng cha a ch ca lnh sp thc hin gi l thanh ghi con tr
lnh (Instruction Pointer, IP) hoc b m chng trnh (Program Counter, PC), mt s
thanh ghi a nng khc cng b tnh ton s hc v l-gc (Arithmetic Logic Unit ALU)
B x l trung
tm
(CPU)

Thanh ghi trong
B nh
(ROM-RAM)

Thanh ghi ngoi

Phi ghp vo/ra
(I/O)

Thanh ghi ngoi
Thit b vo
Thit b ra
But a ch
But iu
khin
But d liu
Chng I .Tng quan v vi x l v h vi x l
-8-

thao tc vi d liu. Ngoi ra y cn c cc h thng mch in t rt phc tp gii m
lnh v t to ra cc xung iu khin cho ton h.
B nh bn dn hay cn gi l b nh trong l mt b phn khc rt quan trng ca h
vi x l. Ti y (trong ROM) ta c th cha chng trnh iu khin hot ng ca ton h
khi bt in th CPU c th ly lnh t y khi ng h thng. Mt phn ca chng
trnh iu khin h thng, cc chng trnh ng dng, d liu cng cc kt qu ca chng
trnh thng c t trong RAM. Cc d liu v chng trnh mun lu tr lu di hoc c
dung lng ln s c t trong b nh ngoi.
Khi phi ghp vo/ra (I/O) to ra kh nng giao tip gia h vi x l vi th gii bn
ngoi. Cc thit b ngoi vi nh bn phm, chut, mn hnh, my in, chuyn i s/tng t
(D/A Converter, DAC) v chuyn i tng t/s (A/D Converter, ADC), a t. . . u
lin h vi b vi x l qua b phn ny. B phn phi ghp c th gia but h thng vi th
gii bn ngoi thng c gi l cng. Nh vy ta s c cc cng vo ly thng tin t
ngoi vo v cc cng ra a thng tin t trong ra. Ty theo nhu cu c th ca cng vic,
cc mch cng ny c th c xy dng t cc mch lgic n gin hoc t cc vi mch
chuyn dng lp trnh c.
But a ch (address bus) thng c t 16, 20, 24, 32 hay 64 ng dy song song
chuyn ti thng tin ca cc bt a ch. Khi c/ghi b nh CPU s a ra trn but ny a
ch ca nh lin quan. Kh nng phn bit a ch (s lng a ch cho nh m CPU c
qun l c) ph thuc vo s bt ca but a ch. V d nu mt CPU c s ng dy a
ch l N=16 th n c kh nng a ch ha c 2
N
= 65536 =64 kil nhkhc nhau (1K=
2
10
=1024). Khi c/ghi vi cng vo/ra CPU cng a ra trn but a ch cc bt a ch
tng ng ca cng. Trn s khi ta d nhn ra tnh mt chiu ca but a ch qua mt
chiu ca mi tn. Ch c CPU mi c kh nng a ra a ch trn but a ch.
But d liu (data bus) thng c t 8, 16, 20, 24, 32, 64 ( hoc hn) ng dy ty
theo cc b vi x l c th. S lng ng dy ny quyt nh s bt d liu m CPU c kh
nng x l cng mt lc. Chiu mi tn trn sus s liu ch ra rng y l but 2 chiu, ngha
l d liu c th truyn i t CPU (d liu ra) hoc truyn n CPU (d liu vo). Cc phn
t c u ra ni thng vi but d liu u phi c trang b u ra 3 tng thi c th
ghp vo c v hot ng bnh thng vi but ny.
But iu khin (control bus) thng gm hng chc ng dy tn hiu khc nhau.
Mi tn hiu iu khin c mt chiu nht nh v khi hot ng CPU a tn hiu iu khin
ti cc khi khc trong h. ng thi CPU cng nhn tn hiu iu khin t cc khi
phi hp hot ng ca ton h. Cc tn hiu ny trn hnh v c th hin bi cc ng c
mi tn 2 chiu, iu khng phi l ch tnh hai chiu ca mt tn hiu m l tnh hai
chiu ca c mt nhm cc tn hiu.
Mt khc, hot ng ca h thng vi x l trn cng c th coi nh l qu trnh trao i
d liu gia cc thanh ghi bn trong. V mt chc nng mi khi trong h thng trn tng
ng vi cc thanh ghi trong (nm trong CPU) hoc cc thanh ghi ngoi (nm ri rc trong
b nh ROM, b nh RAM v trong khi phi ghp vo/ra). Hot ng ca ton h thc cht
Chng I .Tng quan v vi x l v h vi x l
-9-

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.

I.3.1.1 Cc thanh ghi
S lng, kch c v kiu ca cc thanh ghi thay i t vi x l ny sang vi x l khc.
Tuy nhin, cc thanh ghi ny thc hin cc thao tc tng t nhau. Cu trc cc thanh ghi
ng vai tr quan trng trong vic thit k kin trc ca vi x l. ng thi, cu trc thanh
ghi vi mt loi vi x l c th cho bit mc thun li v d dng khi lp trnh cho vi x
l . Di y l cc thanh ghi c bn nht:
i. Thanh ghi lnh: lu cc lnh. Sau khi np m lnh t b nh, vi x l lu m lnh
trong thanh ghi lnh. Gi tr trong thanh ghi ny lun c vi x l gii m xc
nh lnh. Kch c t (word) ca vi x l quyt nh kch c ca thanh ghi ny. V d,
vi x l 32 bt th s c thanh ghi lnh 32 bt.

n v iu khin
CU

B
u

t

d


l
i

u


n v s hc v
l-gc ALU

Cc thanh ghi
Hnh I-2. S khi chc nng vi x l
Thanh ghi lnh
Thanh ghi a ch
Thanh ghi tm
Chng I .Tng quan v vi x l v h vi x l
-10-

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.2 n v x l s hc v l-gc ALU
ALU thc hin tt c cc thao tc x l d liu bn trong vi x l nh l cc php ton
l-gc, s hc. Kch c thanh ghi ALU tng ng vi kch c t ca vi x l. Vi x l 32 bt
s c ALU 32 bt. Mt vi chc nng tiu biu ca ALU:
1. Cng nh phn v cc php l-gc
2. Tnh s b mt ca d liu
3. Dch hoc quay tri phi cc thanh ghi dng chung.
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),
I.3.1.4 Thc hin chng trnh
chy chng trnh, vi x l thng lp li cc bc sau hon thnh tng lnh:
1. Np (Fetch). Vi x l np (c) lnh t b nh chnh vo thanh ghi lnh
Chng I .Tng quan v vi x l v h vi x l
-11-

2. Gii m (Decode). Vi x l gii m hay dch lnh nh n v iu khin CU.
CU nhp ni dung ca thanh ghi lnh v gii m xc nh kiu lnh.
3. Thc hin (Execute). Vi x l thc hin lnh nh CU. hon thnh nhim v,
CU sinh ra mt chui cc tn hiu iu khin tng ng vi lnh.
Qu trnh trn c lp i lp li cho n cu lnh cui cng ca chng trnh. Trong
cc vi x l tin tin qu trnh thc hin lnh c ci tin cho php nhiu lnh c thc
hin xen k vi nhau. Tc l, cu lnh k tip s c thc hin m khng cn ch cu lnh
hin thi kt thc. K thut trn c gi l k thut ng ng (pipeline). Vic thc hin
xen k cho php nng cao tc thc hin ca vi x l v lm gim thi gian chy chng
trnh.
I.3.2 Kin trc RISC v CISC
C hai kin kin trc vi x l: my tnh vi tp lnh rt gn (Reduced Instruction Set
Computer-RISC) v my tnh vi tp lnh phc tp (Complex Instruction Set Computer-
CISC). Vi x l RISC nhn mnh tnh n gin v hiu qu. Cc thit k RISC khi u vi
tp lnh thit yu v va . RISC tng tc x l bng cch gim s chu k ng h trn
mt lnh. Mc ch ca RISC l tng tc hiu dng bng cch chuyn vic thc hin cc
thao tc khng thng xuyn vo phn mm cn cc thao tc ph bin do phn cng thc
hin. Nh vy lm tng hiu nng ca my tnh. Cc c trng cn bn ca vi x l kiu
RISC:
1. Thit k vi x l RISC s dng iu khin cng (hardwired control) khng
hoc rt t s dng vi m. Tt c cc lnh RISC c nh dng c nh v vy
vic s dng vi m khng cn thit.
2. Vi x l RISC x l hu ht cc lnh trong mt chu k.
3. Tp lnh ca vi x l RISC ch yu s dng cc lnh vi thanh ghi, np v
lu. Tt c cc lnh s hc v l-gc s dng thanh ghi, cn cc lnh np v
lu dng truy nhp b nh.
4. Cc lnh c mt nh dng c nh v t ch a ch.
5. Vi x l RISC c mt s thanh ghi dng chung.
6. Vi x l RISC x l mt vi lnh ng thi v thng p dng k thut ng
ng (pipeline).
Vi x l RISC thng ph hp vi cc ng dng nhng. Vi x l hay b iu khin
nhng thng c nhng trong h thng ch. Ngha l, cc thao tc ca cc b iu khin
ny thng c che du khi h thng ch. ng dng iu khin tiu biu cho ng dng
nhng l h thng t ng ha vn phng nh my in lade, my a chc nng. Vi x l RISC
cng rt ph hp vi cc ng dng nh x l nh, r-bt v ha nh c mc tiu th in
thp, thc thi nhanh chng.
Mt khc, vi x l CISC bao gm s lng ln cc lnh v nhiu ch a ch m
nhiu kiu rt t c s dng. Vi CISC hu ht cc lnh u c th truy nhp b nh trong
khi RISC ch c cc lnh np v lu. Do tp lnh phc tp, CISC cn n v iu khin
phc tp v vi chng trnh. Trong khi , RISC s dng b iu khin kt ni cng nn
nhanh hn. Kin trc CISC kh trin khai k thut ng ng.
Chng I .Tng quan v vi x l v h vi x l
-12-

u im ca CISC l cc chng trnh phc tp c th ch cn vi lnh vi vi chu
trnh np cn RISC cn mt s lng ln cc lnh thc hin cng nhim v. Tuy nhin,
RISC c th ci thin hiu nng ng k nh xung nhp nhanh hn, k thut ng ng v ti
u ha qu trnh bin dch. Hin nay, cc vi x l CISC s dng phng php lai, vi cc
lnh n gin CISC s dng cch tip cn ca RISC thc thi xen k (k thut ng ng)
vi cc cu lnh phc tp s dng cc vi chng trnh m bo tnh tng thch.
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.
I.4 Lch s pht trin v phn loi cc b vi x l
Phn ny gii thiu qu trnh pht trin ca cc b vi x l qua cc giai on t nm
1971 tp chung ch yu vo cc sn phm ca hng Intel do y l mt trong nhng hng sn
xut vi x l hng u ng thi cng l hng trin khai nhiu cng ngh mi gip nng cao
hiu nng ca vi x l c bit trong lnh vc my vi tnh.
I.4.1 Giai on 1971-1973
Nm 1971, trong khi pht trin cc vi mch dng cho my tnh cm tay, Intel cho ra
i b vi x l u tin l 4004 (4 bt) ca Rockwell International, IPM-16 (16 bt) ca
National Semiconductor.
c im chung ca cc vi x l th h ny l:
- di t thng l 4 bt (cng c th di hn)
- Cng ngh ch to PMOS vi c im mt phn t nh, tc thp, gi
thnh r v c kh nng a ra dng ti nh.
- Tc thc hin lnh: 10-16s/lnh vi tn s ng h f
clk
= 0, 1- 0, 8 MHz.
Chng I .Tng quan v vi x l v h vi x l
-13-

- Tp lnh n gin phi cn nhiu mch ph tr mi to nn mt h vi x l
hon chnh.
I.4.2 Giai on 1974-1977
Cc b vi x l i din trong th h ny l cc vi x l 8 bt 6502 ca MOS
Technology, 6800 v 6809 ca Motorola, 8080 v 8085 ca Intel v c bit l b vi x l
Z80 ca Zilog. Cc b vi x l ny c tp lnh phong ph hn v thng c kh nng phn
bit a ch b nh vi dung lng n 64KB. C mt s b vi x l cn c kh nng phn
bit c 256 a ch cho cc thit b ngoi vi (h Intel v Zilog). Chng c s dng
rng ri trong cng nghip v nht l to ra cc my tnh 8 bt ni ting mt thi nh
Apple II v Commodore 64. Tt c cc b vi x l thi k ny u c sn xut bng cng
ngh NMOS (Vi mt in t trn mt n v din tch cao hn so vi cng ngh PMOS)
hoc CMOS (tit kim in nng tiu th) cho php t c tc t 1-8 s/lnh vi tn s
ng h f
clk
= 1-5 MHz.
I.4.3 Giai on 1978-1982
Cc b vi x l trong th h ny c i din l cc b vi x l 16 bt 8086/80186/80286
ca Intel hoc 86000/86010 ca Motorola. Mt iu tin b hn hn so vi cc b vi x l 8
bt th h trc l cc b vi x l 16 bt c tp lnh a dng vi cc lnh nhn, lnh chia v
cc lnh thao tc vi chui k t. Kh nng phn bit a ch cho b nh hoc cho thit b
ngoi vi ca cc vi x l th h ny cng ln hn (t 1MB n 16 MB cho b nh v ti 64
K a ch cho thit b ngoi vi i vi h Intel). y l cc b vi x l c dng trong cc
my IBM PC, PC/XT, PC/AT v cc my Macintosh ca Apple. Phn ln cc b vi x l
trong th h ny u c sn xut bng cng ngh HMOS v cho php t c tc t 0,
1-1s/lnh vi tn s ng h f
clk
=5-10 MHz.
I.4.4 Giai on 1983-1999
Cc b vi x l i din trong th h ny l cc vi x l 32 bt 80386/80486 v 64 bt
Pentium ca Intel gm c Pentium Pro vi thit k b m trn cng vi mch x l, Pentium
MMX vi cc m rng cho a phng tin, Pentium II, Pentium III. Song song vi cc h vi
x l ca hng Intel, hng Motorola cng a ra cc vi x l 32 bt 68020/68030/68040 v
cc vi x l 64 bt 68060/64. c im ca cc b vi x l c s lng transistor rt ln (t
vi 3 triu n trn 50 triu transistor. Phn ln cc b vi x l mi thc hin nhiu hn 1
lnh trong mt chu k, v tch hp n v x l du phy ng FPU (Floating-Point Unit).
Chng c cc thanh ghi dng chung 16-32 bt. Nhiu loi c phn bit cc tp thanh nghi 32-
bt (register file) cho n v nguyn IU (interger unit) v tp thanh ghi 32- bt cho FPU.
Chng c b nh m bn trong mc 1 vi dung lng ln ti 64 KB. a s b nh m mc
1 c phn i: dng cho lnh (Instruction cache-Icache) v dng cho d liu (Data cache-
Dcache). Cc b vi x l cng ngh cao hin nay (advanced microprocessors) tho mn
cc yu cu ch to cc my tnh ln (mainframes) v cc siu my tnh (supercomputers).
Cc vi x l thi ny c but a ch u l 32 bt (phn bit 4 GB b nh) v c kh nng
lm vic vi b nh o. Ngi ta cng p dng cc c ch hoc cc cu trc c s dng
Chng I .Tng quan v vi x l v h vi x l
-14-

trong cc my tnh ln vo cc b vi x l: c ch x l xen k lin tc dng m
lnh(pipeline), b nh m (cache), b nh o. Cc b vi x l ny u c b qun l b nh
(Memory Management Unit-MMU). Chnh nh cc ci tin m cc b vi x l th h ny
c kh nng cnh tranh c vi cc my tnh nh trong rt nhiu lnh vc ng dng. Phn
ln cc b vi x l th h ny u c sn xut bng cng ngh HCMOS.
Bn cnh cc b vi x l vn nng truyn thng thng c dng xy dng cc
my tnh vi tp lnh phc tp (Complex Instruction Set Computer, CISC) ni trn,
trong thi gian ny cng xut hin cc b vi x l ci tin dng xy dng cc my tnh vi
tp lnh rt gn (Reduced Instruction Set Computer, RISC) vi nhiu tnh nng c th so
snh vi cc my tnh ln cc th h trc. l cc b vi x l Alpha ca Digital,
PowerPC ca t hp hng Apple- Motorola- IBM. . . S ra i ca cc vi x l loi RISC
chnh l s bt u cho mt th h khc trong lch s pht trin ca cc th h vi x l.
I.4.5 Giai on 2000-2006
Cc vi x l Intel trong thi gian ny th hin quan im nng cao hiu nng ca b vi
x l v h thng my tnh bng vic nng cao xung nhp. Phin bn Intel Pentium 4 tng
xung nhp t 1,5 GHz nm 2000 ti 3GHz vo nm 2002. Vi kin trc tiu biu cho cc vi x
l ny l Netburst vi kh nng nng cao xung nhp gp 4 ln xung nhp ca h thng. Ngoi
ra, Intel gii thiu cng ngh siu phn lung tng hiu nng cho h thng a nhim v a
lung. V l-gc, cc chng trnh phn mm c th s dng 2 b vi x l trn 1 b vi x l
vt l.
Vic nng cao xung nhp nhanh chng y cc b vi x l ti ngng vt l v in v
nhit nng ta ra. Thc t cho thy y khng phi l phng php hiu qu tng hiu
nng ca h thng. Hng AMD, mt trong nhng i th cnh tranh trc tip ca Intel, nhn
mnh vic tng hiu nng qua vic nng cao tc thc hin cc lnh trong mt chu k my.
AMD l mt trong nhng hng u tin tch hp nhiu b gii m v b iu khin b nh
vo bn trong n v x l trung tm CPU, b nh m mc 1 ln ti 128KB. Cc b vi x
l Athlon 64, Opteron l b vi x l tiu biu ca AMD, c tc xung nhp thp hn nh
hiu nng th khng h thua km Intel. c bit v tiu th in v mc ta nhit th tt hn
hn Intel nh c cc cng ngh kim sot tiu th in.
Trong giai on ny cng chng kin s bng n v vic pht trin b vi x l cho cc
my tnh xch tay. Yu cu rt quan trng vi thit b ny l hiu nng x l mnh nhng
mc tiu th in phi thp my tnh c th hot ng lu di bng pin. Cc b vi x l
di ng ca Intel Pentium Mobile trin khai cc gii php dung ha hai yu cu trn bng
cc nng cao kh nng x l lnh trn 1 chu k xung nhp, nng cao b m mc 2 ln 1MB,
kim sot xung nhp vi x l (Speedstep) theo yu cu ca ng dng. B vi x l di ng u
tin hot ng tn s 1,6GHz c th gim xung ti 200MHz khi ri c hiu nng ngang
nga vi Pentium 4 tn s trn 2GHz.
Mt s kin quan trng trong giai on ny l s ra i ca cc b vi x l 2 nhn cho
cc my vi tnh. Cc h thng a x l trc kia ch c trong mi trng my ch hoc my
trm hiu nng cao. Nm 2005 Intel a ra vi x l a nhn u tin Pentium D vi hai vi x
Chng I .Tng quan v vi x l v h vi x l
-15-

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.
I.4.6 Giai on 2007-nay
Giai on ny tip tc chng kin s gia tng s nhn bn trong b vi x l gia cc
hng sn xut vi x l nh Intel v AMD. Ngoi ra cc yu cu v tiu th in v ta nhit
ca b vi x l cng c quan tm hn. Intel ci tin thit k vi kin trc nhn (Core micro-
architecture) thay th Netburst v a ra th h b vi x l hai nhn mi Core-2. B vi x l
ny khc phc cc im yu ca th h trc c bit v tng quan gia hiu nng v
mc tiu th in. Nm 2006 chng kin s kin mi Intel a ra cc b vi x l vi bn
nhn cho mi trng my ch Intel Xeon Quadcore 5355 v my vi tnh Intel Core-2
Extreme QX6700. Vic kt hp vi cng ngh siu phn lung trong cc b vi x l Core i7
ca Intel cho php nng s vi x l l-gc ln ti 8 cho cc cc chng trnh ng dng.
Bn cnh cc b vi x l cho my PC v my ch, cc hng sn xut vi x l cng pht
trin cc dng vi x l nhng cho cc thit b tnh ton c nhn. u th ca cc vi x l
nhng so vi vi x l k trn l mc tiu th in nng, nng lc x l v chi ph. Intel cung
cp cc vi x l nhng Atom c kh nng x l bng mt na Pentium M cng xung nhp
vi mc tiu th in khong 3W. Ngoi vi x l Intel Atom, trn th trng cn c vi x l
ARM do hng Acon pht trin, VIA Nano ca hng VIA. . .
Chng II. B vi x l Intel 8086
II.1 Cu trc bn trong ca 8086/8088
Intel 8086 l b vi x l 16 bt u tin ca Intel v l vi x l u tin h tr tp lnh
x86. Ngoi ra Intel cng gii thiu 8088 tng thch vi 8086 nhng rng but d liu
bng mt na (8 bt). Vi x l c s dng trong nhiu lnh vc khc nhau, nht l trong cc
my IBM PC/XT. Cc b vi x l thuc h ny s cn c s dng rng ri trong thi gian
ti do tnh k tha ca cc sn phm trong h x86. Cc chng trnh vit cho 8086/8088 vn
c th chy trn cc h thng tin tin sau ny.
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.

Hnh II-1. S khi 8086
Chng II. B vi x l Intel 8086
-17-

II.1.2 Cc n v chc nng: BIU, EU, cc thanh ghi v but trong
II.1.2.1 n v giao tip but v thc thi EU
Theo s khi trn Hnh II-1 CPU 8086 c 2 khi chnh: khi phi ghp but BIU
(Bus Interface Unit) v khi thc hin lnh EU (Execution Unit). Vic chia CPU ra thnh 2
phn lm vic ng thi c lin h vi nhau qua m lnh lm tng ng k tc x l ca
CPU. Cc but bn trong CPU c nhim v chuyn ti tn hiu gia cc khi. Trong s cc
but c but d liu 16 bt ca ALU, but cc tn hiu iu khin EU v but trong ca
h thng BIU. Trc khi i ra but ngoi hoc i vo but trong ca b vi x l, cc tn
hiu truyn trn but thng c cho i qua cc b m nng cao tnh tng thch cho
ni ghp hoc nng cao phi ghp.
BIU a ra a ch, c m lnh t b nh, c/ghi d liu t vo cng hoc b nh.
Ni cch khc BIU chu trch nhim a a ch ra but v trao i d liu vi but.
EU bao gm mt n v iu khin, khi ny c mch gii m lnh. M lnh c
vo t b nh c a n u vo ca b gii m, cc thng tin thu c t u ra ca n
s c a n mch to xung iu khin, kt qu l ta thu c cc dy xung khc nhau
trn knh iu khin (tu theo m lnh) iu khin hot ng ca cc b phn bn trong v
bn ngoi CPU. Ngoi ra, EU cn c khi s hc v lgic (Arithmetic and Logic Unit ALU)
dng thc hin cc thao tc khc nhau vi cc ton hng ca lnh. Tm li, khi CPU hot
ng EU s cung cp thng tin v a ch cho BIU khi ny c lnh v d liu, cn bn
thn n th c lnh v gii m lnh.
Trong BIU cn c mt b nh m lnh vi dung lng 6 byte dng cha cc m
lnh ch EU x l (b m lnh ny cn c gi l hng i lnh).
II.1.2.2 Cc thanh ghi
II.1.2.2.a Cc thanh ghi on
Thng thng b nh ca chng trnh my tnh c chia lm cc on phc v cc
chc nng khc nhau nh on cha cc cu lnh, cha d liu. Trong thc t b vi x l
8086 cung cp cc cc thanh ghi 16 bt lin quan n a ch u ca cc on k trn v
chng c gi l cc thanh ghi on (Segment Registers) c th:
Thanh ghi on m CS (Code-Segment),
Thanh ghi on d liu DS (Data sement).
Thanh ghi on ngn xp SS (Stack segment)
Thanh ghi on d liu ph ES (Extra segment).
Cc thanh ghi on 16 bt ny ch ra a ch u ca bn on trong b nh, dung lng
ln nht ca mi on nh ny l 64 Kbyte v ti mt thi im nht nh b vi x l ch lm
vic c vi bn on nh 64 Kbyte ny. xc nh chnh xc v tr mt nh ca
chng trnh cc thanh ghi on s phi phi hp vi cc thanh ghi c bit khc cn gi l
cc thanh ghi lch hay phn on (offset register). Chi tit c trnh by phn II.1.3.
Chng II. B vi x l Intel 8086
-18-

II.1.2.2.b Cc thanh ghi a nng
Trong khi EU c bn thanh ghi a nng 16 bt AX, BX, CX, DX. iu c bit l
khi cn cha cc d liu 8 bt th mi thanh ghi c th tch ra thnh hai thanh ghi 8 bt cao v
thp lm vic c lp, l cc tp thanh ghi AH v AL, BH v BL, CH v CL, DH v
DL (trong H ch phn cao, L ch phn thp). Mi thanh ghi c th dng mt cch vn nng
cha cc tp d liu khc nhau nhng cng c cng vic c bit nht nh ch thao tc
vi mt vi thanh ghi no . Chnh v vy cc thanh ghi thng c gn cho nhng ci tn
c ngha. C th:
AX (accumulator): thanh cha. Cc kt qa ca cc thao tc thng c cha
y (kt qu ca php nhn, chia). Nu kt qu l 8 bt th thanh ghi AL c
coi l thanh ghi tch lu.
BX (base): thanh ghi c s thng cha a ch c s ca mt bng dng trong
lnh XLAT.
CX (count): b m. CX thng c dng cha s ln lp trong trng hp
cc lnh LOOP (lp), cn CL thng cho ta s ln dch hoc quay trong cc
lnh dch hoc quay thanh ghi.
DX (data): thanh ghi d liu DX cng BX tham gia cc thao tc ca php nhn
hoc chia cc s 16 bt. DX thng dng cha a ch ca cc cng trong cc
lnh vo/ ra d liu trc tip.
II.1.2.2.c Cc thanh ghi con tr v ch s
Trong 8088 cn c ba thanh ghi con tr v hai thanh ghi ch s 16 bt. Cc thanh ghi
ny (tr IP) u c th c dng nh cc thanh ghi a nng, nhng ng dng chnh ca mi
thanh ghi l chng c ngm nh nh l thanh ghi lch cho cc on tng ng. C th:
IP: con tr lnh (Instruction Pointer). IP lun tr vo lnh tip theo s c thc
hin nm trong on m CS. a ch y ca lnh tip theo ny ng vi CS:IP
v c xc nh theo cch ni trn.
BP: con tr c s (Base Pointer). BP lun tr vo mt d liu nm trong on
ngn xp SS. a ch y ca mt phn t trong on ngn xp ng vi SS:BP
v c xc nh theo cch ni trn.
SP: con tr ngn xp (Stack Pointer). SP lun tr vo nh hin thi ca ngn xp
nm trong on ngn xp SS. a ch nh ngn xp ng vi SS:SP v c xc
nh theo cch ni trn.
SI: ch s gc hay ngun (Source Index). SI ch vo d liu trong on d liu DS
m a ch c th y ng vi DS:SI v c xc nh theo cch ni trn.
DI: ch s ch (Destination Index). DI ch vo d liu trong on d liu DS m
a ch c th y ng vi DS:DI v c xc nh theo cch ni trn.
Ring trong cc lnh thao tc vi d liu kiu chui th cp ES:DI lun ng vi a
ch ca phn t thuc chui ch cn cp DS:SI ng vi a ch ca phn t thuc chui gc.
Chng II. B vi x l Intel 8086
-19-

II.1.2.2.d Thanh ghi c FR (Flag Register)
y l thanh ghi kh c bit trong CPU, mi bt ca n c dng phn nh
mt trng thi nht nh ca kt qu php ton do ALU thc hin hoc mt trng thi hot
ng ca EU. Da vo cc c ny ngi lp trnh c th c cc lnh thch hp tip theo cho
b vi x l (cc lnh nhy c iu kin). Thanh ghi c gm 16 bt nhng ngi ta ch dng
ht 9 bt ca n lm cc bt c nh hnh v di y.

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)
Hnh II-2. Thanh ghi c
Chng II. B vi x l Intel 8086
-20-

II.1.3 Phn on b nh ca 8086/8088
Khi BIU a ra trn but a ch 20 bt a ch, nh vy 8086/8088 c kh nng phn
bit ra c 2
20
= 1.048.576 = 1M nh hay 1Mbyte, v cc b nh thng t chc theo
byte. Ni cch khc: khng gian a ch ca 8088 l 1Mbyte. Trong khng gian 1Mbyte b
nh cn c chia thnh cc vng khc nhau (iu ny rt c li khi lm vic ch nhiu
ngi s dng hoc a nhim) dnh ring :
Cha m chng trnh.
Cha d liu v kt qu khng gian ca chng trnh.
To ra mt vng nh c bit gi l ngn xp (stack) dng vo vic qun l cc
thng s ca b vi x l khi gi chng trnh con hoc tr v t chng trnh
con.
Trong thc t b vi x l 8086/8088 c cc thanh ghi 16 bt lin quan n a ch u
ca cc vng (cc on) k trn v chng c gi l cc thanh ghi on (Segment
Registers). l thanh ghi on m CS (Code-Segment), thanh ghi on d liu DS (Data
Sement), thanh ghi on ngn xp SS (Stack Segment) v thanh ghi on d liu ph ES
(Extra Segment). Cc thanh ghi on 16 bt ny ch ra a ch u ca bn on trong b nh,
dung lng ln nht ca mi on nh ny l 64 Kbyte v ti mt thi im nht nh b vi
x l ch lm vic c vi bn on nh 64 Kbyte ny. Vic thay i gi tr ca cc thanh
ghi on lm cho cc on c th dch chuyn linh hot trong phm vi khng gian 1 Mbyte.
V vy cc on ny c th nm cch nhau khi thng tin cn lu i hi dung lng 64
Kbyte hoc cng c th nm trm nhau do c nhng on khng cn dng ht on di 64
Kbyte v v vy nhng on khc c th bt u ni tip ngay sau . iu ny cng cho
php ta truy nhp vo bt k on nh (64 Kbyte) no nm trong ton b khng gian 1
MByte.
Ni dung cc thanh ghi on s xc nh a ch ca nh nm u on. a ch
ny cn gi l a ch c s. a ch ca cc nh khc nm trong on tnh c bng cch
cng thm vo a ch c s mt gi tr gi l a ch lch hay lch (Offset), do n ng vi
khong lch a ch ca mt nh c th no so vi u on. lch ny c xc
nh bi cc thanh ghi 16 bt khc ng vai tr thanh ghi lch (offset register) m ta s c
trnh by sau. C th, xc nh a ch vt l 20 bt ca mt nh no trong mt on
bt k. CPU 8086/8088 phi dng n 2 thanh ghi 16 bt: mt thanh ghi cha a ch c
s, cn thanh kia cha lch. T ni dung ca cp thanh ghi to ra a ch vt l theo
cng thc sau:
achvtl=Thanh_ghi_an16+Thanh_ghi_lch
Vic dng 2 thanh ghi ghi nh thng tin v a ch thc cht to ra mt loi a
ch gi l a ch logic v c k hiu nh sau:
Thanh_ghi_on: Thanh_ghi_lch hay segment: offset
a ch kiu segment: offset l logic v n tn ti di dng gi tr ca cc thanh ghi c
th bn trng CPU v ghi cn thit truy cp nh no th n phi c i ra a ch vt
Chng II. B vi x l Intel 8086
-21-

l ri c a ln but a ch. Vic chuyn i ny do mt b to a ch thc hin
(phn t

trn Hnh II-1).


V d: cp CS:IP s ch ra a ch ca lnh sp thc hin trong on m. Ti mt
thi im no ta c CS = F00H v IP = FFF0H th
CS:IP~F000Hx16 + FFF0H = F000H + FFF0H = FFFF0H
Do t chc nh vy nn dn n tnh a tr ca cc thanh ghi on v thanh ghi lch
trong a ch logic ng vi mt a ch vt l. T mt a ch vt l ta c th to ra cc gi tr
khc nhau ca thanh ghi on v thanh ghi lch
V d: a ch vt l 12345H c th c to ra t cc gi tr:
Thanh ghi on Thanh ghi lch
1000H 2345H
1200H 0345H
1004H 2305H
II.2 B ng x l ton hc 8087
Nh c trnh by trong phn trc, 8086/8088 khng c cc thao tc vi s thc.
lm vic ny, h vi x l cn c cc b ng x l ton hc 80x87 h tr CPU trong vic tnh
ton cc biu thc dng du chm ng nh cng, tr, nhn, chia cc s du chm ng, cn
thc, logarit, Chng cho php x l cc php ton ny nhanh hn nhiu so vi 8086/8088.
8087 gm mt n v iu khin (CU Control Unit) dng iu khin but v mt
n v s hc (NU Numerical Unit) thc hin cc php ton du chm ng trong cc
mch tnh ly tha (exponent module) v mch tnh phn nh tr (mantissa module). Khc
vi 8086, thay v dng cc thanh ghi ri rc l mt ngn xp thanh ghi.

Hnh II-3. S khi 8087
Chng II. B vi x l Intel 8086
-22-

n v iu khin nhn v gii m lnh, c v ghi cc ton hng, chy cc lnh iu
khin ring ca 8087. Do , CU c th ng b vi CPU trong khi NU ang thc hin cc
cng vic tnh ton. CU bao gm b iu khin but, b m d liu v hng lnh.
Ngn xp thanh ghi c tt c 8 thanh ghi t R0 R7, mi thanh ghi di 80 bt trong
bt 79 l bt du, bt 64 78 dng cho s m v phn cn li l phn nh tr. D liu truyn
gia cc thanh ghi ny c thc hin rt nhanh do 8087 c rng but d liu l 84 bt v
khng cn phi bin i nh dng. Ngay sau khi khi ng li PC, b ng x l kim tra
xem n c c ni vi PC hay khng v s iu chnh di ca hng lnh cho ph hp vi
CPU (nu dng 8086 th di l 6 byte).
II.3 Tp lnh ca 8086/8088
II.3.1 Khi nim lnh, m ho lnh v qu trnh thc hin lnh
Lnh ca b vi x l c ghi bng cc k t di dng gi nh (memonic) ngi
s dng nhn bit. i vi bn thn b vi x l th lnh cho n c m ho di dng
cc s 0 v 1 (cn gi l m my) v l dng biu din thng tin duy nht m my hiu
c. V lnh do b vi x l c cho di dng m nn sau khi nhn lnh, b vi x l phi
thc hin vic gii m lnh ri sau mi thc hin lnh.
Mt lnh c th c di mt vi byte tu theo b vi x l. S lng cc bt n dng
m ha vi lnh (opcode) cho bit s lng ti a cc lnh (2
n
) c trong b vi x l. Vi 1 byte
b vi x l c th m ho c ti a 256 lnh. Trong thc t vic ghi lnh khng phi hon
ton n gin nh vy. Vic m ho lnh cho b vi x l l rt phc tp v b chi phi bi
nhiu yu t khc na. i vi b vi x l 8086/8088 mt lnh c th c di t 1 n 6
byte. Ta s ch ly trng hp lnh MOV gii thch cch ghi lnh ni chung ca
8086/8088.
Lnh MOV ch, gc dng chuyn d liu gia thanh ghi v nh. Ch nguyn vi
cc thanh ghi ca 8086/8088, nu ta ln lt t cc thanh ghi vo cc v tr ton hng ch v
ton hng gc ta thy phi cn ti rt nhiu m lnh khc nhau m ho t hp cc ny.

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:
Chng II. B vi x l Intel 8086
-23-


Bt D dng ch hng i ca d liu. D = 1 th d liu i n thanh ghi cho bi bt
ca REG. 2 bt MOD (ch ) cng vi 3 bt M/R (b nh/thanh ghi) to ra 5 bt dng ch
ra ch a ch cho cc ton hng ca lnh.
Bng di y cho ta thy cch m ho cc ch a ch (cch tm ra cc ton hng
bng cc bt ny).

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).
Chng II. B vi x l Intel 8086
-24-

6. Ch a ch tng i ch s (indexed relative addressing mode).
7. Ch a ch tng i ch s c s (based indexed relative addressing
mode).
II.3.2.1 Ch a ch thanh ghi
Trong ch a ch ny, ngi ta dng cc thanh ghi bn trong CPU nh l cc ton
hng cha d liu cn thao tc. V vy khi thc hin lnh c th t tc truy nhp cao
hn so vi cc lnh c truy nhp n b nh.
V d II-1
MOV BX, DX ; chuyn ni dung DX vo BX.
MOV DS, AX ; chuyn ni dung AX vo DX
ADD AL, DL ; cng ni dung AL v DL ri a vo
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.
II.3.2.3 Ch a ch trc tip
Trong ch a ch ny mt ton hng cha a ch lnh ca nh dng cha d liu
cn ton hng kia ch c th l thanh ghi m khng c l nh. Nu so snh vi ch a
ch tc th ta thy y ngay sau m lnh khng phi l ton hng m l a ch lch ca ton
hng. Xt v phng din a ch th l a ch trc tip.
V d II-3
MOV AL, [1234H] ;chuyn nh DS:1234 vo AL.
MOV [4320H], CX ;chuyn CX vo 2 nh lin tip DS:4320 v DS:4321
II.3.2.4 Ch gin tip qua thanh ghi
Trong ch a ch ny mt ton hng l mt thanh ghi c s dng cha a ch
lch ca nh cha d liu, cn ton hng kia ch c th l thanh ghi m khng c l
nh (8086/8088 khng cho php quy chiu b nh 2 ln i vi mt lnh).
V d II-4
Chng II. B vi x l Intel 8086
-25-

MOV AL, [BX] ; chuyn nh c a ch DS:BX vo AL.
MOV [SI], CL ; chuyn CL vo nh c a ch DS:SI.
MOV [DI], AX ; chuyn AX vo 2 nh lin tip ti DS:DI v DS: (DI + 1).
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
Chng II. B vi x l Intel 8086
-26-

MOV CL, [BP+DI+5] ; chuyn nh SS:[BP+DI+5] vo CL.
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
Ch a ch Ton hng
Thanh ghi on ngm
nh
Thanh ghi Reg
Tc th Data
Trc tip [offset] DS
Gin tip qua thanh ghi
[BX]
[SI]
[DI]
DS
DS
DS
Tng i c s
[BX]+disp
[BP] +DISP
DS
SS
Tng i ch s
[DI]+Disp
[SI]+ DISP
DS
DS
Tng i ch s c s
[BX]+[DI]+DISP
[BX]+[SI]+DISP
[BP]+[DI]+DISP
[BP]+[SI]+DISP
DS
DS
SS
SS

II.3.2.8 Phng php b ngm nh thanh ghi on (segment override)
Nh trong cc phn trc ni, cc thanh ghi on v thanh ghi lch c ngm nh
i km vi nhau tng cp dng a ch ho cc ton hng trong cc vng khc nhau ca b
nh. Bng II-2 ch ra cc cp i ngm nh ca ccthan ghi on v thanh ghi lch thng
dung. V tnh ngm nh ny nn trong cc lnh ta ch cn vit cc thanh ghi lch l c s
tnh ra c ia ch ca ton hng.
Tuy nhin, ngoi cc t hp ngm nh k, 8086/8088 cn cho php ta lm vic vi
cc t hp ngm nh k, 8086/8088 cn cho php ta lm vic vi cc t hp khc ca cc
thanh ghi on v thanh ghi lch. Mun loi v cc t hp ngm nh ni trn, trong khi vit
lnh ta phi ghi r thanh ghi on s dng tnh a ch v km thm du 2 chm trc
thanh ghi lch.
Bng II-2. Cc cp thanh ghi on v thanh ghi lch ngm nh
Thanh ghi on CS DS ES SS
Thanh ghi lch IP SI, DI, BX DI SP, BP
V d:
Chng II. B vi x l Intel 8086
-27-

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.
II.3.3 Tp lnh ca 8086/8088
B x l 8086 c tp lnh gm 111 lnh, chiu di ca lnh t 1 byte n vi byte. Tp
lnh 8086 h tr cc nhm thao tc cn bn nh di y.
II.3.3.1 Cc lnh trao i d liu.
Cc cu lnh trong nhm cho php trao i d liu gia thanh ghi v nh hay gia
thit b vo/ra vi nh hoc thanh ghi. Kch c d liu cho php vi cc cu lnh ny l
byte (8 bt) hoc word (16 bt). Nh vy cc cu lnh trao i d liu gip np d liu cn
thit cho cc thao tc tnh ton ca vi x l. Ngoi ra cc lnh ny cho php lu cc kt qu
tnh ton ra b nh hoc cc thit b ngoi vi.
Bng II-3. Cc lnh trao i d liu
M gi nh Chc nng
MOV
Di chuyn byte hay word gia thanh ghi v
nh
IN, OUT
c, ghi mt byte hay word gia cng v
nh
LEA Np a ch hiu dng
PUSH, POP Np vo, ly ra mt word trong ngn xp.
XCHG Hon i byte hay word
II.3.3.1.a MOV Chuyn 1 byte hay word
Vit lnh: MOV ch, Gc.
M t: ch Gc
Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau
nhng phi c cng di v khng c php ng thi l 2 nh hoc 2 thanh ghi on.
Lnh ny khng tc ng n cc c.
V d:
MOV AL, 74H ; AL 74
MOV CL, BL ; CL BL
MOV DL, [SI] ; DL [DS:SI]
MOV AL, Table [BX] ; AL [DS:(Table+BX)]
Chng II. B vi x l Intel 8086
-28-

II.3.3.1.b LEA - Np a ch hiu dng vo thanh ghi
Vit lnh: LEA ch, Gc
Trong :
+ ch thng l mt trong cc thanh ghi: BX, CX, DX, BP, SI, DI.
+ Gc l tn bin trong on DS c ch r trong lnh hoc nh c th.
M t: ch a ch lch ca Gc, hoc
ch a ch hiu dng ca Gc
y l lnh tnh a ch lch ca bin hoc a ch ca nh chn lm gc ri np
vo thanh ghi chn.
Lnh ny khng tc ng n cc c.
V d:
LEA DX, MSG ; np a ch lch ca bn tin MSG vo DX.
LEA CX, [BX] [DI] ; np vo CX a ch hiu dng
; do BX v DI ch ra: EA =BX+DI
II.3.3.1.c IN- c d liu t cng vo thanh ghi ACC.
Vit lnh: IN ACC, Port
M t: ACC <- [Port]
Trong [Port ] l d liu ca cng c a ch l Port. Port l a ch 8 bt ca cng, n
c th c cc gi tr trong khong 00HFFH. Nh vy ta c th c cc kh nng sau:
+Nu ACC l AL th d liu 8 bt c a vo t cng Port.
+Nu ACC l AX th d liu 16 bt c a vo t cng Port v cng Port+1.
C mt cch khc biu din a ch cng l thng qua thanh ghi DX. Khi dng
thanh ghi DX cha a ch cng ta s c kh nng a ch cng ho mm do hn. Lc ny
a ch cng nm trong di 0000H... FFFFH v ta phi vit lnh theo dng:
IN ACC, DX
Trong DX phi c gn t trc gi tr ng vi a ch cng. Lnh ny khng tc
ng n cc c.
II.3.3.1.d OUT - Ghi d liu t Acc ra cng)
Vit lnh: OUT Port, Acc
M t: Acc [port]
Trong [port]l d liu ca cng c a ch l Port. Port l a ch 8 bt ca cng, n
c th c cc gi tr trong khong 00H. . . FFH. Nh vy ta c th c cc kh nng sau:
+ Nu Acc l AL th d liu 8 bt c a ra cng port.
Chng II. B vi x l Intel 8086
-29-

+ Nu Acc l AX th d liu 16 bt c a ra cng port v cng port +1.
C mt cch khc biu din a ch cng l thng qua thanh ghi DX. Khi dng thanh
ghi DX cha a ch cng ta s c kh nng a ch ho cng mm do hn. Lc ny a
ch cng nm trong di 0000H. . . FFFFH v ta phi vit lnh theo dng:
OUT DX, Acc
Trong DX phi c gn t trc gi tr ng vi a ch cng. Lnh ny khng tc
ng n cc c.
II.3.3.2 Cc lnh tnh ton s hc v l gc.
y l cc nhm lnh thc hin cc tnh ton ch yu ca vi x l 8086/8088.
Bng II-4. Cc lnh s hc v l gc
M gi nh Chc nng
NOT o (b mt) byte hay word
AND Php v byte hoc word
OR Php hoc byte hoc word
XOR Php hoc loi tr byte hoc word
SHL, SHR Dch tri, dch phi lgc byte hay word. S bc
1 hoc do CL xc nh
SAL, SAR Dch tri, dch phi s hc byte hay word. S
bc 1 hoc do CL xc nh
ROL, ROR Quay tri, quay phi byte hay word. S bc 1
hoc do CL xc nh
ADD, SUB Cng tr byte hoc word
ADC, SBB Cng tr byte hoc word c nh
INC, DEC Tng, gim
NEG o byte hoc word (b 2)
CMP So snh hai byte hoc word
MUL, DIV Nhn, chia byte hoc word khng du
IMUL, IDIV Nhn chia byte hoc word c du
II.3.3.2.a ADD-Cng 2 ton hng
Vit lnh: ADD ch, Gc.
M t: ch 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 v cng
khng c l thanh ghi on. C th tham kho cc v d ca lnh ADC.
Cp nht: AF, CF, PF, SF, ZP
Chng II. B vi x l Intel 8086
-30-

II.3.3.2.b MUL - Nhn s khng du
Vit lnh: MUL Gc
Trong ton hng Gc l s nhn v c th tm c theo cc ch a ch khc
nhau.
M t: tu theo di ca ton hng Gc ta c 2 trng hp t chc php nhn, ch
ngm nh cho s b nhn v kt qu:
Nu Gc l s 8 bt: ALGc,
s b nhn phi l s 8 bt t trong AL.
sau khi nhn: AX tch,
Nu Gc l s 16 bt: AXGc,
s b nhn phi l s 16 bt t trong AX.
sau khi nhn: DXAX tch.
Nu byte cao (hoc 16 bt cao) ca 16 (hoc 32) bt kt qu cha 0 th CF=OF=0
Nh vy cc c CF v OF s bo cho ta bit c th b i bao nhiu s 0 trong kt qu.
V d: Nu ta cn nhn mt s 8 bt vi mt s 16 bt, ta s 16 bt ti Gc v s 8 bt AL.
S 8 bt ny AL cn phi c m rng sang AH bng cch gn AH=0 lm cho s b
nhn nm trong AX. Sau cng ch vic dng lnh MUL Gc v kt qu c trong cp DXAX.
Cp nht: CF, OF.
Khng xc nh: AF, PF, SF, ZP.
II.3.3.2.c DIV Chia 2 s khng c du
Vit lnh: DIV Gc
Trong ton hng Gc l s chia v c th tm c theo cc ch a ch khc
nhau.
M t: tu theo di ca ton hng gc ta c 2 trng hp b tr php chia. Cc ch
ngm nh cho s b chia v kt qu:
Nu Gc l s 8 bt: AX/Gc. S b chia phi l s khng du 16 bt t trong
AX.
Nu Gc l s 16 bt: DXAX/Gc. S b chia phi l s khng du 32 bt t
trong cp thanh ghi DXAX.
Nu thng khng phi l s nguyn n c lm trn theo s nguyn st ui.
Nu Gc = 0 hoc thng thu c ln hn FFH hoc FFFFH (tu theo di
ca ton hng Gc) th 8088 thc hin lnh ngt INT 0.
Khng xc nh: AF, CF, OF, PF, SF, ZP.
II.3.3.2.d CMP- So snh 2 byte hay 2 word
Vit lnh: CMP ch, Gc.
Chng II. B vi x l Intel 8086
-31-

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.
II.3.3.2.e AND - Php v 2 ton hng
Vit lnh: AND ch, Gc
M t: ch - ch, Gc.
Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau.
Nhng phi cha d liu cng di v khng c php ng thi l 2 nh v cng
khng c l thanh ghi on. Php AND thng dng che i/gi li mt vi bt no
ca mt ton hng bng cch nhn logic ton hng vi ton hng tc th c cc bt 0/1
cc ch cn che i/gi nguyn tng ng (ton hng tc th lc ny cn c gi l mt n).
Xo: CF, OF.
Cp nht: PF, SF, ZP, PF ch c ngha khi ton hng l 8 bt.
Khng xc nh: AF.
V d:
AND AL, BL ;AL, AL BL theo tng bt.
AND BL, 0FH ;che 4 bt cao ca BL.
II.3.3.3 iu khin, r nhnh v lp.
Cc cu lnh thuc nhm ny cho php thay i trt t thc hin cc cu lnh bn
trong chng trnh. Mt s cu lnh tiu biu c lit k trong bng di y.



Chng II. B vi x l Intel 8086
-32-

Bng II-5. Cc lnh r nhnh v lp tiu biu
M gi nh Chc nng
JMP Nhy khng iu kin
JA (JNBE) Nhy nu ln hn
JAE (JNB) Nhy nu ln hn hoc bng
JB (JNAE) Nhy nu b hn
JBE (JNA) Nhy nu b hn hoc bng
JE (JZ) Nhy nu bng
JC, JNC Nhy nu c nh t, xa
JO, JNO Nhy nu c trn t, xa
JS, JNS Nhy nu c du t, xa
LOOP Lp khng iu kin, s ln lp do CX xc nh
LOOPE (LOOPZ) Lp nu bng (c khng) hoc s ln lp do CX
xc nh
LOOPNE (LOOPNZ) Lp nu khng bng (c khng xa) hoc s ln
lp do CX xc nh
CALL, RET Gi hm, tr v t hm con
INT Ngt mm
IRET Quay tr v t on chng trnh ngt
II.3.3.3.a JMP - Nhy (v iu kin) n mt ch no
Lnh ny khin cho b vi x l 8086/8088 bt u thc hin mt lnh mi ti a ch
c m t trong lnh. Lnh ny phn bit nhy xa v nhy gn theo v tr ca cu lnh mi.
Tu thuc vo di ca bc nhy chng ta phn bit cc kiu lnh nhy gn v nhy xa
vi di lnh khc nhau. Lnh nhy n nhn ngn shortlabel l lnh nhy tng i. Ni
n phi nm trong phm vi t -128 n +127 so vi v tr ca lnh nhy. Ton hng ngun
trong lnh ch l byte di cng thm vo thanh ghi IP. Byte di ny c m rng
du trc khi cng vo thanh ghi IP.
- V d :
JMP SHORT 18h
JMP 0F008h
JMP DWORD PTR [3000h]
Lnh ny khng tc ng n cc c.
II.3.3.3.b LOOP -Lp li on chng trnh do nhn ch ra cho n khi CX=0
Vit lnh: LOOP NHN
Chng II. B vi x l Intel 8086
-33-

Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t nhn
NHAN n ht lnh LOOP NHAN) cho n khi s ln lp CX=0. iu ny c ngha l trc
khi vo vng lp ta phi a s ln lp mong mun vo thanh ghi CX v sau mi ln thc
hin lnh LOOP NHAN th ng thi CX t ng gim i mt (CX CX-1).
Lnh ny khng tc ng n cc c.
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
II.4 Ngt v x l ngt trong 8086/8088
II.4.1 S cn thit phi ngt CPU
Ngt l vic tm dng vic chng trnh ang chy CPU c th chy mt chng
trnh khc nhm x l mt yu cu do bn ngoi a ti CPU nh yu cu vo/ra hoc do
chnh yu cu ca bn trong CPU nh li trong khi tnh ton. Trong cch t chc trao i d
liu thng qua vic thm d trng thi sn sng ca thit b ngoi vi, trc khi tin hnh bt
k mt cuc trao i d liu no CPU phi dnh ton b thi gian vo vic xc nh trng
thi sn sng lm vic ca thit b ngoi vi. tn dng kh nng ca CPU lm thm c
nhiu cng vic khc na, ch khi no c yu cu trao i d liu th mi yu cu CPU tm
dng cng vic hin ti phc v vic trao i d liu. Sau khi hon thnh vic trao i
dliu th CPU li phi quay v lm tip cng vic hin ang b gin on.
Khi nghin cu cc tn hiu ca CPU8086/ 8088, vi mch ny c cc chn tn hiu cho
cc yu cu ngt che c INTR v khng che c NMI, chnh cc chn ny s c s
dng vo vic a cc yu cu ngt t bn ngoi n CPU.
II.4.2 Cc loi ngt trong h 8088
Trong h vi x l 8088 c th xp cc nguyn nhn gy ra ngt CPU vo 3 nhm nh
sau:
Nhm cc ngt cng: l cc yu cu ngt CPU do cc tn hiu n t cc chn
INTR v NMI. Ngt cng INTR l yu cu ngt che c. Cc lnh CLI v STI c
Chng II. B vi x l Intel 8086
-34-

nh hng trc tip ti trng thi ca c IF trong b vi x l, tc l nh hng ti
vic CPU c nhn bit yu cu ngt ti chn ny hay khng. Yu cu ngt ti chn
INTR c th c kiu ngt N nm trong khong 0-FFH. Kiu ngt ny phi c a
vo but d liu CPU c th c c khi c xung trong chu k tr li chp nhn
ngt.
Nhm cc ngt mm: khi CPU thc hin cc lnh ngt dng INT N, trong N l s
hiu (kiu) ngt nm trong khong 00-FFH (0-255).
Nhm cc hin tng ngoi l: l cc ngt do cc li ny sinh trong qu trnh hot
ng ca CPU nh php chia cho 0, xy ra trn khi tnh ton.
Yu cu ngt s c CPU kim tra thng xuyn ti chu k ng h cui cng ca
mi lnh. Bng II-1 trnh by mt cch n gin a c s hiu ngt N vo but d liu
trong khi cng to ra yu cu ngt a vo chn INTR ca b vi x l 8086/8088.
Gi thit trong mt thi im nht nh ch c mt yu cu ngt IRi c tc ng v
s c xung yu cu ngt n CPU. Tn hiu IRi c ng thi a qua mch khuch i
m to ra s hiu ngt tng ng, s hiu ngt ny s c CPU c vo khi n a ra
tn hiu tr li.
Bng II-7 Quan h gia IRi v s hiu ngt N tng ng.
IR6 IR5 IR4 IR3 IR2 IR1 IR0 N
1 1 1 1 1 1 0 FEH (254)
1 1 1 1 1 0 1 FDH (253)
1 1 1 1 0 1 1 FBH (251)
1 1 1 0 1 1 1 F7H (247)
1 1 0 1 1 1 1 EFH (239)
1 0 1 1 1 1 1 DFH (223)
0 1 1 1 1 1 1 BFH (191)

II.4.3 p ng ca CPU khi c yu cu ngt
Khi c yu cu ngt kiu N n CPU v nu yu cu c php, CPU thc hin
cc cng vic sau:
1. SP SP-2, [SP] FR, trong [SP] l nh do SP ch ra.
(ch ra nh mi ca ngn xp, ct thanh ghi c vo nh ngn xp)
2. IF 0, TF 0.
(cm cc ngt khc tc ng vo CPU, cho CPU chy ch bnh
thng)
3. SP SP-2, [SP] CS.
(ch ra nh mi ca ngn xp, ct phn a ch on ca a ch tr
v vo nh ngn xp)
4. SP SP-2, [SP] IP
Chng II. B vi x l Intel 8086
-35-

(ch ra nh mi ca ngn xp, ct phn a ch lch ca a ch tr
v vo nh ngn xp)
5. [N*4] IP, [N*4+2] CS
(ly lnh ti a ch mi ca chng trnh con phc v ngt kiu N
tng ng trong bng vect ngt)
6. Ti cui chng trnh phc v ngt, khi gp lnh IRET
[SP] IP, SP SP+2
[SP] CS, SP SP+2
[SP] FR, SP SP+2
(b vi x l quay li chng trnh chnh ti a ch tr v v vi gi
tr c ca thanh ghi c c ly ra t ngn xp).
V mt cu trc chng trnh, khi c ngt xy ra th chng trnh chnh tm dng vic
thc hin v lu cc thanh ghi cn thit nh thanh ghi c. Sau con tr lnh ca CPU s
c tr ti on m ca chng trnh con phc v ngt. Khi chng trnh con phc v ngt
kt thc, CPU khi phc li trng thi cc thanh ghi ca chng trnh chnh v t con tr
lnh v v tr b ngng khi phc v ngt. Di y l danh sch mt s kiu ngt c bit
c xp vo u dy ngt mm INT N nh sau:
+ INT 0: Ngt mm do php chia cho s 0 gy ra,
+ INT1: Ngt mm chy tng lnh ng vi trng hp c TF=1,
+ INT2: Ngt cng do tn hiu tch cc ti chn NMI gy ra,
+ INT3: Ngt mm t im dng ca chng trnh ti mt c ch no
+ IN T4: (Hoc lnh INTO): ngt mm ng vi trng hp c trn OF=1.
Cc kiu ngt khc cn li th c dnh cho nh sn xut v cho ngi s dng nh
ngha:
+ 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.
Cc kiu ngt N trong INT N u tng ng vi cc a ch xc nh ca chng trnh
con phc v ngt m ta c th tra c trong bng cc vect ngt. Intel quy nh bng ny
nm trong RAM bt u t ic h 00000H v di 1 KB (v 8086/8088 c tt c 256 kiu
ngt, mi kiu ngt ng vi 1 vect ngt, 1 vect ngt cn 4 byte cha a ch y cho
CS:IP ca chng trnh con phc v ngt).



Chng II. B vi x l Intel 8086
-36-

Bng II-8. Bng vect ngt ca 8086/8088 ti 1KB RAM u tin
03FEH-03FFH CS ca chng trnh con phc v ngt INT FFH
03FCH-03FDH IP ca chng trnh con phc v ngt INT FFH

0082H-0083H CS ca chng trnh con phc v ngt INT 20H
0080H-0081H IP ca chng trnh con phc v ngt INT 20H

000AH-000BH CS ca chng trnh con phc v ngt INT 2
0008H-0009H IP ca chng trnh con phc v ngt INT 2
0006H-0007H CS ca chng trnh con phc v ngt INT 1
0004H-0005H IP ca chng trnh con phc v ngt INT 1
0002H-0003H CS ca chng trnh con phc v ngt INT 0
0000H-0001H IP ca chng trnh con phc v ngt INT 0
II.4.4 X l u tin khi ngt
C mt vn rt thc t t ra l nu ti cng mt thi im c nhiu yu cu ngt
thuc cc loi ngt khc nhau cng i hi CPU phc v th CPU s phi c c ch x l
cc yu cu ngt ny. C ch ph bin l chia cc ngt theo mc u tin. CPU 8086/8088 c
kh nng phn bit cc mc u tin khc nhau cho cc loi ngt (theo th t t cao xung
thp) nh sau:
+ ngt trong: INT 0 (php chia cho 0), INT N, INTO . . . cao nht
+ ngt khng che c NMI
+ ngt che c INTR
+ ngt chy tng lng INT 1 . . . thp nht
Theo th t u tin ngm nh trong vic x l ngt ca CPU 8086/8088 th INT 0 c
mc u tin cao hn INTR, v vy u tin CPU s thc hin chng trnh phc v ngt INT
0 p ng vi li c bit cho php chua cho 0 gy ra v c IF b xa v 0. Yu cu ngt
INTR s t ng b cm cho ti khi chng trnh phc v ngt INT 0 c hon tt v tr v
nh IRET, c IF c c tr li. Tip theo CPU s p ng yu cu ngt INTR bng cch
thc hin chng trnh phc v ngt dnh cho INTR.

Chng III. Lp trnh hp ng vi 8086/8088
III.1 Gii thiu khung ca chng trnh hp ng
III.1.1 C php ca chng trnh hp ng
Mt chng trnh hp ng bao gm cc dng lnh, mt dng lnh c th l mt lnh
tht di dng k hiu (symbolic), m i khi cn c gi l dng gi nh (mnemonic) ca
b vi x l, hoc mt hng dn cho chng trnh dch (assembler directive). Lnh gi nh
s c dch ra m my cn hng dn cho chng trnh dch th khng c dch v n ch
c tc dng ch dn ring thc hin cng vic. Cc dng lnh ny c th c vit bng ch
hoa hoc ch thng v chng s c coi l tng ng v i vi dng lnh chng trnh
dch khng phn bit kiu ch.
Mt dng lnh ca chng trnh hp ng c th c nhng trng sau (khng nht thit
phi c ht tt c cc trng):
Tn M lnh Cc ton dng Ch gii
Mt v d dng lnh gi nh:
TIEP: MOV AH, [BX] [SI] ; np vo AH nh c a ch DS:
(BX+SI)
Trong v d trn, ti trng tn ta c nhn TIEP, ti trng m lnh ta c lnh MOV, ti
trng ton hng ta c cc thanh ghi AH, BX v SI v phn ch gii gm c cc dng
; np vo AH nh c a ch DS: (BX+SI)
Mt v d khc l cc dng lnh vi cc hng dn cho chng trnh dch:
MAIN PROC
v
MAIN ENDP
Trong v d ny, trng tn ta c tn th tc l MAIN, trng m lnh ta c cc
lnh gi PROC v ENDP. y l cc lnh gi dng bt u v kt thc mt th tc c tn
l MAIN.
a) Trng tn
Trng tn cha cc nhn, tn bin hoc tn th tc. Cc tn v nhn ny s c
chng trnh dch gn bng cc a ch c th ca nh. Tn v nhn c th c di 1. . 31
k t, khng c cha du cch v khng c bt u bng s. Cc k t c bit khc c
th dng trong tn l ?. @_$%. Nu du chm ('. ') c dng th n phi c t v tr
u tin ca tn. Mt nhn thng kt thc bng du hai chm (:).
b) Trng m lnh
Chng III. Lp trnh hp ng vi 8086/8088
-38-

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.
III.1.2 D liu cho chng trnh
D liu ca mt chng trnh hp ng l rt a dng. Cc d liu c th c cho di
dng s h hai, h mi, h mi su hoc di dng k t. Khi cung cp s liu cho chng
trnh, s cho h no phi c km ui ca h (tr h mi th khng cn v l trng
hp ngm nh ca assembler). Ring i vi s h mi su nu s bt u bng cc ch
(a. f hoc A. . F) th ta phi thm 0 trc chng trnh dch c th hiu c l mt
s h mi su ch khng phi l mt tn hoc mt nhn.
V d cc s vit ng:
0011B ; S h hai.
1234 ; S h mi
0ABBAH ; S h mi su
1EF1H ; S h mi su.
Nu d liu l k t hoc chui k t th chng phi c ng trong cp du trch dn
n hoc kp, th d 'A' hay "abcd". Chng trnh dch s dch k t ra m ASCII tng ng
ca n. V vy trong khi cung cp d liu kiu k t cho chng trnh ta c th dng bn thn
k t c ng trong du trch dn hoc m ASCII ca n. V d, ta c th s dng liu k
t l "0" hoc m ASCII tng ng l 30H, ta c th dng '$' hoc 26H hoc 34. . .
III.1.2.1 Bin v hng
Bin trong chng trnh hp ng c vai tr nh n c ngn ng bc cao. Mt bin
phi c nh kiu d liu l kiu byte hay kiu t v s c chng trnh dch gn cho
Chng III. Lp trnh hp ng vi 8086/8088
-39-

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.
Chng III. Lp trnh hp ng vi 8086/8088
-40-

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
Chng III. Lp trnh hp ng vi 8086/8088
-41-

STR3 DB 73h, 74h, 'x' 'i', 6Eh, 67h
e) Hng c tn
Cc hng trong chng trnh hp ng thng c gn tn lm cho chng trnh tr
nn d c hn. Hng c th l kiu s hay kiu k t. Vic gn tn cho hng c thc hin
nh lnh gi EQU nh sau:
CR EQU 0Dh ;CR l carriage return
LE EQU 0Ah ;LF l line feed
Trong v d trn lnh gi EQU gn gi tr s 13 (m ASCII ca k t tr v u dng)
cho tn CR v 10 (m ASCII ca k tu thm dng mi) cho tn LF.
Hng cng c th l mt chui k t. trong v d di y sau khi gn mt chui k
t cho mt tn:
CHAO EQU 'Hello'
ta c th s dng hng ny nh ngha mt bin mng khc.
MSG DB CHAO, '$'
V lnh gi EQU khng dnh ch ca b nh cho tn ca hng nn ta c th t n kh
t do ti nhng ch thch hp bn trong chng trnh. Tuy nhin trong thc t ngi ta
thng t cc nh ngha ny trong on d liu.
III.1.2.2 Khung ca mt chng trnh hp ng
Mt chng trnh m my trong b nh thng bao gm cc vng nh khc nhau
cha m lnh, cha d liu ca chng trnh v mt vng nh khc c dng lm ngn xp
phc v hot ng ca chng trnh. Chng trnh vit bng hp ng cng phi c cu trc
tng t khi c dch n s to ra m tng ng vi chng trnh m my ni trn.
to ra sn ca mt chng trnh hp ng chng ta s s dng cch nh ngha n gin i
vi m hnh b nh dnh cho chng trnh v i vi cc thanh ghi on.
III.1.2.2.a Khai bo quy m s dng b nh
Kch thc ca b nh dnh cho on m v on d liu trong mt chng trnh c
xc nh nh hng dn chng trnh dch MODEL nh sau (hng dn ny phi c t
trc cc hng dn khc trong chng trnh hp ng, nhng sau hng dn v loi CPU):
. MODEL Kiu_ kch_thc_b_nh
C nhiu Kiu_ kch_thc_b_nh cho cc chng trnh vi i hi dung lng b
nh khc nhau. i vi ta thng thng cc ng dng i hi m chng trnh di nht cng
ch cn cha trong mt on (64KB), d liu cho chng trnh nhiu nht cng ch cn cha
trong mt on, thch hp nht nn chn Kiu_ kch_thc_b_nh l Small (nh) hoc nu
nh tt c m v d liu c th gi trn c trong mt on th c th chn Tiny (hp):
. Model Small
hoc . Model Tiny
Chng III. Lp trnh hp ng vi 8086/8088
-42-

Ngoi Kiu_ kch_thc_b_nh nh hoc hp ni trn, tu theo nhu cu c th
MASM cn cho php s dng cc Kiu_ kch_thc_b_nh khc nh lit k trong Bng
III-1.
Bng III-1. Cc kiu kch thc b nh cho chng trnh hp ng
Kiu kch thc M t
Tiny (Hp) M lnh v d liu gi gn trong mt on
Small (Nh)
M lnh gi gn trong mt on, d liu nm trong
mt on.
Medium (Trung
bnh)
M lnh khng gi gn trong mt on, d liu nm
trong mt on.
Compact(Gn)
M lnh khng gi gn trong mt on, d liu khng
gi gn trong mt on.
Large (ln)
M lnh khng gi gn trong mt on, d liu khng
gi gn trong mt on, khng c mng no ln hn
64KB.
Huge ( s)
M lnh khng gi gn trong mt on, d liu khng
gi gn trong mt on, cc mng c th ln hn
64KB

III.1.2.2.b Khai bo on ngn xp
Vic khai bo on ngn xp l dnh ra mt vng nh ln dng lm ngn xp
phc v cho hot ng ca chng trnh khi c chng trnh con. Vic khai bo c thc
hin nh hng dn chng trnh dch nh sau.
. Stack Kch_thc
Kch_thc s quyt nh s byte dnh cho ngn xp. Nu ta khng khai Kch_thc
th chng trnh dch s t ng gn cho Kch_thc gi tr 1 KB, y l kch thc ngn xp
qu ln i vi mt ng dng thng thng. Trong thc t cc bi ton ca ta thng thng
vi 100-256 byte l lm ngn xp v ta c th khai bo kch thc nh sau:
. Stack 100
Khai bo on d liu
on d liu cha ton b cc nh ngha cho cc bin ca chng trnh. Cc hng
cng nn c nh ngha y m bo tnh h thng mc d ta c th chng trong
chng trnh nh ni phn trn.
Vic khai bo on d liu c thc hin nh hng dn chng trnh dch DATA,
vic khai bo v hng c thc hin tip ngay sau bng cc lnh thch hp. iu ny
c minh ho trong cc th d n gin sau:
. Data
MSG DB 'helo!$'
Chng III. Lp trnh hp ng vi 8086/8088
-43-

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.
III.1.2.2.d Khung ca chng trnh hp ng dch ra chng trnh. EXE
T cc khai bo cc on ca chng trnh ni trn ta c th xy dng mt khung
tng qut cho cc chng trnh hp ng vi kiu kch thc b nh nh. Sau y l mt
khung cho chng trnh hp ng ri sau khi c dch (assembled), ni (linked) trn my
IBM PC s to ra mt tp chng trnh chy c ngay (executable) vi ui. EXE.
. Model small
. Stack 100
. Data
; cc nh ngha cho bin v hng ti y
Chng III. Lp trnh hp ng vi 8086/8088
-44-

. 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
Chng III. Lp trnh hp ng vi 8086/8088
-45-

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

Trong v d trn chng ta s dng cc dch v c sn (cc hm 9 v 4CH) ca ngt
INT 21H ca DOS trn my IBM PC hin th xu k t v tr v DOS mt cch thun li.
III.1.2.2.e Khung ca chng trnh hp ng dch ra chng trnh. COM
Nhn vo khung chng trnh hp ng dch ra tp chng trnh ui. EXE ta thy c
mt y cc on. Trn my tnh IBM PC ngoi tp chng trnh vi ui. EXE. Chng ta
cn c kh nng dch chng trnh hp ng c kt cu thch hp ra mt loi tp chng trnh
chy c kiu khc vi ui. COM. y l mt chng trnh ngn gn v n gin hn
nhiu so vi tp chng trnh ui. EXE, trong cc on m, on d liu v on ngn
xp c gp li trong mt on duy nht l on m. Nh vy nu ta c cc ng dng m
d liu v m chng trnh khng yu cu nhiu v khng gian ca b nh, ta c th ghp
lun c d liu, m chng trnh v ngn xp chung vo trong cng mt on m ri to ra
tp. COM. Vi vic to ra tp ny cn tit kim c c khng gian nh khi phi lu tr n
trn a. c th dch c ra chng trnh ui. COM th chng trnh ngun hp ng
phi c kt cu sao cho thch hp vi mc ch ny.
Sau y l khung ca mt chng trnh hp ng dch c ra tp chng trnh ui
.COM.


Chng III. Lp trnh hp ng vi 8086/8088
-46-

V d III-2. Khung chng trnh. COM
. Model Tiny
. Code
ORG 100h
START: JMP CONTINUE
; cc nh ngha cho bin v hng ti y
CONTINUE:
MAIN Proc
; cc lnh ca chng trnh chnh ti y
INT 20H ; Tr v DOS
MAIN Endp
; cc chng trnh con (nu c) ti y
END START
So snh khung ny vi khung cho chng trnh. EXE ta thy trong khung khng c
khai bo on ngn xp v on d liu, cn khai bo quy m s dng nh l kiu Tiny.
ngay u on m l lnh gi ORG (origin: im xut pht) lnh JMP (nhy). Lnh gi ORH
100H dng gn a ch bt u cho chng trnh ti 100H trong on m, cha li vng
nh vi dung lng 256 byte (t a ch 0 n a ch 255) cho on mo u chng trnh
(PSP).
Lnh JMP sau nhn START dng nhy qua phn b nh dnh cho vic nh ngha
v khai bo d liu (v nguyn tc, d liu c th c t u hoc cui on m, nhng
y ta t n u on m c th p dng cc nh ngha n gin ni). ch ca
lnh nhy l phn u ca chng trnh chnh. Hnh III-1 biu din vic mt chng trnh
kiu. COM c np vo v sp xp trong mt on m ca b nh ra sao.
Theo Hnh III-1 ta thy mt chng trnh. COM cng c np vo b nh sau vng
PSP nh chng trnh ui. EXE. Ngn xp cho chng trnh. COM c xp t ti cui
on m, nh ca ngn xp lc ban u l nh c a ch l FFFEH.
Trong trng hp chng trnh kiu. COM ny chng ta s b cc hn ch
Dung lng nh cc i ca mt on l 64KB, tc l ta phi lun chc chn c
rng cc chng trnh ng dng phi c s lng byte ca m my v d liu cho chng
trnh khng ln lm.
Chng trnh cng ch c php s dng ngn xp mt cch hn ch (nu khng
iu ny c th lm cho nh ca n trong khi hot ng dng ln nhiu v pha a ch thp
ca on).

Chng III. Lp trnh hp ng vi 8086/8088
-47-

a ch lch
000H

on u chng trnh (PSP)
0100H JMP CONTINUE IP
D liu nm ti y








FFFEH
CONTINUE:
(chiu tin ca m & d liu)
+

|
(chiu tin ca ngn xp)






SP

Hnh III-1. Tp chng trnh. COM trong b nh
Tm li chng ta phi chc chn m bo khng th xy ra hin tng trm vo nhau
ca cc thng tin ti vng m lnh hoc d liu. Khi kt thc chng trnh kiu. COM, tr
v DOS ta dng ngt INT 20H ca DOS lm cho chng trnh gn hn. Tt nhin ta cng
c th dng hm 4CH ca ngt INT 21H nh dng trong chng trnh dch ra tp.
EXE.
kt thc ton b chng trnh ta dng hng dn chng chnh dch END i km
theo nhn START tng ng vi a ch lnh u tin ca chng trnh trong on m.
Sau y l v d ca mt chng trnh hp ng dch ra tp chng trnh chy c
vi ui. COM.
V d III-3. Chng trnh Helo. COM
. Model Tiny
. Code
ORG 100H
START: IMP CONTINUE
CRLF DB 13, 10, '$'
MSG DB !Hello! $'
CONTINUE:
MAIN Proc
; v u dng mi dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
Chng III. Lp trnh hp ng vi 8086/8088
-48-

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

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).
III.2 Cch to v chy chng trnh hp ng
Nh ni trong phn trc, my IBM PC l phng tin l tng chng ta to ra
v th nghim cc chng trnh hp ng 8086/88. Cc bc lm cng vic ny c th lit
k ra nh sau:
1. Dng cc phn mm son tho vn bn (SK, NCedit. . . ) to ra mt tp vn
bn chng trnh gc bng hp ng. Tp ny phi c gn ui. ASM.
2. Dng chng trnh dch MASM dch tp. ASM ra m my di dng tp. OBJ.
Nu trong bc ny nu trong chng trnh c li c php th ta phi quay li
bc 1 sa li chng trnh gc.
Chng
trnh
PSP
100h
SS
CS
DS
ES
Chng
trnh
PSP
Stack
100h
.COM .EXE
Hnh III-2. Mun chng trnh. COM v. EXE trong b nh.
Chng III. Lp trnh hp ng vi 8086/8088
-49-

3. Dng chng trnh LINK ni mt hay nhiu tp OBJ li vi nhau thnh mt
tp chng trnh chy c vi ui. EXE.
4. Nu chng trnh gc vit ra l dch ra kiu. COM th ta phi dng chng
trnh EXE2BIN (c l EXEtoBIN) ca DOS dch tip tp. EXE ra tp chng
trnh chy c vi ui. COM.
5. Cho chy chng trnh va dch


III.3 Cc cu trc lp trnh c bn
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.
To ra tp vn bn ca chng trnh
*.asm
Dng MASM dch ra m my *.obj
Dng LINK ni tp. obj lithnh
*.exe
Dch c ra.com?
Dng EXE2BIN dch *.exe thnh
*.com
Cho chy chng trnh
s

Hnh III-3. Cc bc to ra v chy chng trnh hp ng

Chng III. Lp trnh hp ng vi 8086/8088
-50-

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 .
III.3.1.1 Cu trc tun t
Cu trc tun t l mt cu trc thng dng v n gin nht. Trong cu trc ny cc
lnh c sp xp tun t, lnh ny k tip lnh kia. Sau khi thc hin xong lnh cui cng
ca cu trc th cng vic phi lm cng c hon tt.
Ng php:
Lnh 1
Lnh 2
Lnh n
Bi tp III-1
Cc thanh ghi CX v BX cha cc gi tr ca bin c v b. Hy tnh gi tr ca biu thc
a = 2(c+b) v cha kt qu trong thanh ghi AX.

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.
Chng III. Lp trnh hp ng vi 8086/8088
-51-

III.3.1.2 Cu trc IF - THEN
IF iu kin THEN cng vic.
T ng php ca cu trc IF-THEN ta thy nu tho mn iu kin th Cng vic c
thc hin nu khng Cng vic s b b qua. iu ny tng ng vi vic dng lnh nhy
c iu kin b qua mt thao tc no trong chng trnh hp ng.










Bi tp III-2.
Gn cho BX gi tr tuyt i ca AX.
Gii
thc hin php gn BX |AX| ta c th dng cc lnh sau:
CMP AX, 0 ; AX<0?
JNL GAN ; khng, gn lun.
NEG AX ; ng. o du, ri
GAN: MOV BX, AX ; li ra ca cu trc.
III.3.1.3 Cu trc IF - THEN - ELSE
IF iuKin THEN CngVic1 ELSE CngVic2
T ng php ca cu trc IF-THEN-ELSE ta thy nu tho mn iu kin th
Cngvic1 c thc hin nu khng th Cngvic2 c thc hin. iu ny tng ng
vi vic dng lnh nhy c iu kin v khng iu kin nhy n cc nhn no trong
chng hp ng.
Bi tp III-3.
Gn cho CL gi tr bt du ca AX.
Gii
Ta c th thc hin cc cng vic trn bng mu chng trnh sau:
iu kin
Cng vic
S
ai

ng
Hnh III-6.Cu trc IF-THEN
iu kin
S
ai

ng
Cng vic 1 Cng vic 1
Hnh III-5 Cu trc IF-THEN-ELSE
Hnh III-6
Chng III. Lp trnh hp ng vi 8086/8088
-52-

CMP AX, 0 ; AX>0?.
JNS DG ; ng.
MOV CL, l ; sai, cho CL 1 ri
JMP RA ; di ra.
DG: XOR CL, CL ; cho CL 0.
RA: ; li ra ca cu trc.
III.3.1.4 Cu trc CASE
CASE Biuthc
Gitr1: Cngvic1
Gitr2: Cngvic2
. . .
GitrN: CngvicN
END CASE

T ng php ca cu trc ta thy nu Biuthc c Gitr1 th Cngvic1 c thc
hin. nu Biuthc c Gitr2 th Cngvic2 c thc hin v c tip tc cho n
CngvicN. iu ny tng ng vi vic dng cc lnh nhy c iu kin v nhy khng
iu kin nhy cc nhn no trong chng trnh hp ng. Cu trc CASE c th thc
hin bng cc cu trc la chn lng nhau.
Bi tp III-4.
Dng CX biu hin cc gi tr khc nhau ca AX theo quy tc sau:
AX < 0 th CX =-1
AX = 0 th CX =0
AX > 0 th CX =1
Biuthc
Cngvic1 CngvicN Cngvic2
Gitr1 Gitr2 GitrN
Hnh III-7. Cu trc lnh CASE
Chng III. Lp trnh hp ng vi 8086/8088
-53-

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.
III.3.1.5 Cu trc lp FOR - DO
FOR S ln lp DO Cng vic
T ng php cu cu trc FOR - DO ta thy y Cng vic c thc hin lp i lp
li tt c S ln lp li. iu ny hon ton tng g vi vic dng lnh LOOP trong hp
ng lp li CX ln mt Cng vic no , trc ta phi gn S ln lp cho thanh ghi
CX.

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.
Khi u b m
Cng vic

Gim b m i 1
sai

B m=0

ng

Hnh III-8. Cu trc lp FOR - DO.

Chng III. Lp trnh hp ng vi 8086/8088
-54-

Ta s s dng hm 2 ca ngt 21H hin th 1 k t. Ta phi lp li cng vic ny 80
ln c thy bng lnh LOOP. Mun dng ln ny, ngay t u ta phi np vo thanh ghi CX
s ln hin th, ni dung ca CX c t ng gim i1 do tc ng ca lnh LOOP.
Sau y l mu chng trnh thc hin cc cng vic trn:
MOV CX, 80 ; s ln hin th trong CX
MOV AH, 2 ; AH cha s hiu hm hin th,
MOV DL, '$' ; DL cha k t cn hin th,
HIEN: INT 21H ; hin th
LOOP HIEN ; c mt dng k t.
RA: ; li ra ca cu trc.
III.3.1.6 Cu trc lp WHILE - DO
WHILE iu kin DO Cng vic
T ng php ca cu trc WHILE - DO ta thy: iu kin c kim tra u tin.
Cg vic c lp i lp li chng no iu kin cn ng. iu ny trong hp ng hon
ton tng ng vi vic dng lnh CMP kim tra iu kin v sau dng lnh nhy
c iu kin thot khi vng lp.

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.
iu kin
Cng vic

sai

ng

sai

ng

iu kin
Cng vic

Hnh III-9. Cu trc WHILE - DO v REPEAT-UNTIL
Chng III. Lp trnh hp ng vi 8086/8088
-55-

III.3.1.7 Cu trc lp REPEAT - UNTIL
REPEAT Cng vic UMTIL iu kin
T ng php ca cu trc REPEAT - UNTIL ta thy: Cng vic c thc hin u
tin. iu c ngha l cng vic c thc hin t nht mt ln. iu kin c kim tra
sau . Cng vic c lp i lp li cho ti iu kin c tho mn. iu ny trong hp
ng hon ton tng ng vi vic dng lnh CMP kim tra iukin v sau dng
lnh nhy c iu kin thot khi vng lp.
Bi tp III-7
c k t t bn phm cho ti khi gp '$' th thi.
Gii
V d ny ch lm mt phn cng vic ca v d trc. Ti y ta ch phi c cc k t
c c.
Ta c th tc hin cng vic trn bng mu chng trnh sau:
MOV Ah, 1 ; hm c k t bn phm.
TIEP: INT 21H ; c 1 k t.
CMP AL, '$' ; c c la ?
RA: ; li ra ca cu trc.
III.4 Gii thiu mt s chng trnh c th
Trong phn ny ta s xt mt s chng trnh cho cc ng dng c th, thng qua cc
v d ny ta c th hc c cc lnh, cch lp chng trnh cng vi cch t chc d liu
gii quyt cc bi ton c th. Mt s chng trnh lin quan n cc vn khc cha c
cp n t trc n nay c th c nu ra nhng chng tng ng sau chng ny.
Trc khi gii thiu cc v d ta h thng li mt vi hm ca cc loi ngt c trong
my IBM PC vi h iu hnh MS DOS hay cha c dng trong cc v d nu trc
y v sau ny.
Bng III-2. Mt s dch v ngt DOS









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
Chng III. Lp trnh hp ng vi 8086/8088
-56-


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.
Chng III. Lp trnh hp ng vi 8086/8088
-57-

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
Chng III. Lp trnh hp ng vi 8086/8088
-58-

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
Chng III. Lp trnh hp ng vi 8086/8088
-59-

TBao DB 'Go vao 1 so he hai (max 16 bt, '
DB 'CR de thoi):$'
. Code
MAIN proc
MOV AX, @ Data
MOV DS, AX
MOV AH, 9 ; hin th thng bo
LEA DX, TBao
INT 21H
XOR BX, BX ; BX cha kt qu, lc u l 0
MOV AH, 1 ; hm c 1 s t bn phm
TIEP: INT 21H
CMP AL, 13 ; CR?
JF THOIDOC ; ng, thi c
AND AL, OFH ; khng, i m ASCII ra s
SHL BX, 1 ; dch tri BX 1 bt ly ch
OR BL, AL ; chn bt va c vo kt qu
JMP TIEP ; c tip mt k t
THOIDOC:MOV CX, 16 ; CX cha s bt ca BX
MOV AH, 2 ; hm hin k t
HIEN:XOR DL, DL ; xo DL chun b i
ROL BX, 1 ; a bt MSB ca BX sang CF
ADC DL, 30H ; i gi tr bt ra ASCII
INT 21H ; hin th 1 bt ca BX
LOOP HIEN ; lp li cho n ht
MOV AH, 4CH ; tr v DOS
INT 21H
MAIN Endp
END MAIN
Chng trnh hp ng cho cng vic nu c hnh thnh t 2 phn, mt phn vi
chc nng c v mt phn vi chc nng hin th.
Thut ton cho phn c: c mt k t s, chuyn m ASCII ra s ri chn s c
c vo BX theo th t t phi qua tri, lp li cng vic trn cc s khc.
Thut ton cho phn hin th ngc li so vi phn c: ly ra 1 bt ca s trong BX
theo th t t tri qua phi, i s ra m ASCII ri cho hin th n ra mn hnh, lp li
cng vic trn cho cc s khc.
Cc thut ton ca 2 phn trn v c bn c th ng dng c cho trng hp phi
c v hin th s h mi su hoc h mi.
Chng III. Lp trnh hp ng vi 8086/8088
-60-

Mt s nhn xt c th rt ra khi c chng trnh trn:
Lnh xa thanh ghi BX l rt cn thit sau ny khi g vo cc bt ca n ta
khng nht thit phi g 16 bt m vn xc nh c gi tr ca thanh ghi
ny.
Trong chng trnh ny ta dng lnh ROL quay trn thanh ghi BX, v
vy sau khi quay v hin th tt c 16 bt ca BX ta vn bo ton c gi tr
ca thanh ghi BX lc u. so snh, nu phn trn thay v lnh quay ROL
ta dng lnh dch SHL th ta vn hin th c ng thanh ghi BX, nhng sau
khi hin th xong th qu tr nguyn thy ca thanh ghi BX, nhng sau khi hin
th xong th gi tr nguyn thu ca thanh ghi BX b mt do qu trnh dch gy
nn.
Trong chng trnh ny ta dng lnh cng c nh ADC mt cch rt hiu
dng ly ra 1 bt ca thanh ghi BX t gi tr ca c CF v i lun c n
ra m ASCII cn thit cho vic hin th.
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:


Hy lp trnh bin i thanh ghi BX thnh:

(V d: nu nh lc u thanh ghi BX cha gi tr 1234H th sau khi bin i, BX s
cha gi tr 3241H. v. v. . . )
Gii
Thc cht y l kiu bi ton c th ny, sau khi xem xt dng thc ca thanh ghi BX
trc v sau khi bin i, ta thy c th thu c kt qu mt cch rt n gin bng cch
quay tri thanh ghi BX nguyn gc i 4 bt ri sau quay tip thanh ghi BH i 4 bt.
Sau y l chng trnh thc hin cng vic trn.
. Model Small
. Stack 100
. Code
MAIN Proc
MOV CL, 4
ROL BX, CL ; quay BX i 4 bt
MOV CL, 4
ROR BH, CL ; tro 4 bt thp v cao ca BH
MOV AH, 4CH ; tr v DOS
INT 21H
MAIN Endp
Chng III. Lp trnh hp ng vi 8086/8088
-61-

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

Chng IV. Phi ghp vi x l vi b nh v cc thit b vo/ra
IV.1 Cc tn hiu ca vi x l v cc mch ph tr
IV.1.1 Cc tn hiu ca 8086/8088

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 S
3
v S
4
biu din truy nhp
cc thanh ghi nh trong bng di y.
Hnh IV-1. Tn hiu 8086
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-63-


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
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-64-

8086/8088. V vy vic phi ghp vi cc thit b s rt d dng v chnh v
tn dng c cc phi ghp ngoi vi sn nn c th gim gi thnh h thng.
o IO/ [O]: Tn hiu ny phn bit trong thi im nh phn t no trong
cc thit b vo/ra (IO) hoc b nh (M) c chn lm vic vi CPU. Trn
but a ch lc s c cc a ch tng ng ca cc thit b . Chn ny
trng thi tr khng cao khi P chp nhn treo.
o
WR
[O]: Xung cho php ghi. Khi CPU a ra =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/ [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.
o
DEN
[O]: Tn hiu bo cho bn ngoi bit l lc ny trn but dn knh AD
c d liu n nh. Chn ny trng thi tr khng cao khi P chp nhn treo.
o HOLD [I]: Tn hiu yu cu treo CPU mch ngoi thc hin vic trao i
d liu vi b nh bng cch truy nhp trc tip. Khi HOLD = 1. CPU 8086
s t tch ra h thng bng cch treo tt c cc but A, but D, but C ca n
(cc but trng thi tr khng cao) b iu khin DMA (DMA
contrroller, DMAC) c th ly c quyn iu khin h thng lm cc
cng vic trao i d liu.
Bng IV-2. Cc chu k ca but qua cc tn hiu SS0 , IO/ M , DT/ R
IO/ M DT/ R
SS0 Chu k iu khin ca but
0 0 0 c m lnh
0 0 1 c b nh
0 1 0 Ghi b nh
0 1 1 But r (ngh)
1 0 0 Chp nhn yu cu ngt
1 0 1 c thit b ngoi vi
1 1 0 Ghi thit b ngoi vi
1 1 1 Dng (halt)
M
WR
R
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-65-

Bt S6 = 0 lin tc, bt S5 phn knh gi tr bt IF ca thanh ghi c. Hai bt S3
v S4 phi hp vi nhau ch ra vic truy nhp cc thanh ghi on
o HLDA [O]: Tn hiu bo cho bn ngoi bit yu cu treo CPU dng cc
but c chp nhn, v CPU 8086/8088 treo cc but A, but D v mt
s tn hiu ca but C.
o
SSO
[O]: Tn hiu trng thi c dng kt hp vi IO/M v DT/
R
gii
m cc chu k hot ng ca but.
b) Ch MAX (Chn MN/MX ni t)
o Trong ch MAX mt s tn hiu iu khin cn thit c to ra trn c s
cc tn hiu trng thi nh dng thm bn ngoi mt mch iu khin but
8288. Ch MAX c s dng khi trong h thng c mt b ng x l
ton hc 8087.
o 2 S

v [O]: Cc chn trng thi dng trong ch MAX ghp vi
mch iu khin but 8288. Cc tn hiu ny c 8288 dng to ra cc tn
hiu iu khin trong cc chu k hot ng ca but. Cc tn hiu iu khin
c ch ra trong bng di y.
Bng IV-3. Cc tn hiu iu khin ca 8288.
2 S 1 S 0 S
Chu k iu khin ca but Tn hiu
0 0 0 Chp nhn yu cu ngt INTA
0 0 1 c thit b ngoi vi IORC
0 1 0 Ghi thit b ngoi vi
IOWC, AIOWC
0 1 1 Dng (halt) Khng
1 0 0 c m lnh MRDC
1 0 1 c b nh MRDC
1 1 0 Ghi b nh
MWTC, AMWC
1 1 1 But ri (ngh) Khng

o RQ/ 0 GT v RQ/ 1 GT [I/O]: Cc tn hiu yu cu dng but ca cc b x l
khc hoc thng bo chp nhn treo ca CPU cho cc b vi x l khc
dng but. RQ/ 0 GT c mc u tin hn RQ/ 1 GT .
o LOCK [O]: Tn hiu do CPU a ra cm cc b x l khc trong h thng
dng but trong khi n ang thi hnh mt lnh no t sau tip u LOCK.
o QS0 v QS1 [O]: Tn hiu thng bo cc trng thi khc nhau ca m lnh
(hng i lnh). Bng IV-4 cho bit cc trng thi ca m lnh c m ho
bng cc tn hiu trn.
Trong h vi x l vi s c mt ca b ng h x l ton hc 8087, cc
tn hiu ny c mch 8087 dng ng b qu trnh hot ng ca n vi
b vi x l 8086/8088.
1 S 0 S
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-66-


Bng IV-4. Cc trng thi ca lnh m
QS1 QS0 Trng thi lnh m
0 0 Khng hot ng
0 1 c byte m lnh u tin t m lnh
1 0 c lnh rng
1 1 c byte tip theo t m lnh
IV.1.2 Phn knh tch thng tin v vic m cho cc but
gim bt kh khn v mt cng ngh do vic phi ch to nhiu chn cho cc tn
hiu ca vi mch CPU, ngi ta tm cch hn ch s chn ca vi mch bng cch dn knh
nhiu tn hiu trn cng mt chn. V d cc chn AD
0
AD
16
ca 8086 c dn knh c
th a ra bn ngoi cc thng tin v a ch v d liu. Khi nhn c cc tn hiu bn
ngoi vi mch, ta phi tin hnh tch cc tn hiu ti to li cc tn hiu gc cho cc but
c lp (but a ch v but d liu). Vic ny thc hin bng cch s dng cc vi mch
chc nng thch hp bn ngoi (thng thng th l cc mch cht). Ta cng phi lm
tng t nh vy i vi cc chn dn a ch/trng thi. h tr cho vic tch thng tin
ny, CPU a ra thm xung ALE sao cho khi ALE mc cao s c tc dng bo cho bn
ngoi bit lc ny thng tin v a ch ti cc chn dn knh c gi tr. Xung ALE c dng
m cc mch cht v tch c cc thng tin v a ch b dn knh.
Mun nng cao ti ca cc but m nhn vic nui cc mch bn ngoi. Cc tn
hiu ra v vo CPU cn phi c khuch i thng qua cc mch m mt chiu hoc hai
chiu vi cc u ra thng hoc u ra 3 trng thi.
Hnh IV-3 cho thy mt v d n gin cc t chc vic tch tn hiu a ch t cc tn
hiu dn knh ch/d liu hoc a ch/iu khin bng cc mch cht 74LS373 v vic s
dng cc b khuch i m 74LS244 v 74LS245 cho cc tn hiu ca b vi x l
8086/8088 lm vic ch MAX.
Hnh IV-3 cho thy s c mt ca cc mch ph tr nh: b iu khin but 8288, b
to ra xung ng h 8284. Ngoi ra cn c th c cc mch ph tr khc nh: b phi ghp
ngoi vi song song 8255, b iu khin truy nhp trc tip vo b nh 8237 v b iu khin
ngt u tin 8259.

Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-67-


IV.1.3 Mch to xung nhp 8284.
Cho d lm vic trong ch MIN hay MAX, CPU 8086/8088 lun cn xung nhp
(xung ng h) t mch to xung nhip 8284. Mch to xung nhp khng nhng cung cp
xung nhp vi tn s thch hp cho ton h m n cn c nh hng ti vic ng b tn hiu
RESET v tn hiu READY ca CPU (Hnh IV-4). ngha ca cc tn hiu

1 AEN , 2 AEN : Tn hiu cho php chn u vo tng ng RDY1, RDY2 lm tn
hiu bo tnh trng sn sng ca b nh hoc thit b ngoi vi.
RDY1, RDY2: cng vi 1 AEN , 2 AEN dng to ra cc chu k i CPU.
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 f
x
, 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.
74LS245
x2
8284A
Clock
Generator
RDY
Vcc
8086
CPU
CLK
READY
RESET
MN/MX#
S0#
S1#
S2#
8288
Bus
Controller
MRDC#
MWTC#
AMWC#
IORC#
IOWC#
AIOWC#
INTA#
CLK
74LS373
x3
ADDR/DATA
LE
OE#
ALE
DEN
DT/R#
BHE
#
AD15:AD0
A19:A16
74LS245
x2
EN#
DIR
D15:D0
A19:A0,
BHE#
ADDR/Data
INTR
8086 Ch max
Hnh IV-3. But h thng 8086 c m
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-68-

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 f
CLK
=f
x
/3vi rng 77% ni n chn ca CLK ca 8086/8088.
PCLK: Xung nhp f
CLK
=f
x
/6vi rng 50% dnh cho thit b ngoi vi.
OSC: Xung nhp c khuch i c tn s bng f
x
ca b dao ng.
RES : Chn khi ng, ni vi mch RC 8284 t khi ng khi bt ngun.
RESET: Ni vo RESETca 8086/8088 v l tn hiu khi ng li cho ton h
CSYNC: Li vo cho xung ng b chung khi trong h thng c cc 8284 dng dao
ng ngoi ti chn ny (Hnh IV-4)
Hnh IV-4 biu din cc ng ni tn hiu chnh ca 8086/8088 v 8284. Mch 8284
nhn c xung khi ng t bn ngoi thng qua mch RC khi c ngun hoc xung khi
ng li khi bm cng tc K. T xung ny 8284 c nhim v a ra xung khi ng ng b
cho CPU cng vi tt c cc thnh phn khc ca h thng.


IV.1.4 Mch iu khin but 8288
Nh gii thiu phn trc, vi mch 8288 l mch iu khin but, n ly mt s
tn hiu iu khin ca CPU v cung cp tt c cc tn hiu iu khin cn thit cho h vi x
l khi CPU 8086 lm vic ch MAX. S chn v cc tn hiu ca 8288.
Hnh IV-4. Ni 8284 vi 8086/8088

Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-69-


Cc tn hiu chnh ca 8288 bao gm:

2
S ,
1
S ,
0
S [I, I, I]: l cc tn hiu trng thi ly thng t CPU. Tu theo cc tn
hiu ny m mch 8288 s to ra cc tn hiu iu khin khc nhau ti cc chn ra
ca n iu khin hot ng ca cc thit b ni vi CPU. Bng 5. 3 m t cc
tn hiu vo v ra .
CLK [I]: y l u vo ni vi xung ng h h thng (t mch 8284) v dng
ng b ton b cc xung iu khin i ra t mch 8288.
CEN [I]: L tn hiu u vo cho php a ra tn hiu DEN v cc tn hiu iu
khin khc ca 8288.
IOB [I]: tn hiu iu khin mch 8288 lm vic cc ch but khc nhau.
Khi IOB = 1 8288 lm vic ch but vo/ra, khi IOB = 0 mch 8288 lm vic
ch but h thng (nh trong cc my IBM PC).
MRDC [O]: tn hiu iu khin c b nh. N kch hot b nh a d liu ra
but.
MWTC[O] AMWC [O]: l cc tn hiu iu khin ghi b nh hoc ghi b nh ko
di.
thc cht l cc tn hiu ging nh MEMW , nhng AMWC (advanced
memory write command) hot ng sm ln mt cht to ra kh nng cho cc
b nh chm c thm c thi gian ghi.
IORC [O]: tn hiu iu khin c thit b ngoi vi. N kch hot cc thit b
c chn cc thit b ny a d liu ra but.
IOWC[O] AIOWC[O]: l cc tn hiu iu khin c thit b ngoi vi hoc c
thit b ngoi vi ko di. thc cht l cc tn hiu ging nh IOW, nhng
AIOWC (advanced I/O write command) hot ng sm ln mt cht to ra kh
nng cho cc b nh chm c thm c thi gian ghi.
INTA [O]: l u ra thng bo l CPU chp nhn yu cu ngt ca thit b
ngoi vi v lc ny cc thit b ngoi vi phi a ra s hiu ngt ra but CPU
c.
DT/ R [O]: l tn hiu iu khin hng i ca d liu trong h vo hay ra so
vi CPU (DT/ R = 0: CPU c d liu, DT/ R = 1 CPU ghi d liu).
Hnh IV-5. B iu khin but 8288
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-70-

Trong cc my IBM PC th tn hiu ny c ni n cc chn DIR ca mch m
2 chiu 74LS245 iu khin d liu i t CPU n but h thng khi ghi hoc
ngc li, t but h thng n CPU khi c.
DEN [O]: y l tn hiu iu khin but d liu tr thnh but cc b hay
but h thng.
Trong cc my IBM PC th tn hiu ny c s dng cng vi tn hiu ca mch
iu khin ngt PIC 8259 to ra tn hiu iu khin cc G ca mch m 2
chiu 74LS245.
MCE/ PDEN [O]: y l tn hiu dng nh ch lm vic cho mch iu
khin ngt PIC 8259 n lm vic ch ch.
ALE [O]: y l tn hiu cho php cht a ch ti cc chn dn knh a ch - d
liu AD0 - AD7, tn hiu ny thng c ni vi chn G ca mch 74LS373
iu khin mch ny cht ly a ch.
IV.1.5 Biu thi gian ca cc lnh ghi/c
Hnh IV-6 v Hnh IV-7 l cc biu thi gian c n gin ho ca cc tn hiu
c bn trong CPU 8086/8088 cho cc lnh ghi/c b nh hoc thit b ngoi vi.
Mt chu k ghi/c bnh thng (cn gi l chu k but) ca CPU ko di 4 chu k
ng h. Cc chu k ng h c nh du l T1, T2, T3 v T4. Nu CPU lm vic vi tn
s ng h 5MHz th mt chu k ng h ko di T=200ns v mt chu k but ko di
4*T=800ns.
Chng ta m t tm tt cc hin tng xy ra trong mt chu k T ni trn.
Chu k T1:
Trong chu k ny a ch ca b nh hay thit b ngoi vi c a ra trn cc ng
a ch, hoc a ch/d liu v a ch/ trng thi. Cc tn hiu iu khin ALE, DT/ ,IO/
cng c a ra gip vic hon tt vic gi thng tin a ch ny.
Chu k T2:
Trong chu ny CPU a ra cc tn hiu iu khin hoc , v tn hiu
d liu trn D0 - D7 nu l lnh ghi. thng dng m cc b m ca but d liu
nu nh chng c dng trong h. Ti cui k T2 (v gia mi chu k T ca T
w
, nu c)
CPU ly mu tn hiu READY x l trong chu k tip theo khi n phi lm vic vi b
nh hoc thit b ngoi vi chm.
R
M
RD WR DEN
DEN
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-71-



ALE
T1
CLOCK
T2 T3 T4
AD15 - AD0
A19/S6 - A16/S3
DT/R
__
IO/M
__
_____
WR
DEN
______
A19 - A0
from 74LS373 to memory
A19 - A16 S6 - S3
A19 - A0 from 74LS373
A15 A0 D15 - D0 (ti but ngoi )
2 xung nhp
rng xung
ghi
Ch d liu
Tr iu
khin
Hnh IV-7. Biu ghi n gin ha
ALE
T1
CLOCK
T2 T3 T4
AD15
- AD0
A19/S6 - A16/S3
DT/R
__
IO/M
__
____
RD
DEN
______
A19 - A16 S6 - S3
Truy nhp
a ch
Tr a
ch
Xc lp
d liu
D liu ngoi Rc A15 A0
Xung c
Hnh IV-6. Biu c n gin ha
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-72-

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 T
w
) 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 T
w
= 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 t
tr a ch
= 110ns, thi gian gi ca d liu
khi c t
giR
= 30 ns v thi gian tr do vic truyn tn hiu qua cc mch m nhiu nht l
t
tr m
= 40ns. Nh vy cc b nh ni vi 8086/8088 - 5MHz cn phi c thi gian truy nhp
nh hn:
3*T - t
tr a ch
- t
giR
- t
tr m
= 600 - 110 - 30 - 40 = 420ns.
Mt khc vi CPU 8086/8088 5MHz th rng xung c l T
RD
= 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 t
giW
= 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
t
WR
= 340ns cng l ph hp vi cc b nh vi thi gian truy nhp c 450ns.
IV.2 Phi ghp vi x l vi b nh
IV.2.1 Gii thiu b nh
Cc b nh bn dn thng dng vi b vi x l bao gm:

B nh c nh ROM (Read Only Memory, b nh c ni dung ghi sn ch
c ra). Thng tin ghi trong mch khng b mt khi mt ngun in nui cho
mch.
B nh bn c nh EPROM (Erraseble Programmable ROM l b nh ROM
c th lp trnh c bng xung in v xo c bng tia cc tm).
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-73-

B nh khng c nh RAM (Random Access Memory, b nh truy nhp
ngu nhin) thng tin ghi trong mch b mt khi mt ngun in nui cho
mch. Trong cc b nh RAM ta cn phn bit ra loi RAM tnh (Static RAM
hay SRAM, trong mi phn t nh l mt mch lt hay trng thi n nh)
v loi RAM ng (Dynamic RAM hay DRAM, trong mi phn t nh l
mt t in rt nh c ch to bng cng ngh MOS).
Mt b nh thng c ch to nn t nhiu vi mch nh. Mt vi mch nh thng
c dng cu trc tiu biu nh hnh sau

Theo s khi ny ta thy mt l vi mnh nh c cc nhm tn hiu sau:
a) Nhm tn hiu a ch:
Cc tn hiu a ch c tc dng chn ra mt nh. Cc nh c di khc
nhau (cn gi l t nh) tu theo nh sn xut: 1, 4, 8, bt. S ng tn hiu a
ch c lin quan n dung lng ca mch nh. Vi mt mch nh c m bt a
ch th dung lng ca mnh nh l 2
m
t nh. V d, vi m = 10 ta c dung
lng mch nh l 1K nh (1 kil = 2
10
= 1024) v vi m=20 ta c dung
lng mch nh l 1M nh (1 Mga = 2
20
= 1048576).
b) Nhm tn hiu d liu:
Cc tn hiu d liu thng l u ra i vi mch ROM hoc u vo/ra d
liu chung (hai chiu) i vi mch RAM. Ngoi ra c mch nh RAM vi u
ra v u vo d liu ring bit. Cc mch nh thng c u ra d liu kiu 3
trng thi. S ng dy d liu quyt nh di t nh ca mch nh. Thng
thng ngi ta hay ni r dung lng v di t nh cng mt lc. V d
mch nh dung lng 1 Kx8 (tc l 1KB) hoc 16Kx4. . .
c) Nhm tn hiu chn vi mch (chn v):
Cc tn hiu chn vi mch l CS (chip select) hoc CE (Chip enable) thng
c dng to ra vi mch nh c th ghi/c. Tn hiu chn vi mch cc
Hnh IV-8. Vi mch nh khi qut
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-74-

mch RAM thng la CS , cn mch ROM thng l CE . Cc tn hiu chn
vi mch thng c ni vi u ra ca b gii m a ch. Khi mt mnh nh
khng c chn th but d liu ca n b treo ( trng thi tr khng cao)

d) Nhm tn hiu iu khin:
Tn hiu iu khin cn c trong tt c cc mch nh. Cc mch nh ROM
thng c mt u vo iu khin OE (output enable) cho php d liu
c a ra but. Mt mt mch nh khng c m bi OE th but d liu
ca n b treo. Mt mch nh RAM nu ch c mt tn hiu iu khin th
thng l R /W iu khin qu trnh ghi/c. Nu mch nh RAM c hai
tn hiu iu khin thng l WE (write enable) iu khin ghi v OE
iu khin c. Hai tn hiu ny phi loi tr ln nhau (ngc pha) iu
khin vic ghi/c mch nh.
Mt thng s c trng khc ca b nh l thi gian truy nhp t
ac
c nh ngha nh
l thi gian k t khi c xung a ch trn but a ch cho n khi c d liu ra n nh trn
but d liu. Thi gian thm nhm b nh ph thuc rt nhiu vo cng ngh ch to nn n.
Cc b nh lm bng cng ngh lng cc c thi gian truy nhp nh (10 - 30ns) cn cc b
nh lm bng cng ngh MOS c thi gian truy nhp ln hn nhiu (c 150ms hoc hn
na).
IV.2.2 Gii m a ch cho b nh
IV.2.2.1 Gii thiu
Mi mch nh ni ghp vi CPU cn phi c CPU tham chiu chnh xc khi thc
hin cc thao tc ghi/c. iu c ngha l mi mch nh phi c gn cho mt vng
ring bit c a ch xc nh nm trong khng gian a ch tng th ca b nh. Vic gn a
ch c th cho mch nh c thc hin nh mt xung chn vi mch ly t mch gii m a
ch. Vic phn nh khng gian a ch tng th thnh cc cng nh khc nhau thc hin
nhng chc nng nht nh gi l phn vng b nh. V d, i vi CPU 8086/8088 th
khng gian a ch tng th dnh cho b nh l 1MB, trong vng nh dung lng 1 KB k
t a ch thp nht 00000H nht thit phi c dnh cho RAM (v y l bng gm 256
vect ngt ca 8086/8088), ti cn vng nh c cha a ch FFFF0H th li nht thit phi
dnh cho ROM hay EPROM (v FFFF0H l a ch bt u ca on m khi ng ca
CPU).
V nguyn tc mt b gii m a ch khi qut thng c cu to nh trn Hnh IV-9
di y. u vo ca b gii m l cc tn hiu a ch v tn hiu iu khin. Cc tn hiu
a ch gm cc bt a ch c quan h nht nh vi cc tn hiu chn v u ra. Thng l
cc tn hiu a ch tng ng vi di a ch cp cho vi mch nh s sinh ra tn hiu chn v
tng ng. Tn hiu iu khin thng l tn hiu IO/ dng phn bit i tng m
CPU chn lm vic l b nh hay thit b vo/ra. Mch gii m l mt trong nhng khu tng
M
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-75-

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.

Gii m y cho mt mch nh i hi ta phi a n u vo ca mch gii m
cc tn hiu a ch sao cho tn hiu u ra ca n ch chn ring mch nh nh. Trong
trng hp ny ta phi dng t hp y ca cc u vo a ch tng ng chn c
mch nh, v xung nhn c t mch gii m ngoi vic chn mch nh vng nh s
c th chn ra cc mch nh cc vng nh khc na. Ni cch khc, t mt t hp tn hiu
a ch, b gii m s ch sinh ra mt tn hiu chn v duy nht ng vi khng gian a ch
cp cho vi mch nh.
Gii m a ch thiu hay gii m rt gn th ta ch dng mt nhm trong s cc tn hiu
a ch sinh ra tn hiu chn v cho mch nh. Nh vy, t mt t hp cc tn hiu a ch
c th sinh ra nhiu tn hiu chn v khc nhau. V s dng t tn hiu hn nn mch gii m
thiu cn t linh kin hn nhng li lm mt tnh n tr ca xung chn thu c u ra.
V d: Chp nh C c dung lng 10000H nh v c gn cho di a ch t
00000H-0FFFFH. sinh ra tn hiu chn v cho C ta c th s dng duy nht tn hiu a
ch A
16
mc thp (A
16
=0) hoc c bn tn hiu A
16
-A
19
mc thp (A
16
=. . . =A
19
=0). Vi
trng hp th nht ta c gii m thiu do A
16
=0 c th do cc yu cu truy nhp ti di a
ch 20000H-2FFFFH.
Thng thng khi thit k mch gii m ngi ta hay tnh i ra mt cht d phng,
sao cho sau ny nu c s thay i do phi tng thm dung lng ca b nh th vn c th
s dng c mch gii m c thit k. Ni cch khc, h thng c th m rng thm
khng gian nh bng cc b sung thm cc vi mch nh. Phn di y s xem xt mt s
phng php thc hin mch gii m a ch b nh.
IV.2.2.2 Thc hin mch gii m bng cc mch l-gc n gin
Cc mch l-gc n gin bao gm cc mch AND, OR, NOT hay kt hp nh NAND,
NOR. Bng cc mch kiu ny ta c th xy dng c mch gii m a ch n gin vi s
u ra hn ch. Cc mch l-gc lm nhim v t hp cc tn hiu a ch v iu khin
Hnh IV-9. Mch gii m a ch tng qut
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-76-

c/ghi b nh sao cho vi mt t hp a ch cho trc s sinh ra tn hiu chn v tng
ng.

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 A
0
. . . A
10
). Nh vy, s lng cc
tn hiu a ch dng sinh ra tn hiu kch hot chp nh ny l A
11
-A
19
. Vi di a ch cho
trc FF800H-FFFFFH th t hp A
11
=. . . =A
19
=1 s sinh ra tn hiu chn v cho EPROM
2716. Bn cnh , ta cn phi hp vi cc tn hiu iu khin IO/ v RD ( mc thp)
to ra tn hiu chn v.
Nh trong hnh v, cc tn hiu a ch v tn hiu o ca IO/ c lin kt trc
tip vi nhau bng php l-gc AND ri o. Do tn cht ca mch AND kt qu t hp l
duy nht. u ra s ch bng 1 khi tt c u vo bng 1. u ra ca mch NAND c OR
vi RD (mc thp) sinh ra tn hiu chn v (kch hot). Tng t, do tnh cht ca mch
OR u ra s ch bng 0 nu tt c cc u vo bng 0 nn tn hiu chn v l tn hiu duy
nht c sinh ra ng vi thao tc truy nhp ti di a ch FF800H-FFFFFH. Nh vy, mch
gii m trn l mch gii m y .
IV.2.2.3 Thc hin b gii m dng mch gii m tch hp

Khi ta mun c nhiu u ra chn v t b gii m m vn dng cc mch logic n
gin th thit k s tr nn rt cng knh do s lng cc mch tng ln. Trong trng hp
nh vy ta thng s dng cc mch gii m tch hp c sn. Mt trong cc mch gii m
hay c s dng l 74LS138 cho php gii m 3 tn hiu u vo thnh 8 tn hiu u ra nh
trong hnh di y.
M
M
Hnh IV-10. Mch gii m dng mch l-gc
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-77-


Gi s chng ta cn xy dng mch gii m cho khng gian nh 256KB tng ng vi
di a ch F8000H-FFFFFH trong mi mch nh 2732 c dung lng 4K8. T di a
ch c gn v dung lng ca tng mch nh, c th thy rng t cc tn hiu a ch A
13

ti A
19
cn phi sinh ra 8 tn hiu kch hot cc vi mch nh ng vi 8 di a ch nh bng
di y:
Bng IV-5. Di tn hiu ca cc mch nh 2732
a ch A
19
-A
16
A
15
A
14
A
13
A
12

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 A
12
-A
14
l thay i cn A
15
-A
19
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 A
12
-A
14
c ni trc tip vo tn hiu u vo
(A-C) ca 74LS138. Cc tn hiu a ch cn li A
15
-A
19
v cc tn hiu iu khin IO/
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
M
Hnh IV-11. 74LS138 v bng trng thi
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-78-

hoc PLA (programable logic array) vi u im chnh l chng c rt nhiu u vo cho cc
bt a ch v v th rt thch hp trong cc h vi x l sau ny vi khng gian a ch ln

IV.2.2.4 Thc hin b gii m dng PROM
Vic s dng b nh ROM lm b gii m li dng s lng ln cc tn hiu a ch
u vo, iu khin v d liu ra ca mch nh ROM. Vi mi t hp tn hiu a ch v iu
khin u vo, mch nh ROM s sinh ra mt nhm tn hiu trn knh d liu. Trng thi ca
cc tn hiu d liu ny ty thuc vo gi tr c lu vo trong ROM trc . Nu cc tn
hiu ny loi tr ln nhau th cc tn hiu d liu c th c dng lm cc tn hiu chn vi
mch nh.
trnh by ng dng ca PROM trong vic thc hin cc b gii m ta ly li v d
phn vng b nh cho ROM trong phn trc. Ti y ta dng mch PROM 256 byte lm
b gii m. Trong bng di y l mu cc bt ghi vo PROM cho trng hp ng dng
c th ny.
Bng IV-6. Mu d liu ghi vo ROM
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
_O
0
_O
1
_O
2
_O
3
_O
4
_O
5
_O
6
_O
7

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

Hnh IV-12. Gii m s dng 74LS138
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-79-

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.
IV.3 Phi ghp vi x l vi thit b vo ra
IV.3.1 Gii thiu v thit b vo/ra
i vi 8086/8088 (hay h 80x86 ni chung) c 2 cch phi ghp CPU vi cc thit b
ngoi vi (cc cng vo/ra, I/O):
a) Thit b vo/ra c khng gian a ch tch bit (Hnh IV-14)
Trong cch phi ghp ny, b nh c dng ton b khng gian 1MB m CPU
dnh cho n. Cc thit b ngoi vi (cc cng) s c dnh ring mt khng gian
64KB cho mi loi cng vo hoc ra. phn bit cc thao tc truy nhp, ta phi
dng tn hiu IO/ =1, v cc lnh trao i d liu mt cch thch hp cho mi
khng gian . Vi cc thit b ny cn s dng cc cu lnh IN, OUT trao i
d liu.
b) Thit b vo/ra v b nh c chung khng gian a ch
Trong cch phi ghp ny, b nh v thit b ngoi vi cng chia nhau khng gian
a ch 1MB m CPU 8086/8088 c kh nng a ch ha. Cc thit b ngoi vi s
chim mt vng no trong khng gian 1MB, phn cn li l ca b nh. Tt
nhin trong trng hp ny ta dng chung tn hiu IO/ =0 v lnh trao i d
liu kiu lnh MOV cho c b nh v thit b ngoi vi
M
M
Hnh IV-13. Gii m dng ROM
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-80-


IV.3.2 Gii m a ch thit b vo ra
IV.3.2.1 Gii thiu
Vic gii m a ch cho thit b vo/ra cng gn ging nh gii m a ch cho mch
nh. Ta s nhn mnh y vic gii m a ch cho cc cng. Thng thng cc cng c a
ch 8 bt ti A0-A7, trong mt s h vi x l khc (nh cc my IBM PC) cc cng c 16 bt
ti A0 - A15. Tu theo di ca ton hng trong lnh l 8 hay 16 bt ta c 1 cng 8 bt c
a ch lin nhau to nn t vi di tng ng. Trong thc t t c h s dng ht 256
cng vo/ra khc nhau nn ta ch xt y cc b gii m a ch 8 bt A0-A7 v mch gii
m thng dng c sn (nh 74LS138) to ra cc xung chn thit b.
Cc mch gii m n gin c th to c t mch l-gc n gin nh sau:

Trong trng hp cn nhiu xung chn u ra cho cc cng vo/ra c a ch lin
tip, ta c th dng cc mch gii m c sn kiu 74LS138. Nh trn hnh di y trnh by
2 mch tng t nhau dng 74LS138 gii m a ch cho 8 cng vo v 8 cng ra. Trn c
s mch ny ta cng c th phi hp vi c hai tn hiu c v ghi to ra tn hiu chn cho
vic c/ghi tng cng vo/ra ra c th.

Hnh IV-16. Gii m a ch cng dng 74LS138
Hnh IV-15. Gii m thit b dng cng l-gc
Hnh IV-14. Khng gian nh ca thit b vo/ra v b nh chnh
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-81-

IV.3.2.2 Cc mch cng n gin
Trong thc t c rt nhiu vi mch t hp c va c th c dng lm cng phi ghp
vi b vi x l vo/ra d liu. Cc mch ny thng c cu to t cc mch cht 8 bt
c u ra 3 trng thi (74LS373: kch theo mc; 74LS374: kch theo sn), cc mch khuch
i m 2 chiu 8 bt u ra 3 trng thi (74LS245). Chng c dng trong cc phi ghp
n gin lm cho CPU v thit b ngoi vi hot ng tng thch vi nhau, v d nh
m but hoc cc mch cng to ra cc tn hiu mc ni. . . Di y l mt s v d

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
Hnh IV-17. Ghp ni vi bn phm
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-82-


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 Q
1
-Q
7
, 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 LED
i
ta cn a tn hiu d liu D
i
=0 trn cng 0AH ti transitor Q
i
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
IV.4 Gii thiu mt s vi mch h tr vo ra
thc hin trao i d liu vo/ra, vi x l c th s dng mt s vi mch chuyn
dng cho php trao i d liu kiu song song nh Intel 8255A h tr 3 cng d liu 8 bt
Hnh IV-18. Ghp ni hin th s
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-83-

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.
IV.4.1 Ghp ni song song dng 8255A
IV.4.1.1 Gii thiu 8255A
Vi mch 8255A l thit b giao tip ngoi vi lp trnh c (Programmable Peripheral
Interface-PPI) dng cho h thng my tnh Intel. Thit b c th c lp trnh m khng cn
thit b logic ngoi giao tip vi thit b ngoi vi. Di y l s khi Hnh IV-19.

Cc tn hiu ca 8255A c ngha nh sau :
CS: Chn chp (mc thp) PA
7
-PA
0
:

Cng A
RD: c (mc thp) PB
7
-PB
0
:

Cng B
WR: Ghi (mc thp) PC
7
-PC
0
:

Cng C
A
0
A
1
:

Chn cng D
7
-D
0
:

D liu
Vi mch 8255A cung cp 3 cng vo/ra A,B, v C c rng 8 bt, chia lm 2 nhm A,
B. Cc cng ny c th c lp trnh lm vic trong ba ch :
a) Ch 0: Vo/ra c s:
Hnh IV-19. S khi 8255A
m
d liu


L-gc
iu
khin
ghi/c
iu
khin
nhm A
iu
khin
nhm B
Nhm A
Cng A
(8)
Nhm A
Cng C
(4)
Nhm B
Cng C
(4)

Nhm B
Cng B
(8)
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-84-

Ch ny cung cp thao tc vo/ra n gin cho tng cng, trn cc cng
khng c tn hiu kt ni. Cc cng A, B v C c th c chia thnh 2 cng 8 bt
(A,B) v 2 cng 4 bt (C thp PC
0
-PC
3
, C cao PC
4
-PC
7
). Bt k cng no c th dng
lm cng vo/ra.









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)
IBF: D liu sn sng (mc cao)
INTR: Bo ngt CPU (mc cao)
OBF: D liu ra sn sng (mc thp)
ACK: Nhn xong d liu (mc thp)
INTR: Bo ngt CPU (mc cao)
Cc tn hiu iu khin ca hai cng A v B ly t cng C nh sau:














Hnh IV-21. Ghp ni cc tn hiu iu khin ch 1
Hnh IV-20. Cc ch 0
But a ch
But iu khin
But d liu
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-85-

Cc tn hiu iu khin ra ny bin i nh hnh v di y

Vi cng A cc tn hiu iu khin hot ng nh sau:
OBFA (m ra ca PA y). Tn hiu bo cho thit b ngoi vi bit
CPU ghi d liu vo cng chun b a ra. Tn hiu ny thng
c ni vi STB ca thit b nhn.
ACKA (Tr li nhn c d liu). y l tn hiu ca thit b ngoi
vi cho bit l n nhn c d liu t PA ca 8255A.
INTRA (Yu cu ngt t PA). y l kt qu thu c t quan h gia
cc tn hiu khc ca 8255A trong qu trnh i thoi vi thit b ngoi
vi, n c dng phn nh yu cu ngt ca PA ti CPU (xem biu
quan h gia cc tn hiu trong hnh 5.38).
INTEA l tn hiu ca mt mch lt bn trong 8255A cho php/cm
yu cu ngt INTRA ca PA. INTEA c lp/xo thng qua bit PC6
ca PC.
Cc tn hiu iu khin vo thay i nh hnh v di y

Hnh IV-23. Biu thi gian tn hiu vo
Hnh IV-22. Biu thi gian tn hiu ra

Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-86-

STB (Cho php cht d liu): Khi d liu sn sng c c vo
bng PA, thit b ngoi vi phi dng STB bo cho 8255A bit cht
d liu.
IBF (m vo y): Sau khi 8255A cht c d liu do thit b ngoi vi
a n n a ra tn hiu IBF bo cho thit b ngoi vi bit l cht
xong.
INTR : Tn hiu bo cho CPU bit l c d liu sn sng c t
PA. y l kt qu thu c t quan h gia cc tn hiu khc ca 8255A
trong qu trnh i thoi vi thit b ngoi vi

c) Ch 2: Vo/ra hai chiu
Ch ny ch p dng c cho cng A v tt c cc tn hiu ca cng C c
dng lm tn hiu kt ni nh trong Hnh IV-24. Cc tn hiu kt ni bin i tu
thuc theo d liu c gi ra hay c v t cng A.

IV.4.1.2 Lp trnh 8255A
Cc thanh ghi ca 8255A c xc nh qua tnh hiu a ch A
0
A
1
nh sau
A1 A0 Thanh ghi
x x Khng s dng
0 0 Cng A (PA)
0 1 Cng B (PB)
1 0 Cng C (PC)
1 1 iu khin
ngha cc bt ca thanh ghi iu khin ch hot ng nh trong Hnh IV-25. Ch
khi ny bt c ngha ln nht ca thanh ghi iu khin nhn gi tr 1. Thanh ghi ny cng
c dng xc lp trng thi ca cc tn hiu iu khin trn cng C khi 8255A hot ng
ch 1 hoc 2.
Hnh IV-24. Cc tn hiu kt ni hai chiu v biu thi gian
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-87-



IV.4.2 Truyn thng ni tip dng 8251
IV.4.2.1 Gii thiu truyn thng ni tip
Vic truyn thng tin gia cc b phn nm gn nhau trong h thng vi x l c th
thc hin thng qua but song song m rng hoc qua cc mch phi ghp song song trong
cc byte hoc c truyn i trn mt tp cc ng dn bng mch in hoc dy cp trong
trng hp cn phi truyn thng tin gia cc thit b cch xa nhau, ta khng th dng c
Hnh IV-26. t xo cc tn hiu iu khin trn cng C
Hnh IV-25. Thanh ghi iu khin ch
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-88-

tp cc ng dy nh trn m phi c cch truyn khc m bo cht lng tn hiu cng
nh tit kim c s ng dy dn cn thit. T yu cu trn ra i phng php truyn
thng tin ni tip, tn hiu c truyn i lin tip tng bt trn mt ng dy (nh ng
in thoi chng hn). u thu tn hiu ni tip s c bin i ngc li ti to hiu
dng song song thch hp cho vic x l tip theo. Trong thc t c 2 phng php truyn
thng tin kiu ni tip: ng b v khng ng b.
Trong phng php truyn ng b, d liu c truyn theo tng khi vi mt tc
xc nh. Khi d liu trc khi c truyn i s c b sung thm cc phn t c bit
u v cui to thnh khung. Cc phn t ny dng nh du im bt u ca khi d
liu hay cc thng tin gip pht hin li trong qu trnh truyn. Hnh IV-27 biu din cu trc
khung d liu truyn ng b. y thc cht l cch iu khin hng k t v cc k t
c bit c dng nh du cc phn khc nhau trong khung.

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.

Tc truyn d liu theo phng php ni tip c o bng bt/chu k. Ngoi ra
ngi ta cng hay dng n v baud. l gi tr nghch o ca thi gian gia cc ln thay
i mc tn hiu, vi d liu ch c hai mc (0 v 1) v mi thay i mc tn hiu ch m ho
mt bt th tc baud bng tc bt/s. Trong cc phng php m ha khc, ngi ta c
Hnh IV-27. Cu trc khung ng b
Hnh IV-28. Cu trc d liu truyn d b
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-89-

th m ha nhiu hn mt bt thng tin trn mt trng thi tn hiu. Cc gi tr tc truyn
thng gp trong thc t l 2400, 4800, 9. 600. . .
to iu kin d dng cho vic phi ghp ng truyn ni tip vi h vi x l v
gim ti a cc mch ph thm ngoi. Ngi ta ch to ra cc vi mch t hp c ln lp
trnh c kh nng hon thnh cc cng vic cn thit trong khi phi ghp l cc mch thu
pht d b vn nng (N8250/16450 ca National Semiconductor universal asynchronous
receiver - transmitter USART) v mch thu pht ng b - d b vn nng 8251A ca Intel
(universal synchronous - asynchronous receiver - transmitter USART).
Vi cc mch phi ghp nh trn, vic truyn tin d b chng hn s c thc hin
nh 1USART u pht v 1 USART khc u thu. Khi c k t pht 8251A to ra
khung cho k t bng cch gn thm vo m k t cc bt start, parity v stop v g lin tip
tng bt ra ng truyn. Bn pha thu, 1 8521A khc s nhn k t tho b khung, kim tra
parity, ri chuyn sang dng song song CPU c.
IV.4.2.2 Mch USART 8251A
IV.4.2.2.a S khi v tn hiu
Trong phn ny ta s gii thiu mch 8251A, l mch USART c th dng cho hai
kiu truyn thng tin ni tip ng b. S khi ca mch 8251A ca Intel c biu din
trn hnh di y.

Cc tn hiu ca mch 8251A hu ht l ging tn hiu ca 8086/8088. Chn chn v
ca 8251A phi c ni vi u ra ca mt mch gii m a ch t mch 8251A vo
mt a ch c bn no . Cc tn hiu cn c gii thch thm gm:
Hnh IV-29. S khi 8251A
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-90-

+ CLK [I]: Chn ni n xung ng h ca h thng.
+ TxRDY [0]: Tn hiu bo m gi rng (sn sng nhn k t mi t CPU)
+ RxRDY [0]: Tn hiu bo m thu y (c k hiu nm ch CPU c vo)
+ TxEMPTY [0]: Tn hiu bo c m thu v m pht u rng.
+ C/D [I]: CPU thao tc vi thanh ghi lnh / thanh ghi d liu ca 8251A, khi C/D=1
th thanh ghi lnh c chn lm vic. Chn ny thng c ni vi A0 ca but a ch
cng vi cc tn hiu WR v RD chn ra 4 thanh ghi bn trong 8251A.
+ RxC [I] v TxC [I]: Xung ng h cung cp cho cc thanh ghi dch ca phn thu v
phn pht. Thng 2 thanh ny ni chung phn thu v phn pht lm vic vi cng tng s
nhp. Tn s ca cc khung ng h a n chn RxC v TxC c chn sao cho l bi s
(c th l gp 1, 16 hoc 64) ca tc thu hay tc pht theo yu cu.
+ l hai cp tn hiu yu cu thit b modem sn sng v tr li ca
modem vi tn hiu yu cu.
+ l cp tn hiu yu cu modem sn sng pht v p ng ca modem
vi tn hiu yu cu.
+ SYNDET/BRKDET [O]: khi 8251A lm vic ch khng ng b, nu RxD = 0
ko di hn thi gian ca 2 k t th chn ny c mc cao bo l vic truyn hoc ng
truyn b gin on. Khi 8251A lm vic ch ng b, nu phn thu tm thy k t ng
b rong bn tin thu c th chn ny c mc cao.
m phn pht ca mch 8251A l loi m kp, bao gm m gi v m pht.
Trong khi 1 k t ang c chuyn i m pht th mt k t khc c th a t CPU
sang m gi. Cc tn hiu TxRDY v TxEMPTY s cho bit trng thi ca cc m ny khi
mch 8251A hot ng. Khi m phn thu y th s c tin shiu RxRDY = 1. Nu cho n
khi phn thu nhn c k t mi m CPU khng kp thi c c k t c s b mt do b
bi k t mi nhn c. Hin tng ny gi l thu .
IV.4.2.2.b Cc thanh ghi bn trong ca 8251A
Nh ni trn chn C/D (gii s n c ni vo A
0
ca but a ch) cng cc tn
hiu WR v RD s chn ra 4 thanh ghi bn trong ca mch USART, thanh ghi m d liu
thu, thanh ghi m d liu pht, thanh ghi trng thi v thanh ghi iu khin (Bng IV-7).
Bng IV-7. Cc thanh ghi bn trong ca 8251A
A
0
RD WR Chn ra
0 0 1 Thanh ghi m d liu thu
0 1 0 Thanh ghi m d liu pht
1 0 1 Thanh ghi trng thi
1 1 0 Thanh ghi iu khin
DSR DTR
RTS CTS
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-91-

Thanh ghi ch :

Trong t ch , i vi k t cn truyn ta c th chn s bt (kiu m) ca k t, s
bt stop v tc truyn. Nu c sn tng s xung ng h cho phn thu hoc phn pht (gi
s l F
dk
) v ta mun truyn (thu/pht) d liu vi tc X baud, ta phi chn h s nhn
tc truyn k sao cho tha mn biu thc.
F
dk
= X. K, trong X l cc tc truyn tiu chun.
V d: nu ta c tn s xung ng h pht l 19. 200Hz v ta mun truyn d liu vi
tc 1. 200 baud th ta phi ghi t ch c 2 bt cui l 10 chn c h s nhn tc
truyn l 16, v 1200 x 16 = 19. 200. Vi vic dng tn s ng h cho phn thu/ pht cao
hn so vi tc truyn ta s gim c li khi truyn thng tin.
Hnh di y gii thiu cc gi tr ca thanh ghi lnh khi hot ng ch truyn
ng b. ch ny ta khng phi quan tm ti tc pht, thay vo ta cn xc nh s
lng k t ng b v di ca cc k t truyn i.

Hnh IV-31. Thanh ghi ch (ng b)
Hnh IV-30. Thanh ghi ch (d b)
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-92-


Thanh ghi lnh:

Thanh ghi trng thi
Gi tr trn cc bt thanh ghi ny cho ta bit tnh trng hot ng ca 8251A

IV.4.2.2.c Lp trnh 8251A
lp trnh cho 8251A trc tin ta cn xc lp ch hot ng bng cch tnh gi tr
ca thanh ghi ch v gi ra cng iu khin. gi hoc nhn d liu ta cn lin tc
kim tra trng thi ca 8251A theo lu c/ghi n gin sau:
Hnh IV-33. Cu trc thanh ghi trng thi
Hnh IV-32. Cu trc thanh ghi lnh
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-93-



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
Hnh IV-35. Ghp ni 8251A
Hnh IV-34. Lu c/ghi n gin

Chng V. Tng quan v cc phng php vo ra d liu
V.1 Gii thiu
K thut trao i d liu gia my vi tnh v cc thit b ngoi vi c gi l vo/ra hay
I/O (Input/Output). Thit b lin lc vi my vi tnh qua cc giao tip vo/ra. Ngi dng c
th nhp chng trnh v d liu bng cc dng bn phm v chy cc chng trnh ly kt
qu. Nh vy, cc thit b vo/ra kt ni ti my vi tnh cung cp cch thc lin lc tin li
vi th gii bn ngoi. Cc thit b vo/ra ph bin gm c bn phm, mn hnh, my in v
a cng.
c tnh ca cc thit b vo/ra thng khc vi c tnh ca my vi tnh. Chng hn
nh tc ca cc thit b thng chm hn my vi tnh, di t (word) v nh dng d
liu cng khc nhau gia thit b v my tnh. hai bn c th lin lc c vi nhau cn c
cc mch giao tip gia thit b vo/ra v my tnh. Giao tip cung cp trao i d liu vo/ra
qua but vo/ra. But ny thng thng chuyn ti 3 loi tn hiu: a ch thit b, d liu v
lnh.
C ba phng php trao i d liu gia my vi tnh v cc thit b vo/ra: vo/ra lp
trnh (programmed I/O) hay thm d, vo/ra bng ngt v truy nhp trc tip b nh (Direct
Memory Access DMA). Dng vo/ra thm d, vi x l chy mt chng trnh thc hin ton
b cc trao i d liu gia vi x l v ccs thit b bn ngoi. c tnh ch yu ca phng
php ny l thit b thc hin cc chc nng c ch nh bi chng trnh bn tron b nh
ca vi x l. Ni cch khc, vi x l iu khin hon ton cc trao i d liu.
Vi vo/ra bng ngt, thit b c th bt vi x l dng vic thc hin chng trnh hin
thi thit b c tht chy chng trnh khc gi l chng trnh phc v ngt. Chng
trnh ny p ng yu cu ca thit b. Sau khi kt thc chng trnh ny, cu lnh tr v t
ngt tr li quyn iu khin cho chng trnh b ngt.
Truy nhp b nh trc tip l k thut vo/ra m trong d liu c th c trao i
gia b nh ca my tnh vi thit b nh cng m khng cn s can thip ca vi x l.
Thng thng, phng php ny cn s dng vi mch c bit gi l vi mch DMA.
Trong my tnh s dng h iu hnh, ngi dng thng lm vic vi thit b vo/ra
o. Ngi dng khng phi quan tm ti cc c tnh ca thit b. Thay vo , ngi dng
thc hin trao i d liu thng qua cc dch v vo/ra do h iu hnh cung cp. V cn bn,
h iu hnh ng vai tr giao tip gia chng trnh ngi dng v phn cng thit b. H
iu hnh h tr to nhiu cc thit b l-gc hay thit b vo/ra o v cho php ngi dng
lin lc trc tip vi cc thit b ny. Chng trnh ngi dng hon ton khng bit c
vic nh x gia thit b o v thit b vt l. Nh vy, khi thit b o gn cho thit b vt l
khc th khng phi thay i chng trnh ngi dng.
Chng V. Tng quan v cc phng php vo ra d liu

-95-

V.2 Vo/ra bng phng php thm d
Vn iu khin vo/ra d liu s tr nn n gin nu thit b ngoi nu lc no
cng sn sng lm vic vi CPU. V d, b phn do nhit s (nh l mt thit b vo)
lp sn trong mt h thng iu khin lc no cng c th cung cp s o v nhit ca i
tng cn iu chnh, cn mt b n LED 7 nt (nh l mt thit b ra) dng ch th mt
gi tr no ca mt i lng vt l nht nh trong h thng ni trn th lc no cng c
th biu hin thng tin . Nh vy khi CPU mun c thng tin v nhit ca h thng th
n ch vic c cng phi ghp vi b o nhit , v nu CPU mun biu din thng tin va
c c trn n LED th n ch vic a tn hiu iu khin ti m khng cn phi kim
tra xem cc thit b ny c ang sn sng lm vic hay khng.
Tuy nhin trong thc t khng phi lc no CPU cng lm vic vi cc i tng "lin
tc sn sng" nh trn. Thng thng khi CPU mun lm vic vi mt i tng no ,
trc tin n phi kim tra xem thit b c ang trng thi sn sng lm vic hay khng;
nu c th n mi thc hin vo vic trao i d liu. Nh vy, nu lm vic theo phng
thc thm d th thng thng CPU chia s thi gian hot ng cho vic trao i d liu v
vic kim tra trng thi sn sng ca thit b ngoi vi thng qua cc tn hiu mc ni
(handshake signal).

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
Hnh V-1. Vo/ra lp trnh vi nhiu thit b
Chng V. Tng quan v cc phng php vo ra d liu

-96-

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.
V.3 Vo/ra bng ngt
V.3.1 Gii thiu
Nhc im ca vo/ra thm d l my tnh cn kim tra bt trng thi bng cch ch
p ng ca thit b vo/ra. Vi cc thit b chm, vic ch lm gim kh nng x l d liu
khc ca my tnh. K thut ngt cho php gii quyt vn ny.
Vi vo/ra bng ngt, thit b khi xng vic trao i vo/ra. Thit b c ni vi
chn tn hiu ngt (INT) trn vi mch ca vi x l. Khi thit b cn trao i d liu, thit b
sinh ra tn hiu ngt. My tnh s hon thnh cu lnh hin thi v lu ni dung ca b m
chng trnh v cc thanh ghi trng thi. Sau , my tnh t ng np a ch ca chng
trnh phc v ngt vo thanh ghi m chng trnh. Chng trnh ny thng do ngi dng
vit v my tnh thc hin chng trnh ny trao i d liu vi thit b. Cu lnh cui ca
chng trnh ny khi phc thanh ghi m chng trnh b dng v thanh ghi trng thi ca
vi x l.
Vi x l thng cung cp mt hay nhiu tn hiu ngt trn vi mch. Nh vy, x l
cc yu cu ngt t nhiu thit b cn c c ch c bit. Thng c cc cch sau: thm d v
quay vng. Thm d s dng phn mm chung cho tt c cc thit b v vy lm gim tc
p ng ngt. Khi c tn hiu ngt phn mm thm d kim tra trng thi ca cc thit b theo
th t u tin bt u vi thit b c u tin cao nht. Khi xc nh c thit b yu cu
trao i d liu, phn mm thm d chuyn quyn iu khin cho phn mm phc v ngt.
V.3.2 B x l ngt u tin 8259
Trong trng hp c nhiu yu cu ngt che c t bn ngoi phi phc v my tnh
thng dng vi mch c sn 8259A gii quyt vn u tin. Vi mch 8259A c gi l
mch iu khin ngt lp trnh c (Programmable Interrupt Controller, PIC). l mt vi
mch c ln c th x l trc c 8 yu cu ngt vi cc mc u tin khc nhau to ra
mt yu cu ngt a n u vo INTR (yu cu ngt che c ca CPU 8086/8088. Nu
ni tng 1 mch 8259A ch vi 8 mch 8259A th ta c th nng tng s cc yu cu ngt
vi cc mc u tin khc nhau ln thnh 64.



Chng V. Tng quan v cc phng php vo ra d liu

-97-

V.3.2.1 Cc khi chc nng chnh ca 8259A
S khi ca 8259A c trnh by trong hnh v di y

Thanh ghi IRR: ghi nh cc yu cu ngt c ti u vo IRi.
Thanh ghi ISR: ghi nh cc yu cu ngt ang c phc v trong s cc yu cu ngt
IRi.
Thanh ghi IMR: ghi nh mt n ngt i vi cc yu cu ngt IRi.
Logic iu khin: khi ny c nhim v gi yu cu ngt ti INTR ca 8086/8088 khi c
tn hiu ti cc chn IRi v nhn tr li chp nhn yu cu ngt INTA t CPU ri iu
khin vic a ra kiu ngt trn but d liu.
m but d liu: dng phi ghp 8259A vi but d liu ca CPU
Logic iu khin ghi/c: dng cho vic ghi cc t iu khin v c cc t trng thi
ca 8259A.
Khi m ni tng v so snh: ghi nh v so snh s hiu ca cc mch 8259A c mt
trong h vi x l.
V.3.2.2 Cc tn hiu ca 8259A
Mt s tn hiu trong mch 8259 c tn ging nh cc tn hiu tiu chun ca h vi x
l 8086/8080. Ta c th thy r v hiu c ngha ca chng ngay trn Hnh V-2. Ngoi
cc tn hiu ny ra, cn c mt s tn hiu c bit khc ca 8259A cn phi gii thiu thm
gm:
+ CAS
0
-CAS
2
[I, O]: l cc u vo i vi cc mch 8259A th hoc cc u ra ca
mch 8259A ch dng khi cn ni tng tng thm cc yu cu ngt cn x l.
Hnh V-2. S khi 8259
Chng V. Tng quan v cc phng php vo ra d liu

-98-

+ [I, O]: khi 8259A lm vic ch khng c m but d liu th y l tn
hiu vo dng lp trnh bin mch 8259A thnh mch th ( ) hoc ch ( ); khi
8259A lm vic trong h vi x l ch c m but d liu th chn ny l tn hiu ra
dng m m but d liu 8086/8088 v 8259A thng vo but d liu h thng.
Lc ny vic nh ngha mch 8259A l ch hoc th phi thc hin thng qua t iu khin
u ICW4.
+ INT [O]: tn hiu yu cu ngt n chn INTR ca CPU 8086/8088.
+ [I]: ni vi tn hiu bo chp nhn ngt ca CPU.
Hnh v di y th hin ghp ni 8259A vi h thng but ca 8086/8088. Nu h vi
x l 8086/8088 lm vic ch MAX thng ta phi dng mch iu khin but 8288 v
cc m but cung cp cc tn hiu thch hp cho but h thng. Mch 8259A phi lm
vic ch c m ni c vi but h thng ny.

V.3.2.3 Lp trnh cho PIC 8259A
mch PIC 8259A c th hot ng c theo yu cu, sau khi bt ngun cp in
PIC cn phi c lp trnh bng cch ghi vo cc thanh ghi (tng ng vi cc cng) bn
trong cc t iu khin khi u (ICW) v tip sau l cc t iu khin hot ng (OCW).
Cc t iu khin khi u dng to nn cc kiu lm vic c bn cho PIC, cn cc
t iu khin hot ng s quyt nh cch thc lm vic c th ca PIC. T iu khin hot
ng s c ghi khi ta mun thay i hot ng ca PIC.
Cc t iu khin ni trn s c gii thiu c th di y.
EN / SP
0 SP= 1 SP=
EN
INTA INTA
Hnh V-3. Ghp ni 8259 vi but 8086/8088
Chng V. Tng quan v cc phng php vo ra d liu

-99-

V.3.2.3.a Cc t iu khin khi u ICW
PIC 8259A c tt c 4 t iu khin khi u l ICW1 - ICW4. Trong khi lp trnh
cho PIC khng phi lc no ta cng cn dng c 4 t iu khin khi u nhng c lc ta ch
cn ghi vo 2 hay 3 t l . Hnh di y th hin th t ghi v iu kin ghi cc
iu khin ICW vo 8259A.

xc nh cc thanh ghi bn trong ta cn s dng tn hiu a ch A
0
v th t ghi
ghi d liu cho cc t iu khin. V d A
0
= 0 l du hiu nhn bit rng ICW1 c a
vo thanh ghi c a ch chn trong PIC, cn khi A
0
= 1 th cc t iu khin khi u ICW2,
ICW3, ICW4 s c a vo cc thanh ghi c a ch l trong mch PIC.
o ICW1
Bt D
0
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.
Hnh V-4. Trnh t s dng cc thanh ghi khi u
Chng V. Tng quan v cc phng php vo ra d liu

-100-


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
Hnh V-6. Dng thc ca ICW2
Hnh V-5. Dng thc ca ICW1
Chng V. Tng quan v cc phng php vo ra d liu

-101-

mch th cho ni vo. Mch th s so snh m s ny vi m s nhn c CAS
2
-CAS
0
.
Nu bng nhau th s hiu ngt s c a ra but khi c INTA.

V d: Trong mt h vi x l ta c mt mch 8259A ch v 2 mch 8259A th ni
vo chn IR1 ca mch ch. Tm gi tr phi gn cho cc t iu khin khi u ICW ?
Gii: Nh trn ni, cc mch ny lm vic c vi nhau ta s phi gn cc t iu
khin khi u nh sau: ICW3 = 03H cho mch ch. ICW3 = 00H cho mch tho th nht v
ICW3 = 01H cho mch th th hai.
o ICW4
T iu khin khi u ny ch dng n khi trong t iu khin ICW1 c IC4 = 1 (cn
thm ICW4)
Bt PM cho ta kh nng chn loi vi x l lm vic vi 8259A. Bt PM = 1 cho
php cc b vi x l t 8086/88 hoc cao hn lm vic vi 8259A
Bt SFNM = 1 cho php chn ch u tin c nh c bit. Trong ch ny yu cu
ngt vi mc u tin cao nht hin thi t mt mch th lm vic theo kiu ni tng s c
mch ch nhn bit ngay c khi mch ch cn ang phi phc v mt yu cu ngt mch
th khc nhng vi mc u tin thp hn. Sau khi cc yu cu ngt c phc v xong th
chng trnh phc v ngt phi c lnh kt thc yu cu ngt (EOI) t trc lnh tr v
(IRET) a n cho mch 8259A ch.
Khi bt SFNM = 0 th ch u tin c nh c chn (IR0: mc u tin cao nht.
IR7: mc u tin thp nht) thc ra i vi mch 8259A khng dng n ICW1 th ch
ny c chn nh l ngm nh. Trong ch u tin c nh ti mt thi im ch c
mt yu cu ngt i c phc v (bt IRi = 1) lc ny tt c cc yu cu khc voi mc u
tin cao hon c th ngt yu cu khc vi mc u tin thp hn.
.
Hnh V-7. Dng thc ca ICW3 cho mch ch v th
Chng V. Tng quan v cc phng php vo ra d liu

-102-


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.
V.3.2.3.b Cc t iu khin hot ng OCW
Cc t iu khin hot ng OCW s quyt nh mch 8259A s hot ng nh th no
sau khi n c khi u bng cc t iu khin ICW. Tt c cc t iu khin ny s
c ghi vo cc thanh ghi trong PIC khi A0 = 0, tr OCW1 c ghi khi A0 = 1.
o OCW1
OCW1 dng ghi gi tr ca cc bt mt n vo thanh ghi mt n ngt IMR. Khi mt
bt mt n no ca c lp th yu cu ngt tng ng vi mt n s khng c
8259A nhn bit na (b che). T iu khin ny phi c a n 8259A ngay sau khi ghi
cc ICW vo 8259A.
Ta cng c th c li IMR xc nh tnh trng mt n ngt hin ti (xem trong thi
im hin ti yu cu ngt no b che)
Hnh V-8. Dng thc ca ICW4
Chng V. Tng quan v cc phng php vo ra d liu

-103-


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 L
2
, L
1
, L
0
.
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=L
2
L
1
L
0
, c gn
mc u tin thp nht, u vo IR
i+1
s uc t ng gn mc u tin cao nht.
Hnh V-9. OCW1 Trng thi yu cu ngt
Chng V. Tng quan v cc phng php vo ra d liu

-104-


Tr li cc vn lin quan n OCW, ta s ni r vic cc bt R, SL v EOI phi hp
vi nhau nh th no to ra cc lnh quy nh cc cch thc kt thc yu cu ngt cho cc
ch lm vic khc nhau ni n phn trn.
1. Kt thc yu cu ngt thng: chng trnh cn phc v ngt phi c lnh EOI
t trc lnh tr v IRET cho 8259A. Vi mch ny s xc nh yu cu ngt
IRi va c phc v v xo bt ISRi tng ng ca n to iu kin cho
chnh yu cu ngt ny hoc cc ngt khc c mc u tin thp hn c th c
tc ng.
2. Kt thc yu cu ngt thng: chng trnh con phc v ngt phi c lnh EOI
ch ch danh t trc lnh tr v IRET cho 8259A. 8259A xo ch danh bt
ISRi, vi i=L
2
L
1
L
0
to iu kin cho chnh yu cu ngt ny hoc cc ngt
khc c mc u tin thp hn c th c tc ng.
3. Quay (i) mc u tin khi kt thc yu cu ngt thng: chng trnh con
phc v ngt phi c lnh EOI t trc lnh tr v IRET cho 8259A. 8259A s
xc nh yu cu ngt th i va c phc v. Xa bt ISRi tng ng v gn
lun mc u tin thp nht cho u vo IR, ny cn u vo IR
i+1
s c gn
mc u tin cao nht.
C th theo di cch thc hot ng ca mch 8259A trong ch quay (i)
mc u tin khi kt thc yu cu ngt thng thng qua v d minh ha trnh
by trn Hnh V-10.
Hnh V-10. Trng thi ngt v ch quay mc u tin
Chng V. Tng quan v cc phng php vo ra d liu

-105-


4. Quay (i) mc u tin trong ch kt thc yu cu ngt t ng: ch cn mt
ln a lnh chn ch i mc u tin khi kt thc yu cu ngt t ng. C
th chn ch ny bng lnh lp ch quay khi c EOI t ng. T tr
i 8259A s i mc u tin mi khi kt thc ngt t ng theo cch tng t
nh mc 3. Mun b ch ny ta c th dng lnh xa ch quay khi c
EOI t ng.
5. Quay (i) mc u tin khi kt thc yu cu ngt ch danh: chng trnh cn
phc v ngt phi c lnh EOI ch danh cho 8259A t trc lnh tr v IRET.
Mch 8259A s xa bt ISRi ca yu cu ngt tng ng v gn lun mc u
tin thp nht cho u vo IRi, vi i = L
2
L
1
L
0
.
6. Lp mc u tin: ch ny cho php thay i mc u tin c nh hoc mc
u tin gn trc bng cch gn mc u tin thp nht cho yu cu ngt IRi
ch ch danh vi t hp i = L
2
L
1
L
0
. Yu cu ngt IR
i+1
s c gn mc u
tin cao nht.
OCW3
T iu khin hot ng sau khi c ghi vo 8259A cho php:
Chn cc ra thanh ghi c
Thm d trng thi yu cu ngt bng cch trng thi ca u vo yu cu ngt
Iri vi mc u tin cao nht cng m ca u vo v.
Thao tc vi mt n c bit.
Hnh V-11. OCW2 xc nh x l cc yu cu ngt
Chng V. Tng quan v cc phng php vo ra d liu

-106-


Cc thanh ghi IRR v ISR c th c c sau khi np vo 8259A t iu khin
OCW3 vi bt RR = 1: bt RIS = 0 s cho php c IRR. Bt RIS = 1 s cho php c ISR.
Dng thc ca cc thanh ghi ny biu din trn hnh di y.

Bng vic a vo 8259A t iu khin OCW3 vi bt P = 1 ta c th c c trn
but d liu ln c tip ngay sau t thm d, trong c cc thng tin v yu cu ngt
vi mc u tin cao nht ang hot ng v m tng ng vi yu cu ngt y theo dng
thc c biu din trn di y.

D7 D6 D5 D4 D3 D2 D1 D0
1: c ngt X x X x S hiu yu cu ngt

C th gi y l ch thm d yu cu ngt v ch ny thng c ng dng
trong trng hp c nhiu chng phc v ngt ging nhau cho mt yu cu ngt v vic
chn chng trnh no s dng l trch nhim ca ngi lp trnh.
Hnh V-13. Thanh ghi IRR v ISR
Hnh V-12. OCW3
Hnh V-14. Dng thc t thm d trng thi
Chng V. Tng quan v cc phng php vo ra d liu

-107-

Tm li, mun dng ch thm d ca 8259A xc nh yu cu ngt hin ti ta
cn lm cc thao tc ln lt nh sau:
- Cm cc yu cu ngt bng lnh CLI
- Ghi t lnh OCW3 vi bt P = 1
- c t thm d trng thi yu cu ngt trn but d liu.
Bt ESMM = 1 cho php 8259A thao tc vi ch mt n c bit. Bt SMM = 1 cho
php lp ch mt n c bit. Ch mt n c bit c dng thay i th t u tin
ngay bn trong chng trnh con phc v ngt. V d trong trng hp c mt yu cu ngt
cm (b che bi chng trnh phc v ngt vi t lnh OCW1 m ta li mun cho php cc
yu cu ngt vi mc u tin thp hn so vi yu cu ngt b cm c tc ng th ta s
dng ch mt n c bit. Mt khi c lp, ch mt n c bit s tn ti cho ti
khi b xa bng cch ghi vo 8259A mt t lnh OCW3 khc voi bt SMM = 0. Mt n c
bit khng nh hng ti cc yu cu ngt vi mc u tin cao hn)
V.3.2.3.c Hot ng ca 8086/8088 vi 8259A
Cui cng c ci nhn mt cch c h thng v hot ng ca h vi x l vi CPU
8086/8088 v PIC 8259A khi c yu cu ngt, ta tm lt hot ng ca chng nh sau:
1 Khi c yu cu ngt t thit b ngoi vi tc ng vo mt trong cc chn IR ca
PIC. 8259A s a INT = 1 n chn INTR ca 8086/8088.
2 8086/8088 a ra xung INTA u n 8259A
3 8259A dng xung INTA u nh l thng bo n hon tt cc x l ni b cn
thit, k c x l u tin nu nh c nhiu yu cu ngt cng xy ra.
4 8086/8088 a ra xung INTA th hai n 8259A
5 Xung INTA th hai khin 8259A a ra but d liu 1 byte cha thng tin v s
hiu ngt ca yu cu ngt va c nhn bit.
6 8086/8088 dng s hiu ngt tnh ra a ch ngt ca vect ngt tng ng.
7 8086/8088 ct FR, xa cc c IF v TF v ct a ch tr v CS:IP vo ngn xp.
8 8086/8088 ly a ch CS:IP ca chng trnh phc v ngt t bng vect ngt v
thc hin chng trnh .
V.4 Vo/ra bng truy nhp trc tip b nh (Direct memory Access)
V.4.1 Khi nim v phng php truy nhp trc tip vo b nh
Trong cc cch iu khin vic trao i d liu gia thit b ngoi vi v h vi x l
bng cch thm d trng thi sn sng ca thit b ngoi vi hay bng cch ngt b vi x l
trnh by cc chng trc, d liu thng c chuyn t b nh qua b vi x l ri t
ghi vo thit b ngoi vi hoc ngc li, t thit b ngoi vi n c c vo b vi x l
ri t c chuyn n b nh. V th tc trao i d liu ph thuc rt nhiu vo tc
thc hin ca cc lnh MOV, IN v OUT ca b vi x l v do vic trao i d liu
khng th tin hnh nhanh c.
Chng V. Tng quan v cc phng php vo ra d liu

-108-

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
Hnh V-15. H vi x l vi DMAC
Chng V. Tng quan v cc phng php vo ra d liu

-109-

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.
V.4.2 Cc phng php trao i d liu
Trong thc t tn ti 3 kiu trao i d liu bng cch truy nhp trc tip vo b nh
nh sau:
Treo CPU mt khong thi gian trao i c mng d liu.
Treo CPU trao i tng byte.
Tn dng thi gian khng dng but trao i d liu.
V.4.2.1 Trao i c mt mng d liu
Trong ch ny CPU b treo trong sut qu trnh trao i mng d liu. Ch ny
c dng khi ta c nhu cu trao i d liu vi a hoc a d liu ra hin th. Cc bc
chuyn mt mng d liu t b nh ra thit b ngoi vi:
1. CPU phi ghi t iu khin v t ch lm vic vo DMAC quy nh cch thc
lm vic, a ch u ca mng nh, di ca mng nh, . . .
2. Khi thit b ngoi vi c yu cu trao i d liu, n a DREQ =1 n DMAC.
3. DMAC a ra tn hiu HRQ n chn HOLD ca CPU yu cu treo CPU. Tn hiu
HOLD phi mc cao cho n ht qu trnh trao i d liu.
4. Nhn c yu cu treo, CPU kt thc chu k but hin ti, sau n treo cc but
ca mnh v a ra tn hiu HLDA bo cho DMAC c ton quyn s dng but.
5. DMAC a ra xung DACK bo cho thit b ngoi vi bit l c th bt u trao i
d liu.
6. DMAC bt u chuyn d liu t b nh ra thit b ngoi vi bng cch a a ch
ca byte u ra but a ch v a ra tn hiu MEMR=O c mt byte t b nh
ra but d liu. tip DMAC a ra tn hiu IOW =0 ghi a d liu ra thit b
ngoi vi. DMAC sau gim b m s byte cn phi chuyn, cp nht a ch ca
byte cn c tip, v lp li c c ng tc trn cho ti khi ht s m (TC).
7. Qu trnh DMA kt thc, DMAC cho ra tn hiu HRQ=0 bo cho CPU bit
CPU dnh li quyn iu khin h thng.
V.4.2.2 Treo CPU trao i tng byte.
Trong cch trao i d liu ny CPU khng b treo lu di trong mt ln nhng thnh
thong li b treo trong khong thi gian rt ngn trao i 1 byte d liu (CPU b ly
Chng V. Tng quan v cc phng php vo ra d liu

-110-

mt mt s chu k ng h). Do b ly i mt s chu k ng h nh vy ln tc thc hin
mt cng vic no ca CPU ch b suy gim ch khng dng li. Cch hot ng cng
tng t nh phn trc, ch c iu mi ln DMAC yu cu treo CPU thi ch c mt byte
c trao i.
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.
V.4.3 B iu khin truy nhp trc tip vo b nh Intel 8237A
V.4.3.1 Gii thiu
DMAC 8237A c th thc hin truyn d liu theo 3 kiu: kiu c (t b nh ra thit
b ngoi vi), kiu ghi (t thit b ngoi vi n b nh) v kiu kim tra.
Trong ch truyn kiu c th d liu c c t b nh ri a ra thit b ngoi vi.
Trong ch truyn kiu ghi th d liu c c t thit b ngoi vi ri a vo b nh. Khi
8237A lm vic ch kim tra th tuy a ch c a n b nh nhng DMAC khng
to ra cc xung iu khin tin hnh cc thao tc ghi/c b nh hay thit b ngoi vi.
Ngoi ra mch 8237A cn h tr vic trao i d liu gia cc vng khc nhau ca b
nh v cng ch ring trong ch lm vic ny, d liu cn trao i mi phi di qua DMAC
nhng vi tc cao hn khi i qua CPU nhng vi tc cao hn khi i qua CPU (trong
trng hp ny ta c th c c d liu trong thanh ghi tm). S khi cu trc bn
trong ca mch 8237A -5 c th hin trn hnh di y.

Hnh V-16. S khi 8237A
Chng V. Tng quan v cc phng php vo ra d liu

-111-

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.
V.4.3.2 Cc tn hiu ca 8237A -5
CLK[I]:tn hiu ng h ca mch. mch c th lm vic tt vi h
8086/8088 th tn hiu CLK ca h thng thng c o trc khi a vo
CLK ca 8237A.
CS [I]: tn hiu chn v 8237A chn ny thng c ni vi u ra ca b gii
m a ch. b gii m a ch ny khng cn dng n u vo IO/M v bn
thn DMAC c cung cp cc xung iu khin mi ca hn thng.
RESET[I]:tn hiu ni vi tn hiu khi ng ca h thng. Khi mch 8237A
c khi ng ring thanh ghi mt n c lp cn cc b phn sau b xa:
o Thanhghi lnh
o Thanh ghi trng thi
o Thanh ghi yu cu DMA
o Thanh ghi tm thi
o Mch lt byte u /byte cui (First/Last)
READY[I]:tn hiu sn sng, ni vi READY ca h thng gy ra cc
chu k i i vi cc thit b ngoi vi v cc b nh chm.
HLDA [I]:tn hiu bo chp nhn yu cu treo t CPU
DREQ
0
-DREQ3[I]:cc tn hiu yu cu treo t thit b ngoi vi. Cc tnh
ca cc tn hiu ny c th lp trnh c. Sau khi khi ng cc tn
hiuny c nh ngha l cc tn hiu kch hot mc cao.
DB
0
-DB
7
[I, O]:tn hiu hai chiu ni n but a ch v but d lliu ca
h thng cc tn hiu ny c dng khi lp trnh cho DMAC v khi
DMAC hot ng cc chn ny cha 8 bt a ch cao A
8
-A
15
ca mng nh
d liu cn chuyn. Trong ch chuyn d liu gia cc vng ca b nh
ti cc chn ny c cc d liu c chuyn.
IOR[I, O]V IOW[I, O]: l cc chn tn hiu hai chiu dng trong khi lp
trnh cho DMAC v trong cc chu k c v ghi.
EOP[I, O]: l tn hiu hai chiu dng yu cu DMAC kt thc qu trnh
DMA. Khi l u ra n c dng bo cho bn ngoi bit mt knh no
chuyn xong s byte theo yu cu, luc ny n thng dng nh mt
yu cu ngt CPU x l vic kt thc qu trnh DMA.
A
0
-A
3
[I, O]:l cc tn hiu hai chiu dng chn cc thanh ghi trong
8237A khi lp trnh v khi c (u vo), hoc chuyn 4 bt a ch thp
nht ca a ch mng nh cn chuyn (u ra).
A
4
-A
7
[O]:cc chn cha 4 bt a ch phn cao trong byte a ch thp
ca a ch mng nh cn chuyn.
Chng V. Tng quan v cc phng php vo ra d liu

-112-

HRQ[O]:tn hiu yu cu treo n CPU. Tn hiu ny thng c ng b
vi tn hiu CLK ca h thng ri c a n chn HOLD ca
8086/8088.
DACK
0
-DACK
3
[0]: l cc tn hiu tr li cc yu cu DMA cho cc knh.
Cc tn hiu ny c th c lp trnh hot ng theo mc thp hoc
mc cao. Sau khi khi ng, cc tn hiu ny c nh ngha l cc xung
tch cc thp.
AEN[0]: tn hiu cho php mch ni vo DB
0
-DB
7
cht ly a ch ca
vng nh cn trao i theo kiu DMA. Tn hiu ny cng cho php cm cc
mch m but a ch v d liu hoc mch to tn hiu iu khin ca
CPU ni vo cc but tng ng khi DMAC hot ng.
ADSTB[0]: xung cho php cht cc bt a ch phn cao A8-A15 c mt
trn DB0-DB7.
MEMR[0] v MEMW[0]: l cc chn tn hiu do DMAC to ra v dng khi
c/ghi b nh trong khi hot ng.
Hnh v di y minh ha cch ghp ni cc tn hiu ca 8237A vi but h
thng.

V.4.3.3 Cc thanh ghi bn trong ca DMAC 8237A
Cc thanh ghi bn trong DMAC 8237A c CPU 8086/8088 chn lm vic nh cc
bt a ch thp A0-A3. Bng di y ch ra cch thc chn ra cc thanh ghi .
Hnh V-17. Ghp ni 8237 vi but h vi x l
Chng V. Tng quan v cc phng php vo ra d liu

-113-



Cc bng di y cho bit cc thanh ghi trn theo cc quan im ng
dng khc nhau d tra cu a ch cho chng khi lp trnh vi DMAC
8237A.

Bng V-2. a ch cc thanh ghi trong dng cho cc knh
Bng V-1. a ch cc thanh ghi 8237A
Chng V. Tng quan v cc phng php vo ra d liu

-114-


V.4.3.3.a Thanh ghi a ch hin thi:
y l thanh ghi 16 bt dng cha a ch ca vng nh phi chuyn. Mi knh c
ring thanh ghi ny cha a ch. Khi 1 byte c truyn i. Cc thanh ghi ny t ng
tng hay gim tu theo trc n c lp trnh nh th no.
V.4.3.3.b Thanh ghi s m hin thi:
Thanh ghi 16 bt ny dng cha s byte m knh phi truyn(nhiu nht l 16KB).
Mi knh c thanh ghi s byte ca mnh. Cc thanh ghi ny c ghi bng s m nh nht
hn 1 so vi s byte thc chuyn.
V.4.3.3.c Thanh ghi a ch c s v thanh ghi s m c s:
Cc thanh ghi ny c dng cha a ch v s m cho mi knh khi ch t
ng khi u c s dng.
Trong ch ny mt qu trnh DMA kt thc th cc thanh ghi a ch hin thi v s
m hin thi c np li gi tr c ly t thanh ghi a ch c s v thanh ghi s m c s.
Khi cc thanh ghi a ch hin thi v s m hin thi c lp trnh th cc thanh ghi a
ch c s v thanh ghi s m c s cng c lp trnh bt k ch t khi u c c s
dng hay khng.
V.4.3.3.d Thanh ghi lnh:
Thanh ghi ny dng lp trnh cho DMAC. N b xo khi khi ng hoc khi ta s
dng lnh xo ton b cc thanh ghi. Dng thc ca thanh ghi lnh nh sau.
Bng V-3. Cc thanh ghi iu khin v trng thi
Chng V. Tng quan v cc phng php vo ra d liu

-115-


Cc bt ca thanh ghi ny quyt nh cc phng thc lm vic khc nhau ca 8237A.
Ta s gii thch sau y ngha ca cc bt.
Bt D0 cho php DMAC dng knh 0 v knh 1 chuyn d liu gia 2 vng nh.
a ch ca byte d liu vng ch c cha trong thanh ghi a ch ca knh 1. S byte
chuyn c t trong thanh ghi m ca knh 1. Byte cn chuyn lc u c c t vng
gc vo thanh ghi tm ri t n c gi n vng ch trong bc tip theo (hot
ng nh lnh MOVSB nhng vi tc cao).
Bt D1=1 dng cho php knh 0 gi nguyn a ch trong ch truyn gi liu gia
2 vng nh. iu ny khin cho ton b cc nh vng ch c np cng mt byte d liu.
Bt D2 cho php DMAC hot ng hay khng.
Bt D3 quyt nh byte cn chuyn c truyn vi 4 hay 2 chu k ng h.
Bt D4 cho php chn ch u tin c nh (knh 0 c mc u tin cao nht. Knh 3
c mc u tin thp nht) hoc ch u tin lun phin (knh 0 lc u c mc u tin cao
nht. Sau khi knh ny c chn chuyn d liu th n c nhn mc u tin thp nht.
Knh 1 li tr thnh knh c mc u tin cao nht)
Bt D5 cho php chn thi gian ghibnh thng hay ko di cho tit b ngoi vi chm.
Cc bt D6 v D7 cho php chn cc tnh tch cc ca cc xung DRQ0-DRQ4 v
DACK0- DACK4.
V.4.3.3.e Thanh ghi ch :
Dng t ch lm vic cho cc knh ca DMAC. Mi knh ca DMAC c mt
thanh ghi ch ring. Dng thc ca thanh ghi ch c biu din nh sau:
Chng V. Tng quan v cc phng php vo ra d liu

-116-


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.
V.4.3.3.f Thanh ghi yu cu:
Thanh ghi ny dng yu cu DMA c th c thit lp/ xo theo mun bng
chng trnh. iu ny rt c li khi ta mun chuyn d liu gia cc vng khc nhau ca b
nh lc ny cc knh lin quan phi c lp trnh ch chuyn c mng. Dng thc ca
thanh ghi yu cu nh sau:

V.4.3.3.g Thanh ghi mt n ring cho tng knh:
Bng thanh ghi ny ta c th lp trnh cm (cho Bt mt n tng ng = 1) thay cho
php hot ng (cho Bt mt n tng ng = 0) i vi tng knh mt.
Chng V. Tng quan v cc phng php vo ra d liu

-117-


V.4.3.3.h Thanh ghi mt n tng hp:
Vi thanh ghi ny ta c th lp trnh cm (Bt mt n tng ng = 1) thay cho php
hot ng (Bt mt n tng ng = 0) i vi tng knh ch bng mt lnh.
V.4.3.3.i Thanh ghi trng thi:
Thanh ghi ny cho php xc nh trng thi ca cc knh trong DMAC. Knh no
truyn xong (t s m TC), knh no ang c yu cu DMA trao i d liu. Khi mt
knh no t TC. Knh s t ng b cm. Cu trc thanh ghi trng thi nh sau:
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.
V.4.3.5 Lp trnh cho cc thanh ghi a ch v thanh ghi s m:
Vic lp trnh cho cc thanh ghi a ch v thanh ghi s m c thc hin ring
cho mi knh. cn phi nh trc gi tr logic ca F/L thao tc chnh xc c vi
LSB v MSB ca cc thanh ghi trn. ngoi ra cn phi cm cc yu cu DMA ca cc
knh trong khi lp trnh cho chng. C th tun theo cc bc sau y lp trnh cho
DMAC 8237A:
Chng V. Tng quan v cc phng php vo ra d liu

-118-

+ 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
Chng V. Tng quan v cc phng php vo ra d liu

-119-

MOV AX, SoByte
OUT Dem_C1, AL ; s byte cn chuyn vo b m knh 1
MOV AL, AH
OUT Dem_C1, AL
MOV AL, 088H ; Ch knh 0
OUT CheDo, AL
MOV AL, 085H ; Ch knh 1
OUT CheDo, AL
MOV AL,1 ; Chuyn mng
OUT Lenh, AL
MOV AL, 0CH ; B mt n knh 0,1
OUT MatNa, AL
MOV AL,4 ; Knh 0 yu cu DMA
OUT YeuCau, AL
LAP: IN AL,TThai
TEST AL,2 ; Kim tra b m knh 1 xong?
JZ LAP
Chng V. Tng quan v cc phng php vo ra d liu

-120-



Hnh V-18. Ghp ni 8237A vi 8088 ch MIN

Chng VI. Cc b vi iu khin
VI.1 Gii thiu v vi iu khin v cc h nhng
VI.1.1 Gii thiu
H vi iu khin l mt my tnh trong cc vi mch cn thit c b tr trn mt vi
mch duy nht. Tt c cc my tnh iu c mt s im chung nh sau:
n v x l trung tm (CPU) thc hin cc chng trnh
B nh truy nhp ngu nhin RAM cha d liu thay i
B nh ch c ROM chc cc chng trnh
Cc thit b vo/ra lin lc vi th gii bn ngoi nh bn phm, mn hnh
H vi iu khin c th c m t bng cc c trng khc. Nu mt my tnh c cc
c im chung nh th th chng c th coi nh l h vi iu khin. H vi iu khin c th:
c nhng bn trong cc thit b khc (thng l cc sn phm tiu dng) kim
sot cc chc nng hay hot ng ca sn phm. H vi iu khin cng c coi
nh b iu khin nhng;
ch dng cho mt nhim v v chy mt chng trnh xc nh. Chng trnh ny
thng c lu trong ROM v khng thay i;
l thit b tiu th in thp. B vi iu khin s dng pin c th tiu th ch 50
mA.
B vi iu khin c th nhn u vo t thit b v iu khin thit b ny bng cch gi
cc tn hiu ti cc b phn khc nhau trong thit b c iu khin. B vi iu khin
thng nh v chi ph thp. B x l c dng trong mt b vi iu khin c th thay i
rt nhiu. Trong nhiu sn phm nh l vi sng, yu cu v CPU kh thp v sc p v gi
thnh li ln nn cc nh sn xut la chn cc vi mch vi iu khin chuyn dng. l cc
thit b CPU nhng, gi r, tiu th in thp. Cc vi mch Motorola 6811 v Intel 8051 l
cc v d tiu biu. Cc vi mch vi iu khin cp thp thng c sn 1KB ROM v 20 B
RAM trn vi mch cng vi 8 tn hiu vo/ra.
VI.1.2 Cc kiu vi iu khin
H vi iu khin ch yu l 8 bt do kch c t ny rt ph bin vi phn ln cc cng
vic m cc thit b ny cn phi thc hin. di t 8 bt c coi l cho hu ht cc ng
dng v c li th giao tip vi cc vi mch nh cng nh l-gc hin c. Cu trc d liu
ASCII ni tip cng c b tr theo byte nn vic truyn thng vi cc thit b vi iu khin
d dng tng thch v thun tin. Do cc dng ng dng vi vi iu khin c th thay i rt
ln, hu ht cc nh sn xut cung cp h cc thit b vi iu khin m kh nng mi thnh
Chng VI Cc b vi iu khin
-122-

vin ph hp vi yu cu ch to. iu ny trnh tnh trng thit b vi iu khin qu phc
tp v tn km p ng tt c cc dng ng dng, ng thi, hn ch vic mt s phn ca
vi iu khin hon ton khng c s dng khi chy ng dng. H vi iu khin s c tp
lnh con chung, tuy nhin cc thnh vin trong h c th khc nhau v s lng, kiu, b
nh, cc cng v. v. Nh vy nh sn xut c th ch to cc thit b vi chi ph hiu qu ph
hp vi cc yu cu sn xut c th.
Vic m rng b nh c th s dng cc vi mch ROM/RAM bn ngoi vi iu khin.
M s vi iu khin khng tch hp sn ROM cng nh EPROM hay EEROM. Mt s chc
nng b sung khc c th c tch hp vo vi mch ca b vi iu khin nh chuyn i
tng t s (Analogue-to-Digital Converter ADC). Mt s vi iu khin khc c s lng tn
hiu t hn gim thiu chi ph. Bng di y lit k c tnh ca mt s vi iu khin.
Bng VI-1. c tnh mt s vi iu khin
M-en Tn hiu:
Vo/ra
RAM
(byte)
ROM
(Byte)

rng t
(bt)
Tnh nng khc
Intel 8051 40:32 64 1K 8 B nh m rng 8K
Motorola
68HC11
52:40 256 8K 8 Cng ni tip ; chuyn i tng t s
Zilog Z8820 44:40 272 8K 8 B nh m rng 128K ; cng ni tip
Intel 8096 68:40 232 8K 16 B nh m rng 64K ; chuyn i tng
t s ;cng ni tip; iu bin xung
VI.2 H vi iu khin Intel 8051
Vi iu khin 8051 ln u tin c Intel gii thiu vo nm 1981. y l b vi iu
khin 8 bt vi 128 byte RAM v 4KB ROM, mt cng ni tip v 4 cng 8 bt trn mt vi
mch n l. Dng vi iu khin ny tr nn ph bin sau khi Intel cho php cc nh sn xut
khc c ch to vi iu khin tng thch vi 8051. n nay vi iu khin 8051 thc ra
bao gm h vi iu khin k hiu t 8031 ti 8751 c sn xut bng cng ngh NMOS v
CMOS vi nhiu kiu ng gi khc nhau. Phin bn nng cao ca 8051 l 8052 cng c cc
bin th khc nhau. Cc bin th ny nhm p ng cc yu cu ng dng khc nhau ca cc
nh pht trin.
Bng VI-2. Thng s ca mt s vi iu khin h 8051
Tnh nng 8051 8052 8031
ROM 4K 8K -
RAM (Byte) 128 256 128
B nh thi 2 3 2
Tn hiu vo/ra 32 32 32
Cng ni tip 1 1 1
Ngun ngt 6 8 6
Chng VI Cc b vi iu khin
-123-

VI.2.1 S khi

Hnh VI-1. S khi 8051
Hnh VI-1 cho thy khi chc nng c trng cho vi iu khin l: ROM v RAM,
cc cng vo/ra, b nh thi v knh thng tin ni tip. Hnh VI-2 cho bit s tn hiu ca
8051, ngha cc tn hiu c gii thch trong Bng VI-3.

Hnh VI-2. S chn tn hiu 8051
8051 h tr 4 cng vo/ra trong mt s bin th cc cng ny u c th hot ng
c hai ch vo v ra. Cng truyn thng ni tip thng x l d liu 8 bt cho php gi v
nhn song song. Cng ni tip c 4 ch hot ng. Ch 0, chn TxD s dng nh tn
hiu xung nhp c nh mc 1/12 xung nhp ca vi iu khin cn chn RxD dng thu v
pht. Ch 1 l ch giao tip UART vi 1 bt stop. Ch 2 ging ch 1 nhng thm
bt chn l. Ch 3 ging ch 2 nhng cho php lp trnh tc tn hiu.
B nh ROM trong vi mch c th l loi EPROM lp trnh bng in. B nh ngoi c
th truy nhp thng qua tn hiu truy nhp EA=0. Vic truy nhp ROM ngoi c thc hin
thng qua tn hiu PSEN mc thp kch hot vi mch nh ROM.
Chng VI Cc b vi iu khin
-124-

Bng VI-3. ngha tn hiu 8051
Tn hiu ngha
P0. 0-P0. 7 Tn hiu d liu cng P0
P1. 0-P1. 7 Tn hiu d liu cng P1
P2. 0-P2. 7 Tn hiu d liu cng P2
P3. 0-P3. 7 Tn hiu d liu cng P3
A8-A15 Tn hiu a ch
Xtal1-2 Tn hiu xung nhp
RxD Tn hiu thu truyn thng ni tip
TxD Tn hiu pht truyn thng ni tip
INT0-1 Tn hiu ngt 0-1 (mc thp)
RD c d liu b nh ngoi
WR Tn hiu ghi d liu b nh ngoi
EA Tn hiu truy nhp b nh chng trnh ngoi
EA=0 dng ROM ngoi
EA=1 dng ROM trong
ALE Tn hiu cht a ch trn P0
ALE=1 Trn nhm cng P0 l tn hiu a ch
ALE=0 Trn nhm cng P0 l tn hiu d liu
PSEN Tn hiu cho php lu chng trnh dng c b nh chng trnh bn ngoi
RST Khi ng li

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.
VI.2.2 Cc thanh ghi
Thanh ghi m chng trnh (PC) v con tr d liu (DPTR) l cc thanh ghi 16 bt cho
php xc nh v tr 1 nh. B nh chng trnh nm trong di 0000-FFFFh trong 0000-
0FFFh l khng gian nh chng trnh bn trong vi iu khin. Con tr d liu chia thnh hai
phn thp (8 bt) v cao (8 bt)
Thanh ghi A v B l cc thanh ghi dng chung dng cho cc thao tc tnh ton ca n
v x l ca 8051. Thanh ghi A l thanh ghi gp (accumulator) dng trong cc thao tc s hc
v l-gc. Thanh ghi ny cng dng trao i d liu vi b nh ngoi. Thanh ghi B thng
Chng VI Cc b vi iu khin
-125-

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
VI.3 Gii thiu mt s ng dng tiu biu ca vi iu khin
Vic chuyn i tn hiu tng t sang s v ngc li thng gp khi ta mun kt ni
my tnh vi th gii tng t. Trong phn ny gii thiu s dng b vi iu khin kt ni
vi b chuyn i tng t s (A/D) v ngc li (D/A). Thng thng cc b chuyn i
cho php kt ni thng qua knh d liu 8 bt, ba trng thi v cho php iu khin thngqua
cc tn hiu c/ghi, chn chp.
Chng VI Cc b vi iu khin
-126-

VI.3.1 Chuyn i s tng t (D/A)
Hnh VI-3 gii thiu kt ni gia vi iu khin 8051 v b chuyn i D/A khi qut.
B chuyn i D/A c c im sau:
V
out
= -V
ref
(byte u vo/100H) v V
ref
= 10V
Thi gian chuyn i 5s
Trnh t iu khin ~CS ri ~WR.
Cng 1 c ni vi cc tn hiu d liu ca b chuyn i cn cng 3 dng iu
khin. Trong v d ny, thit b to ra sng hnh sin vi chu k 1000Hz v c th thay i
theo chng trnh. V
ref
t bng -10V dng tn hiu u ra thay i t 0V ti +9, 96V.
Chng trnh dng bng tra cu sinh ra bin sng sin. Chu k c thit lp cn c vo
khong thi gian truyn d liu cho b chuyn i. Vi S im ly mu, chu k ngt nht
T
min
= 5S s tn s ti a f
max
= 200. 000/S.

Vi sng c tn s 1000Hz, cn s lng mu l 200. Tuy nhin thc t chy chng
trnh cho thy thi gian to ra mt mu cn 6s v thi gian chuyn sang mu k tip
mt hn 2s. Nh vy thc t ch cho php s lng mu l 166.
V d VI-2. Chng trnh chuyn i D/A
. org 0000h
daconv: clr p3, 2 ; Chn chp
mov dptr, #bang : ly a ch c s bng
repeat: mov r1, #0A6h ; Khi to R1 = 166
next: mov a, r1 ; Ly a ch offset ca bng
movc a, @a+dptr ;Ly gi tr mu
mov p1, a ; Gi mu ra cng 1
clr p3, 3
setb p3, 3
djnz r1, next
sjmp repeat
; Bng chuyn i s dng hm cosin tnh gi tr bin b ca tn hiu ti u ra. 83
gi
Hnh VI-3. Ghp ni b chuyn i D/A vi 8051
Chng VI Cc b vi iu khin
-127-

;tr u th hin bin t cc i ti nh hn 0, 83 gi tr cn li t 0 ti cc i. Vi
83
; mu cho na chu k gi tr gc ca hm cosin thay i 2, 17 cho cc mu k tip.
bang: . db 00h ;
. db ffh ; s1:FFcos(0)
. db feh ; s2:7FH+FFcos(2, 17)
. db feh ; s3:7FH+FFcos(2, 172)
. db 81h ; s42:7FH+FFcos(88, 9)
. . . . . . .
. db 00h ; s84:7FH+FFcos(180)
. . . . . .
. db feh ; s166:7FH+FFcos(2, 17)
VI.3.2 Chuyn i tng t s (A/D)
Hnh VI-4 s dng b chuyn i tng t s 8 bt c cc c tnh sau:
Tn hiu ly mu: Vin = Vref-, d liu =00h ; Vin=Vref+, d liu = FFh
Thi gian ly mu: 1 s
Trnh t iu khin: CS, WR ri RD ( mc tch cc thp). Trong hnh v, cng 1 ca
8051 ni vi knh d liu ca b chuyn i cn cng 3 ni vi cc tn hiu iu khin.

V d VI-3. Chng trnh chuyn i A/D
on chng trnh sau s ha cc tn hin Vref vi chu k 100s v lu kt qu vo
trong b nh RAM 4000h:43E7h.
. equ begin, 4000h ;a ch bt u
. equ delay, 74h ;tr 87s
. equ end1, 43h ;a ch kt thc byte cao
. equ end2, e8h ;a ch kt thc byte thp
adconv: mov dptr, #begin
clr p3, 2 ; Gi ~CS ti b A/D
next: clr p3, 3 ; To xung ~WR ti b A/D
setb p3, 3 ;
clr p3, 4 ;To xung ~RD
Hnh VI-4. Ghp ni 8051 v chuyn i A/D
Chng VI Cc b vi iu khin
-128-

mov a, p1 ;c d liu t A/D
setb p3, 4 ;Kt thc c
mov @dptr, a ;Lu vo RAM
inc dptr ;Tng con tr RAM ln 1
mov a, dph ;Kim tra kt thc
cjne a, #end1, wait
mov a, dpl
cjne a, #end2, wait
sjmp done ; Kt thc khi ti v tr cui cng
wait: mov r1, #delay ;Tr 87s
here: djnz r1, here
sjmp next
done: sjmp done
. end




Chng VII. Gii thiu mt s vi x l tin tin
VII.1 Cc vi x l tin tin da trn kin trc Intel IA-32
VII.1.1 Gii thiu IA-32
IA-32 l kin trc 32 bt do hng sn xut Intel pht trin ln u tin c gii thiu
trn b vi x l Intel386. Kin trc IA-32 h tr ba ch hot ng: ch bo v
(protected mode), ch thc (real mode) v ch qun l h thng SMM (System
Management Mode). Cc ch hot ng quyt nh cc lnh v cc chc nng m chng
trnh c th truy nhp:
Ch bo v: l ch cn bn ca b x l. Ch ny cho php chy cc phn
mm 8086 trong mi trng a nhim v bo v. Ch ny cn c gi l ch
8086 o.
Ch a ch thc: Ch ny cung cp mi trng lp trnh 8086 vi mt s tnh
nng m rng nh chuyn sang ch bo v. b x l hot ng ch ny
thng thng phi khi ng li b x l.
Ch qun l h thng - SMM: Ch ny cung cp cho h iu hnh cc c ch
trong sut phc v nhim v c th nh qun l nng lng hay bo mt h thng.
Ch ny c kch hot thng qua tn hiu SMM hoc tn hiu ny nhn c t
b iu khin ngt tin tin.
Trong ch ny b x l chuyn qua li cc khng gian a ch ring bit trong
khi lu li ng cnh cn bn ca cc chng trnh ang chy. Cc on m SMM
c th c thc hin hon ton trong sut. Ngay khi quay tr li t ch SMM,
b x l c khi phc li trng thi ging nh trc khi ngt SMM xy ra.
Bt k chng trnh chy trn b x l IA-32 c cung cp cc ti nguyn thc
hin lnh, lu on m, d liu v cc thng tin trng thi. Cc ti nguyn ny to lp nn
mi trng thc thi cho chng trnhh:
Khng gian a ch: bt c chng trnh no u c th nh a ch khng gian nh
tuyn tnh ti 2
32
byte hay 4GB v khng gian a ch vt l c th ln ti 2
36
khi s
dng cch nh a ch m rng.
Cc thanh ghi thc thi cn bn: bao gm 8 thanh ghi dng chung, su thanh ghi
on, thanh ghi c v con tr lnh EIP.
Cc thanh ghi u phy ng x87FPU: bao gm 8 thanh ghi d liu, thanh ghi iu
khin, thanh ghi trng thi, thanh ghi lnh, thanh ghi con tr ton hng, th v m
lnh. Cc thanh ghi ny cho php thc hin cc php ton vi chnh xc kp m
rng hay vi s nguyn 8 byte.
Chng VII. Gii thiu mt s vi x l tin tin
-130-

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.

Kin trc IA-32 cung cp cc chc nng h tr h iu hnh hay cc phn mm h
thng. Vi cc thao tc vo/ra ch bo v, cc thao tc ny b hn ch thng qua:
C c quyn IOPL (I/O privilege level) v trng thi ca quyn vo/ra trong
phn on trng thi chng trnh TSS (Task state segment)
C ch bo v on v trang b nh.
Hnh VII-1. Vi kin trc Netburst
Chng VII. Gii thiu mt s vi x l tin tin
-131-

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
Vi x l
Nm sn
xut
Tn s
(MHz)
S thanh ghi
But d
liu m
rng
B nh
ti a
B m
80386DX 1985 20 32GP 32 4GB
Intel 486DX 1989 25
32GP
80 FPU
32 4GB 8KB L1
Pentium 1993 60
32GP
80 FPU
64 4GB 16KB L1
Pentium Pro 1995 200
32GP
80 FPU
64 64GB
16KB L1
256-512KB
L2
Pentium II 1997 266
32GP
80 FPU
64 MMX
64 64GB
32KB L1
256-512KB
L2
Pentium III 1999 500
32GP
80 FPU
64 MMX
128 XMM
64 64GB
32KB L1
512KB L2




Chng VII. Gii thiu mt s vi x l tin tin
-132-


Bng VII-2. Vi x l IA-32 th h sau
Vi x l
Nm sn
xut
Vi kin
trc
Tn s
(GHz)
S thanh
ghi
Bng
thng
but h
thng
B nh
ti a
B m
Pentium 4 2000 Netburst 1, 5
32 GP
80 FPU
64 MMX
128 XMM
3, 2GB/s 64GB
8KB L1
256KB L2
Pentium 4 2002
Netburst,
Siu phn
lung
3, 06
32 GP
80 FPU
64 MMX
128 XMM
4, 2GB/s 64GB
8KB L1
256KB L2
Pentium
M
2003 Pentium M 1, 6
32 GP
80 FPU
64 MMX
128 XMM
3, 2GB/s 64GB
64KB L1
1MB L2
Pentium 4
Extreme
2005
Netburst,
Siu phn
lung
3, 73
32 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
16KB L1
2MB L2
Core Duo 2006
Pentium M,
Li kp
2, 16
32 GP
80 FPU
64 MMX
128 XMM
5, 3 GB/s 4GB
64KB L1
2MB L2
Atom
Z5xx
2008
Atom, o
ha
1, 86
32 GP
80 FPU
64 MMX
128 XMM
4, 2GB/s 4GB
56KB L1
512KB L2
VII.2 Cc vi x l tin tin da trn kin trc Intel IA-64
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
Chng VII. Gii thiu mt s vi x l tin tin
-133-

REX. iu ny gip cho cc cu lnh c c th chuyn sang ch 64 bt thanh ghi v
a ch.
Bng VII-3. Vi x l h tr IA-64
Vi x l
Nm
sn
xut
Vi kin trc
Tn s
(GHz)
S thanh
ghi
Bng
thng
but h
thng
B nh
ti a
B m
Xeon 2004
Netburst, Siu phn
lung, IA-64
3, 6
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
1MB L2
Xeon 2005
Netburst, Siu phn
lung, IA-64
3, 03
32, 64 GP
80 FPU
64 MMX
128 XMM
5, 3GB/s 1024GB
16KB L1
1MB L2
8MB L3
Pentium 4
Extreme
2005
Netburst, Siu phn
lung, IA-64
3, 73
32 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
16KB L1
2MB L2
Dual-Core
Xeon
2005
Netburst, Siu phn
lung, a nhn, IA-64
3
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
2MB L2 (Tng
4MB)
Pentium 4
672
2005
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
3, 8
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
2MB L2
Core 2
Extreme
X6800
2006
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
2, 93
32, 64 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
64KB L1
4MB L2
Xeon
7140
2006
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
3, 40
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 64GB
64KB L1
1MB L2 (tng
2MB)
16MB L3
Xeon
5472
2007
Netburst, Siu phn
lung, IA-64, o ha, a
nhn (4 nhn)
3, 00
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 256GB
64KB L1
6MB L2 (Tng
12MB)
Atom 2008
Atom, IA-64, o ha, a
nhn (4 nhn)
1, 60
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 64GB
56KB L1
512KB L2 (Tng
1MB)
Core i7 2008
Netburst, Siu phn
lung, IA-64, o ha, a
nhn (4 nhn)
3, 20
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4 GT/s 64GB
64KB L1
256KB L2
8MB L3
Chng VII. Gii thiu mt s vi x l tin tin
-134-

VII.3 Cc vi x l tin tin ca Sun Microsystems
Sun Microsystems h tr thit k b x l c th m rng SPARC (Scalable Processor
Architecture). Kin trc ny chu nh hng ca my tnh Berkeley RISC I. Tp lnh v t
chc cc thanh ghi ca b x l SPARC rt ging vi Berkeley RISC. SPARC cho php trin
khai t cc ng dng nhng cho ti cc my ch rt ln, tt c u dng chung mt tp lnh
cn bn. Hin nay, b x l SPARC thng c s dng rng ri trong mi trng my
ch, trm ;m vic s dng h iu hnh SUN, Unix v Linux.
B x l SPARC thng c ti 128 thanh ghi dng chung. Ti bt c thi im no,
phn mm c th s dng tc th 32 thanh ghi bao gm 8 thanh ghi ton cc, 24 thanh ghi
ngn xp. Cc thanh ghi ngn xp c th to thnh ca s thanh ghi (register window) ti a
32 ca s cho php ti u cc thao tc gi hm v tr v. Mi ca s c 8 thanh ghi cc b v
dng chung 8 thanh ghi vi ca s k. Cc thanh ghi chia s c dng truyn cc tham s
v gi tr tr v cho cc hm cn thanh ghi cc b dng lu cc gi tr cc b gia cc li
gi hm.
Hu ht cc lnh x l ca SPARC ch s dng cc ton hng thanh ghi. Cc lnh np
v lu chuyn dng trao i d liu gia cc thanh ghi v b nh. Ngoi ch d a ch
thanh ghi, SPARC ch s dng ch a ch dch chuyn. Trong ch ny, a ch hiu
dng ca ton hng c dch chuyn 1 on tng ng vi gi tr ca thanh ghi. thc
hin cu lnh np hoc ghi, qu trnh thc hin lnh s cn thm 1 giai on tnh a ch
nh.
Vi x l h tr SPARC 32 bt phin bn 8 cho php s dng 16 thanh ghi du phy
ng vi chnh xc kp, hoc 32 thanh ghi vi chnh xc n. Cc cp chn-l ca cc
thanh ghi chnh xc kp c th kt hp vi nhau nng chnh xc ln gp i mc 4.
SPARC 64 bt phin bn 9, xut hin vo nm 1993, c thm 16 thanh ghi chnh xc kp
nhng cc thanh ghi mi ny khng tch thnh cc thanh ghi c chnh xc n c.
Bng di y lit k mt s tnh nng ca cc vi x l s dng SPARC.

Chng VII. Gii thiu mt s vi x l tin tin
-135-

Bng VII-4. Tnh nng mt s vi x l SPARC
Tn Tn s MHz
Nm
sn
xut
S
lung x
S nhn
S chn
tn hiu
m d
liu L1
(k)
m
lnh L1
(k)
m L2
(k)
UltraSPARC IIs (Blackbird) 250400 1997 11 521 16 16
1024 or
4096
UltraSPARC IIs (Sapphire-
Black)
360480 1999 11 521 16 16
1024
8192
UltraSPARC IIi (Sabre) 270360 1997 11 587 16 16
256
2048
UltraSPARC IIi (Sapphire-Red) 333480 1998 11 587 16 16 2048
UltraSPARC IIe (Hummingbird) 400500 1999 11 370 16 16 256
UltraSPARC IIi (IIe+)
(Phantom)
550650 2000 11 370 16 16 512
UltraSPARC III (Cheetah) 600 2001 11 1368 64 32 8192
UltraSPARC III Cu (Cheetah+) 10021200 2001 11 1368 64 32 8192
UltraSPARC IIIi (Jalapeo) 10641593 2003 11 959 64 32 1024
UltraSPARC IV (Jaguar) 10501350 2004 12 1368 64 32 16384
UltraSPARC IV+ (Panther) 15002100 2005 12 1368 64 64 2048
UltraSPARC T1 (Niagara) 10001400 2005 48 1933 8 16 3072
UltraSPARC T2 (Niagara 2) 10001600 2007 88 1831 8 16 4096
UltraSPARC T2 Plus (Victoria
Falls)
12001600 2008 88 1831 8 16 4096

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,
2
nd
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.

You might also like