You are on page 1of 136

HC VIN CNG NGH BU CHNH VIN THNG

*****

PHM HONG DUY

BI GING

K THUT VI X L

H NI 06-2010

-1-
Li ni u
Cc b vi x l ng vai tr quan trng trong cc h thng s v chng c s dng
trong rt nhiu ng dng nh cc h thng iu khin, h thng thng tin lin lc. Ti liu
ny gii thiu cc khi nim cn bn ca h vi x l v tp trung trnh by vi x l Intel 8086
v ghp ni tiu biu to nn h vi x l 8086, tin than ca cc h vi x l x86 sau ny.
Cc kin thc thu nhn c t vic xy dng h vi x l 8086 cng s rt b ch cho vic
pht trin cc h vi x l phc tp hn cng nh cc h thng nhng.
Cu trc ca ti liu nh sau.

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

-2-
Chng 6 trnh by s b cc khi nim v cc h vi iu khin (hay h vi x l trn
mt vi mch). Chng ny cn cung cp cc thng tin cn bn v h vi iu khin Intel 8051
v mt s ng dng.

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

-3-
Mc lc
Chng I. Tng quan v vi x l v h vi x l ................................................................. 6
I.1 Gii thiu v vi x l ................................................................................................................. 6
I.2 H vi x l ................................................................................................................................. 7
I.3 Cc c im cu trc ca vi x l ............................................................................................ 9
I.3.1 Cu trc cn bn ................................................................................................................... 9
I.3.2 Kin trc RISC v CISC ...................................................................................................... 11
I.3.3 Cc c im ....................................................................................................................... 12
I.4 Lch s pht trin v phn loi cc b vi x l ........................................................................ 12
I.4.1 Giai on 1971-1973 .......................................................................................................... 12
I.4.2 Giai on 1974-1977 .......................................................................................................... 13
I.4.3 Giai on 1978-1982 .......................................................................................................... 13
I.4.4 Giai on 1983-1999 .......................................................................................................... 13
I.4.5 Giai on 2000-2006 .......................................................................................................... 14
I.4.6 Giai on 2007-nay............................................................................................................. 15

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

-4-
IV.1.5 Biu thi gian ca cc lnh ghi/c ............................................................................... 70
IV.2 Phi ghp vi x l vi b nh .................................................................................................. 72
IV.2.1 Gii thiu b nh ................................................................................................................ 72
IV.2.2 Gii m a ch cho b nh ................................................................................................. 74
IV.3 Phi ghp vi x l vi thit b vo ra ....................................................................................... 79
IV.3.1 Gii thiu v thit b vo/ra................................................................................................. 79
IV.3.2 Gii m a ch thit b vo ra ............................................................................................ 80
IV.4 Gii thiu mt s vi mch h tr vo ra................................................................................... 82
IV.4.1 Ghp ni song song dng 8255A ......................................................................................... 83
IV.4.2 Truyn thng ni tip dng 8251 ........................................................................................ 87

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

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

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.

But d liu
But iu
khin

B x l trung B nh
tm Phi ghp vo/ra Thit b vo
(ROM-RAM)
(I/O)
(CPU)

Thit b ra
Thanh ghi trong Thanh ghi ngoi Thanh ghi ngoi

But a ch

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)

-7-
Chng I .Tng quan v vi x l v h vi x l

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 2N = 65536 =64 kil nhkhc nhau (1K=
210 =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

-8-
Chng I .Tng quan v vi x l v h vi x l

l s phi hp hot ng ca cc thanh ghi trong v ngoi ni trn thc hin s bin i
d liu hoc s trao i d liu theo cc yu cu nh trc.

I.3 Cc c im cu trc ca vi x l

I.3.1 Cu trc cn bn
Nh trnh by trong phn trn, vi x l chnh l n v x l trung tm CPU ca my
vi tnh. Nh vy sc mnh x l ca my vi tnh c quyt nh bi nng lc ca vi x l.
Trn nguyn tc, vi x l c th c chia thnh cc n v chc nng chnh nh trong Hnh
I-2.

Cc thanh ghi
n v s hc v
l-gc ALU Thanh ghi lnh
But d liu Thanh ghi a ch
Thanh ghi tm

n v iu khin
CU

Hnh I-2. S khi chc nng vi x l

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.

-9-
Chng I .Tng quan v vi x l v h vi x l

ii. B m chng trnh: cha a ch ca lnh hay m thc thi (op-code). Thng
thng, thanh ghi ny cha a ch ca cu lnh k. Thanh ghi ny c c im sau:
1. Khi khi ng li, a ch ca lnh u tin c thc hin c np vo
thanh ghi ny.
2. thc hin lnh, vi x l np ni dung ca b m chng trnh vo but
a ch v c nh a ch . Gi tr ca b m chng trnh t ng
tng theo b l-gc trong ca vi x l. Nh vy, vi x l thc hin cc lnh
tun t tr phi chng trnh c cc lnh lm thay i trt t tnh ton.
3. Kch c ca b m chng trnh ph thuc vo kch c ca but a ch.
4. Nhiu lnh lm thay i ni dung ca thanh ghi ny so vi trnh t thng
thng. Khi , gi tr ca thanh ghi c xc nh thng qua a ch ch nh
trong cc lnh ny.
iii. Thanh ghi a ch b nh: cha a ch ca d liu. Vi x l s dng cc a ch ny
nh l cc con tr trc tip ti b nh. Gi tr ca cc a ch ny chnh l d liu
ang c trao i v x l.
iv. Thanh ghi dng chung: cn c gi l thanh ghi gp (accumulator). Thanh ghi ny
thng l cc thanh ghi 8 bt dng th lu hu ht cc kt qu tnh ton ca n v x
l s hc v l-gc ALU. Thanh ghi ny cn dng trao i d liu vi cc thit b
vo/ra.

I.3.1.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

-10-
Chng I .Tng quan v vi x l v h vi x l

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

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 fclk = 0, 1- 0, 8 MHz.

-12-
Chng I .Tng quan v vi x l v h vi x l

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 fclk = 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 fclk =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

-13-
Chng I .Tng quan v vi x l v h vi x l

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

-14-
Chng I .Tng quan v vi x l v h vi x l

l ring bit trn cng mt vi mch. Ngay sau , AMD cng a ra vi x l a nhn ca
mnh Athlon2. Thc t cho thy thit k ca AMD mang li hiu nng tt hn so vi Intel.

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

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

Hnh II-1. S khi 8086

Trong s khi, vi x l 8086 c hai khi chnh BIU v EU. V chi tit, vi x l ny
bao gm cc n v iu khin, s hc v l-gc, hng i lnh v tp cc thanh ghi. Chi tit
cc khi v n v chc nng ny c trnh by trong phn sau.
Chng II. B vi x l Intel 8086

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.

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

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.

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

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.

Hnh II-2. Thanh ghi c

U khng s dng.
C hoc CF (Carry Flag): c nh. CF = 1 khi c nh hoc mun t bt c ngha ln
nht MSB (Most Significant Bit).
P hoc PF (Parity Flag): c parity. PF phn nh tnh chn l ca tng s bt 1 c
trong kt qu. C PF =1 khi tng s bt 1 trong kt qu l chn (even parity).
A hoc AF (Auxiliary Carry Flag): c nh ph rt c ngha khi ta lm vic vi
cc s BCD (Binary Coded Decimal). AF = 1 khi c nh hoc mun t mt s
BCD thp (4 bt thp) sang mt s BCD cao (4 bt cao).
Z hoc ZF (Zero Flag): c rng. ZF =1 khi kt qu = 0.
S hoc SF (sign flag): c du. SF = 1 khi kt qu m.
O hoc OF (Overflow Flag): c trn. OF = 1 khi kt qu l mt s b 2 vt qua
ngoi gii hn biu din dnh cho n.
Trn y l 6 bt c trng thi phn nh cc trng thi khc nhau ca kt sau mt thao
tc no , trong 5 bt c u thuc byte thp ca thanh c l cc c ging nh ca b vi
x l 8 bt 8085 ca Intel. Chng c lp hoc xo tu theo cc iu kin c th sau cc
thao tc ca ALU. Ngoi ra, b vi x l 8086/8088 cn c cc c iu khin sau y (cc c
ny c lp hoc xo bng cc lnh ring):
T hoc TF (Trap Flag): c by. TF = 1 th CPU lm vic ch chy tng lnh
(ch ny dng khi cn tm li trong mt chng trnh).
I hoc IF (Interrupt Enable Flag): c cho php ngt. IF = 1 th CPU cho php cc
yu cu ngt (che c) c tc ng.
D hoc DF (Direction Flag): c hng. DF = 1 khi CPU lm vic vi chui k t
theo th t t phi sang tri (v vy D chnh l c li)

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

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 220 = 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

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

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

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

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 (2n) 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:

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

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

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

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

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

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

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

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

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:

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

Nu ta mun thay i, khng ly ton hng trong on d liu DS, m li ly ton hng
trong on d liu ph ES a vo AL, th ta phi vit li lnh trn thnh
MOV AL, ES:[BX]
Trong ta dng ES: loi b thanh ghi on ngm nh DS v ch r thanh ghi
on mi dng trong lnh ny by gi l ES.

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
Di chuyn byte hay word gia thanh ghi v
MOV
nh
c, ghi mt byte hay word gia cng v
IN, OUT
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)]

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

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.

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

+ 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

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

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: AL Gc,
s b nhn phi l s 8 bt t trong AL.
sau khi nhn: AX tch,
Nu Gc l s 16 bt: AX Gc,
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.

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

M t: ch Gc.
Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau.
Nhng phi cha d liu c cng di v khng c php ng thi l 2 nh.
Lnh ny ch to cc c, khng lu kt qu so snh, sau khi so snh cc ton hng
khng b thay i. Lnh ny thng c dng to c cho cc lnh nhy c iu kin
(nhy theo c).
Cc c chnh theo quan h ch v gc khi so snh 2 s khng du:
CF ZF
ch = Gc 0 1
ch > Gc 0 1
ch > Gc 1 0
Cp nht: AF, CF, OF, PF, SF, ZP.

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.

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

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

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

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

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

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

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

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

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.

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

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

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

mt a ch nht nh trong b nh. nh ngha cc kiu d liu khc nhau ta thng dng
cc lnh gi sau:
DB (define byte) : nh ngha bin kiu byte
DW (define word) : nh ngha bin kiu t
DD (define double word) : nh ngha bin kiu t kp
a) Bin byte
Bin kiu byte s chim 1 byte trong b nh. Hng dn chng trnh dch nh
ngha bin kiu byte c dng tng qut nh sau:
Tn DB gi_ tr_khi_u
V d:
B1 DB 4
V d trn nh ngha bin byte c tn l B1 v dnh 1 byte trong b nh cho n
cha gi tr khi u bng 4.
Nu trong lnh trn ta dng du? thay vo v tr ca s 4 th bin B1 s c dnh ch
trong b nh nhng khng c gn gi tr khi u. C th dng lnh gi:
B2 DB ?
ch nh ngha 1 bin byte c tn l B2 v dnh cho n mt byte trong b nh.
Mt trng hp c bit ca bin byte l bin k t. Ta c th c nh ngha bin k
t nh sau:
C1 DB ' $'
C2 DB 34
b) Bin t
Bin t cng c nh ngha theo cch ging nh bin byte. Hng dn chng
trnh dch nh ngha bin t c dng nh sau:
Tn DB gi_ tr_khi_u
V d:
W1 DW 40
V d trn nh ngha bin t c tn l W1 v dnh 2 byte trong b nh cho n
cha gi tr khi u bng 40.
Chng ta cng c th s dng du? ch nh ngha v dnh 2 byte trong b nh cho
bin t W2 m khng gn gi tr u cho n bng dng lnh sau:
W2 DW ?
c) Bin mng
Bin mng l bin hnh thnh t mt dy lin tip cc phn t cng loi byte hoc t,
khi nh ngha bin mng ta gn tn cho mt dy lin tip cc byte hay t trong b nh cng
vi cc gi tr ban u tng ng.

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

V d:
M1 DB 4, 5, 6, 7, 8, 9
V d trn nh ngha bin mng c tn l M1 gm 6 byte v dnh ch cho n trong
b nh t a ch ng vi M1 cha cc gi tr khi u bng 4, 5, 6, 7, 8, 9. Phn t u
tng mng l 4 v c a ch trng vi a ch ca M1, phn t th hai l 5 v c a ch
M1+1. . .
Khi chng ta mun khi u cc phn t ca mng vi cng mt gi tr chng ta c
th dng thm ton t DUP trong lnh.
V d:
M2 DB 100 DUP (0)
M3 DB 100 DUP (?)
V d trn nh ngha mt bin mng tn l M2 gm 100 byte, dnh ch trong b nh
cho n cha 100 gi tr khi u bng 0 v bin mng khc tn l M3 gm 100byte, dnh
sn ch cho n trong b nh cha 100 gi tr nhng cha c khi u.
Ton t DUP c th lng nhau nh ngha ra 1 mng.
V d: dng lnh
M4 DB 4, 3, 2, 2 DUP(1, 2 DUP(5), 6)
S nh ngha ra mt mng M4 tng ng vi lnh sau:
M4 DB 4, 3, 2, 1, 5, 5, 6, 1, 5, 5, 6
Mt iu cn ch na l i vi cc b vi x l ca Intel, nu ta c mt t t trong
b nh th byte thp ca n s c t vo nh c a ch thp, byte cao s c t vo
nh c a ch cao. Cch lu gi s liu kiu ny cng cn c th thy cc my VAX ca
Digital hoc ca mt s hng khc v thng gi l 'quy c u b' (little endian, byte thp
c ct ti a ch thp). Cng nn ni thm y l cc b vi x l ca motorola li c
cch ct s liu theo th t ngc li hay cn c gi l 'quy c u to' (big endian byte
cao c ct ti a ch thp).
V d: Sau khi nh ngha bin t c tn l WORDA nh sau:
WORDA DW 0FFEEH
Th trong b nh thp (EEH) s c ti a ch WORDA cn byte cao (FFH) s
c ti a ch tip theo, tc l ti WORDA+1
d) Bin kiu xu k t
Bin kiu xu k t l mt trng hp c bit ca bin mng, trong cc phn t ca
mng l cc k t. Mt xu k t c th c nh ngha bng cc k t hoc bng m ASCII
ca cc k t . Cc v d sau u l cc lnh ng v u nh ngha cng mt xu k t
nhng gn n cho cc tn khc nhau:
STR1 DB 'string'
STR2 DB 73h, 74h, 72h, 69h, 6Eh, 67h

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

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

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

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
M lnh gi gn trong mt on, d liu nm trong
Small (Nh)
mt on.
Medium (Trung M lnh khng gi gn trong mt on, d liu nm
bnh) trong mt on.
M lnh khng gi gn trong mt on, d liu khng
Compact(Gn)
gi gn trong mt on.
M lnh khng gi gn trong mt on, d liu khng
Large (ln) gi gn trong mt on, khng c mng no ln hn
64KB.
M lnh khng gi gn trong mt on, d liu khng
Huge ( s) 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!$'

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

CR DB 13
LF EQU 10

III.1.2.2.c Khai bo on m
on m cha m lnh ca chng trnh. Vic khai bo on m c thc hin nh
hng dn chng trnh dch. CODE nh sau:
. CODE
Bn trong on m, cc dng lnh phi c t chc mt cch hp l, ng ng php
di dng mt chng trnh chnh (CTC) v nu cn thit th km theo cc chng trnh con
(ctc). Cc chng trnh con s c gi ra bng cc lnh CALL c mt bn trong chng
trnh chnh.
Mt th tc c nh ngha nh cc lnh gi PROC v ENDP. Lnh gi PROC bt
u mt th tc cn lnh gi ENDP c dng kt thc n. Nh vy mt chng trnh
chnh c th c nh ngha bng cc lnh gi PROC v ENDP theo mu sau:
Tn_CTC Proc
; Cc lnh ca thn chng trnh chnh
CALL Tn_ ctc; gi ctc
Tn_CTC Endp
Ging nh chng trnh chnh con cng c nh ngha di dng mt th tc nh
cc lnh gi PROC v ENDP theo mu sau:
Tn_ctc Proc
; cc lnh thn chng trnh con
RET
Tn_ctc Endp
Trong cc chng trnh ni trn, ngoi cc lnh gi c tnh nghi thc bt buc ta cn
ch n s b tr ca lnh gi (CALL) trong chng trnh chnh v lnh v (RET) trong
chng trnh con.

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

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

. Code
MAIN Proc
; Khi u cho DS
MOV AX, @Data
MOV DS, AX
; Cc lnh ca chng trnh chnh ti y
; Tr v DOS dng hm 4CH ca INT 21H
MOV AH, 4CH
INT 21 H
MAIN Endp
; cc chng trnh con (nu c) ti y
END MAIN
Trong khung chng trnh trn, ti dng cui cng ca chng trnh ta dng hng dn
chng trnh dch END v tip theo l MAIN kt thc ton b chng trnh. Ta c nhn
xt rng MAIN l tn ca chng trnh chnh nhng quan trng hn v v thc cht th n l
ni bt u cc lnh ca chng trnh trong on m.
Khi mt chng. EXE c np vo b nh. H iu hnh DOS s to ra mt mng
gm 256 byte ca ci gi l on mo u chng trnh (Program Segment Prefix - PSP)
dng cha cc thng tin lin quan n chng trnh v cc thanh ghi DS v ES. Do vy
DS v ES khng cha gi tr a ch ca cc on d liu cho chng trnh ca chng ta.
chng trnh c th chy ng ta phi c cc lnh sau khi u cho thanh ghi DS (hoc ES
nu cn):
MOV AX, @Data
MOV DS, AX
Trong @Data l tn ca on d liu. Data nh ngha bi hng dn chng trnh
dch s dch tn @Data thnh gi tr s ca on d liu. Ta phi dng thanh ghi AX lm
trung gian cho vic khi u DS nh trn l do b vi x l 8086/8088, V nhng l do k
thut, khng cho php chuyn gi tr s (ch a ch tc th) vo cc thanh ghi on.
Thanh ghi AX cng c th c thay th bng cc thanh ghi khc.
Sau y l v d ca mt chng trnh hp ng c vit dch ra chng trnh vi
ui. EXE. khi cho chy, chng trnh ny s hin ln mn hnh li cho 'Hello' nm gia hai
dng trng cch u cc dng mang du nhc ca DOS.
V d III-1. Chng trnh Hello. EXE
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, ' $ '
MSG DB ' Hello!$ '
. Code
MAIN Proc
; khi u thanh ghi DS
MOV AX, @Data

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

MOV DS, AX
; v u dng mi dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, MSG
INT 21H
; v u dng mi dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CFLF
INT 21H
; tr v DOS dng hm 9 ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN

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.

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

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

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

a ch lch

000H on u chng trnh (PSP)

0100H JMP CONTINUE IP


D liu nm ti y

CONTINUE:
(chiu tin ca m & d liu)


(chiu tin ca ngn xp)
FFFEH 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

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

; hin th li cho
MOV AH, 9
LEA DX, CRLF
INT 21H
; tr v DOS
INT 20H
MAIN Endp
END START
Trong V d III-3 ta khng cn n cc thao tc khi u cho thanh ghi DS, nh ta
phi lm trong V d III-1, v trong chng trnh. COM khng c on d liu nm ring r.

Stack

Chng Chng
trnh trnh
SS
CS
DS
100h ES 100h
PSP PSP

.COM .EXE
Hnh III-2. Mun chng trnh. COM v. EXE trong b nh.

Cui cng kt thc phn ni v cc chng trnh kiu. COM v. EXE ta a ra hnh
nh ca cc chng trnh ny khi chng c ti vo trong b nh c th tin so snh
(Hnh III-2).

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.

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

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

To ra tp vn bn ca chng trnh
*.asm

Dng MASM dch ra m my *.obj

Dng LINK ni tp. obj lithnh


*.exe

s
Dch c ra.com?


Dng EXE2BIN dch *.exe thnh
*.com

Cho chy chng trnh

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

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.

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

gii quyt cc cng vic khc nhau thng thng trong khi vit chng trnh ta ch
cn n 3 cu trc lp trnh c bn sau:
+ Cu trc tun t.
+ Cu trc la chn (IF-THEN-ELSE) v
+ Cu trc lp (WHILE. DO).
Thay i cc cu trc ny mt cht t, ta c th to thm 4 cu trc khc cng rt c tc
dng trong khi vit chng trnh:
+ cu trc chn kiu IF-THEN
+ cu trc chn kiu CASE,
+ cu trc lp kiu REPEAT-UNTIL v
+ cu trc lp kiu FOR-DO.
c im chung ca tt c cc cu trc lp trnh c bn l tnh cu trc chi c mt li
vo cu trc v mt li ra ra khi cu trc .

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.

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

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.

iu kin iu kin
S S
ai ai ng
ng
Cng vic Cng vic 1 Cng vic 1

Hnh III-6.Cu trc IF-THEN Hnh III-5 Cu trc IF-THEN-ELSE


Hnh III-6
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:

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

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

Biuthc
Gitr1 Gitr2 GitrN

Cngvic1 Cngvic2 CngvicN

Hnh III-7. Cu trc lnh 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

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

Gii
Ta c th thc hin cc cng vic trn bng mu chng trnh sau:
CMP AX, 0 ; Kim tra du ca AX.
JL AM ; AX<0.
JE KHONG ; AX =0.
JG DUONG ; AX > 0.
AM: MOV CX, -1
JMP RA
DUONG: MOV CX, 1
JMP RA
KHONG: XOR CX. CX
RA: ; li ra ca cu trc.

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.

Khi u b m

Cng vic

Gim b m i 1

sai
B m=0

ng

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

Bi tp III-5
Hin th mt dng k t '$' trn mn hnh.
Gii
Mt dng mn hnh trn my IBM PC cha c nhiu nht l 80 k t.

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

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.

iu kin Cng vic


sai
ng

Cng vic iu kin


sai
ng

Hnh III-9. Cu trc WHILE - DO v REPEAT-UNTIL

Bi tp III-6
m s k t c c t bn phm, khi gp k t CR th thi.
Gii
Ta c th thc hin cng vic trn bng mu chng trnh sau:
XOR CX, CX ; tng s k t c c lc u l 0
MOV AH, 1 ; hm c k t t bn phm.
TIEP: INT 21H ; c 1 k , Al cha m k t.
CMP AL, 13 ; c c CR?
JE RA ; ng, ra.
INC CX ; sai, thm 1 k t vo tng.
RA: ; li ra ca cu trc.

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

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

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

III.4.1 V d 1
Trong phn u ca chng trnh hp ng ta c gii thiu mt chng trnh hin li
cho bng ting Anh "Hello". By gi ta phi thm mt li cho bng ting Vit khng du
"Chao ban" nm cch li cho "Hello" trc y mt s dng nht nh no .
Gii
Ta cng vn s dng phng php c dng chng trnh mu trc y hin
th li cho 'ty', hin cc dng gin cch v hin li cho 'ta'. Trong v d ny ta cng b bt
i cc dng cch u v cui chng trnh rm r.
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
Chao tay DB 'hello!$'
ChaoTa DB 'Chao ban!$'
. Code
MAIN Proc
MOV AX, @ Data ; khi u thanh ghi DS
MOV DS, AX
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
; cch 5 dng dng hm 9 ca INT 21H
LEA DX, CELF
MOV CX, 6 ;CX cha s dng cch +1
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4 CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong chng trnh trn ta dng thanh ghi CX cha s dng phi gin cch. Vi
cch lm ny mi khi mun thay i s dng dn cch gia 2 li cho ta v li cho ty, ta
phi gn gi tr khc cho thanh ghi CX.

III.4.2 V d 2
Trn c s v d trc, ta phi vit chng trnh sao cho s dng gin cch c th thay
i c ngay trong khi chy chng trnh.
-56-
Chng III. Lp trnh hp ng vi 8086/8088

Gii
Mun c s dng cch thay i c theo mun gia 2 li cho ta v ty khi chy
chng trnh m khng phi thay gi tr mi cho thanh ghi CX ngay trong chng trnh nh
v d trc, ta cn dng thm 1 bin mi cha s dng cch v vit chng trnh sao cho
mi khi cho chy th chng trnh c thm phn i thoi ngi s dng c th thay i
gi tr ca s dng gin cch .
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
ChaoTay DB 'Hello!S'
ChaoTa DB 'Chao ban!S'
Thongbao DB 'go vao so dong cach:S'
SoCRLF DB ?
. Code
MAIN Proc
MOV AX, @Data ; khi u thanh ghi DS
MOV DS, AX
; hin thng bo dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, Thongbao
INT 21H
; c s dng cch dng hm 1 ca INT 21H
MOV AH, 1
INT 21H ; c s dng cch
AND AL, OFH ; i ra h hai
MOV SoCRLE, AL ; ct i
; cch 1 dng dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
LEA DX, CFLF

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

XOR CX, CX
MOV CL, SoCRLE ; CX cha s dng cch
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong v d trn c mt iu cn ch l khi c mt k t t bm phm (trong trng
hp c th ny th l s dng cch) ta s thu c trong thanh ghi AL m ASCII ca k t
(s) g. s dng n trong trng hp c th nh mt gi tr s v ct n ti bin
SoCRLF, ta phi bin i m ASCII ny thnh h s hai. i m ASCII ca mt s ra tr
s hoc ngc li ta cn nh rng gia gi tr s v m ASCII ca s c mt khong cch
l 30H. V d s 9 c m ASCII l 39H (c th c vit l "9"), tng t s 0 c m ASCII
l 30H (c th c vit l "0"). Nh vy vic bin i m ASCII (gi thit c sn trong
AL) ra gi tr s c th thc hin c bng mt trong cc lnh sau:
+ SUB AL, 30H
+ AND AL, 0FH
Tng t nh vy, vic bin i ngc li t s h hai (thng gi thit c sn trong
thanh ghi DL) ra m ASCII ( a ra hin ln mn hnh) c th lm c bng mt trong
cc lnh sau:
+ ADD DL, 30H
+ OR DL, 30H

III.4.3 V d 3
c t bn phm mt s h hai (di nht l 16 bt), kt qu c c ti thanh ghi
BX. Sau hin ni dung thanh ghi BX ra mn hnh.
Gii
Cng vic ca bi ny thc cht gm hai phn, mt phn u ta phi c c s h hai
v ct n ti BX, trong phn tip theo ta phi a c ni dung ca thanh ghi BX ra mn
hnh.
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
-58-
Chng III. Lp trnh hp ng vi 8086/8088

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

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

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

END MAIN

III.4.5 V d 5
C mt chui k t thng trong b nh. Hy to ra mt chui k t ch hoa t chui
trn ri ct chui trong b nh.
Gii:
V d ny v v d trc khi khc nhau cht t trong vic x l cc k t ca chui, v
vy phn trn cc lnh c tnh cht chun b trc v sau cc thao tc vi chui c th coi l
nh nhau. gii bi ton ny c th ng dng cc lnh LODSB v STOSB vi chui
cho. Thut ton l:
Ly tng k t ca chui gc (c) bng lnh LODSB,
Bin i thnh ch hoa bng cch tr i 20H,
Ct k t bin i vo chui ch (mi) bng lnh STOSB.
Sau y l cch t chc d liu v chng trnh cho bi ton trn vi di chui l 8
byte. minh ho mt cch thao tc khc so vi cch v d trc trong v d ny l dng
cch thao tc li i vi chui k t.
. Model Small
. Stack 100
. Data
Str1 DB 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
Tbao DB 'chui c i: ', 10, 13
DB '$'
. Code
MAIN Proc
MOV AX, @Data ; khi u u cho DS v ES
MOV DS, AX
MOV ES, AX
LEA SI, Str1+7 ; SI ch vo cui chui c
LEA DI, Str2+7 ; DI ch vo cui chui mi
STD ; nh hng li
MOV CX, 8 ; CX cha s byte phi i
LAP: LODSB ; ly 1 k t ca chui c
SUB AL, 20H ; i thnh ch hoa
STOSB ; ct vo chui mi
LOOP LAP ; lm cho n ht
LEA DX, Tbao ; chun b hin chui mi
MOV AH, 9
INT 21H
MOV AH, 4CH ; v DOS
INT 21H
MAIN Endp
END MAIN

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

IV.1 Cc tn hiu ca vi x l v cc mch ph tr

IV.1.1 Cc tn hiu ca 8086/8088

Hnh IV-1. Tn hiu 8086

Hnh v trn cho chng ta thy tnh hiu ca 8086. Cc tn hiu ca 8086 v 8088 ch
khc s lng knh d liu. 8086 c 16 ng d liu trong khi 8088 ch c 8 ng d
liu. Di y trnh by ngha cc tn hiu ca 8086,
Chc nng cc tn hiu ti cc chn c th nh sau:
ADO AD15 [I;O: tn hiu vo v ra]: Cc chn dn knh cho cc tn hiu but d
liu v but a ch. Xung ALE s bo cho mnh ngoi bit khi no trn cc ng
c tn hiu d liu (ALE = 0) hoc a ch (ALE = 1). Cc chn ny trng thi tr
khng cao khi P chp nhn treo.
A16/S3, A17/S4, A18/S5, A19/S6 [O]: Cc chn dn knh ca a ch phn cao v
trng thi. a ch A16 - A19 c truyn trn cc chn khi ALE = 1 cn khi AEL
= 0 th trn cc chn c cc tn hiu trng thi S3 - S6. Cc chn ny trng thi
tr khng cao khi P chp nhn treo. Vic kt hp S3 v S4 biu din truy nhp
cc thanh ghi nh trong bng di y.
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra

Bng IV-1. Cc bt trng thi v vic truy nhp cc thanh ghi on.
S4 S3 Truy nhp n
0 0 on d liu ph
0 1 on ngn xp
1 0 on m hoc khng on no
1 1 on d liu
RD [O]: Xung cho php c. Khi RD = 0 th but d liu sn sng nhn s liu ti
b nh hoc thit b ngoi vi. Chn RD trng thi tr khng cao khi P chp nhn
treo.
READY [I]: Tn hiu bo cho CPU bit tnh trng sn sng ca thit b ngoi vi hay
b nh. Khi READY = 1 th CPU thc ghi/c m khng cn chn thm cc chu k
i. Ngc li khi thit b ngoi vi hay b nh c tc hot ng chm, chng c
th a tn hiu READY = 0 bo cho CPU bit. Lc ny CPU t ko di thi gian
thc hin lnh ghi/c bng cch chn thm cc chu k i.
INTR [I]: Tn hiu yu cu ngt che c. Khi c yu cu ngt m c cho php ngt
IF = 1 th CPU kt thc lnh ang lm d, sau n i vo chu k chp nhn ngt v
a ra bn ngoi tn hiu INTA = 0.
TEST [I]: Tn hiu ti chn ny c kim tra bi lnh WAIT. Khi CPU thc hin
lnh WAIT m lc tn hiu TEST =1, n s ch cho n khi tn hiu TEST = 0 th
mi thc hin lnh tip theo.
NMI [I]: Tn hiu yu cu ngt khng che c. Tn hiu ny khng b khng ch bi
c IF v n s c CPU nhn bit bng cc tc ng ca sn ln ca xung yu cu
ngt. Nhn c yu cu ny CPU kt thc lnh ang lm d, sau n chuyn sang
thc hin chng trnh phc v ngt kiu INT2.
RESET [I]: tn hiu khi ng li 8086/8088. khi RESET = 1 ko di t nht trong
thi gian 4 chu k ng h th 8086/8088 b buc phi khi ng li: n xo cc thanh
ghi DS, ES, SS, IP v FR v 0 v bt u thc hin chng trnh ti a ch
CS:IP=FFFF:0000H (ch c IF 0 cm cc yu cu ngt khc tc ng vo
CPU v c TF0 b vi x l khng -b t trong ch chy tng lnh).
CLK [I]: Tn hiu ng h (xung nhp). Xung nhp c rng l 77% v cung cp
nhp lm vic cho CPU.
Vcc [I]: Chn ngun. Ti y CPU c cung cp 5V10%. 340mA
GND [O]: Hai chn ngun ni vi im 0V ca ngun nui.
MN/MX [I]: Chn iu khin hot ng ca CPU theo ch MIN/MAX. Do
8086/8088 c th lm vic 2 ch khc nhau nn c mt s chn tn hiu ph
thuc vo cc ch .
a) Ch MIN (Chn MN/MX cn c ni thng vo +5V m khng qua in tr)
o Trong ch MIN tt c cc tn hiu iu khin lin quan n cc thit b
ngoi vi truyn thng v b nh ging nh trong h 8085 u c sn trong

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

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/ M [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 WR =0 th trn but d liu cc
d liu n nh v chng s c ghi vo b nh hoc thit b ngoi vi ti
thi im WR = 1. Chn WR trng thi tr khng cao khi P chp nhn treo.
o INTA [O]: Tn hiu bo cho cc mch bn ngoi bit CPU chp nhn yu cu
ngt INTR. Lc ny CPU a ra INTA = 0 bo l n ang ch mch ngoi
a vo s hiu ngt (kiu ngt) trn but d liu.
o ALE [O]: Xung cho php cht a ch. Khi ALE = 1 c ngha l trn but dn
knh AD c cc a ch ca thit b vo/ra hay ca nh. ALE khng bao gi
b th ni (trong trng thi tr khng cao) khi CPU b treo th ALE = 0.
o DT/ R [O]: Tn hiu iu khin cc m 2 chiu ca but d liu chn
chiu chuyn ca vn d liu trn but D. Chn ny trng thi tr khng cao
khi P chp nhn treo.

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)

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

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 S 2 S1 v S 0 [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.

S2 S1 S0 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 / GT 0 v RQ / GT1 [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 / GT 0 c mc u tin hn RQ / GT1 .
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.

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

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 AD0 AD16 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.

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

8086 Ch max

Vcc CLK MRDC#


MWTC#
S0# AMWC#
S1#
8288
8284A CLK IORC#
S2# Bus
Clock READY IOWC#
Generator Controller
RESET AIOWC#
DEN
RDY DT/R# INTA#
8086 ALE
CPU
MN/MX#
LE
OE#
BHE
# 74LS373
AD15:AD0 A19:A0,
x3
ADDR/DATA BHE#
A19:A16
INTR

DIR
EN#
74LS245
74LS245 D15:D0
x2
ADDR/Data x2

Hnh IV-3. But h thng 8086 c m

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

AEN 1 , AEN 2 : 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 AEN 1 , AEN 2 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 fx, thch anh ny l mt b phn
ca mt mch dao ng bn trong 8284 c nhim v to xung chun dng lm tn
hiu ng h cho ton h thng.

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

F/ C : Dng chn ngun tn hiu chun cho 8284. Khi chn ny mc cao th xung
ng h bn ngoi s c dng lm xung nhp cho 8284, ngc li th xung ng h
ca mch dao ng bn trong dng thch anh s c chn lm xung nhp.
EFI: li vo cho xung t b dao ng ngoi.
CLK: Xung nhp fCLK=fx/3vi rng 77% ni n chn ca CLK ca 8086/8088.
PCLK: Xung nhp fCLK=fx/6vi rng 50% dnh cho thit b ngoi vi.
OSC: Xung nhp c khuch i c tn s bng fx ca b dao ng.

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.

Hnh IV-4. Ni 8284 vi 8086/8088

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.

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

Hnh IV-5. B iu khin but 8288

Cc tn hiu chnh ca 8288 bao gm:

S 2 , S1 , S 0 [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).

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

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/ R ,IO/
M 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 RD hoc WR , DEN v tn hiu


d liu trn D0 - D7 nu l lnh ghi. DEN 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 Tw, 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.

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

T1 T2 T3 T4

CLOCK
__

DT/R

ALE

AD15
A15 A0 Rc D liu ngoi
- AD0

A19/S6 - A16/S3 A19 - A16 S6 - S3

__
IO/M
____
RD
______
DEN

Xung c
Truy nhp
a ch
Xc lp
Tr a d liu
ch

Hnh IV-6. Biu c n gin ha

T1 T2 T3 T4

CLOCK
__
DT/R

ALE

AD15 - AD0 A15 A0 D15 - D0 (ti but ngoi )

A19/S6 - A16/S3 A19 - A16 S6 - S3

A19 - A0 A19 - A0 from 74LS373


from 74LS373 to memory
__
IO/M
_____
WR
______
DEN

rng xung
ghi

2 xung nhp

Tr iu
Ch d liu khin

Hnh IV-7. Biu ghi n gin ha

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

Chu k T3:
Trong chu k ny CPU dnh thi gi cho b nh hay thit b ngoi vi khi nhp d liu.
Nu l chu k c d liu th ti cui T3 CPU s ly mu tn hiu ca but d liu.
Nu ti cui chu k ng h T2 (hoc gia mi chu k T ca Tw) m CPU pht hin ra
tn hiu READY=0 (do b nh hay thit b ngoi vi a n) th CPU t xen vo sau T3 mt
vi chu k T to chu k i Tw = n*T nhm ko di thi gian thc hin lnh, to iu kin
cho b nh hoc thit b ngoi vi c thi gian hon tt vic ghi/c d liu.
Chu k T4:
Trong chu k ny cc tn hiu trn but c a v trng thi b ng chun b cho
chu k but mi. Tn hiu WR trong khi chuyn trng thi t 0 ln 1 s kch hot ng qu
trnh a vo b nh hay thit b ngoi vi.
Trn cc biu c ghi cng biu din cc thng s quan trng v mt thi gian lin
quan n tc hot ng ti thiu cn thit ca cc b nh hoc thit b ngoi vi nu chng
mun lm vic vi CPU 5MHz.
Trong biu thi gian c (Hnh IV-6) ta thy vic truy nhp b nh ko di trong
khong thi gian t T1 - T3 (gn 3 chu k ng h 3*T = 600 ms). Trong tng s thi gian
ny phi tnh n thi gian tr khi chuyn a ch ttr a ch = 110ns, thi gian gi ca d liu
khi c tgiR = 30 ns v thi gian tr do vic truyn tn hiu qua cc mch m nhiu nht l
ttr m = 40ns. Nh vy cc b nh ni vi 8086/8088 - 5MHz cn phi c thi gian truy nhp
nh hn:
3*T - ttr a ch - tgiR - ttr m = 600 - 110 - 30 - 40 = 420ns.
Mt khc vi CPU 8086/8088 5MHz th rng xung c l TRD = 325ns, l thi
gian di cho b nh vi thi gian truy nhp c 420ns lm vic.
Trong biu thi gian ghi (Hnh IV-7) ta thy phi c mt thi gian gi d liu ti
thiu ghi tgiW = 88ns sau khi WR t bin t 0 ln 1. trong thc t thi gian ny gn nh
bng 0 i vi b nh thng dng. di ca xung ghi i vi CPU 8086/8088 - 5MHz l
tWR = 340ns cng l ph hp vi cc b nh vi thi gian truy nhp c 450ns.

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

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

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

Hnh IV-8. Vi mch nh khi qut

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 2m t nh. V d, vi m = 10 ta c dung
lng mch nh l 1K nh (1 kil = 210 = 1024) v vi m=20 ta c dung
lng mch nh l 1M nh (1 Mga = 220 = 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

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

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 tac 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/ M 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

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

thm tr thi gian ca tn hiu t CPU ti b nh hoc thit b ngoi vi. Tu theo quy m ca
mch gii m m ta c th c u ra mt hay nhiu tn hiu chn v.

Hnh IV-9. Mch gii m a ch tng qut

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 A16 mc thp (A16=0) hoc c bn tn hiu A16-A19 mc thp (A16=. . . =A19=0). Vi
trng hp th nht ta c gii m thiu do A16=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

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

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. Mch gii m dng mch l-gc

Hnh IV-10 gii thiu mch gii m cho mch EPROM 2716 c dung lng 2K nh
mi cha 8 bt, lm vic trong di a ch FF800H-FFFFFH. Do mch nh c dung lng
2K tng ng vi di a ch 0FFH-7FFH (tng ng vi A0. . . A10). Nh vy, s lng cc
tn hiu a ch dng sinh ra tn hiu kch hot chp nh ny l A11-A19. Vi di a ch cho
trc FF800H-FFFFFH th t hp A11=. . . =A19=1 s sinh ra tn hiu chn v cho EPROM
2716. Bn cnh , ta cn phi hp vi cc tn hiu iu khin IO/ M v RD ( mc thp)
to ra tn hiu chn v.

Nh trong hnh v, cc tn hiu a ch v tn hiu o ca IO/ M 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.

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

Hnh IV-11. 74LS138 v bng trng thi

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 A13
ti A19 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 A19-A16 A15 A14 A13 A12

F8 1111 1 0 0 0
F9 1111 1 0 0 1
FA 1111 1 0 1 0
FB 1111 1 0 1 1
FC 1111 1 1 0 0
FD 1111 1 1 0 1
FE 1111 1 1 1 0
FF 1111 1 1 1 1
Qua bng trn, ta thy ch c cc tn hiu A12-A14 l thay i cn A15-A19 bng 1 v
khng i. Nh vy ta c th s dng mch gii m 74LS138 sinh ra cc tn hiu chn v
cho cc mch nh nh hnh sau:
Trong hnh v di y, cc tn hiu A12-A14 c ni trc tip vo tn hiu u vo
(A-C) ca 74LS138. Cc tn hiu a ch cn li A15-A19 v cc tn hiu iu khin IO/ M
c ni vo tn hiu iu khin ca 74LS138 (G2A, G2B). Tn hiu G1 lun mc l-gc 1.
Cc u ra ca 74LS138 c ni ln lt vi cc mch nh ng vi di a ch gn trc.
Ti th d ny ta thy mch gii m c sn 74LS138 c s lng u vo a ch v u
vo cho php hn ch. Nu ta c s lng u vo cho a ch ln m ta li phi gii m y
thc hin b gii m hon chnh ta vn phi dng thm cc mch logic ph. y
cng l l do ngi ta thay th cc b gii m kiu ny bng cc b gii m dng PROM

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

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

Hnh IV-12. Gii m s dng 74LS138

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 A A A A A A A _O _O _O _O _O _O _O _O
7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 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

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

Theo bng trn, trong di a ch t F8H-FFH ca ROM ta ghi 8 gi tr sao cho tn hiu
d liu u ra ch c duy nht mt tn hiu mc thp cn tt c cc tn hiu cn li u mc
cao. Ngoi 8 nh ny, tt c cc nh khc ca ROM u c in gi tr FFH.

Hnh IV-13. Gii m dng ROM

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/ M =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/ M =0 v lnh trao i d
liu kiu lnh MOV cho c b nh v thit b ngoi vi

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

Hnh IV-14. Khng gian nh ca thit b vo/ra v b nh chnh

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:

Hnh IV-15. Gii m thit b dng cng l-gc

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

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

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. Ghp ni vi bn phm

Hnh IV-17 biu din ghp ni gia 8086 vi bn phm 16 s dng tip im. Vi mch
74LS374 c dng iu khin cc tn hiu hng v 74LS244 dng iu khin cc tn
hiu ct ca bn phm. Nguyn tc hot ng ca mt phm nh sau. Nu tn hiu X mc
cao (l-gc 1) th i-t s kha li, vy nn tip im Y c ng xung hay khng th ti u
O ta lun thu c in p 5V (khng c dng in). Nu tn hiu X mc thp (l-gc 0),
th i-t m v khi tip im Y ng xung ti u O ta thu c in p 0V. Bng cch qut
tun t cc hng v c trn cc ct ta s xc nh c phm bm. Gi s tn hiu a ch
gii m vi mch m cng 374 l 0AH cn 244 l 0BH, on m sau y cho php xc nh
phm C c c bm hay khng:
Hang EQU 0AH
Cot EQU 0BH
MOV AL,11111110b ; Ch c D0=0
OUT Hang, AL
Ktra: IN AL, Cot ; c tn hiu ct
AND AL,00001000b ; Gi li bt D3 ng vi phm C
JNZ Ktra ; Khng bm
... ; Phm C c bm

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

Hnh IV-18. Ghp ni hin th s

Hnh IV-18 biu din mt mch hin th s s dng vi mch 7447 v. LED by on.
7447 cho php iu khin cc LED by on bng cch gii m s BCD ti u vo (A-D) v
sinh ra cc tn hiu kch hot cc thanh led ca LED by on (a-g). tit kim chi ph,
7447 c dng chung cho c 7 LED by on. Vic kch hot LED by on c iu
khin thng qua cng A v cc transitor Q1-Q7, d liu s cn hin th c gi qua cng B.
on m sau y dng kim tra h thng LED bng cch hin th trn c 7 LED s 8. Ch
rng bt 1 LEDi ta cn a tn hiu d liu Di=0 trn cng 0AH ti transitor Qi tng
ng.
DK_LED EQU 0AH ; Cng iu khin LED
DL_LED EQU 0BH ; Cng d liu hin th
MOV AL,FFH ; Tt tt c cc LED
OUT DK_LED, AL
MOV CX,16 ; Tr
Tre: NOP
LOOP Tre
MOV AL,8 ; a s 8 ra 7447
OUT DL_LED,AL
XOR AL,AL ; t AL=0
OUT DK_LED,AL ; Bt tt c cc LED

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

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.

Nhm A
iu Cng A
khin (8)
nhm A

Nhm A
Cng C
(4)
m
d liu
Nhm B
Cng C
(4)

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

Hnh IV-19. S khi 8255A

Cc tn hiu ca 8255A c ngha nh sau :

CS: Chn chp (mc thp) PA7-PA0: Cng A


RD: c (mc thp) PB7-PB0: Cng B
WR: Ghi (mc thp) PC7-PC0: Cng C
A0A1: Chn cng D7-D0: 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:

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

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 PC0-PC3, C cao PC4-PC7). Bt k cng no c th dng
lm cng vo/ra.

But a ch

But iu khin

But d liu

Hnh IV-20. Cc ch 0
b) Ch 1: Vo/ra thm d
Ch ny ch c cung cp trn hai cng A,B, mi cng c knh d liu l 8
bt v 4 tn hiu iu khin ly t cng C. D liu trn knh c th l vo hay ra. Cc
nhm tn hiu iu khin vo/ra nh sau:

u vo u ra
STB: Kim tra u vo (mc thp) OBF: D liu ra sn sng (mc thp)
IBF: D liu sn sng (mc cao) ACK: Nhn xong d liu (mc thp)
INTR: Bo ngt CPU (mc cao) INTR: Bo ngt CPU (mc cao)
Cc tn hiu iu khin ca hai cng A v B ly t cng C nh sau:

Hnh IV-21. Ghp ni cc tn hiu iu khin ch 1

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

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

Hnh IV-22. Biu thi gian tn hiu ra

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

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

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.

Hnh IV-24. Cc tn hiu kt ni hai chiu v biu thi gian

IV.4.1.2 Lp trnh 8255A


Cc thanh ghi ca 8255A c xc nh qua tnh hiu a ch A0A1 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.

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

Hnh IV-25. Thanh ghi iu khin ch

Hnh IV-26. t xo cc tn hiu iu khin trn cng C

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

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

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.

Hnh IV-27. Cu trc khung ng b

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.

Hnh IV-28. Cu trc d liu truyn d b

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

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

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.

Hnh IV-29. S khi 8251A

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:

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

+ 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.
+ DSR DTR l hai cp tn hiu yu cu thit b modem sn sng v tr li ca
modem vi tn hiu yu cu.
+ RTS CTS 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 A0 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
A0 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

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

Thanh ghi ch :

Hnh IV-30. Thanh ghi ch (d b)


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 Fdk) 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.
Fdk = 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)

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

Thanh ghi lnh:

Hnh IV-32. Cu trc thanh ghi lnh

Thanh ghi trng thi

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

Hnh IV-33. Cu trc thanh ghi trng thi

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:

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

Hnh IV-34. Lu c/ghi n gin

Hnh IV-35. Ghp ni 8251A

Hnh IV-35 gii thiu mch gii m a ch cho 8251A v ghp ni tn hiu ni tip
theo chun RS232. Vi mch 8251A hot ng 2 cng 78H v 79H (0111 100x). Lu c
c th c trin khai nh sau:
DK EQU 79H ; Thanh ghi iu khin
TThai EQU 79H : Thanh ghi trng thi
DL EQU 78H ;Thanh ghi d liu
khoitao: MOV AL, 11001111b ; Xc lp ch 8251A d b 2 bt stop,
OUT DK,AL ; 8 bt d liu khng chn l, tc x64
Ktra: IN AL, TThai ; Kim tra trng thi
AND AL,02H ; Bt 2 thanh ghi trng thi RxRDY
JNZ Ktra
DocDL: IN AL, DL
.... ; X l d liu

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

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

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

Hnh V-1. Vo/ra lp trnh vi nhiu thit b

Cc mch kt ni trong Hnh IV-17 v Hnh IV-18 l cc v d tiu biu cho phng
php vo/ra lp trnh. Vi bn phm, CPU lin tc kim tra trng thi cc phm v nu c
phm c bm CPU s c thng tin trn cng vo xc nh phm no c bm. Vi b
hin th LED, CPU lin tc a d liu ra cc cng ra thit b c th hin th cc thng tin.
Khi s lng cc thit b vo/ra tng ln th thi gian dnh cho vic xc nh trng thi
ca thit b vo/ra cng tng ln nhanh chng nh trong Hnh V-1. CPU kim tra ln lt cc

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

thit b pht hin trng thi sn sng trao i d liu ca tng thit b v thc hin cc lnh
trao i d liu. Cc thit b c kim tra thm d theo trt t ngu nhin hoc theo mc
u tin ca cc thit b. Cch thc ny d n gin song c nhc im l thi gian qut
trng thi ca cc thit b chim t trng rt ng k trong sut qu trnh vo/ra nht l khi
cc thit b cha c d liu trao i.

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.

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

V.3.2.1 Cc khi chc nng chnh ca 8259A


S khi ca 8259A c trnh by trong hnh v di y

Hnh V-2. S khi 8259

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:
+ CAS0-CAS2 [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.

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

+ SP/ EN [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 ( SP 0 ) hoc ch ( SP 1); khi
8259A lm vic trong h vi x l ch c m but d liu th chn ny l tn hiu ra
EN 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.
+ INTA [I]: ni vi tn hiu bo chp nhn ngt INTA 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.

Hnh V-3. Ghp ni 8259 vi but 8086/8088

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.

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

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.

Hnh V-4. Trnh t s dng cc thanh ghi khi u

xc nh cc thanh ghi bn trong ta cn s dng tn hiu a ch A0 v th t ghi


ghi d liu cho cc t iu khin. V d A0 = 0 l du hiu nhn bit rng ICW1 c a
vo thanh ghi c a ch chn trong PIC, cn khi A0 = 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 D0 ca ICW1 quyt nh 8259A s c ni vi h vi x l no. lm vic vi
h 16-32bt (8088 hoc h x86) th ICW nht thit phi c ICW4 = 0 (v nh vy cc bt ca
ICW4 s b xa v 0). Cc bt cn li ca ICW1 nh ngha cch thc tc ng ca xung yu
cu ngt (tc ng theo sn hay theo mc) ti cc chn yu cu ngt IR ca mch 8259A v
vic b tr cc mch 8259A khc trong h lm vic n l hay theo ch ni tng.

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

Hnh V-5. Dng thc ca ICW1

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

Hnh V-6. Dng thc ca ICW2

o ICW3
T iu khin khi u ny ch dng n khi bt SNGL thuc t iu khin khi u
ICW1 c gi tr 0, ngha l trong h c cc mch 8259A lm vic ch ni tng. Chnh v
vy tn ti 2 loi ICW3: 1 cho mch 8259A ch v 1 cho mch 8259A th.
ICW3 cho mch ch: dng ch ra u vo yu cu ngt IRi no ca n c tn hiu
INT ca mch th ni vo.
ICW3 cho mch th: dng lm phng tin cc mch ny c nhn bit.
V vy t iu khin khi u ny phi cha m s i ng vi u vo Iri ca mch ch m

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

mch th cho ni vo. Mch th s so snh m s ny vi m s nhn c CAS2-CAS0.


Nu bng nhau th s hiu ngt s c a ra but khi c INTA.

Hnh V-7. Dng thc ca ICW3 cho mch ch v th

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

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

Hnh V-8. Dng thc ca ICW4

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)

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

Hnh V-9. OCW1 Trng thi yu cu ngt

OCW2
Cc bt R., SL, v EOI phi hp vi nhau cho php chn ra cc cch thc kt thc
yu cu ngt khc nhau. Mt vi cch thc yu cu ngt cn tc ng ti cc yu cu ngt
c ch ch danh vi mc u tin c gii m ha ca 3 bt L2, L1, L0.
Trc khi ni v cc cch kt thc yu cu ngt cho cc ch ta cn m du ngoc
y gii thiu cc ch lm vic ca 8259A.
Ch u tin c nh:
y l ch lm vic ngm nh ca 8259A sau khi n c np cc t
iu khin khi u. Trong ch ny, cc u vo IR7-IRO c gn cho cc
mc u tin c nh: IRO c gn cho mc u tin cao nht cn IR7 mc u
tin thp nht. Mc u tin ny c gi khng thay i cho n khi ghi mch
8259A b lp trnh khc i do OCW2.
Trong ch u tin c nh ti mt thi im ch c mt yu cu ngt i c
phc v (bt ISRi = 1) lc ny tt c c yu cu khc vi mc u tin thp hn
u b cm, tt c cc yu cu khc vi mc u tin thp hn u c th ngt
yu cu khc vi mc u tin thp hn.
Ch quay mc u tin (u tin lun phin) t ng:
ch ny sau khi mt yu cu ngt c phc v xong, 8259A s xo bt
tng ng ca n trong thanh ghi ISR v gn cho u vo ca n mc u tin
thp nht to iu kin cho cc yu cu ngt khc c c hi c phc v.
Ch quay (i) mc u tin ch ch danh:
ch ny ta cn ch r (ch danh) u vo IRi no, vi i=L2L1L0, c gn
mc u tin thp nht, u vo IRi+1 s uc t ng gn mc u tin cao nht.

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

Hnh V-10. Trng thi ngt v ch quay mc u tin

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=L2L1L0 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 IRi+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.

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

Hnh V-11. OCW2 xc nh x l cc yu cu ngt

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 = L2 L1 L0.
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 = L2 L1 L0. Yu cu ngt IRi+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.

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

Hnh V-12. OCW3

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.

Hnh V-13. Thanh ghi IRR v ISR

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


Hnh V-14. Dng thc t thm d trng thi
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.

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

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.

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

Trong thc t c nhng khi ta cn trao i d liu tht nhanh vi thit b ngoi vi: nh
khi cn a d liu hin th ra mn hnh hoc trao i d liu vi b iu khin a. Trong
cc trng hp ta cn c kh nng ghi /c d liu trc tip vi b nh th mi p ng
c yu cu v tc trao i d liu. lm c iu ny cc h vi x l ni chung u
phi dng thm mch chuyn dng iu khin vic truy nhp trc tip vo b nh DMAC
(Direct Memory Access Controller)
V d di y minh ha iu ny. Trong khi mt mch DMAC nh 8237A ca Inter
c th iu khin vic chuyn mt byte trong mt mng d liu t b nh ra thit b ngoi vi
ch ht 4 chu k ng h th b vi x l 8086/8088 phi lm ht c 4 chu k:
; s chu k ng h
LAP: MOV AL, (SI ) ;10
OUT PORT, AL ;10
INC SI ;2
LOOP LAP ; 17
; CNG:39 chu k
h tr cho vic trao i d liu vi thit b ngoi vi bng cch truy nhp trc tip
vo b nh. CPU thng c tn hiu yu cu treo HOLD mi khi thit b cn dng but
cho vic trao i d liu vi b nh th thng qua chn ny m bo cho CPU bit. n lt
CPU, khi nhn c yu cu treo th n t treo ln (t tch ra khi h thng bng cch a
cc bt vo trng thi tr khng cao) v a xung HLDA ra ngoi thng bo CPU cho
php s dng but.
S khi ca mt h vi x l c kh nng trao i d liu theo kiu DMA c th
hin trn hnh di y.

Hnh V-15. H vi x l vi DMAC

Ta nhn thy trong h thng ny, khi CPU t tch ra khi h thng bng cch t treo
(ng vi v tr hin thi ca cc cng tc chuyn mch), DMAC phi chu trch nhim iu

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

khin ton b hot ng trao i d liu ca h thng. Nh vy, DMAC phi c kh nng to
ra c cc tn hiu iu khin cn thit ging nh cc tn hiu ca CPU v bn thn n phi
l mt thit b lp trnh c. Qu trnh hot ng ca h thng trn c th c tm tt nh
sau:
Khi thit b ngoi vi c yu cu trao i d liu kiu DMA vi b nh, n a yu cu
DREQ=1 n DMAC, DMAC s a yu cu treo HRQ=1 n chn HOLD ca CPU. Nhn
c yu cu treo, CPU s treo cc but ca mnh v tr li chp nhn treo qua tn hiu
HLDA=1 n chn HACK ca DMAC, DMAC s thng bo cho thit b ngoi vi thng qua
tn hiu DACK=1 l n cho php thit b ngoi vi trao i d liu kiu DMA. khi qu trnh
DMA kt thc th DMAC a ra tn hiu HRQ=0.

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

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

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

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

Mch DMAC 8237A cha 4 knh trao i d liu DMA vi mc u tin lp trnh
c. DMAC 8237A c tc truyn 1 MB/s cho mi knh, mt knh c th truyn mt
mng c di 64KB.

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
DREQ0-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.
DB0-DB7[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 A8-A15 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.
A0-A3[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).
A4-A7[O]:cc chn cha 4 bt a ch phn cao trong byte a ch thp
ca a ch mng nh cn chuyn.

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

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.
DACK0-DACK3[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 DB0-DB7 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.

Hnh V-17. Ghp ni 8237 vi but h vi x l

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 .

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

Bng V-1. a ch cc thanh ghi 8237A

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

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

Bng V-3. Cc thanh ghi iu khin v trng thi

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.

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

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:

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

Trong ch DMA theo yu cu. DMAC tin hnh chuyn d liu cho n khi c tn hiu
EOP t bn ngoi hoc cho n khi khng cn yu cu DMA na (DREQ tr nn khng tch
cc)
Trong ch DMA chuyn tng byte, chng no vn cn yu cu DMA (DREQ vn l
tch cc) th DMAC a ra HRQ=0 trong thi gian 1 chu k but sau mi ln chuyn sang 1
byte. Sau n li a ra HRQ=1. C nh vy DMAC v CPU lun phin nhau s dng but
cho n khi m ht (TC).
Trong ch DMA chuyn c mng, c mt mng gm mt s byte bng ni dung b
m c chuyn lin mt lc. Chn yu cu chuyn d liu DREQ khng cn phi gi c
mc tch cc sut trong qu trnh chuyn. Ch ni tng c dng khi c nhiu b
DMAC c dng trong h thng m rng s knh c th yu cu DMA.

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

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

+ xo mt lt F/L
+cm cc yu cu ca cc knh
+ghi LSB ri MSB ca thanh ghi a ch
+ghi LSB ri MSB ca thanh ghi s m
Di y l mt on m cho 8237A c a ch c s 70H v c ghp vi vi
x l 8088 nh trong Hnh V-18.
ChotB EQU 010H ; a ch mch cht B
FL EQU 07CH ; a ch mch lt
C0 EQU 070H ; a ch knh 0
C1 EQU 072H ; a ch knh 1
Dem_C1 EQU 073H ; a ch knh 0
CheDo EQU 07BH ; a ch thanh ghi ch
Lenh EQU 078H ; a ch thanh ghi lnh
MatNa EQU 07FH ; a ch thanh ghi mt n
YeuCau EQU 079H ; a ch thanh ghi yu cu
TThai EQU 078H ; a ch thanh ghi trng thi
SoByte DW 0100H ; S byte cn chuyn
A16_19 DB 01H ; 4 bt a ch cao
Nguon DW 00000H ; a ch ngun
Dich DW 04000H ; a ch ch
;
MOV AL,A16_19
OUT ChotB, AL ; Gi a ch cao ra mch cht
OUT FL, AL ; Xa mch lt
MOV AX, Nguon ;a ch ngun ra knh 0
OUT C0,AL
MOV AL, AH
OUT C0, AL
MOV AX, Dich ; a ch ch ra knh 1
OUT C1, AL
MOV AL, AH
OUT C1, AL
DEC SoByte

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

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

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

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

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

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: RAM ROM Tnh nng khc
Vo/ra (byte) (Byte) rng t
(bt)
Intel 8051 40:32 64 1K 8 B nh m rng 8K
Motorola 52:40 256 8K 8 Cng ni tip ; chuyn i tng t s
68HC11
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

-122-
Chng VI Cc b vi iu khin

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.

-123-
Chng VI Cc b vi iu khin

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

-124-
Chng VI Cc b vi iu khin

dng km vi thanh ghi A trong cc thao tc nhn chia. Ngoi ra, 8051 cn 32 thanh ghi khc
nm trong b nh RAM trong chia thnh bn bng, B0-B3, gm 8 thanh ghi R0-R7.
C l cc thanh ghi 1 bt cho bit trng thi ca mt s lnh v c gp vo thanh ghi
t trng thi chng trnh (Program Status Word PSW). 8051 c cc c nh C, ph AC, trn
OV v chn l P. Cc c ngi dng F0 v GF0-1. Cc c ngi dng c th ty bin theo
yu cu ngi vit chng trnh nh lu cc s kin.
Con tr ngn xp SP l thanh ghi 8 bt lu v tr nh ngn xp trong b nh RAM trong
ca 8051.
Cc thanh ghi chc nng c bit nm trong b nh RAM trong t a ch 00-7Fh. Cc
thanh ghi ny c th c t tn ring trong mt m lnh v tham chiu qua a ch. V d
thanh ghi A cn c tham chiu qua a ch 0E0h.

VI.2.3 Tp lnh
8051 h tr cc ch a ch sau:
1. Ch a ch trc tip: d liu dnh cho lnh l mt phn trong m lnh. T
gi nh cho ch ny l du #. V d MOV A, #100.
2. Ch a ch thanh ghi: thanh ghi lu gi tr d liu.
3. Ch a ch trc tip: a ch nh l mt phn ca cu lnh
4. Ch a ch gin tip: gi tr thanh ghi cho bit a ch ca d liu. T gi
nh l @. V d MOV A, @R0 ; Np d liu ti nh c gi tr R0 vo thanh
ghi A.
Tp lnh 8051 h tr cc thao tc di chuyn d liu, cc thao tc l-gc, cc php
ton s hc v cc cu lnh nhy v gi hm.
V d VI-1
on chng trnh 8051
Nhan: INC 3Ch ; Tng gi tr nh 3Ch ln 1
MOV A, #2Ah ; A=2Ah
XRL A, 3Ch ; XOR A vi gi tr ti nh 3Ch
JNZ Nhan ; Nhy ti Nhan nu kt qu XOR khc 0
NOP ;khng lm g c

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.

-125-
Chng VI Cc b vi iu khin

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:
Vout = -Vref(byte u vo/100H) v Vref = 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. Vref 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
Tmin= 5S s tn s ti a fmax = 200. 000/S.

Hnh VI-3. Ghp ni b chuyn i D/A vi 8051

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

-126-
Chng VI Cc b vi iu khin

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

Hnh VI-4. Ghp ni 8051 v chuyn i A/D

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

-127-
Chng VI Cc b vi iu khin

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

-128-
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 232 byte hay 4GB v khng gian a ch vt l c th ln ti 236 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

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.

Hnh VII-1. Vi kin trc Netburst

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.

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

V m hnh b nh, cc chng trnh khng truy nhp trc tip vo b nh vt l. Thay
vo , cc chng trnh c th s dng cc m hnh truy nhp:
1. Tuyn tnh: Chng trnh coi b nh nh mt chui lin tip cc byte. on
m, d liu v ngn xp u nm trong khng gian a ch ny.
2. Phn on: B nh c chia thnh cc khng gian khc nhau c gi l on.
Thng thng d liu, on m, ngn xp s dng cc on khc nhau. B x
l h tr IA-32 c th cung cp 16. 383 on vi cc kch c khc nhau, kch c
ln nht ca 1 on l 4GB.
3. a ch thc: y l m hnh b nh ca 8086.
4. Phn trang v b nh o: khi ny b nh chng trnh c chia thnh cc trang
nh x vo b nh o. Sau , b nh o c nh x vo b nh thc. Nu h
iu hnh s dng phn trang, c ch nh x hon ton trong sut i vi
chng trnh ng dng

VII.1.2 Cc vi x l h tr IA-32
Vi u th ca cng ngh v thit k vi kin trc mi, mi mt th h vi x l IA-32
mi u vt ngng tc (tn s hot ng) v nng lc thc hin ca cc vi x l th h
trc. Bng di y lit k cc vi x l IA-32 th h u khng c b m tch hp trong vi
x l (GP-thanh ghi dng chung; FPU-thanh ghi du phy ng).
Bng VII-1. Vi x l h tr IA-32 th h u
But d
Nm sn Tn s B nh
Vi x l S thanh ghi liu m B m
xut (MHz) ti a
rng
80386DX 1985 20 32GP 32 4GB
32GP
Intel 486DX 1989 25 32 4GB 8KB L1
80 FPU
32GP
Pentium 1993 60 64 4GB 16KB L1
80 FPU
16KB L1
32GP
Pentium Pro 1995 200 64 64GB 256-512KB
80 FPU
L2
32GP 32KB L1
Pentium II 1997 266 80 FPU 64 64GB 256-512KB
64 MMX L2
32GP
80 FPU 32KB L1
Pentium III 1999 500 64 64GB
64 MMX 512KB L2
128 XMM

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

Bng VII-2. Vi x l IA-32 th h sau


Bng
Nm sn Vi kin Tn s S thanh thng B nh
Vi x l B m
xut trc (GHz) ghi but h ti a
thng
32 GP
80 FPU 8KB L1
Pentium 4 2000 Netburst 1, 5 3, 2GB/s 64GB
64 MMX 256KB L2
128 XMM
32 GP
Netburst,
80 FPU 8KB L1
Pentium 4 2002 Siu phn 3, 06 4, 2GB/s 64GB
64 MMX 256KB L2
lung
128 XMM
32 GP
Pentium 80 FPU 64KB L1
2003 Pentium M 1, 6 3, 2GB/s 64GB
M 64 MMX 1MB L2
128 XMM
32 GP
Netburst,
Pentium 4 80 FPU 16KB L1
2005 Siu phn 3, 73 8, 5GB/s 64GB
Extreme 64 MMX 2MB L2
lung
128 XMM
32 GP
Pentium M, 80 FPU 64KB L1
Core Duo 2006 2, 16 5, 3 GB/s 4GB
Li kp 64 MMX 2MB L2
128 XMM
32 GP
Atom Atom, o 80 FPU 56KB L1
2008 1, 86 4, 2GB/s 4GB
Z5xx ha 64 MMX 512KB L2
128 XMM

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

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

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
Bng
Nm
Tn s S thanh thng B nh
Vi x l sn Vi kin trc B m
(GHz) ghi but h ti a
xut
thng
32, 64 GP
Netburst, Siu phn 80 FPU 16KB L1
Xeon 2004 3, 6 6, 4GB/s 64GB
lung, IA-64 64 MMX 1MB L2
128 XMM
32, 64 GP
16KB L1
Netburst, Siu phn 80 FPU
Xeon 2005 3, 03 5, 3GB/s 1024GB 1MB L2
lung, IA-64 64 MMX
8MB L3
128 XMM
32 GP
Pentium 4 Netburst, Siu phn 80 FPU 16KB L1
2005 3, 73 8, 5GB/s 64GB
Extreme lung, IA-64 64 MMX 2MB L2
128 XMM
32, 64 GP
16KB L1
Dual-Core Netburst, Siu phn 80 FPU
2005 3 6, 4GB/s 64GB 2MB L2 (Tng
Xeon lung, a nhn, IA-64 64 MMX
4MB)
128 XMM
32, 64 GP
Netburst, Siu phn
Pentium 4 80 FPU 16KB L1
2005 lung, IA-64, o ha, a 3, 8 6, 4GB/s 64GB
672 64 MMX 2MB L2
nhn
128 XMM
32, 64 GP
Core 2 Netburst, Siu phn
80 FPU 64KB L1
Extreme 2006 lung, IA-64, o ha, a 2, 93 8, 5GB/s 64GB
64 MMX 4MB L2
X6800 nhn
128 XMM
32, 64 GP 64KB L1
Netburst, Siu phn
Xeon 80 FPU 1MB L2 (tng
2006 lung, IA-64, o ha, a 3, 40 12, 8 GB/s 64GB
7140 64 MMX 2MB)
nhn
128 XMM 16MB L3
32, 64 GP
Netburst, Siu phn 64KB L1
Xeon 80 FPU
2007 lung, IA-64, o ha, a 3, 00 12, 8 GB/s 256GB 6MB L2 (Tng
5472 64 MMX
nhn (4 nhn) 12MB)
128 XMM
32, 64 GP
56KB L1
Atom, IA-64, o ha, a 80 FPU
Atom 2008 1, 60 12, 8 GB/s 64GB 512KB L2 (Tng
nhn (4 nhn) 64 MMX
1MB)
128 XMM
32, 64 GP
Netburst, Siu phn 64KB L1
80 FPU
Core i7 2008 lung, IA-64, o ha, a 3, 20 6, 4 GT/s 64GB 256KB L2
64 MMX
nhn (4 nhn) 8MB L3
128 XMM

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

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.

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

Bng VII-4. Tnh nng mt s vi x l SPARC


Nm S m d m
S chn m L2
Tn Tn s MHz sn lung x liu L1 lnh L1
tn hiu (k)
xut S nhn (k) (k)
1024 or
UltraSPARC IIs (Blackbird) 250400 1997 11 521 16 16
4096
UltraSPARC IIs (Sapphire- 1024
360480 1999 11 521 16 16
Black) 8192
256
UltraSPARC IIi (Sabre) 270360 1997 11 587 16 16
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+)
550650 2000 11 370 16 16 512
(Phantom)
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
12001600 2008 88 1831 8 16 4096
Falls)

-135-
Ti liu tham kho
1. Crisp J. Introduction to microprocessors and microcontrollers, Newnes 2004
2. David Calcutt, Fred Cowan,Hassan Parchizadeh, 8051 Microcontrollers An
Applications-Based Introduction, Newnes 2004
3. Douglas V. Hall. Microprocessor and Interfacing- programming and hardware,
2nd edition. McGraw Hill. 1997.
4. Hari BalaKrishnan & Samel Madden. The lecture notes on Computer Systems
Engineering, Open Courses Ware. Massachusets Institute of Technology.
5. H Khnh Lm, K thut vi x l, NXB Bu in 2005
6. Intel Corp. Intel 64 and IA-32 Architectures Software Developers Manual
7. Rafiquzzaman M. Microprocessor theory and applications with 68000/68020 and
Pentium, John Wiley&Sons 2008
8. Vn Th Minh. K thut vi x l. NXB Gio dc 1999.

You might also like