Professional Documents
Culture Documents
t
d
l
i
u
n v s hc v
l-gc ALU
Cc thanh ghi
Hnh I-2. S khi chc nng vi x l
Thanh ghi lnh
Thanh ghi a ch
Thanh ghi tm
Chng I .Tng quan v vi x l v h vi x l
-10-
ii. B m chng trnh: cha a ch ca lnh hay m thc thi (op-code). Thng
thng, thanh ghi ny cha a ch ca cu lnh k. Thanh ghi ny c c im sau:
1. Khi khi ng li, a ch ca lnh u tin c thc hin c np vo
thanh ghi ny.
2. thc hin lnh, vi x l np ni dung ca b m chng trnh vo but
a ch v c nh a ch . Gi tr ca b m chng trnh t ng
tng theo b l-gc trong ca vi x l. Nh vy, vi x l thc hin cc lnh
tun t tr phi chng trnh c cc lnh lm thay i trt t tnh ton.
3. Kch c ca b m chng trnh ph thuc vo kch c ca but a ch.
4. Nhiu lnh lm thay i ni dung ca thanh ghi ny so vi trnh t thng
thng. Khi , gi tr ca thanh ghi c xc nh thng qua a ch ch nh
trong cc lnh ny.
iii. Thanh ghi a ch b nh: cha a ch ca d liu. Vi x l s dng cc a ch ny
nh l cc con tr trc tip ti b nh. Gi tr ca cc a ch ny chnh l d liu
ang c trao i v x l.
iv. Thanh ghi dng chung: cn c gi l thanh ghi gp (accumulator). Thanh ghi ny
thng l cc thanh ghi 8 bt dng th lu hu ht cc kt qu tnh ton ca n v x
l s hc v l-gc ALU. Thanh ghi ny cn dng trao i d liu vi cc thit b
vo/ra.
I.3.1.2 n v x l s hc v l-gc ALU
ALU thc hin tt c cc thao tc x l d liu bn trong vi x l nh l cc php ton
l-gc, s hc. Kch c thanh ghi ALU tng ng vi kch c t ca vi x l. Vi x l 32 bt
s c ALU 32 bt. Mt vi chc nng tiu biu ca ALU:
1. Cng nh phn v cc php l-gc
2. Tnh s b mt ca d liu
3. Dch hoc quay tri phi cc thanh ghi dng chung.
I.3.1.3 n v iu khin CU
Chc nng chnh ca n v iu khin CU l c v gii m cc lnh t b nh
chng trnh. thc hin lnh, CU kch hot khi ph hp trong ALU cn c vo m lnh
(op-code) trong thanh ghi lnh. M lnh xc nh thao tc CU thc thi. CU thng dch ni
dung ca thanh ghi lnh v sau sinh ra mt chui cc tn hiu kch hot tng ng vi lnh
nhn c. Cc tn hiu ny kch hot cc khi chc nng ph hp bn trong ALU.
CU sinh ra cc tn hiu iu khin dn ti cc thnh phn khc ca vi x l qua but
iu khin. Ngoi ra, CU cng p ng li cc tn hiu iu khin trn but iu khin do cc
b phn khc gi ti. Cc tn hiu ny thay i theo tng loi vi x l. Mt s tn hiu iu
khin tiu biu nh khi ng li RESET, c ghi (R/W), tn hiu ngt (INT/IRQ),
I.3.1.4 Thc hin chng trnh
chy chng trnh, vi x l thng lp li cc bc sau hon thnh tng lnh:
1. Np (Fetch). Vi x l np (c) lnh t b nh chnh vo thanh ghi lnh
Chng I .Tng quan v vi x l v h vi x l
-11-
2. Gii m (Decode). Vi x l gii m hay dch lnh nh n v iu khin CU.
CU nhp ni dung ca thanh ghi lnh v gii m xc nh kiu lnh.
3. Thc hin (Execute). Vi x l thc hin lnh nh CU. hon thnh nhim v,
CU sinh ra mt chui cc tn hiu iu khin tng ng vi lnh.
Qu trnh trn c lp i lp li cho n cu lnh cui cng ca chng trnh. Trong
cc vi x l tin tin qu trnh thc hin lnh c ci tin cho php nhiu lnh c thc
hin xen k vi nhau. Tc l, cu lnh k tip s c thc hin m khng cn ch cu lnh
hin thi kt thc. K thut trn c gi l k thut ng ng (pipeline). Vic thc hin
xen k cho php nng cao tc thc hin ca vi x l v lm gim thi gian chy chng
trnh.
I.3.2 Kin trc RISC v CISC
C hai kin kin trc vi x l: my tnh vi tp lnh rt gn (Reduced Instruction Set
Computer-RISC) v my tnh vi tp lnh phc tp (Complex Instruction Set Computer-
CISC). Vi x l RISC nhn mnh tnh n gin v hiu qu. Cc thit k RISC khi u vi
tp lnh thit yu v va . RISC tng tc x l bng cch gim s chu k ng h trn
mt lnh. Mc ch ca RISC l tng tc hiu dng bng cch chuyn vic thc hin cc
thao tc khng thng xuyn vo phn mm cn cc thao tc ph bin do phn cng thc
hin. Nh vy lm tng hiu nng ca my tnh. Cc c trng cn bn ca vi x l kiu
RISC:
1. Thit k vi x l RISC s dng iu khin cng (hardwired control) khng
hoc rt t s dng vi m. Tt c cc lnh RISC c nh dng c nh v vy
vic s dng vi m khng cn thit.
2. Vi x l RISC x l hu ht cc lnh trong mt chu k.
3. Tp lnh ca vi x l RISC ch yu s dng cc lnh vi thanh ghi, np v
lu. Tt c cc lnh s hc v l-gc s dng thanh ghi, cn cc lnh np v
lu dng truy nhp b nh.
4. Cc lnh c mt nh dng c nh v t ch a ch.
5. Vi x l RISC c mt s thanh ghi dng chung.
6. Vi x l RISC x l mt vi lnh ng thi v thng p dng k thut ng
ng (pipeline).
Vi x l RISC thng ph hp vi cc ng dng nhng. Vi x l hay b iu khin
nhng thng c nhng trong h thng ch. Ngha l, cc thao tc ca cc b iu khin
ny thng c che du khi h thng ch. ng dng iu khin tiu biu cho ng dng
nhng l h thng t ng ha vn phng nh my in lade, my a chc nng. Vi x l RISC
cng rt ph hp vi cc ng dng nh x l nh, r-bt v ha nh c mc tiu th in
thp, thc thi nhanh chng.
Mt khc, vi x l CISC bao gm s lng ln cc lnh v nhiu ch a ch m
nhiu kiu rt t c s dng. Vi CISC hu ht cc lnh u c th truy nhp b nh trong
khi RISC ch c cc lnh np v lu. Do tp lnh phc tp, CISC cn n v iu khin
phc tp v vi chng trnh. Trong khi , RISC s dng b iu khin kt ni cng nn
nhanh hn. Kin trc CISC kh trin khai k thut ng ng.
Chng I .Tng quan v vi x l v h vi x l
-12-
u im ca CISC l cc chng trnh phc tp c th ch cn vi lnh vi vi chu
trnh np cn RISC cn mt s lng ln cc lnh thc hin cng nhim v. Tuy nhin,
RISC c th ci thin hiu nng ng k nh xung nhp nhanh hn, k thut ng ng v ti
u ha qu trnh bin dch. Hin nay, cc vi x l CISC s dng phng php lai, vi cc
lnh n gin CISC s dng cch tip cn ca RISC thc thi xen k (k thut ng ng)
vi cc cu lnh phc tp s dng cc vi chng trnh m bo tnh tng thch.
I.3.3 Cc c im
T cu trc cn bn ca vi x l, c th rt ra cc c im cu trc nh sau:
Tc xung nhp. Vi x l l thit b s nn s dng tn hiu xung nhp (clock)
ng b cc hot ng ca mnh. Tc xung nhp cng ln vi x l chy cng
nhanh.
Khi lng d liu x l c: th hin qua kch c cc thanh ghi d liu. Vi kch
c thanh ghi d liu l 32 bt, vi x l c kh nng c/ghi 4 byte cho mi thao tc
vi b nh.
Dung lng b nh trc tip: th hin qua dung lng thanh ghi a ch. Vi dung
lng 32 bt, vi x l c th qun l trc tip 4GB b nh.
Nng lc tnh ton: c quyt nh bi nng lc ca b s hc v l-gc. Bn cnh
cc thao tc s hc thng thng cn c cc n v chc nng phc v cc yu cu
chuyn bit khc nh n v x l du phy ng cho cc tinh ton s thc.
Kh nng thc hin lnh: th hin nng lc v phc tp ca n v iu khin.
n v ny c th cho php qu trnh x l tun t n gin hay phc tp nh xen
k cc lnh nhm nng cao hiu nng ca vi x l trn chu k lnh. Cc thit k
phc tp cho php n v iu khin thc hin nhiu lnh trong mt chu trnh.
I.4 Lch s pht trin v phn loi cc b vi x l
Phn ny gii thiu qu trnh pht trin ca cc b vi x l qua cc giai on t nm
1971 tp chung ch yu vo cc sn phm ca hng Intel do y l mt trong nhng hng sn
xut vi x l hng u ng thi cng l hng trin khai nhiu cng ngh mi gip nng cao
hiu nng ca vi x l c bit trong lnh vc my vi tnh.
I.4.1 Giai on 1971-1973
Nm 1971, trong khi pht trin cc vi mch dng cho my tnh cm tay, Intel cho ra
i b vi x l u tin l 4004 (4 bt) ca Rockwell International, IPM-16 (16 bt) ca
National Semiconductor.
c im chung ca cc vi x l th h ny l:
- di t thng l 4 bt (cng c th di hn)
- Cng ngh ch to PMOS vi c im mt phn t nh, tc thp, gi
thnh r v c kh nng a ra dng ti nh.
- Tc thc hin lnh: 10-16s/lnh vi tn s ng h f
clk
= 0, 1- 0, 8 MHz.
Chng I .Tng quan v vi x l v h vi x l
-13-
- Tp lnh n gin phi cn nhiu mch ph tr mi to nn mt h vi x l
hon chnh.
I.4.2 Giai on 1974-1977
Cc b vi x l i din trong th h ny l cc vi x l 8 bt 6502 ca MOS
Technology, 6800 v 6809 ca Motorola, 8080 v 8085 ca Intel v c bit l b vi x l
Z80 ca Zilog. Cc b vi x l ny c tp lnh phong ph hn v thng c kh nng phn
bit a ch b nh vi dung lng n 64KB. C mt s b vi x l cn c kh nng phn
bit c 256 a ch cho cc thit b ngoi vi (h Intel v Zilog). Chng c s dng
rng ri trong cng nghip v nht l to ra cc my tnh 8 bt ni ting mt thi nh
Apple II v Commodore 64. Tt c cc b vi x l thi k ny u c sn xut bng cng
ngh NMOS (Vi mt in t trn mt n v din tch cao hn so vi cng ngh PMOS)
hoc CMOS (tit kim in nng tiu th) cho php t c tc t 1-8 s/lnh vi tn s
ng h f
clk
= 1-5 MHz.
I.4.3 Giai on 1978-1982
Cc b vi x l trong th h ny c i din l cc b vi x l 16 bt 8086/80186/80286
ca Intel hoc 86000/86010 ca Motorola. Mt iu tin b hn hn so vi cc b vi x l 8
bt th h trc l cc b vi x l 16 bt c tp lnh a dng vi cc lnh nhn, lnh chia v
cc lnh thao tc vi chui k t. Kh nng phn bit a ch cho b nh hoc cho thit b
ngoi vi ca cc vi x l th h ny cng ln hn (t 1MB n 16 MB cho b nh v ti 64
K a ch cho thit b ngoi vi i vi h Intel). y l cc b vi x l c dng trong cc
my IBM PC, PC/XT, PC/AT v cc my Macintosh ca Apple. Phn ln cc b vi x l
trong th h ny u c sn xut bng cng ngh HMOS v cho php t c tc t 0,
1-1s/lnh vi tn s ng h f
clk
=5-10 MHz.
I.4.4 Giai on 1983-1999
Cc b vi x l i din trong th h ny l cc vi x l 32 bt 80386/80486 v 64 bt
Pentium ca Intel gm c Pentium Pro vi thit k b m trn cng vi mch x l, Pentium
MMX vi cc m rng cho a phng tin, Pentium II, Pentium III. Song song vi cc h vi
x l ca hng Intel, hng Motorola cng a ra cc vi x l 32 bt 68020/68030/68040 v
cc vi x l 64 bt 68060/64. c im ca cc b vi x l c s lng transistor rt ln (t
vi 3 triu n trn 50 triu transistor. Phn ln cc b vi x l mi thc hin nhiu hn 1
lnh trong mt chu k, v tch hp n v x l du phy ng FPU (Floating-Point Unit).
Chng c cc thanh ghi dng chung 16-32 bt. Nhiu loi c phn bit cc tp thanh nghi 32-
bt (register file) cho n v nguyn IU (interger unit) v tp thanh ghi 32- bt cho FPU.
Chng c b nh m bn trong mc 1 vi dung lng ln ti 64 KB. a s b nh m mc
1 c phn i: dng cho lnh (Instruction cache-Icache) v dng cho d liu (Data cache-
Dcache). Cc b vi x l cng ngh cao hin nay (advanced microprocessors) tho mn
cc yu cu ch to cc my tnh ln (mainframes) v cc siu my tnh (supercomputers).
Cc vi x l thi ny c but a ch u l 32 bt (phn bit 4 GB b nh) v c kh nng
lm vic vi b nh o. Ngi ta cng p dng cc c ch hoc cc cu trc c s dng
Chng I .Tng quan v vi x l v h vi x l
-14-
trong cc my tnh ln vo cc b vi x l: c ch x l xen k lin tc dng m
lnh(pipeline), b nh m (cache), b nh o. Cc b vi x l ny u c b qun l b nh
(Memory Management Unit-MMU). Chnh nh cc ci tin m cc b vi x l th h ny
c kh nng cnh tranh c vi cc my tnh nh trong rt nhiu lnh vc ng dng. Phn
ln cc b vi x l th h ny u c sn xut bng cng ngh HCMOS.
Bn cnh cc b vi x l vn nng truyn thng thng c dng xy dng cc
my tnh vi tp lnh phc tp (Complex Instruction Set Computer, CISC) ni trn,
trong thi gian ny cng xut hin cc b vi x l ci tin dng xy dng cc my tnh vi
tp lnh rt gn (Reduced Instruction Set Computer, RISC) vi nhiu tnh nng c th so
snh vi cc my tnh ln cc th h trc. l cc b vi x l Alpha ca Digital,
PowerPC ca t hp hng Apple- Motorola- IBM. . . S ra i ca cc vi x l loi RISC
chnh l s bt u cho mt th h khc trong lch s pht trin ca cc th h vi x l.
I.4.5 Giai on 2000-2006
Cc vi x l Intel trong thi gian ny th hin quan im nng cao hiu nng ca b vi
x l v h thng my tnh bng vic nng cao xung nhp. Phin bn Intel Pentium 4 tng
xung nhp t 1,5 GHz nm 2000 ti 3GHz vo nm 2002. Vi kin trc tiu biu cho cc vi x
l ny l Netburst vi kh nng nng cao xung nhp gp 4 ln xung nhp ca h thng. Ngoi
ra, Intel gii thiu cng ngh siu phn lung tng hiu nng cho h thng a nhim v a
lung. V l-gc, cc chng trnh phn mm c th s dng 2 b vi x l trn 1 b vi x l
vt l.
Vic nng cao xung nhp nhanh chng y cc b vi x l ti ngng vt l v in v
nhit nng ta ra. Thc t cho thy y khng phi l phng php hiu qu tng hiu
nng ca h thng. Hng AMD, mt trong nhng i th cnh tranh trc tip ca Intel, nhn
mnh vic tng hiu nng qua vic nng cao tc thc hin cc lnh trong mt chu k my.
AMD l mt trong nhng hng u tin tch hp nhiu b gii m v b iu khin b nh
vo bn trong n v x l trung tm CPU, b nh m mc 1 ln ti 128KB. Cc b vi x
l Athlon 64, Opteron l b vi x l tiu biu ca AMD, c tc xung nhp thp hn nh
hiu nng th khng h thua km Intel. c bit v tiu th in v mc ta nhit th tt hn
hn Intel nh c cc cng ngh kim sot tiu th in.
Trong giai on ny cng chng kin s bng n v vic pht trin b vi x l cho cc
my tnh xch tay. Yu cu rt quan trng vi thit b ny l hiu nng x l mnh nhng
mc tiu th in phi thp my tnh c th hot ng lu di bng pin. Cc b vi x l
di ng ca Intel Pentium Mobile trin khai cc gii php dung ha hai yu cu trn bng
cc nng cao kh nng x l lnh trn 1 chu k xung nhp, nng cao b m mc 2 ln 1MB,
kim sot xung nhp vi x l (Speedstep) theo yu cu ca ng dng. B vi x l di ng u
tin hot ng tn s 1,6GHz c th gim xung ti 200MHz khi ri c hiu nng ngang
nga vi Pentium 4 tn s trn 2GHz.
Mt s kin quan trng trong giai on ny l s ra i ca cc b vi x l 2 nhn cho
cc my vi tnh. Cc h thng a x l trc kia ch c trong mi trng my ch hoc my
trm hiu nng cao. Nm 2005 Intel a ra vi x l a nhn u tin Pentium D vi hai vi x
Chng I .Tng quan v vi x l v h vi x l
-15-
l ring bit trn cng mt vi mch. Ngay sau , AMD cng a ra vi x l a nhn ca
mnh Athlon2. Thc t cho thy thit k ca AMD mang li hiu nng tt hn so vi Intel.
I.4.6 Giai on 2007-nay
Giai on ny tip tc chng kin s gia tng s nhn bn trong b vi x l gia cc
hng sn xut vi x l nh Intel v AMD. Ngoi ra cc yu cu v tiu th in v ta nhit
ca b vi x l cng c quan tm hn. Intel ci tin thit k vi kin trc nhn (Core micro-
architecture) thay th Netburst v a ra th h b vi x l hai nhn mi Core-2. B vi x l
ny khc phc cc im yu ca th h trc c bit v tng quan gia hiu nng v
mc tiu th in. Nm 2006 chng kin s kin mi Intel a ra cc b vi x l vi bn
nhn cho mi trng my ch Intel Xeon Quadcore 5355 v my vi tnh Intel Core-2
Extreme QX6700. Vic kt hp vi cng ngh siu phn lung trong cc b vi x l Core i7
ca Intel cho php nng s vi x l l-gc ln ti 8 cho cc cc chng trnh ng dng.
Bn cnh cc b vi x l cho my PC v my ch, cc hng sn xut vi x l cng pht
trin cc dng vi x l nhng cho cc thit b tnh ton c nhn. u th ca cc vi x l
nhng so vi vi x l k trn l mc tiu th in nng, nng lc x l v chi ph. Intel cung
cp cc vi x l nhng Atom c kh nng x l bng mt na Pentium M cng xung nhp
vi mc tiu th in khong 3W. Ngoi vi x l Intel Atom, trn th trng cn c vi x l
ARM do hng Acon pht trin, VIA Nano ca hng VIA. . .
Chng II. B vi x l Intel 8086
II.1 Cu trc bn trong ca 8086/8088
Intel 8086 l b vi x l 16 bt u tin ca Intel v l vi x l u tin h tr tp lnh
x86. Ngoi ra Intel cng gii thiu 8088 tng thch vi 8086 nhng rng but d liu
bng mt na (8 bt). Vi x l c s dng trong nhiu lnh vc khc nhau, nht l trong cc
my IBM PC/XT. Cc b vi x l thuc h ny s cn c s dng rng ri trong thi gian
ti do tnh k tha ca cc sn phm trong h x86. Cc chng trnh vit cho 8086/8088 vn
c th chy trn cc h thng tin tin sau ny.
II.1.1 S khi
Trong s khi, vi x l 8086 c hai khi chnh BIU v EU. V chi tit, vi x l ny
bao gm cc n v iu khin, s hc v l-gc, hng i lnh v tp cc thanh ghi. Chi tit
cc khi v n v chc nng ny c trnh by trong phn sau.
Hnh II-1. S khi 8086
Chng II. B vi x l Intel 8086
-17-
II.1.2 Cc n v chc nng: BIU, EU, cc thanh ghi v but trong
II.1.2.1 n v giao tip but v thc thi EU
Theo s khi trn Hnh II-1 CPU 8086 c 2 khi chnh: khi phi ghp but BIU
(Bus Interface Unit) v khi thc hin lnh EU (Execution Unit). Vic chia CPU ra thnh 2
phn lm vic ng thi c lin h vi nhau qua m lnh lm tng ng k tc x l ca
CPU. Cc but bn trong CPU c nhim v chuyn ti tn hiu gia cc khi. Trong s cc
but c but d liu 16 bt ca ALU, but cc tn hiu iu khin EU v but trong ca
h thng BIU. Trc khi i ra but ngoi hoc i vo but trong ca b vi x l, cc tn
hiu truyn trn but thng c cho i qua cc b m nng cao tnh tng thch cho
ni ghp hoc nng cao phi ghp.
BIU a ra a ch, c m lnh t b nh, c/ghi d liu t vo cng hoc b nh.
Ni cch khc BIU chu trch nhim a a ch ra but v trao i d liu vi but.
EU bao gm mt n v iu khin, khi ny c mch gii m lnh. M lnh c
vo t b nh c a n u vo ca b gii m, cc thng tin thu c t u ra ca n
s c a n mch to xung iu khin, kt qu l ta thu c cc dy xung khc nhau
trn knh iu khin (tu theo m lnh) iu khin hot ng ca cc b phn bn trong v
bn ngoi CPU. Ngoi ra, EU cn c khi s hc v lgic (Arithmetic and Logic Unit ALU)
dng thc hin cc thao tc khc nhau vi cc ton hng ca lnh. Tm li, khi CPU hot
ng EU s cung cp thng tin v a ch cho BIU khi ny c lnh v d liu, cn bn
thn n th c lnh v gii m lnh.
Trong BIU cn c mt b nh m lnh vi dung lng 6 byte dng cha cc m
lnh ch EU x l (b m lnh ny cn c gi l hng i lnh).
II.1.2.2 Cc thanh ghi
II.1.2.2.a Cc thanh ghi on
Thng thng b nh ca chng trnh my tnh c chia lm cc on phc v cc
chc nng khc nhau nh on cha cc cu lnh, cha d liu. Trong thc t b vi x l
8086 cung cp cc cc thanh ghi 16 bt lin quan n a ch u ca cc on k trn v
chng c gi l cc thanh ghi on (Segment Registers) c th:
Thanh ghi on m CS (Code-Segment),
Thanh ghi on d liu DS (Data sement).
Thanh ghi on ngn xp SS (Stack segment)
Thanh ghi on d liu ph ES (Extra segment).
Cc thanh ghi on 16 bt ny ch ra a ch u ca bn on trong b nh, dung lng
ln nht ca mi on nh ny l 64 Kbyte v ti mt thi im nht nh b vi x l ch lm
vic c vi bn on nh 64 Kbyte ny. xc nh chnh xc v tr mt nh ca
chng trnh cc thanh ghi on s phi phi hp vi cc thanh ghi c bit khc cn gi l
cc thanh ghi lch hay phn on (offset register). Chi tit c trnh by phn II.1.3.
Chng II. B vi x l Intel 8086
-18-
II.1.2.2.b Cc thanh ghi a nng
Trong khi EU c bn thanh ghi a nng 16 bt AX, BX, CX, DX. iu c bit l
khi cn cha cc d liu 8 bt th mi thanh ghi c th tch ra thnh hai thanh ghi 8 bt cao v
thp lm vic c lp, l cc tp thanh ghi AH v AL, BH v BL, CH v CL, DH v
DL (trong H ch phn cao, L ch phn thp). Mi thanh ghi c th dng mt cch vn nng
cha cc tp d liu khc nhau nhng cng c cng vic c bit nht nh ch thao tc
vi mt vi thanh ghi no . Chnh v vy cc thanh ghi thng c gn cho nhng ci tn
c ngha. C th:
AX (accumulator): thanh cha. Cc kt qa ca cc thao tc thng c cha
y (kt qu ca php nhn, chia). Nu kt qu l 8 bt th thanh ghi AL c
coi l thanh ghi tch lu.
BX (base): thanh ghi c s thng cha a ch c s ca mt bng dng trong
lnh XLAT.
CX (count): b m. CX thng c dng cha s ln lp trong trng hp
cc lnh LOOP (lp), cn CL thng cho ta s ln dch hoc quay trong cc
lnh dch hoc quay thanh ghi.
DX (data): thanh ghi d liu DX cng BX tham gia cc thao tc ca php nhn
hoc chia cc s 16 bt. DX thng dng cha a ch ca cc cng trong cc
lnh vo/ ra d liu trc tip.
II.1.2.2.c Cc thanh ghi con tr v ch s
Trong 8088 cn c ba thanh ghi con tr v hai thanh ghi ch s 16 bt. Cc thanh ghi
ny (tr IP) u c th c dng nh cc thanh ghi a nng, nhng ng dng chnh ca mi
thanh ghi l chng c ngm nh nh l thanh ghi lch cho cc on tng ng. C th:
IP: con tr lnh (Instruction Pointer). IP lun tr vo lnh tip theo s c thc
hin nm trong on m CS. a ch y ca lnh tip theo ny ng vi CS:IP
v c xc nh theo cch ni trn.
BP: con tr c s (Base Pointer). BP lun tr vo mt d liu nm trong on
ngn xp SS. a ch y ca mt phn t trong on ngn xp ng vi SS:BP
v c xc nh theo cch ni trn.
SP: con tr ngn xp (Stack Pointer). SP lun tr vo nh hin thi ca ngn xp
nm trong on ngn xp SS. a ch nh ngn xp ng vi SS:SP v c xc
nh theo cch ni trn.
SI: ch s gc hay ngun (Source Index). SI ch vo d liu trong on d liu DS
m a ch c th y ng vi DS:SI v c xc nh theo cch ni trn.
DI: ch s ch (Destination Index). DI ch vo d liu trong on d liu DS m
a ch c th y ng vi DS:DI v c xc nh theo cch ni trn.
Ring trong cc lnh thao tc vi d liu kiu chui th cp ES:DI lun ng vi a
ch ca phn t thuc chui ch cn cp DS:SI ng vi a ch ca phn t thuc chui gc.
Chng II. B vi x l Intel 8086
-19-
II.1.2.2.d Thanh ghi c FR (Flag Register)
y l thanh ghi kh c bit trong CPU, mi bt ca n c dng phn nh
mt trng thi nht nh ca kt qu php ton do ALU thc hin hoc mt trng thi hot
ng ca EU. Da vo cc c ny ngi lp trnh c th c cc lnh thch hp tip theo cho
b vi x l (cc lnh nhy c iu kin). Thanh ghi c gm 16 bt nhng ngi ta ch dng
ht 9 bt ca n lm cc bt c nh hnh v di y.
U khng s dng.
C hoc CF (Carry Flag): c nh. CF = 1 khi c nh hoc mun t bt c ngha ln
nht MSB (Most Significant Bit).
P hoc PF (Parity Flag): c parity. PF phn nh tnh chn l ca tng s bt 1 c
trong kt qu. C PF =1 khi tng s bt 1 trong kt qu l chn (even parity).
A hoc AF (Auxiliary Carry Flag): c nh ph rt c ngha khi ta lm vic vi
cc s BCD (Binary Coded Decimal). AF = 1 khi c nh hoc mun t mt s
BCD thp (4 bt thp) sang mt s BCD cao (4 bt cao).
Z hoc ZF (Zero Flag): c rng. ZF =1 khi kt qu = 0.
S hoc SF (sign flag): c du. SF = 1 khi kt qu m.
O hoc OF (Overflow Flag): c trn. OF = 1 khi kt qu l mt s b 2 vt qua
ngoi gii hn biu din dnh cho n.
Trn y l 6 bt c trng thi phn nh cc trng thi khc nhau ca kt sau mt thao
tc no , trong 5 bt c u thuc byte thp ca thanh c l cc c ging nh ca b vi
x l 8 bt 8085 ca Intel. Chng c lp hoc xo tu theo cc iu kin c th sau cc
thao tc ca ALU. Ngoi ra, b vi x l 8086/8088 cn c cc c iu khin sau y (cc c
ny c lp hoc xo bng cc lnh ring):
T hoc TF (Trap Flag): c by. TF = 1 th CPU lm vic ch chy tng lnh
(ch ny dng khi cn tm li trong mt chng trnh).
I hoc IF (Interrupt Enable Flag): c cho php ngt. IF = 1 th CPU cho php cc
yu cu ngt (che c) c tc ng.
D hoc DF (Direction Flag): c hng. DF = 1 khi CPU lm vic vi chui k t
theo th t t phi sang tri (v vy D chnh l c li)
Hnh II-2. Thanh ghi c
Chng II. B vi x l Intel 8086
-20-
II.1.3 Phn on b nh ca 8086/8088
Khi BIU a ra trn but a ch 20 bt a ch, nh vy 8086/8088 c kh nng phn
bit ra c 2
20
= 1.048.576 = 1M nh hay 1Mbyte, v cc b nh thng t chc theo
byte. Ni cch khc: khng gian a ch ca 8088 l 1Mbyte. Trong khng gian 1Mbyte b
nh cn c chia thnh cc vng khc nhau (iu ny rt c li khi lm vic ch nhiu
ngi s dng hoc a nhim) dnh ring :
Cha m chng trnh.
Cha d liu v kt qu khng gian ca chng trnh.
To ra mt vng nh c bit gi l ngn xp (stack) dng vo vic qun l cc
thng s ca b vi x l khi gi chng trnh con hoc tr v t chng trnh
con.
Trong thc t b vi x l 8086/8088 c cc thanh ghi 16 bt lin quan n a ch u
ca cc vng (cc on) k trn v chng c gi l cc thanh ghi on (Segment
Registers). l thanh ghi on m CS (Code-Segment), thanh ghi on d liu DS (Data
Sement), thanh ghi on ngn xp SS (Stack Segment) v thanh ghi on d liu ph ES
(Extra Segment). Cc thanh ghi on 16 bt ny ch ra a ch u ca bn on trong b nh,
dung lng ln nht ca mi on nh ny l 64 Kbyte v ti mt thi im nht nh b vi
x l ch lm vic c vi bn on nh 64 Kbyte ny. Vic thay i gi tr ca cc thanh
ghi on lm cho cc on c th dch chuyn linh hot trong phm vi khng gian 1 Mbyte.
V vy cc on ny c th nm cch nhau khi thng tin cn lu i hi dung lng 64
Kbyte hoc cng c th nm trm nhau do c nhng on khng cn dng ht on di 64
Kbyte v v vy nhng on khc c th bt u ni tip ngay sau . iu ny cng cho
php ta truy nhp vo bt k on nh (64 Kbyte) no nm trong ton b khng gian 1
MByte.
Ni dung cc thanh ghi on s xc nh a ch ca nh nm u on. a ch
ny cn gi l a ch c s. a ch ca cc nh khc nm trong on tnh c bng cch
cng thm vo a ch c s mt gi tr gi l a ch lch hay lch (Offset), do n ng vi
khong lch a ch ca mt nh c th no so vi u on. lch ny c xc
nh bi cc thanh ghi 16 bt khc ng vai tr thanh ghi lch (offset register) m ta s c
trnh by sau. C th, xc nh a ch vt l 20 bt ca mt nh no trong mt on
bt k. CPU 8086/8088 phi dng n 2 thanh ghi 16 bt: mt thanh ghi cha a ch c
s, cn thanh kia cha lch. T ni dung ca cp thanh ghi to ra a ch vt l theo
cng thc sau:
achvtl=Thanh_ghi_an16+Thanh_ghi_lch
Vic dng 2 thanh ghi ghi nh thng tin v a ch thc cht to ra mt loi a
ch gi l a ch logic v c k hiu nh sau:
Thanh_ghi_on: Thanh_ghi_lch hay segment: offset
a ch kiu segment: offset l logic v n tn ti di dng gi tr ca cc thanh ghi c
th bn trng CPU v ghi cn thit truy cp nh no th n phi c i ra a ch vt
Chng II. B vi x l Intel 8086
-21-
l ri c a ln but a ch. Vic chuyn i ny do mt b to a ch thc hin
(phn t
ng
Hnh III-6.Cu trc IF-THEN
iu kin
S
ai
ng
Cng vic 1 Cng vic 1
Hnh III-5 Cu trc IF-THEN-ELSE
Hnh III-6
Chng III. Lp trnh hp ng vi 8086/8088
-52-
CMP AX, 0 ; AX>0?.
JNS DG ; ng.
MOV CL, l ; sai, cho CL 1 ri
JMP RA ; di ra.
DG: XOR CL, CL ; cho CL 0.
RA: ; li ra ca cu trc.
III.3.1.4 Cu trc CASE
CASE Biuthc
Gitr1: Cngvic1
Gitr2: Cngvic2
. . .
GitrN: CngvicN
END CASE
T ng php ca cu trc ta thy nu Biuthc c Gitr1 th Cngvic1 c thc
hin. nu Biuthc c Gitr2 th Cngvic2 c thc hin v c tip tc cho n
CngvicN. iu ny tng ng vi vic dng cc lnh nhy c iu kin v nhy khng
iu kin nhy cc nhn no trong chng trnh hp ng. Cu trc CASE c th thc
hin bng cc cu trc la chn lng nhau.
Bi tp III-4.
Dng CX biu hin cc gi tr khc nhau ca AX theo quy tc sau:
AX < 0 th CX =-1
AX = 0 th CX =0
AX > 0 th CX =1
Biuthc
Cngvic1 CngvicN Cngvic2
Gitr1 Gitr2 GitrN
Hnh III-7. Cu trc lnh CASE
Chng III. Lp trnh hp ng vi 8086/8088
-53-
Gii
Ta c th thc hin cc cng vic trn bng mu chng trnh sau:
CMP AX, 0 ; Kim tra du ca AX.
JL AM ; AX<0.
JE KHONG ; AX =0.
JG DUONG ; AX > 0.
AM: MOV CX, -1
JMP RA
DUONG: MOV CX, 1
JMP RA
KHONG: XOR CX. CX
RA: ; li ra ca cu trc.
III.3.1.5 Cu trc lp FOR - DO
FOR S ln lp DO Cng vic
T ng php cu cu trc FOR - DO ta thy y Cng vic c thc hin lp i lp
li tt c S ln lp li. iu ny hon ton tng g vi vic dng lnh LOOP trong hp
ng lp li CX ln mt Cng vic no , trc ta phi gn S ln lp cho thanh ghi
CX.
Bi tp III-5
Hin th mt dng k t '$' trn mn hnh.
Gii
Mt dng mn hnh trn my IBM PC cha c nhiu nht l 80 k t.
Khi u b m
Cng vic
Gim b m i 1
sai
B m=0
ng
Hnh III-8. Cu trc lp FOR - DO.
Chng III. Lp trnh hp ng vi 8086/8088
-54-
Ta s s dng hm 2 ca ngt 21H hin th 1 k t. Ta phi lp li cng vic ny 80
ln c thy bng lnh LOOP. Mun dng ln ny, ngay t u ta phi np vo thanh ghi CX
s ln hin th, ni dung ca CX c t ng gim i1 do tc ng ca lnh LOOP.
Sau y l mu chng trnh thc hin cc cng vic trn:
MOV CX, 80 ; s ln hin th trong CX
MOV AH, 2 ; AH cha s hiu hm hin th,
MOV DL, '$' ; DL cha k t cn hin th,
HIEN: INT 21H ; hin th
LOOP HIEN ; c mt dng k t.
RA: ; li ra ca cu trc.
III.3.1.6 Cu trc lp WHILE - DO
WHILE iu kin DO Cng vic
T ng php ca cu trc WHILE - DO ta thy: iu kin c kim tra u tin.
Cg vic c lp i lp li chng no iu kin cn ng. iu ny trong hp ng hon
ton tng ng vi vic dng lnh CMP kim tra iu kin v sau dng lnh nhy
c iu kin thot khi vng lp.
Bi tp III-6
m s k t c c t bn phm, khi gp k t CR th thi.
Gii
Ta c th thc hin cng vic trn bng mu chng trnh sau:
XOR CX, CX ; tng s k t c c lc u l 0
MOV AH, 1 ; hm c k t t bn phm.
TIEP: INT 21H ; c 1 k , Al cha m k t.
CMP AL, 13 ; c c CR?
JE RA ; ng, ra.
INC CX ; sai, thm 1 k t vo tng.
RA: ; li ra ca cu trc.
iu kin
Cng vic
sai
ng
sai
ng
iu kin
Cng vic
Hnh III-9. Cu trc WHILE - DO v REPEAT-UNTIL
Chng III. Lp trnh hp ng vi 8086/8088
-55-
III.3.1.7 Cu trc lp REPEAT - UNTIL
REPEAT Cng vic UMTIL iu kin
T ng php ca cu trc REPEAT - UNTIL ta thy: Cng vic c thc hin u
tin. iu c ngha l cng vic c thc hin t nht mt ln. iu kin c kim tra
sau . Cng vic c lp i lp li cho ti iu kin c tho mn. iu ny trong hp
ng hon ton tng ng vi vic dng lnh CMP kim tra iukin v sau dng
lnh nhy c iu kin thot khi vng lp.
Bi tp III-7
c k t t bn phm cho ti khi gp '$' th thi.
Gii
V d ny ch lm mt phn cng vic ca v d trc. Ti y ta ch phi c cc k t
c c.
Ta c th tc hin cng vic trn bng mu chng trnh sau:
MOV Ah, 1 ; hm c k t bn phm.
TIEP: INT 21H ; c 1 k t.
CMP AL, '$' ; c c la ?
RA: ; li ra ca cu trc.
III.4 Gii thiu mt s chng trnh c th
Trong phn ny ta s xt mt s chng trnh cho cc ng dng c th, thng qua cc
v d ny ta c th hc c cc lnh, cch lp chng trnh cng vi cch t chc d liu
gii quyt cc bi ton c th. Mt s chng trnh lin quan n cc vn khc cha c
cp n t trc n nay c th c nu ra nhng chng tng ng sau chng ny.
Trc khi gii thiu cc v d ta h thng li mt vi hm ca cc loi ngt c trong
my IBM PC vi h iu hnh MS DOS hay cha c dng trong cc v d nu trc
y v sau ny.
Bng III-2. Mt s dch v ngt DOS
Ngt INT 20H dnh ring kt thc chng trnh loi. COM
Hm 1 ca ngt INT 21H: c 1 k t t bn phm
Vo: AH = 1
Ra: AL = m ASCH ca k t cn hin th
Al = 0 khi k t g vo l t cc phm chc nng
Hm 2 ca ngt INT 21H: hin 1 k t ln mn hnh
Vo: AH = 2
DL = m ASCH ca k t cn hin th.
Hm 9 ca ngt INT 21H: hin chui k t vi $ cui ln mn hnh
Vo: AH = 9
DX = a ch lch ca chui k t cn hin th.
Hm 4CH ca ngt INT 21H: kt thc chng trnh loi. EXE
Vo: AH = 4CH
Chng III. Lp trnh hp ng vi 8086/8088
-56-
III.4.1 V d 1
Trong phn u ca chng trnh hp ng ta c gii thiu mt chng trnh hin li
cho bng ting Anh "Hello". By gi ta phi thm mt li cho bng ting Vit khng du
"Chao ban" nm cch li cho "Hello" trc y mt s dng nht nh no .
Gii
Ta cng vn s dng phng php c dng chng trnh mu trc y hin
th li cho 'ty', hin cc dng gin cch v hin li cho 'ta'. Trong v d ny ta cng b bt
i cc dng cch u v cui chng trnh rm r.
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
Chao tay DB 'hello!$'
ChaoTa DB 'Chao ban!$'
. Code
MAIN Proc
MOV AX, @ Data ; khi u thanh ghi DS
MOV DS, AX
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
; cch 5 dng dng hm 9 ca INT 21H
LEA DX, CELF
MOV CX, 6 ;CX cha s dng cch +1
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4 CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong chng trnh trn ta dng thanh ghi CX cha s dng phi gin cch. Vi
cch lm ny mi khi mun thay i s dng dn cch gia 2 li cho ta v li cho ty, ta
phi gn gi tr khc cho thanh ghi CX.
III.4.2 V d 2
Trn c s v d trc, ta phi vit chng trnh sao cho s dng gin cch c th thay
i c ngay trong khi chy chng trnh.
Chng III. Lp trnh hp ng vi 8086/8088
-57-
Gii
Mun c s dng cch thay i c theo mun gia 2 li cho ta v ty khi chy
chng trnh m khng phi thay gi tr mi cho thanh ghi CX ngay trong chng trnh nh
v d trc, ta cn dng thm 1 bin mi cha s dng cch v vit chng trnh sao cho
mi khi cho chy th chng trnh c thm phn i thoi ngi s dng c th thay i
gi tr ca s dng gin cch .
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
CRLF DB 13, 10, '$'
ChaoTay DB 'Hello!S'
ChaoTa DB 'Chao ban!S'
Thongbao DB 'go vao so dong cach:S'
SoCRLF DB ?
. Code
MAIN Proc
MOV AX, @Data ; khi u thanh ghi DS
MOV DS, AX
; hin thng bo dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, Thongbao
INT 21H
; c s dng cch dng hm 1 ca INT 21H
MOV AH, 1
INT 21H ; c s dng cch
AND AL, OFH ; i ra h hai
MOV SoCRLE, AL ; ct i
; cch 1 dng dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, CRLF
INT 21H
; hin th li cho dng hm 9 ca INT 21H
MOV AH, 9
LEA DX, ChaoTay
INT 21H
LEA DX, CFLF
Chng III. Lp trnh hp ng vi 8086/8088
-58-
XOR CX, CX
MOV CL, SoCRLE ; CX cha s dng cch
LAP: INT 21H
LOOP LAP
; hin th li cho dng hm 9 ca INT 21H
LEA DX, ChaoTa
INT 21H
; tr v DOS dng hm 4CH ca INT 21H
MOV AH, 4CH
INT 21H
MAIN Endp
END MAIN
Trong v d trn c mt iu cn ch l khi c mt k t t bm phm (trong trng
hp c th ny th l s dng cch) ta s thu c trong thanh ghi AL m ASCII ca k t
(s) g. s dng n trong trng hp c th nh mt gi tr s v ct n ti bin
SoCRLF, ta phi bin i m ASCII ny thnh h s hai. i m ASCII ca mt s ra tr
s hoc ngc li ta cn nh rng gia gi tr s v m ASCII ca s c mt khong cch
l 30H. V d s 9 c m ASCII l 39H (c th c vit l "9"), tng t s 0 c m ASCII
l 30H (c th c vit l "0"). Nh vy vic bin i m ASCII (gi thit c sn trong
AL) ra gi tr s c th thc hin c bng mt trong cc lnh sau:
+ SUB AL, 30H
+ AND AL, 0FH
Tng t nh vy, vic bin i ngc li t s h hai (thng gi thit c sn trong
thanh ghi DL) ra m ASCII ( a ra hin ln mn hnh) c th lm c bng mt trong
cc lnh sau:
+ ADD DL, 30H
+ OR DL, 30H
III.4.3 V d 3
c t bn phm mt s h hai (di nht l 16 bt), kt qu c c ti thanh ghi
BX. Sau hin ni dung thanh ghi BX ra mn hnh.
Gii
Cng vic ca bi ny thc cht gm hai phn, mt phn u ta phi c c s h hai
v ct n ti BX, trong phn tip theo ta phi a c ni dung ca thanh ghi BX ra mn
hnh.
Sau y l chng trnh thc hin cng vic trn:
. Model Small
. Stack 100
. Data
Chng III. Lp trnh hp ng vi 8086/8088
-59-
TBao DB 'Go vao 1 so he hai (max 16 bt, '
DB 'CR de thoi):$'
. Code
MAIN proc
MOV AX, @ Data
MOV DS, AX
MOV AH, 9 ; hin th thng bo
LEA DX, TBao
INT 21H
XOR BX, BX ; BX cha kt qu, lc u l 0
MOV AH, 1 ; hm c 1 s t bn phm
TIEP: INT 21H
CMP AL, 13 ; CR?
JF THOIDOC ; ng, thi c
AND AL, OFH ; khng, i m ASCII ra s
SHL BX, 1 ; dch tri BX 1 bt ly ch
OR BL, AL ; chn bt va c vo kt qu
JMP TIEP ; c tip mt k t
THOIDOC:MOV CX, 16 ; CX cha s bt ca BX
MOV AH, 2 ; hm hin k t
HIEN:XOR DL, DL ; xo DL chun b i
ROL BX, 1 ; a bt MSB ca BX sang CF
ADC DL, 30H ; i gi tr bt ra ASCII
INT 21H ; hin th 1 bt ca BX
LOOP HIEN ; lp li cho n ht
MOV AH, 4CH ; tr v DOS
INT 21H
MAIN Endp
END MAIN
Chng trnh hp ng cho cng vic nu c hnh thnh t 2 phn, mt phn vi
chc nng c v mt phn vi chc nng hin th.
Thut ton cho phn c: c mt k t s, chuyn m ASCII ra s ri chn s c
c vo BX theo th t t phi qua tri, lp li cng vic trn cc s khc.
Thut ton cho phn hin th ngc li so vi phn c: ly ra 1 bt ca s trong BX
theo th t t tri qua phi, i s ra m ASCII ri cho hin th n ra mn hnh, lp li
cng vic trn cho cc s khc.
Cc thut ton ca 2 phn trn v c bn c th ng dng c cho trng hp phi
c v hin th s h mi su hoc h mi.
Chng III. Lp trnh hp ng vi 8086/8088
-60-
Mt s nhn xt c th rt ra khi c chng trnh trn:
Lnh xa thanh ghi BX l rt cn thit sau ny khi g vo cc bt ca n ta
khng nht thit phi g 16 bt m vn xc nh c gi tr ca thanh ghi
ny.
Trong chng trnh ny ta dng lnh ROL quay trn thanh ghi BX, v
vy sau khi quay v hin th tt c 16 bt ca BX ta vn bo ton c gi tr
ca thanh ghi BX lc u. so snh, nu phn trn thay v lnh quay ROL
ta dng lnh dch SHL th ta vn hin th c ng thanh ghi BX, nhng sau
khi hin th xong th qu tr nguyn thy ca thanh ghi BX, nhng sau khi hin
th xong th gi tr nguyn thu ca thanh ghi BX b mt do qu trnh dch gy
nn.
Trong chng trnh ny ta dng lnh cng c nh ADC mt cch rt hiu
dng ly ra 1 bt ca thanh ghi BX t gi tr ca c CF v i lun c n
ra m ASCII cn thit cho vic hin th.
III.4.4 V d 4
Trong thanh ghi BX c sn 4 s h mi su, mi s c biu din bng 1 mu:
Hy lp trnh bin i thanh ghi BX thnh:
(V d: nu nh lc u thanh ghi BX cha gi tr 1234H th sau khi bin i, BX s
cha gi tr 3241H. v. v. . . )
Gii
Thc cht y l kiu bi ton c th ny, sau khi xem xt dng thc ca thanh ghi BX
trc v sau khi bin i, ta thy c th thu c kt qu mt cch rt n gin bng cch
quay tri thanh ghi BX nguyn gc i 4 bt ri sau quay tip thanh ghi BH i 4 bt.
Sau y l chng trnh thc hin cng vic trn.
. Model Small
. Stack 100
. Code
MAIN Proc
MOV CL, 4
ROL BX, CL ; quay BX i 4 bt
MOV CL, 4
ROR BH, CL ; tro 4 bt thp v cao ca BH
MOV AH, 4CH ; tr v DOS
INT 21H
MAIN Endp
Chng III. Lp trnh hp ng vi 8086/8088
-61-
END MAIN
III.4.5 V d 5
C mt chui k t thng trong b nh. Hy to ra mt chui k t ch hoa t chui
trn ri ct chui trong b nh.
Gii:
V d ny v v d trc khi khc nhau cht t trong vic x l cc k t ca chui, v
vy phn trn cc lnh c tnh cht chun b trc v sau cc thao tc vi chui c th coi l
nh nhau. gii bi ton ny c th ng dng cc lnh LODSB v STOSB vi chui
cho. Thut ton l:
Ly tng k t ca chui gc (c) bng lnh LODSB,
Bin i thnh ch hoa bng cch tr i 20H,
Ct k t bin i vo chui ch (mi) bng lnh STOSB.
Sau y l cch t chc d liu v chng trnh cho bi ton trn vi di chui l 8
byte. minh ho mt cch thao tc khc so vi cch v d trc trong v d ny l dng
cch thao tc li i vi chui k t.
. Model Small
. Stack 100
. Data
Str1 DB 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
Tbao DB 'chui c i: ', 10, 13
DB '$'
. Code
MAIN Proc
MOV AX, @Data ; khi u u cho DS v ES
MOV DS, AX
MOV ES, AX
LEA SI, Str1+7 ; SI ch vo cui chui c
LEA DI, Str2+7 ; DI ch vo cui chui mi
STD ; nh hng li
MOV CX, 8 ; CX cha s byte phi i
LAP: LODSB ; ly 1 k t ca chui c
SUB AL, 20H ; i thnh ch hoa
STOSB ; ct vo chui mi
LOOP LAP ; lm cho n ht
LEA DX, Tbao ; chun b hin chui mi
MOV AH, 9
INT 21H
MOV AH, 4CH ; v DOS
INT 21H
MAIN Endp
END MAIN
Chng IV. Phi ghp vi x l vi b nh v cc thit b vo/ra
IV.1 Cc tn hiu ca vi x l v cc mch ph tr
IV.1.1 Cc tn hiu ca 8086/8088
Hnh v trn cho chng ta thy tnh hiu ca 8086. Cc tn hiu ca 8086 v 8088 ch
khc s lng knh d liu. 8086 c 16 ng d liu trong khi 8088 ch c 8 ng d
liu. Di y trnh by ngha cc tn hiu ca 8086,
Chc nng cc tn hiu ti cc chn c th nh sau:
ADO AD15 [I;O: tn hiu vo v ra]: Cc chn dn knh cho cc tn hiu but d
liu v but a ch. Xung ALE s bo cho mnh ngoi bit khi no trn cc ng
c tn hiu d liu (ALE = 0) hoc a ch (ALE = 1). Cc chn ny trng thi tr
khng cao khi P chp nhn treo.
A16/S3, A17/S4, A18/S5, A19/S6 [O]: Cc chn dn knh ca a ch phn cao v
trng thi. a ch A16 - A19 c truyn trn cc chn khi ALE = 1 cn khi AEL
= 0 th trn cc chn c cc tn hiu trng thi S3 - S6. Cc chn ny trng thi
tr khng cao khi P chp nhn treo. Vic kt hp S
3
v S
4
biu din truy nhp
cc thanh ghi nh trong bng di y.
Hnh IV-1. Tn hiu 8086
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-63-
Bng IV-1. Cc bt trng thi v vic truy nhp cc thanh ghi on.
S4 S3 Truy nhp n
0 0 on d liu ph
0 1 on ngn xp
1 0 on m hoc khng on no
1 1 on d liu
RD [O]: Xung cho php c. Khi RD = 0 th but d liu sn sng nhn s liu ti
b nh hoc thit b ngoi vi. Chn RD trng thi tr khng cao khi P chp nhn
treo.
READY [I]: Tn hiu bo cho CPU bit tnh trng sn sng ca thit b ngoi vi hay
b nh. Khi READY = 1 th CPU thc ghi/c m khng cn chn thm cc chu k
i. Ngc li khi thit b ngoi vi hay b nh c tc hot ng chm, chng c
th a tn hiu READY = 0 bo cho CPU bit. Lc ny CPU t ko di thi gian
thc hin lnh ghi/c bng cch chn thm cc chu k i.
INTR [I]: Tn hiu yu cu ngt che c. Khi c yu cu ngt m c cho php ngt
IF = 1 th CPU kt thc lnh ang lm d, sau n i vo chu k chp nhn ngt v
a ra bn ngoi tn hiu INTA = 0.
TEST
[I]: Tn hiu ti chn ny c kim tra bi lnh WAIT. Khi CPU thc hin
lnh WAIT m lc tn hiu
TEST
=1, n s ch cho n khi tn hiu
TEST
= 0 th
mi thc hin lnh tip theo.
NMI [I]: Tn hiu yu cu ngt khng che c. Tn hiu ny khng b khng ch bi
c IF v n s c CPU nhn bit bng cc tc ng ca sn ln ca xung yu cu
ngt. Nhn c yu cu ny CPU kt thc lnh ang lm d, sau n chuyn sang
thc hin chng trnh phc v ngt kiu INT2.
RESET [I]: tn hiu khi ng li 8086/8088. khi RESET = 1 ko di t nht trong
thi gian 4 chu k ng h th 8086/8088 b buc phi khi ng li: n xo cc thanh
ghi DS, ES, SS, IP v FR v 0 v bt u thc hin chng trnh ti a ch
CS:IP=FFFF:0000H (ch c IF 0 cm cc yu cu ngt khc tc ng vo
CPU v c TF0 b vi x l khng -b t trong ch chy tng lnh).
CLK [I]: Tn hiu ng h (xung nhp). Xung nhp c rng l 77% v cung cp
nhp lm vic cho CPU.
Vcc [I]: Chn ngun. Ti y CPU c cung cp 5V10%. 340mA
GND [O]: Hai chn ngun ni vi im 0V ca ngun nui.
MN/MX [I]: Chn iu khin hot ng ca CPU theo ch MIN/MAX. Do
8086/8088 c th lm vic 2 ch khc nhau nn c mt s chn tn hiu ph
thuc vo cc ch .
a) Ch MIN (Chn MN/MX cn c ni thng vo +5V m khng qua in tr)
o Trong ch MIN tt c cc tn hiu iu khin lin quan n cc thit b
ngoi vi truyn thng v b nh ging nh trong h 8085 u c sn trong
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-64-
8086/8088. V vy vic phi ghp vi cc thit b s rt d dng v chnh v
tn dng c cc phi ghp ngoi vi sn nn c th gim gi thnh h thng.
o IO/ [O]: Tn hiu ny phn bit trong thi im nh phn t no trong
cc thit b vo/ra (IO) hoc b nh (M) c chn lm vic vi CPU. Trn
but a ch lc s c cc a ch tng ng ca cc thit b . Chn ny
trng thi tr khng cao khi P chp nhn treo.
o
WR
[O]: Xung cho php ghi. Khi CPU a ra =0 th trn but d liu cc
d liu n nh v chng s c ghi vo b nh hoc thit b ngoi vi ti
thi im
WR
= 1. Chn
WR
trng thi tr khng cao khi P chp nhn treo.
o INTA [O]: Tn hiu bo cho cc mch bn ngoi bit CPU chp nhn yu cu
ngt INTR. Lc ny CPU a ra INTA = 0 bo l n ang ch mch ngoi
a vo s hiu ngt (kiu ngt) trn but d liu.
o ALE [O]: Xung cho php cht a ch. Khi ALE = 1 c ngha l trn but dn
knh AD c cc a ch ca thit b vo/ra hay ca nh. ALE khng bao gi
b th ni (trong trng thi tr khng cao) khi CPU b treo th ALE = 0.
o DT/ [O]: Tn hiu iu khin cc m 2 chiu ca but d liu chn
chiu chuyn ca vn d liu trn but D. Chn ny trng thi tr khng cao
khi P chp nhn treo.
o
DEN
[O]: Tn hiu bo cho bn ngoi bit l lc ny trn but dn knh AD
c d liu n nh. Chn ny trng thi tr khng cao khi P chp nhn treo.
o HOLD [I]: Tn hiu yu cu treo CPU mch ngoi thc hin vic trao i
d liu vi b nh bng cch truy nhp trc tip. Khi HOLD = 1. CPU 8086
s t tch ra h thng bng cch treo tt c cc but A, but D, but C ca n
(cc but trng thi tr khng cao) b iu khin DMA (DMA
contrroller, DMAC) c th ly c quyn iu khin h thng lm cc
cng vic trao i d liu.
Bng IV-2. Cc chu k ca but qua cc tn hiu SS0 , IO/ M , DT/ R
IO/ M DT/ R
SS0 Chu k iu khin ca but
0 0 0 c m lnh
0 0 1 c b nh
0 1 0 Ghi b nh
0 1 1 But r (ngh)
1 0 0 Chp nhn yu cu ngt
1 0 1 c thit b ngoi vi
1 1 0 Ghi thit b ngoi vi
1 1 1 Dng (halt)
M
WR
R
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-65-
Bt S6 = 0 lin tc, bt S5 phn knh gi tr bt IF ca thanh ghi c. Hai bt S3
v S4 phi hp vi nhau ch ra vic truy nhp cc thanh ghi on
o HLDA [O]: Tn hiu bo cho bn ngoi bit yu cu treo CPU dng cc
but c chp nhn, v CPU 8086/8088 treo cc but A, but D v mt
s tn hiu ca but C.
o
SSO
[O]: Tn hiu trng thi c dng kt hp vi IO/M v DT/
R
gii
m cc chu k hot ng ca but.
b) Ch MAX (Chn MN/MX ni t)
o Trong ch MAX mt s tn hiu iu khin cn thit c to ra trn c s
cc tn hiu trng thi nh dng thm bn ngoi mt mch iu khin but
8288. Ch MAX c s dng khi trong h thng c mt b ng x l
ton hc 8087.
o 2 S
v [O]: Cc chn trng thi dng trong ch MAX ghp vi
mch iu khin but 8288. Cc tn hiu ny c 8288 dng to ra cc tn
hiu iu khin trong cc chu k hot ng ca but. Cc tn hiu iu khin
c ch ra trong bng di y.
Bng IV-3. Cc tn hiu iu khin ca 8288.
2 S 1 S 0 S
Chu k iu khin ca but Tn hiu
0 0 0 Chp nhn yu cu ngt INTA
0 0 1 c thit b ngoi vi IORC
0 1 0 Ghi thit b ngoi vi
IOWC, AIOWC
0 1 1 Dng (halt) Khng
1 0 0 c m lnh MRDC
1 0 1 c b nh MRDC
1 1 0 Ghi b nh
MWTC, AMWC
1 1 1 But ri (ngh) Khng
o RQ/ 0 GT v RQ/ 1 GT [I/O]: Cc tn hiu yu cu dng but ca cc b x l
khc hoc thng bo chp nhn treo ca CPU cho cc b vi x l khc
dng but. RQ/ 0 GT c mc u tin hn RQ/ 1 GT .
o LOCK [O]: Tn hiu do CPU a ra cm cc b x l khc trong h thng
dng but trong khi n ang thi hnh mt lnh no t sau tip u LOCK.
o QS0 v QS1 [O]: Tn hiu thng bo cc trng thi khc nhau ca m lnh
(hng i lnh). Bng IV-4 cho bit cc trng thi ca m lnh c m ho
bng cc tn hiu trn.
Trong h vi x l vi s c mt ca b ng h x l ton hc 8087, cc
tn hiu ny c mch 8087 dng ng b qu trnh hot ng ca n vi
b vi x l 8086/8088.
1 S 0 S
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-66-
Bng IV-4. Cc trng thi ca lnh m
QS1 QS0 Trng thi lnh m
0 0 Khng hot ng
0 1 c byte m lnh u tin t m lnh
1 0 c lnh rng
1 1 c byte tip theo t m lnh
IV.1.2 Phn knh tch thng tin v vic m cho cc but
gim bt kh khn v mt cng ngh do vic phi ch to nhiu chn cho cc tn
hiu ca vi mch CPU, ngi ta tm cch hn ch s chn ca vi mch bng cch dn knh
nhiu tn hiu trn cng mt chn. V d cc chn AD
0
AD
16
ca 8086 c dn knh c
th a ra bn ngoi cc thng tin v a ch v d liu. Khi nhn c cc tn hiu bn
ngoi vi mch, ta phi tin hnh tch cc tn hiu ti to li cc tn hiu gc cho cc but
c lp (but a ch v but d liu). Vic ny thc hin bng cch s dng cc vi mch
chc nng thch hp bn ngoi (thng thng th l cc mch cht). Ta cng phi lm
tng t nh vy i vi cc chn dn a ch/trng thi. h tr cho vic tch thng tin
ny, CPU a ra thm xung ALE sao cho khi ALE mc cao s c tc dng bo cho bn
ngoi bit lc ny thng tin v a ch ti cc chn dn knh c gi tr. Xung ALE c dng
m cc mch cht v tch c cc thng tin v a ch b dn knh.
Mun nng cao ti ca cc but m nhn vic nui cc mch bn ngoi. Cc tn
hiu ra v vo CPU cn phi c khuch i thng qua cc mch m mt chiu hoc hai
chiu vi cc u ra thng hoc u ra 3 trng thi.
Hnh IV-3 cho thy mt v d n gin cc t chc vic tch tn hiu a ch t cc tn
hiu dn knh ch/d liu hoc a ch/iu khin bng cc mch cht 74LS373 v vic s
dng cc b khuch i m 74LS244 v 74LS245 cho cc tn hiu ca b vi x l
8086/8088 lm vic ch MAX.
Hnh IV-3 cho thy s c mt ca cc mch ph tr nh: b iu khin but 8288, b
to ra xung ng h 8284. Ngoi ra cn c th c cc mch ph tr khc nh: b phi ghp
ngoi vi song song 8255, b iu khin truy nhp trc tip vo b nh 8237 v b iu khin
ngt u tin 8259.
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-67-
IV.1.3 Mch to xung nhp 8284.
Cho d lm vic trong ch MIN hay MAX, CPU 8086/8088 lun cn xung nhp
(xung ng h) t mch to xung nhip 8284. Mch to xung nhp khng nhng cung cp
xung nhp vi tn s thch hp cho ton h m n cn c nh hng ti vic ng b tn hiu
RESET v tn hiu READY ca CPU (Hnh IV-4). ngha ca cc tn hiu
1 AEN , 2 AEN : Tn hiu cho php chn u vo tng ng RDY1, RDY2 lm tn
hiu bo tnh trng sn sng ca b nh hoc thit b ngoi vi.
RDY1, RDY2: cng vi 1 AEN , 2 AEN dng to ra cc chu k i CPU.
ASYNC : Chn ng b hai tng hoc ng b mt tng cho tn hiu RDY1, RDY2.
Trong ch ng b mt tng ( ASYNC = 1) tn hiu RDY c nh hng n tn hiu
READY ti sn xung ca xung ng h tip theo. Cn trong ch ng b hai
tng ( ASYNC = 0) tn hiu RDY ch c nh hng n tn hiu READY khi c sn
xung ca xung ng h tip theo.
READY: Ni n u READY ca CPU. Tn hiu ny c ng b vi cc tn hiu
RDY1, RDY2.
X1, X2: Ni vi hai chn ca thch anh vi tn s f
x
, thch anh ny l mt b phn
ca mt mch dao ng bn trong 8284 c nhim v to xung chun dng lm tn
hiu ng h cho ton h thng.
74LS245
x2
8284A
Clock
Generator
RDY
Vcc
8086
CPU
CLK
READY
RESET
MN/MX#
S0#
S1#
S2#
8288
Bus
Controller
MRDC#
MWTC#
AMWC#
IORC#
IOWC#
AIOWC#
INTA#
CLK
74LS373
x3
ADDR/DATA
LE
OE#
ALE
DEN
DT/R#
BHE
#
AD15:AD0
A19:A16
74LS245
x2
EN#
DIR
D15:D0
A19:A0,
BHE#
ADDR/Data
INTR
8086 Ch max
Hnh IV-3. But h thng 8086 c m
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-68-
F/ C : Dng chn ngun tn hiu chun cho 8284. Khi chn ny mc cao th xung
ng h bn ngoi s c dng lm xung nhp cho 8284, ngc li th xung ng h
ca mch dao ng bn trong dng thch anh s c chn lm xung nhp.
EFI: li vo cho xung t b dao ng ngoi.
CLK: Xung nhp f
CLK
=f
x
/3vi rng 77% ni n chn ca CLK ca 8086/8088.
PCLK: Xung nhp f
CLK
=f
x
/6vi rng 50% dnh cho thit b ngoi vi.
OSC: Xung nhp c khuch i c tn s bng f
x
ca b dao ng.
RES : Chn khi ng, ni vi mch RC 8284 t khi ng khi bt ngun.
RESET: Ni vo RESETca 8086/8088 v l tn hiu khi ng li cho ton h
CSYNC: Li vo cho xung ng b chung khi trong h thng c cc 8284 dng dao
ng ngoi ti chn ny (Hnh IV-4)
Hnh IV-4 biu din cc ng ni tn hiu chnh ca 8086/8088 v 8284. Mch 8284
nhn c xung khi ng t bn ngoi thng qua mch RC khi c ngun hoc xung khi
ng li khi bm cng tc K. T xung ny 8284 c nhim v a ra xung khi ng ng b
cho CPU cng vi tt c cc thnh phn khc ca h thng.
IV.1.4 Mch iu khin but 8288
Nh gii thiu phn trc, vi mch 8288 l mch iu khin but, n ly mt s
tn hiu iu khin ca CPU v cung cp tt c cc tn hiu iu khin cn thit cho h vi x
l khi CPU 8086 lm vic ch MAX. S chn v cc tn hiu ca 8288.
Hnh IV-4. Ni 8284 vi 8086/8088
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-69-
Cc tn hiu chnh ca 8288 bao gm:
2
S ,
1
S ,
0
S [I, I, I]: l cc tn hiu trng thi ly thng t CPU. Tu theo cc tn
hiu ny m mch 8288 s to ra cc tn hiu iu khin khc nhau ti cc chn ra
ca n iu khin hot ng ca cc thit b ni vi CPU. Bng 5. 3 m t cc
tn hiu vo v ra .
CLK [I]: y l u vo ni vi xung ng h h thng (t mch 8284) v dng
ng b ton b cc xung iu khin i ra t mch 8288.
CEN [I]: L tn hiu u vo cho php a ra tn hiu DEN v cc tn hiu iu
khin khc ca 8288.
IOB [I]: tn hiu iu khin mch 8288 lm vic cc ch but khc nhau.
Khi IOB = 1 8288 lm vic ch but vo/ra, khi IOB = 0 mch 8288 lm vic
ch but h thng (nh trong cc my IBM PC).
MRDC [O]: tn hiu iu khin c b nh. N kch hot b nh a d liu ra
but.
MWTC[O] AMWC [O]: l cc tn hiu iu khin ghi b nh hoc ghi b nh ko
di.
thc cht l cc tn hiu ging nh MEMW , nhng AMWC (advanced
memory write command) hot ng sm ln mt cht to ra kh nng cho cc
b nh chm c thm c thi gian ghi.
IORC [O]: tn hiu iu khin c thit b ngoi vi. N kch hot cc thit b
c chn cc thit b ny a d liu ra but.
IOWC[O] AIOWC[O]: l cc tn hiu iu khin c thit b ngoi vi hoc c
thit b ngoi vi ko di. thc cht l cc tn hiu ging nh IOW, nhng
AIOWC (advanced I/O write command) hot ng sm ln mt cht to ra kh
nng cho cc b nh chm c thm c thi gian ghi.
INTA [O]: l u ra thng bo l CPU chp nhn yu cu ngt ca thit b
ngoi vi v lc ny cc thit b ngoi vi phi a ra s hiu ngt ra but CPU
c.
DT/ R [O]: l tn hiu iu khin hng i ca d liu trong h vo hay ra so
vi CPU (DT/ R = 0: CPU c d liu, DT/ R = 1 CPU ghi d liu).
Hnh IV-5. B iu khin but 8288
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-70-
Trong cc my IBM PC th tn hiu ny c ni n cc chn DIR ca mch m
2 chiu 74LS245 iu khin d liu i t CPU n but h thng khi ghi hoc
ngc li, t but h thng n CPU khi c.
DEN [O]: y l tn hiu iu khin but d liu tr thnh but cc b hay
but h thng.
Trong cc my IBM PC th tn hiu ny c s dng cng vi tn hiu ca mch
iu khin ngt PIC 8259 to ra tn hiu iu khin cc G ca mch m 2
chiu 74LS245.
MCE/ PDEN [O]: y l tn hiu dng nh ch lm vic cho mch iu
khin ngt PIC 8259 n lm vic ch ch.
ALE [O]: y l tn hiu cho php cht a ch ti cc chn dn knh a ch - d
liu AD0 - AD7, tn hiu ny thng c ni vi chn G ca mch 74LS373
iu khin mch ny cht ly a ch.
IV.1.5 Biu thi gian ca cc lnh ghi/c
Hnh IV-6 v Hnh IV-7 l cc biu thi gian c n gin ho ca cc tn hiu
c bn trong CPU 8086/8088 cho cc lnh ghi/c b nh hoc thit b ngoi vi.
Mt chu k ghi/c bnh thng (cn gi l chu k but) ca CPU ko di 4 chu k
ng h. Cc chu k ng h c nh du l T1, T2, T3 v T4. Nu CPU lm vic vi tn
s ng h 5MHz th mt chu k ng h ko di T=200ns v mt chu k but ko di
4*T=800ns.
Chng ta m t tm tt cc hin tng xy ra trong mt chu k T ni trn.
Chu k T1:
Trong chu k ny a ch ca b nh hay thit b ngoi vi c a ra trn cc ng
a ch, hoc a ch/d liu v a ch/ trng thi. Cc tn hiu iu khin ALE, DT/ ,IO/
cng c a ra gip vic hon tt vic gi thng tin a ch ny.
Chu k T2:
Trong chu ny CPU a ra cc tn hiu iu khin hoc , v tn hiu
d liu trn D0 - D7 nu l lnh ghi. thng dng m cc b m ca but d liu
nu nh chng c dng trong h. Ti cui k T2 (v gia mi chu k T ca T
w
, nu c)
CPU ly mu tn hiu READY x l trong chu k tip theo khi n phi lm vic vi b
nh hoc thit b ngoi vi chm.
R
M
RD WR DEN
DEN
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-71-
ALE
T1
CLOCK
T2 T3 T4
AD15 - AD0
A19/S6 - A16/S3
DT/R
__
IO/M
__
_____
WR
DEN
______
A19 - A0
from 74LS373 to memory
A19 - A16 S6 - S3
A19 - A0 from 74LS373
A15 A0 D15 - D0 (ti but ngoi )
2 xung nhp
rng xung
ghi
Ch d liu
Tr iu
khin
Hnh IV-7. Biu ghi n gin ha
ALE
T1
CLOCK
T2 T3 T4
AD15
- AD0
A19/S6 - A16/S3
DT/R
__
IO/M
__
____
RD
DEN
______
A19 - A16 S6 - S3
Truy nhp
a ch
Tr a
ch
Xc lp
d liu
D liu ngoi Rc A15 A0
Xung c
Hnh IV-6. Biu c n gin ha
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-72-
Chu k T3:
Trong chu k ny CPU dnh thi gi cho b nh hay thit b ngoi vi khi nhp d liu.
Nu l chu k c d liu th ti cui T3 CPU s ly mu tn hiu ca but d liu.
Nu ti cui chu k ng h T2 (hoc gia mi chu k T ca T
w
) m CPU pht hin ra
tn hiu READY=0 (do b nh hay thit b ngoi vi a n) th CPU t xen vo sau T3 mt
vi chu k T to chu k i T
w
= n*T nhm ko di thi gian thc hin lnh, to iu kin
cho b nh hoc thit b ngoi vi c thi gian hon tt vic ghi/c d liu.
Chu k T4:
Trong chu k ny cc tn hiu trn but c a v trng thi b ng chun b cho
chu k but mi. Tn hiu WR trong khi chuyn trng thi t 0 ln 1 s kch hot ng qu
trnh a vo b nh hay thit b ngoi vi.
Trn cc biu c ghi cng biu din cc thng s quan trng v mt thi gian lin
quan n tc hot ng ti thiu cn thit ca cc b nh hoc thit b ngoi vi nu chng
mun lm vic vi CPU 5MHz.
Trong biu thi gian c (Hnh IV-6) ta thy vic truy nhp b nh ko di trong
khong thi gian t T1 - T3 (gn 3 chu k ng h 3*T = 600 ms). Trong tng s thi gian
ny phi tnh n thi gian tr khi chuyn a ch t
tr a ch
= 110ns, thi gian gi ca d liu
khi c t
giR
= 30 ns v thi gian tr do vic truyn tn hiu qua cc mch m nhiu nht l
t
tr m
= 40ns. Nh vy cc b nh ni vi 8086/8088 - 5MHz cn phi c thi gian truy nhp
nh hn:
3*T - t
tr a ch
- t
giR
- t
tr m
= 600 - 110 - 30 - 40 = 420ns.
Mt khc vi CPU 8086/8088 5MHz th rng xung c l T
RD
= 325ns, l thi
gian di cho b nh vi thi gian truy nhp c 420ns lm vic.
Trong biu thi gian ghi (Hnh IV-7) ta thy phi c mt thi gian gi d liu ti
thiu ghi t
giW
= 88ns sau khi WR t bin t 0 ln 1. trong thc t thi gian ny gn nh
bng 0 i vi b nh thng dng. di ca xung ghi i vi CPU 8086/8088 - 5MHz l
t
WR
= 340ns cng l ph hp vi cc b nh vi thi gian truy nhp c 450ns.
IV.2 Phi ghp vi x l vi b nh
IV.2.1 Gii thiu b nh
Cc b nh bn dn thng dng vi b vi x l bao gm:
B nh c nh ROM (Read Only Memory, b nh c ni dung ghi sn ch
c ra). Thng tin ghi trong mch khng b mt khi mt ngun in nui cho
mch.
B nh bn c nh EPROM (Erraseble Programmable ROM l b nh ROM
c th lp trnh c bng xung in v xo c bng tia cc tm).
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-73-
B nh khng c nh RAM (Random Access Memory, b nh truy nhp
ngu nhin) thng tin ghi trong mch b mt khi mt ngun in nui cho
mch. Trong cc b nh RAM ta cn phn bit ra loi RAM tnh (Static RAM
hay SRAM, trong mi phn t nh l mt mch lt hay trng thi n nh)
v loi RAM ng (Dynamic RAM hay DRAM, trong mi phn t nh l
mt t in rt nh c ch to bng cng ngh MOS).
Mt b nh thng c ch to nn t nhiu vi mch nh. Mt vi mch nh thng
c dng cu trc tiu biu nh hnh sau
Theo s khi ny ta thy mt l vi mnh nh c cc nhm tn hiu sau:
a) Nhm tn hiu a ch:
Cc tn hiu a ch c tc dng chn ra mt nh. Cc nh c di khc
nhau (cn gi l t nh) tu theo nh sn xut: 1, 4, 8, bt. S ng tn hiu a
ch c lin quan n dung lng ca mch nh. Vi mt mch nh c m bt a
ch th dung lng ca mnh nh l 2
m
t nh. V d, vi m = 10 ta c dung
lng mch nh l 1K nh (1 kil = 2
10
= 1024) v vi m=20 ta c dung
lng mch nh l 1M nh (1 Mga = 2
20
= 1048576).
b) Nhm tn hiu d liu:
Cc tn hiu d liu thng l u ra i vi mch ROM hoc u vo/ra d
liu chung (hai chiu) i vi mch RAM. Ngoi ra c mch nh RAM vi u
ra v u vo d liu ring bit. Cc mch nh thng c u ra d liu kiu 3
trng thi. S ng dy d liu quyt nh di t nh ca mch nh. Thng
thng ngi ta hay ni r dung lng v di t nh cng mt lc. V d
mch nh dung lng 1 Kx8 (tc l 1KB) hoc 16Kx4. . .
c) Nhm tn hiu chn vi mch (chn v):
Cc tn hiu chn vi mch l CS (chip select) hoc CE (Chip enable) thng
c dng to ra vi mch nh c th ghi/c. Tn hiu chn vi mch cc
Hnh IV-8. Vi mch nh khi qut
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-74-
mch RAM thng la CS , cn mch ROM thng l CE . Cc tn hiu chn
vi mch thng c ni vi u ra ca b gii m a ch. Khi mt mnh nh
khng c chn th but d liu ca n b treo ( trng thi tr khng cao)
d) Nhm tn hiu iu khin:
Tn hiu iu khin cn c trong tt c cc mch nh. Cc mch nh ROM
thng c mt u vo iu khin OE (output enable) cho php d liu
c a ra but. Mt mt mch nh khng c m bi OE th but d liu
ca n b treo. Mt mch nh RAM nu ch c mt tn hiu iu khin th
thng l R /W iu khin qu trnh ghi/c. Nu mch nh RAM c hai
tn hiu iu khin thng l WE (write enable) iu khin ghi v OE
iu khin c. Hai tn hiu ny phi loi tr ln nhau (ngc pha) iu
khin vic ghi/c mch nh.
Mt thng s c trng khc ca b nh l thi gian truy nhp t
ac
c nh ngha nh
l thi gian k t khi c xung a ch trn but a ch cho n khi c d liu ra n nh trn
but d liu. Thi gian thm nhm b nh ph thuc rt nhiu vo cng ngh ch to nn n.
Cc b nh lm bng cng ngh lng cc c thi gian truy nhp nh (10 - 30ns) cn cc b
nh lm bng cng ngh MOS c thi gian truy nhp ln hn nhiu (c 150ms hoc hn
na).
IV.2.2 Gii m a ch cho b nh
IV.2.2.1 Gii thiu
Mi mch nh ni ghp vi CPU cn phi c CPU tham chiu chnh xc khi thc
hin cc thao tc ghi/c. iu c ngha l mi mch nh phi c gn cho mt vng
ring bit c a ch xc nh nm trong khng gian a ch tng th ca b nh. Vic gn a
ch c th cho mch nh c thc hin nh mt xung chn vi mch ly t mch gii m a
ch. Vic phn nh khng gian a ch tng th thnh cc cng nh khc nhau thc hin
nhng chc nng nht nh gi l phn vng b nh. V d, i vi CPU 8086/8088 th
khng gian a ch tng th dnh cho b nh l 1MB, trong vng nh dung lng 1 KB k
t a ch thp nht 00000H nht thit phi c dnh cho RAM (v y l bng gm 256
vect ngt ca 8086/8088), ti cn vng nh c cha a ch FFFF0H th li nht thit phi
dnh cho ROM hay EPROM (v FFFF0H l a ch bt u ca on m khi ng ca
CPU).
V nguyn tc mt b gii m a ch khi qut thng c cu to nh trn Hnh IV-9
di y. u vo ca b gii m l cc tn hiu a ch v tn hiu iu khin. Cc tn hiu
a ch gm cc bt a ch c quan h nht nh vi cc tn hiu chn v u ra. Thng l
cc tn hiu a ch tng ng vi di a ch cp cho vi mch nh s sinh ra tn hiu chn v
tng ng. Tn hiu iu khin thng l tn hiu IO/ dng phn bit i tng m
CPU chn lm vic l b nh hay thit b vo/ra. Mch gii m l mt trong nhng khu tng
M
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-75-
thm tr thi gian ca tn hiu t CPU ti b nh hoc thit b ngoi vi. Tu theo quy m ca
mch gii m m ta c th c u ra mt hay nhiu tn hiu chn v.
Gii m y cho mt mch nh i hi ta phi a n u vo ca mch gii m
cc tn hiu a ch sao cho tn hiu u ra ca n ch chn ring mch nh nh. Trong
trng hp ny ta phi dng t hp y ca cc u vo a ch tng ng chn c
mch nh, v xung nhn c t mch gii m ngoi vic chn mch nh vng nh s
c th chn ra cc mch nh cc vng nh khc na. Ni cch khc, t mt t hp tn hiu
a ch, b gii m s ch sinh ra mt tn hiu chn v duy nht ng vi khng gian a ch
cp cho vi mch nh.
Gii m a ch thiu hay gii m rt gn th ta ch dng mt nhm trong s cc tn hiu
a ch sinh ra tn hiu chn v cho mch nh. Nh vy, t mt t hp cc tn hiu a ch
c th sinh ra nhiu tn hiu chn v khc nhau. V s dng t tn hiu hn nn mch gii m
thiu cn t linh kin hn nhng li lm mt tnh n tr ca xung chn thu c u ra.
V d: Chp nh C c dung lng 10000H nh v c gn cho di a ch t
00000H-0FFFFH. sinh ra tn hiu chn v cho C ta c th s dng duy nht tn hiu a
ch A
16
mc thp (A
16
=0) hoc c bn tn hiu A
16
-A
19
mc thp (A
16
=. . . =A
19
=0). Vi
trng hp th nht ta c gii m thiu do A
16
=0 c th do cc yu cu truy nhp ti di a
ch 20000H-2FFFFH.
Thng thng khi thit k mch gii m ngi ta hay tnh i ra mt cht d phng,
sao cho sau ny nu c s thay i do phi tng thm dung lng ca b nh th vn c th
s dng c mch gii m c thit k. Ni cch khc, h thng c th m rng thm
khng gian nh bng cc b sung thm cc vi mch nh. Phn di y s xem xt mt s
phng php thc hin mch gii m a ch b nh.
IV.2.2.2 Thc hin mch gii m bng cc mch l-gc n gin
Cc mch l-gc n gin bao gm cc mch AND, OR, NOT hay kt hp nh NAND,
NOR. Bng cc mch kiu ny ta c th xy dng c mch gii m a ch n gin vi s
u ra hn ch. Cc mch l-gc lm nhim v t hp cc tn hiu a ch v iu khin
Hnh IV-9. Mch gii m a ch tng qut
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-76-
c/ghi b nh sao cho vi mt t hp a ch cho trc s sinh ra tn hiu chn v tng
ng.
Hnh IV-10 gii thiu mch gii m cho mch EPROM 2716 c dung lng 2K nh
mi cha 8 bt, lm vic trong di a ch FF800H-FFFFFH. Do mch nh c dung lng
2K tng ng vi di a ch 0FFH-7FFH (tng ng vi A
0
. . . A
10
). Nh vy, s lng cc
tn hiu a ch dng sinh ra tn hiu kch hot chp nh ny l A
11
-A
19
. Vi di a ch cho
trc FF800H-FFFFFH th t hp A
11
=. . . =A
19
=1 s sinh ra tn hiu chn v cho EPROM
2716. Bn cnh , ta cn phi hp vi cc tn hiu iu khin IO/ v RD ( mc thp)
to ra tn hiu chn v.
Nh trong hnh v, cc tn hiu a ch v tn hiu o ca IO/ c lin kt trc
tip vi nhau bng php l-gc AND ri o. Do tn cht ca mch AND kt qu t hp l
duy nht. u ra s ch bng 1 khi tt c u vo bng 1. u ra ca mch NAND c OR
vi RD (mc thp) sinh ra tn hiu chn v (kch hot). Tng t, do tnh cht ca mch
OR u ra s ch bng 0 nu tt c cc u vo bng 0 nn tn hiu chn v l tn hiu duy
nht c sinh ra ng vi thao tc truy nhp ti di a ch FF800H-FFFFFH. Nh vy, mch
gii m trn l mch gii m y .
IV.2.2.3 Thc hin b gii m dng mch gii m tch hp
Khi ta mun c nhiu u ra chn v t b gii m m vn dng cc mch logic n
gin th thit k s tr nn rt cng knh do s lng cc mch tng ln. Trong trng hp
nh vy ta thng s dng cc mch gii m tch hp c sn. Mt trong cc mch gii m
hay c s dng l 74LS138 cho php gii m 3 tn hiu u vo thnh 8 tn hiu u ra nh
trong hnh di y.
M
M
Hnh IV-10. Mch gii m dng mch l-gc
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-77-
Gi s chng ta cn xy dng mch gii m cho khng gian nh 256KB tng ng vi
di a ch F8000H-FFFFFH trong mi mch nh 2732 c dung lng 4K8. T di a
ch c gn v dung lng ca tng mch nh, c th thy rng t cc tn hiu a ch A
13
ti A
19
cn phi sinh ra 8 tn hiu kch hot cc vi mch nh ng vi 8 di a ch nh bng
di y:
Bng IV-5. Di tn hiu ca cc mch nh 2732
a ch A
19
-A
16
A
15
A
14
A
13
A
12
F8 1111 1 0 0 0
F9 1111 1 0 0 1
FA 1111 1 0 1 0
FB 1111 1 0 1 1
FC 1111 1 1 0 0
FD 1111 1 1 0 1
FE 1111 1 1 1 0
FF 1111 1 1 1 1
Qua bng trn, ta thy ch c cc tn hiu A
12
-A
14
l thay i cn A
15
-A
19
bng 1 v
khng i. Nh vy ta c th s dng mch gii m 74LS138 sinh ra cc tn hiu chn v
cho cc mch nh nh hnh sau:
Trong hnh v di y, cc tn hiu A
12
-A
14
c ni trc tip vo tn hiu u vo
(A-C) ca 74LS138. Cc tn hiu a ch cn li A
15
-A
19
v cc tn hiu iu khin IO/
c ni vo tn hiu iu khin ca 74LS138 (G2A, G2B). Tn hiu G1 lun mc l-gc 1.
Cc u ra ca 74LS138 c ni ln lt vi cc mch nh ng vi di a ch gn trc.
Ti th d ny ta thy mch gii m c sn 74LS138 c s lng u vo a ch v u
vo cho php hn ch. Nu ta c s lng u vo cho a ch ln m ta li phi gii m y
thc hin b gii m hon chnh ta vn phi dng thm cc mch logic ph. y
cng l l do ngi ta thay th cc b gii m kiu ny bng cc b gii m dng PROM
M
Hnh IV-11. 74LS138 v bng trng thi
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-78-
hoc PLA (programable logic array) vi u im chnh l chng c rt nhiu u vo cho cc
bt a ch v v th rt thch hp trong cc h vi x l sau ny vi khng gian a ch ln
IV.2.2.4 Thc hin b gii m dng PROM
Vic s dng b nh ROM lm b gii m li dng s lng ln cc tn hiu a ch
u vo, iu khin v d liu ra ca mch nh ROM. Vi mi t hp tn hiu a ch v iu
khin u vo, mch nh ROM s sinh ra mt nhm tn hiu trn knh d liu. Trng thi ca
cc tn hiu d liu ny ty thuc vo gi tr c lu vo trong ROM trc . Nu cc tn
hiu ny loi tr ln nhau th cc tn hiu d liu c th c dng lm cc tn hiu chn vi
mch nh.
trnh by ng dng ca PROM trong vic thc hin cc b gii m ta ly li v d
phn vng b nh cho ROM trong phn trc. Ti y ta dng mch PROM 256 byte lm
b gii m. Trong bng di y l mu cc bt ghi vo PROM cho trng hp ng dng
c th ny.
Bng IV-6. Mu d liu ghi vo ROM
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
_O
0
_O
1
_O
2
_O
3
_O
4
_O
5
_O
6
_O
7
1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1
1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Hnh IV-12. Gii m s dng 74LS138
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-79-
Theo bng trn, trong di a ch t F8H-FFH ca ROM ta ghi 8 gi tr sao cho tn hiu
d liu u ra ch c duy nht mt tn hiu mc thp cn tt c cc tn hiu cn li u mc
cao. Ngoi 8 nh ny, tt c cc nh khc ca ROM u c in gi tr FFH.
Mch gii m cho b nh PROM c th hin trn hnh trn so vi cch thc hin b
gii m bng 74LS138 chng ta khng phi dng n cc mch ph iu ny lm gim ng
k kch thc vt l ca b gii m. Ngoi ra ta c th d dng thay i a ch ca cc mch
nh bng cch thay i v tr v gi tr d liu trong mch nh gii m ROM.
IV.3 Phi ghp vi x l vi thit b vo ra
IV.3.1 Gii thiu v thit b vo/ra
i vi 8086/8088 (hay h 80x86 ni chung) c 2 cch phi ghp CPU vi cc thit b
ngoi vi (cc cng vo/ra, I/O):
a) Thit b vo/ra c khng gian a ch tch bit (Hnh IV-14)
Trong cch phi ghp ny, b nh c dng ton b khng gian 1MB m CPU
dnh cho n. Cc thit b ngoi vi (cc cng) s c dnh ring mt khng gian
64KB cho mi loi cng vo hoc ra. phn bit cc thao tc truy nhp, ta phi
dng tn hiu IO/ =1, v cc lnh trao i d liu mt cch thch hp cho mi
khng gian . Vi cc thit b ny cn s dng cc cu lnh IN, OUT trao i
d liu.
b) Thit b vo/ra v b nh c chung khng gian a ch
Trong cch phi ghp ny, b nh v thit b ngoi vi cng chia nhau khng gian
a ch 1MB m CPU 8086/8088 c kh nng a ch ha. Cc thit b ngoi vi s
chim mt vng no trong khng gian 1MB, phn cn li l ca b nh. Tt
nhin trong trng hp ny ta dng chung tn hiu IO/ =0 v lnh trao i d
liu kiu lnh MOV cho c b nh v thit b ngoi vi
M
M
Hnh IV-13. Gii m dng ROM
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-80-
IV.3.2 Gii m a ch thit b vo ra
IV.3.2.1 Gii thiu
Vic gii m a ch cho thit b vo/ra cng gn ging nh gii m a ch cho mch
nh. Ta s nhn mnh y vic gii m a ch cho cc cng. Thng thng cc cng c a
ch 8 bt ti A0-A7, trong mt s h vi x l khc (nh cc my IBM PC) cc cng c 16 bt
ti A0 - A15. Tu theo di ca ton hng trong lnh l 8 hay 16 bt ta c 1 cng 8 bt c
a ch lin nhau to nn t vi di tng ng. Trong thc t t c h s dng ht 256
cng vo/ra khc nhau nn ta ch xt y cc b gii m a ch 8 bt A0-A7 v mch gii
m thng dng c sn (nh 74LS138) to ra cc xung chn thit b.
Cc mch gii m n gin c th to c t mch l-gc n gin nh sau:
Trong trng hp cn nhiu xung chn u ra cho cc cng vo/ra c a ch lin
tip, ta c th dng cc mch gii m c sn kiu 74LS138. Nh trn hnh di y trnh by
2 mch tng t nhau dng 74LS138 gii m a ch cho 8 cng vo v 8 cng ra. Trn c
s mch ny ta cng c th phi hp vi c hai tn hiu c v ghi to ra tn hiu chn cho
vic c/ghi tng cng vo/ra ra c th.
Hnh IV-16. Gii m a ch cng dng 74LS138
Hnh IV-15. Gii m thit b dng cng l-gc
Hnh IV-14. Khng gian nh ca thit b vo/ra v b nh chnh
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-81-
IV.3.2.2 Cc mch cng n gin
Trong thc t c rt nhiu vi mch t hp c va c th c dng lm cng phi ghp
vi b vi x l vo/ra d liu. Cc mch ny thng c cu to t cc mch cht 8 bt
c u ra 3 trng thi (74LS373: kch theo mc; 74LS374: kch theo sn), cc mch khuch
i m 2 chiu 8 bt u ra 3 trng thi (74LS245). Chng c dng trong cc phi ghp
n gin lm cho CPU v thit b ngoi vi hot ng tng thch vi nhau, v d nh
m but hoc cc mch cng to ra cc tn hiu mc ni. . . Di y l mt s v d
Hnh IV-17 biu din ghp ni gia 8086 vi bn phm 16 s dng tip im. Vi mch
74LS374 c dng iu khin cc tn hiu hng v 74LS244 dng iu khin cc tn
hiu ct ca bn phm. Nguyn tc hot ng ca mt phm nh sau. Nu tn hiu X mc
cao (l-gc 1) th i-t s kha li, vy nn tip im Y c ng xung hay khng th ti u
O ta lun thu c in p 5V (khng c dng in). Nu tn hiu X mc thp (l-gc 0),
th i-t m v khi tip im Y ng xung ti u O ta thu c in p 0V. Bng cch qut
tun t cc hng v c trn cc ct ta s xc nh c phm bm. Gi s tn hiu a ch
gii m vi mch m cng 374 l 0AH cn 244 l 0BH, on m sau y cho php xc nh
phm C c c bm hay khng:
Hang EQU 0AH
Cot EQU 0BH
MOV AL,11111110b ; Ch c D0=0
OUT Hang, AL
Ktra: IN AL, Cot ; c tn hiu ct
AND AL,00001000b ; Gi li bt D3 ng vi phm C
JNZ Ktra ; Khng bm
... ; Phm C c bm
Hnh IV-17. Ghp ni vi bn phm
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-82-
Hnh IV-18 biu din mt mch hin th s s dng vi mch 7447 v. LED by on.
7447 cho php iu khin cc LED by on bng cch gii m s BCD ti u vo (A-D) v
sinh ra cc tn hiu kch hot cc thanh led ca LED by on (a-g). tit kim chi ph,
7447 c dng chung cho c 7 LED by on. Vic kch hot LED by on c iu
khin thng qua cng A v cc transitor Q
1
-Q
7
, d liu s cn hin th c gi qua cng B.
on m sau y dng kim tra h thng LED bng cch hin th trn c 7 LED s 8. Ch
rng bt 1 LED
i
ta cn a tn hiu d liu D
i
=0 trn cng 0AH ti transitor Q
i
tng
ng.
DK_LED EQU 0AH ; Cng iu khin LED
DL_LED EQU 0BH ; Cng d liu hin th
MOV AL,FFH ; Tt tt c cc LED
OUT DK_LED, AL
MOV CX,16 ; Tr
Tre: NOP
LOOP Tre
MOV AL,8 ; a s 8 ra 7447
OUT DL_LED,AL
XOR AL,AL ; t AL=0
OUT DK_LED,AL ; Bt tt c cc LED
IV.4 Gii thiu mt s vi mch h tr vo ra
thc hin trao i d liu vo/ra, vi x l c th s dng mt s vi mch chuyn
dng cho php trao i d liu kiu song song nh Intel 8255A h tr 3 cng d liu 8 bt
Hnh IV-18. Ghp ni hin th s
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-83-
hay trao i d liu ni tip nh Intel 8251 hay 8250. Hai phng php u c u v nhc
im ring. Vi vic trao i d liu song song, knh d liu c th ghp ni trc tip vi cc
thit b bn ngoi m khng cn phi thc hin vic bin i tn hiu, tc trao i d liu
ln, tuy nhin khong cch ghp ni cc thit b ngn. Ghp ni ni tip cho php m rng
c ly ghp ni thit b, tuy nhin tc trao i d liu hn ch v phi thc hin vic bin
i d liu trn knh d liu song song ca h vi x l thnh chui cc tn hiu ni tip.
Phn di y gii thiu ghp ni d liu song song s dng vi mch Intel 8255A v
truyn thng ni tip s dng vi mch Intel 8251A.
IV.4.1 Ghp ni song song dng 8255A
IV.4.1.1 Gii thiu 8255A
Vi mch 8255A l thit b giao tip ngoi vi lp trnh c (Programmable Peripheral
Interface-PPI) dng cho h thng my tnh Intel. Thit b c th c lp trnh m khng cn
thit b logic ngoi giao tip vi thit b ngoi vi. Di y l s khi Hnh IV-19.
Cc tn hiu ca 8255A c ngha nh sau :
CS: Chn chp (mc thp) PA
7
-PA
0
:
Cng A
RD: c (mc thp) PB
7
-PB
0
:
Cng B
WR: Ghi (mc thp) PC
7
-PC
0
:
Cng C
A
0
A
1
:
Chn cng D
7
-D
0
:
D liu
Vi mch 8255A cung cp 3 cng vo/ra A,B, v C c rng 8 bt, chia lm 2 nhm A,
B. Cc cng ny c th c lp trnh lm vic trong ba ch :
a) Ch 0: Vo/ra c s:
Hnh IV-19. S khi 8255A
m
d liu
L-gc
iu
khin
ghi/c
iu
khin
nhm A
iu
khin
nhm B
Nhm A
Cng A
(8)
Nhm A
Cng C
(4)
Nhm B
Cng C
(4)
Nhm B
Cng B
(8)
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-84-
Ch ny cung cp thao tc vo/ra n gin cho tng cng, trn cc cng
khng c tn hiu kt ni. Cc cng A, B v C c th c chia thnh 2 cng 8 bt
(A,B) v 2 cng 4 bt (C thp PC
0
-PC
3
, C cao PC
4
-PC
7
). Bt k cng no c th dng
lm cng vo/ra.
b) Ch 1: Vo/ra thm d
Ch ny ch c cung cp trn hai cng A,B, mi cng c knh d liu l 8
bt v 4 tn hiu iu khin ly t cng C. D liu trn knh c th l vo hay ra. Cc
nhm tn hiu iu khin vo/ra nh sau:
u vo u ra
STB: Kim tra u vo (mc thp)
IBF: D liu sn sng (mc cao)
INTR: Bo ngt CPU (mc cao)
OBF: D liu ra sn sng (mc thp)
ACK: Nhn xong d liu (mc thp)
INTR: Bo ngt CPU (mc cao)
Cc tn hiu iu khin ca hai cng A v B ly t cng C nh sau:
Hnh IV-21. Ghp ni cc tn hiu iu khin ch 1
Hnh IV-20. Cc ch 0
But a ch
But iu khin
But d liu
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-85-
Cc tn hiu iu khin ra ny bin i nh hnh v di y
Vi cng A cc tn hiu iu khin hot ng nh sau:
OBFA (m ra ca PA y). Tn hiu bo cho thit b ngoi vi bit
CPU ghi d liu vo cng chun b a ra. Tn hiu ny thng
c ni vi STB ca thit b nhn.
ACKA (Tr li nhn c d liu). y l tn hiu ca thit b ngoi
vi cho bit l n nhn c d liu t PA ca 8255A.
INTRA (Yu cu ngt t PA). y l kt qu thu c t quan h gia
cc tn hiu khc ca 8255A trong qu trnh i thoi vi thit b ngoi
vi, n c dng phn nh yu cu ngt ca PA ti CPU (xem biu
quan h gia cc tn hiu trong hnh 5.38).
INTEA l tn hiu ca mt mch lt bn trong 8255A cho php/cm
yu cu ngt INTRA ca PA. INTEA c lp/xo thng qua bit PC6
ca PC.
Cc tn hiu iu khin vo thay i nh hnh v di y
Hnh IV-23. Biu thi gian tn hiu vo
Hnh IV-22. Biu thi gian tn hiu ra
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-86-
STB (Cho php cht d liu): Khi d liu sn sng c c vo
bng PA, thit b ngoi vi phi dng STB bo cho 8255A bit cht
d liu.
IBF (m vo y): Sau khi 8255A cht c d liu do thit b ngoi vi
a n n a ra tn hiu IBF bo cho thit b ngoi vi bit l cht
xong.
INTR : Tn hiu bo cho CPU bit l c d liu sn sng c t
PA. y l kt qu thu c t quan h gia cc tn hiu khc ca 8255A
trong qu trnh i thoi vi thit b ngoi vi
c) Ch 2: Vo/ra hai chiu
Ch ny ch p dng c cho cng A v tt c cc tn hiu ca cng C c
dng lm tn hiu kt ni nh trong Hnh IV-24. Cc tn hiu kt ni bin i tu
thuc theo d liu c gi ra hay c v t cng A.
IV.4.1.2 Lp trnh 8255A
Cc thanh ghi ca 8255A c xc nh qua tnh hiu a ch A
0
A
1
nh sau
A1 A0 Thanh ghi
x x Khng s dng
0 0 Cng A (PA)
0 1 Cng B (PB)
1 0 Cng C (PC)
1 1 iu khin
ngha cc bt ca thanh ghi iu khin ch hot ng nh trong Hnh IV-25. Ch
khi ny bt c ngha ln nht ca thanh ghi iu khin nhn gi tr 1. Thanh ghi ny cng
c dng xc lp trng thi ca cc tn hiu iu khin trn cng C khi 8255A hot ng
ch 1 hoc 2.
Hnh IV-24. Cc tn hiu kt ni hai chiu v biu thi gian
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-87-
IV.4.2 Truyn thng ni tip dng 8251
IV.4.2.1 Gii thiu truyn thng ni tip
Vic truyn thng tin gia cc b phn nm gn nhau trong h thng vi x l c th
thc hin thng qua but song song m rng hoc qua cc mch phi ghp song song trong
cc byte hoc c truyn i trn mt tp cc ng dn bng mch in hoc dy cp trong
trng hp cn phi truyn thng tin gia cc thit b cch xa nhau, ta khng th dng c
Hnh IV-26. t xo cc tn hiu iu khin trn cng C
Hnh IV-25. Thanh ghi iu khin ch
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-88-
tp cc ng dy nh trn m phi c cch truyn khc m bo cht lng tn hiu cng
nh tit kim c s ng dy dn cn thit. T yu cu trn ra i phng php truyn
thng tin ni tip, tn hiu c truyn i lin tip tng bt trn mt ng dy (nh ng
in thoi chng hn). u thu tn hiu ni tip s c bin i ngc li ti to hiu
dng song song thch hp cho vic x l tip theo. Trong thc t c 2 phng php truyn
thng tin kiu ni tip: ng b v khng ng b.
Trong phng php truyn ng b, d liu c truyn theo tng khi vi mt tc
xc nh. Khi d liu trc khi c truyn i s c b sung thm cc phn t c bit
u v cui to thnh khung. Cc phn t ny dng nh du im bt u ca khi d
liu hay cc thng tin gip pht hin li trong qu trnh truyn. Hnh IV-27 biu din cu trc
khung d liu truyn ng b. y thc cht l cch iu khin hng k t v cc k t
c bit c dng nh du cc phn khc nhau trong khung.
Trong cch truyn thng d b, d liu c truyn i theo tng k t ring bit. di
k t c th thay i t 5 n 8 bt. K t cn truyn i c gn thm 1 bt nh du u
bo bt u k t (Start bit) v mt hoc hai bt bo kt thc k t (Stop bit), v mt bt
kim tra tnh ton vn d liu (Parity bit). V mi k t c nhn dng ring bit nn n c
th c truyn i vo bt k lc no. Gia cc k t truyn i c th c cc khong cch v
thi gian. Dng thc ca d liu truyn i theo phng php d b c th hin trn hnh
di y.
Tc truyn d liu theo phng php ni tip c o bng bt/chu k. Ngoi ra
ngi ta cng hay dng n v baud. l gi tr nghch o ca thi gian gia cc ln thay
i mc tn hiu, vi d liu ch c hai mc (0 v 1) v mi thay i mc tn hiu ch m ho
mt bt th tc baud bng tc bt/s. Trong cc phng php m ha khc, ngi ta c
Hnh IV-27. Cu trc khung ng b
Hnh IV-28. Cu trc d liu truyn d b
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-89-
th m ha nhiu hn mt bt thng tin trn mt trng thi tn hiu. Cc gi tr tc truyn
thng gp trong thc t l 2400, 4800, 9. 600. . .
to iu kin d dng cho vic phi ghp ng truyn ni tip vi h vi x l v
gim ti a cc mch ph thm ngoi. Ngi ta ch to ra cc vi mch t hp c ln lp
trnh c kh nng hon thnh cc cng vic cn thit trong khi phi ghp l cc mch thu
pht d b vn nng (N8250/16450 ca National Semiconductor universal asynchronous
receiver - transmitter USART) v mch thu pht ng b - d b vn nng 8251A ca Intel
(universal synchronous - asynchronous receiver - transmitter USART).
Vi cc mch phi ghp nh trn, vic truyn tin d b chng hn s c thc hin
nh 1USART u pht v 1 USART khc u thu. Khi c k t pht 8251A to ra
khung cho k t bng cch gn thm vo m k t cc bt start, parity v stop v g lin tip
tng bt ra ng truyn. Bn pha thu, 1 8521A khc s nhn k t tho b khung, kim tra
parity, ri chuyn sang dng song song CPU c.
IV.4.2.2 Mch USART 8251A
IV.4.2.2.a S khi v tn hiu
Trong phn ny ta s gii thiu mch 8251A, l mch USART c th dng cho hai
kiu truyn thng tin ni tip ng b. S khi ca mch 8251A ca Intel c biu din
trn hnh di y.
Cc tn hiu ca mch 8251A hu ht l ging tn hiu ca 8086/8088. Chn chn v
ca 8251A phi c ni vi u ra ca mt mch gii m a ch t mch 8251A vo
mt a ch c bn no . Cc tn hiu cn c gii thch thm gm:
Hnh IV-29. S khi 8251A
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-90-
+ CLK [I]: Chn ni n xung ng h ca h thng.
+ TxRDY [0]: Tn hiu bo m gi rng (sn sng nhn k t mi t CPU)
+ RxRDY [0]: Tn hiu bo m thu y (c k hiu nm ch CPU c vo)
+ TxEMPTY [0]: Tn hiu bo c m thu v m pht u rng.
+ C/D [I]: CPU thao tc vi thanh ghi lnh / thanh ghi d liu ca 8251A, khi C/D=1
th thanh ghi lnh c chn lm vic. Chn ny thng c ni vi A0 ca but a ch
cng vi cc tn hiu WR v RD chn ra 4 thanh ghi bn trong 8251A.
+ RxC [I] v TxC [I]: Xung ng h cung cp cho cc thanh ghi dch ca phn thu v
phn pht. Thng 2 thanh ny ni chung phn thu v phn pht lm vic vi cng tng s
nhp. Tn s ca cc khung ng h a n chn RxC v TxC c chn sao cho l bi s
(c th l gp 1, 16 hoc 64) ca tc thu hay tc pht theo yu cu.
+ l hai cp tn hiu yu cu thit b modem sn sng v tr li ca
modem vi tn hiu yu cu.
+ l cp tn hiu yu cu modem sn sng pht v p ng ca modem
vi tn hiu yu cu.
+ SYNDET/BRKDET [O]: khi 8251A lm vic ch khng ng b, nu RxD = 0
ko di hn thi gian ca 2 k t th chn ny c mc cao bo l vic truyn hoc ng
truyn b gin on. Khi 8251A lm vic ch ng b, nu phn thu tm thy k t ng
b rong bn tin thu c th chn ny c mc cao.
m phn pht ca mch 8251A l loi m kp, bao gm m gi v m pht.
Trong khi 1 k t ang c chuyn i m pht th mt k t khc c th a t CPU
sang m gi. Cc tn hiu TxRDY v TxEMPTY s cho bit trng thi ca cc m ny khi
mch 8251A hot ng. Khi m phn thu y th s c tin shiu RxRDY = 1. Nu cho n
khi phn thu nhn c k t mi m CPU khng kp thi c c k t c s b mt do b
bi k t mi nhn c. Hin tng ny gi l thu .
IV.4.2.2.b Cc thanh ghi bn trong ca 8251A
Nh ni trn chn C/D (gii s n c ni vo A
0
ca but a ch) cng cc tn
hiu WR v RD s chn ra 4 thanh ghi bn trong ca mch USART, thanh ghi m d liu
thu, thanh ghi m d liu pht, thanh ghi trng thi v thanh ghi iu khin (Bng IV-7).
Bng IV-7. Cc thanh ghi bn trong ca 8251A
A
0
RD WR Chn ra
0 0 1 Thanh ghi m d liu thu
0 1 0 Thanh ghi m d liu pht
1 0 1 Thanh ghi trng thi
1 1 0 Thanh ghi iu khin
DSR DTR
RTS CTS
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-91-
Thanh ghi ch :
Trong t ch , i vi k t cn truyn ta c th chn s bt (kiu m) ca k t, s
bt stop v tc truyn. Nu c sn tng s xung ng h cho phn thu hoc phn pht (gi
s l F
dk
) v ta mun truyn (thu/pht) d liu vi tc X baud, ta phi chn h s nhn
tc truyn k sao cho tha mn biu thc.
F
dk
= X. K, trong X l cc tc truyn tiu chun.
V d: nu ta c tn s xung ng h pht l 19. 200Hz v ta mun truyn d liu vi
tc 1. 200 baud th ta phi ghi t ch c 2 bt cui l 10 chn c h s nhn tc
truyn l 16, v 1200 x 16 = 19. 200. Vi vic dng tn s ng h cho phn thu/ pht cao
hn so vi tc truyn ta s gim c li khi truyn thng tin.
Hnh di y gii thiu cc gi tr ca thanh ghi lnh khi hot ng ch truyn
ng b. ch ny ta khng phi quan tm ti tc pht, thay vo ta cn xc nh s
lng k t ng b v di ca cc k t truyn i.
Hnh IV-31. Thanh ghi ch (ng b)
Hnh IV-30. Thanh ghi ch (d b)
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-92-
Thanh ghi lnh:
Thanh ghi trng thi
Gi tr trn cc bt thanh ghi ny cho ta bit tnh trng hot ng ca 8251A
IV.4.2.2.c Lp trnh 8251A
lp trnh cho 8251A trc tin ta cn xc lp ch hot ng bng cch tnh gi tr
ca thanh ghi ch v gi ra cng iu khin. gi hoc nhn d liu ta cn lin tc
kim tra trng thi ca 8251A theo lu c/ghi n gin sau:
Hnh IV-33. Cu trc thanh ghi trng thi
Hnh IV-32. Cu trc thanh ghi lnh
Chng IV.Phi ghp vi x l vi b nh v cc thit b vo/ra
-93-
Hnh IV-35 gii thiu mch gii m a ch cho 8251A v ghp ni tn hiu ni tip
theo chun RS232. Vi mch 8251A hot ng 2 cng 78H v 79H (0111 100x). Lu c
c th c trin khai nh sau:
DK EQU 79H ; Thanh ghi iu khin
TThai EQU 79H : Thanh ghi trng thi
DL EQU 78H ;Thanh ghi d liu
khoitao: MOV AL, 11001111b ; Xc lp ch 8251A d b 2 bt stop,
OUT DK,AL ; 8 bt d liu khng chn l, tc x64
Ktra: IN AL, TThai ; Kim tra trng thi
AND AL,02H ; Bt 2 thanh ghi trng thi RxRDY
JNZ Ktra
DocDL: IN AL, DL
.... ; X l d liu
Hnh IV-35. Ghp ni 8251A
Hnh IV-34. Lu c/ghi n gin
Chng V. Tng quan v cc phng php vo ra d liu
V.1 Gii thiu
K thut trao i d liu gia my vi tnh v cc thit b ngoi vi c gi l vo/ra hay
I/O (Input/Output). Thit b lin lc vi my vi tnh qua cc giao tip vo/ra. Ngi dng c
th nhp chng trnh v d liu bng cc dng bn phm v chy cc chng trnh ly kt
qu. Nh vy, cc thit b vo/ra kt ni ti my vi tnh cung cp cch thc lin lc tin li
vi th gii bn ngoi. Cc thit b vo/ra ph bin gm c bn phm, mn hnh, my in v
a cng.
c tnh ca cc thit b vo/ra thng khc vi c tnh ca my vi tnh. Chng hn
nh tc ca cc thit b thng chm hn my vi tnh, di t (word) v nh dng d
liu cng khc nhau gia thit b v my tnh. hai bn c th lin lc c vi nhau cn c
cc mch giao tip gia thit b vo/ra v my tnh. Giao tip cung cp trao i d liu vo/ra
qua but vo/ra. But ny thng thng chuyn ti 3 loi tn hiu: a ch thit b, d liu v
lnh.
C ba phng php trao i d liu gia my vi tnh v cc thit b vo/ra: vo/ra lp
trnh (programmed I/O) hay thm d, vo/ra bng ngt v truy nhp trc tip b nh (Direct
Memory Access DMA). Dng vo/ra thm d, vi x l chy mt chng trnh thc hin ton
b cc trao i d liu gia vi x l v ccs thit b bn ngoi. c tnh ch yu ca phng
php ny l thit b thc hin cc chc nng c ch nh bi chng trnh bn tron b nh
ca vi x l. Ni cch khc, vi x l iu khin hon ton cc trao i d liu.
Vi vo/ra bng ngt, thit b c th bt vi x l dng vic thc hin chng trnh hin
thi thit b c tht chy chng trnh khc gi l chng trnh phc v ngt. Chng
trnh ny p ng yu cu ca thit b. Sau khi kt thc chng trnh ny, cu lnh tr v t
ngt tr li quyn iu khin cho chng trnh b ngt.
Truy nhp b nh trc tip l k thut vo/ra m trong d liu c th c trao i
gia b nh ca my tnh vi thit b nh cng m khng cn s can thip ca vi x l.
Thng thng, phng php ny cn s dng vi mch c bit gi l vi mch DMA.
Trong my tnh s dng h iu hnh, ngi dng thng lm vic vi thit b vo/ra
o. Ngi dng khng phi quan tm ti cc c tnh ca thit b. Thay vo , ngi dng
thc hin trao i d liu thng qua cc dch v vo/ra do h iu hnh cung cp. V cn bn,
h iu hnh ng vai tr giao tip gia chng trnh ngi dng v phn cng thit b. H
iu hnh h tr to nhiu cc thit b l-gc hay thit b vo/ra o v cho php ngi dng
lin lc trc tip vi cc thit b ny. Chng trnh ngi dng hon ton khng bit c
vic nh x gia thit b o v thit b vt l. Nh vy, khi thit b o gn cho thit b vt l
khc th khng phi thay i chng trnh ngi dng.
Chng V. Tng quan v cc phng php vo ra d liu
-95-
V.2 Vo/ra bng phng php thm d
Vn iu khin vo/ra d liu s tr nn n gin nu thit b ngoi nu lc no
cng sn sng lm vic vi CPU. V d, b phn do nhit s (nh l mt thit b vo)
lp sn trong mt h thng iu khin lc no cng c th cung cp s o v nhit ca i
tng cn iu chnh, cn mt b n LED 7 nt (nh l mt thit b ra) dng ch th mt
gi tr no ca mt i lng vt l nht nh trong h thng ni trn th lc no cng c
th biu hin thng tin . Nh vy khi CPU mun c thng tin v nhit ca h thng th
n ch vic c cng phi ghp vi b o nhit , v nu CPU mun biu din thng tin va
c c trn n LED th n ch vic a tn hiu iu khin ti m khng cn phi kim
tra xem cc thit b ny c ang sn sng lm vic hay khng.
Tuy nhin trong thc t khng phi lc no CPU cng lm vic vi cc i tng "lin
tc sn sng" nh trn. Thng thng khi CPU mun lm vic vi mt i tng no ,
trc tin n phi kim tra xem thit b c ang trng thi sn sng lm vic hay khng;
nu c th n mi thc hin vo vic trao i d liu. Nh vy, nu lm vic theo phng
thc thm d th thng thng CPU chia s thi gian hot ng cho vic trao i d liu v
vic kim tra trng thi sn sng ca thit b ngoi vi thng qua cc tn hiu mc ni
(handshake signal).
Cc mch kt ni trong Hnh IV-17 v Hnh IV-18 l cc v d tiu biu cho phng
php vo/ra lp trnh. Vi bn phm, CPU lin tc kim tra trng thi cc phm v nu c
phm c bm CPU s c thng tin trn cng vo xc nh phm no c bm. Vi b
hin th LED, CPU lin tc a d liu ra cc cng ra thit b c th hin th cc thng tin.
Khi s lng cc thit b vo/ra tng ln th thi gian dnh cho vic xc nh trng thi
ca thit b vo/ra cng tng ln nhanh chng nh trong Hnh V-1. CPU kim tra ln lt cc
Hnh V-1. Vo/ra lp trnh vi nhiu thit b
Chng V. Tng quan v cc phng php vo ra d liu
-96-
thit b pht hin trng thi sn sng trao i d liu ca tng thit b v thc hin cc lnh
trao i d liu. Cc thit b c kim tra thm d theo trt t ngu nhin hoc theo mc
u tin ca cc thit b. Cch thc ny d n gin song c nhc im l thi gian qut
trng thi ca cc thit b chim t trng rt ng k trong sut qu trnh vo/ra nht l khi
cc thit b cha c d liu trao i.
V.3 Vo/ra bng ngt
V.3.1 Gii thiu
Nhc im ca vo/ra thm d l my tnh cn kim tra bt trng thi bng cch ch
p ng ca thit b vo/ra. Vi cc thit b chm, vic ch lm gim kh nng x l d liu
khc ca my tnh. K thut ngt cho php gii quyt vn ny.
Vi vo/ra bng ngt, thit b khi xng vic trao i vo/ra. Thit b c ni vi
chn tn hiu ngt (INT) trn vi mch ca vi x l. Khi thit b cn trao i d liu, thit b
sinh ra tn hiu ngt. My tnh s hon thnh cu lnh hin thi v lu ni dung ca b m
chng trnh v cc thanh ghi trng thi. Sau , my tnh t ng np a ch ca chng
trnh phc v ngt vo thanh ghi m chng trnh. Chng trnh ny thng do ngi dng
vit v my tnh thc hin chng trnh ny trao i d liu vi thit b. Cu lnh cui ca
chng trnh ny khi phc thanh ghi m chng trnh b dng v thanh ghi trng thi ca
vi x l.
Vi x l thng cung cp mt hay nhiu tn hiu ngt trn vi mch. Nh vy, x l
cc yu cu ngt t nhiu thit b cn c c ch c bit. Thng c cc cch sau: thm d v
quay vng. Thm d s dng phn mm chung cho tt c cc thit b v vy lm gim tc
p ng ngt. Khi c tn hiu ngt phn mm thm d kim tra trng thi ca cc thit b theo
th t u tin bt u vi thit b c u tin cao nht. Khi xc nh c thit b yu cu
trao i d liu, phn mm thm d chuyn quyn iu khin cho phn mm phc v ngt.
V.3.2 B x l ngt u tin 8259
Trong trng hp c nhiu yu cu ngt che c t bn ngoi phi phc v my tnh
thng dng vi mch c sn 8259A gii quyt vn u tin. Vi mch 8259A c gi l
mch iu khin ngt lp trnh c (Programmable Interrupt Controller, PIC). l mt vi
mch c ln c th x l trc c 8 yu cu ngt vi cc mc u tin khc nhau to ra
mt yu cu ngt a n u vo INTR (yu cu ngt che c ca CPU 8086/8088. Nu
ni tng 1 mch 8259A ch vi 8 mch 8259A th ta c th nng tng s cc yu cu ngt
vi cc mc u tin khc nhau ln thnh 64.
Chng V. Tng quan v cc phng php vo ra d liu
-97-
V.3.2.1 Cc khi chc nng chnh ca 8259A
S khi ca 8259A c trnh by trong hnh v di y
Thanh ghi IRR: ghi nh cc yu cu ngt c ti u vo IRi.
Thanh ghi ISR: ghi nh cc yu cu ngt ang c phc v trong s cc yu cu ngt
IRi.
Thanh ghi IMR: ghi nh mt n ngt i vi cc yu cu ngt IRi.
Logic iu khin: khi ny c nhim v gi yu cu ngt ti INTR ca 8086/8088 khi c
tn hiu ti cc chn IRi v nhn tr li chp nhn yu cu ngt INTA t CPU ri iu
khin vic a ra kiu ngt trn but d liu.
m but d liu: dng phi ghp 8259A vi but d liu ca CPU
Logic iu khin ghi/c: dng cho vic ghi cc t iu khin v c cc t trng thi
ca 8259A.
Khi m ni tng v so snh: ghi nh v so snh s hiu ca cc mch 8259A c mt
trong h vi x l.
V.3.2.2 Cc tn hiu ca 8259A
Mt s tn hiu trong mch 8259 c tn ging nh cc tn hiu tiu chun ca h vi x
l 8086/8080. Ta c th thy r v hiu c ngha ca chng ngay trn Hnh V-2. Ngoi
cc tn hiu ny ra, cn c mt s tn hiu c bit khc ca 8259A cn phi gii thiu thm
gm:
+ CAS
0
-CAS
2
[I, O]: l cc u vo i vi cc mch 8259A th hoc cc u ra ca
mch 8259A ch dng khi cn ni tng tng thm cc yu cu ngt cn x l.
Hnh V-2. S khi 8259
Chng V. Tng quan v cc phng php vo ra d liu
-98-
+ [I, O]: khi 8259A lm vic ch khng c m but d liu th y l tn
hiu vo dng lp trnh bin mch 8259A thnh mch th ( ) hoc ch ( ); khi
8259A lm vic trong h vi x l ch c m but d liu th chn ny l tn hiu ra
dng m m but d liu 8086/8088 v 8259A thng vo but d liu h thng.
Lc ny vic nh ngha mch 8259A l ch hoc th phi thc hin thng qua t iu khin
u ICW4.
+ INT [O]: tn hiu yu cu ngt n chn INTR ca CPU 8086/8088.
+ [I]: ni vi tn hiu bo chp nhn ngt ca CPU.
Hnh v di y th hin ghp ni 8259A vi h thng but ca 8086/8088. Nu h vi
x l 8086/8088 lm vic ch MAX thng ta phi dng mch iu khin but 8288 v
cc m but cung cp cc tn hiu thch hp cho but h thng. Mch 8259A phi lm
vic ch c m ni c vi but h thng ny.
V.3.2.3 Lp trnh cho PIC 8259A
mch PIC 8259A c th hot ng c theo yu cu, sau khi bt ngun cp in
PIC cn phi c lp trnh bng cch ghi vo cc thanh ghi (tng ng vi cc cng) bn
trong cc t iu khin khi u (ICW) v tip sau l cc t iu khin hot ng (OCW).
Cc t iu khin khi u dng to nn cc kiu lm vic c bn cho PIC, cn cc
t iu khin hot ng s quyt nh cch thc lm vic c th ca PIC. T iu khin hot
ng s c ghi khi ta mun thay i hot ng ca PIC.
Cc t iu khin ni trn s c gii thiu c th di y.
EN / SP
0 SP= 1 SP=
EN
INTA INTA
Hnh V-3. Ghp ni 8259 vi but 8086/8088
Chng V. Tng quan v cc phng php vo ra d liu
-99-
V.3.2.3.a Cc t iu khin khi u ICW
PIC 8259A c tt c 4 t iu khin khi u l ICW1 - ICW4. Trong khi lp trnh
cho PIC khng phi lc no ta cng cn dng c 4 t iu khin khi u nhng c lc ta ch
cn ghi vo 2 hay 3 t l . Hnh di y th hin th t ghi v iu kin ghi cc
iu khin ICW vo 8259A.
xc nh cc thanh ghi bn trong ta cn s dng tn hiu a ch A
0
v th t ghi
ghi d liu cho cc t iu khin. V d A
0
= 0 l du hiu nhn bit rng ICW1 c a
vo thanh ghi c a ch chn trong PIC, cn khi A
0
= 1 th cc t iu khin khi u ICW2,
ICW3, ICW4 s c a vo cc thanh ghi c a ch l trong mch PIC.
o ICW1
Bt D
0
ca ICW1 quyt nh 8259A s c ni vi h vi x l no. lm vic vi
h 16-32bt (8088 hoc h x86) th ICW nht thit phi c ICW4 = 0 (v nh vy cc bt ca
ICW4 s b xa v 0). Cc bt cn li ca ICW1 nh ngha cch thc tc ng ca xung yu
cu ngt (tc ng theo sn hay theo mc) ti cc chn yu cu ngt IR ca mch 8259A v
vic b tr cc mch 8259A khc trong h lm vic n l hay theo ch ni tng.
Hnh V-4. Trnh t s dng cc thanh ghi khi u
Chng V. Tng quan v cc phng php vo ra d liu
-100-
o ICW2
T iu khin khi u ny cho php chn kiu ngt (s hiu ngt) ng vi cc bt
T3-T7 cho cc u vo yu cu ngt. Cc bt T0-T2 c 8259A t ng gn gi tr ty theo
u vo yu cu ngt c th IRi. V d nu ta mun cc u vo ca mch 8259A c kiu
ngt l 40-47H ta ch cn ghi 40H vo cc bt T3-T7. Nu lm nh vy th IR0 s c kiu
ngt l 40H, IR1 s c kiu ngt l 41H. . .
o ICW3
T iu khin khi u ny ch dng n khi bt SNGL thuc t iu khin khi u
ICW1 c gi tr 0, ngha l trong h c cc mch 8259A lm vic ch ni tng. Chnh v
vy tn ti 2 loi ICW3: 1 cho mch 8259A ch v 1 cho mch 8259A th.
ICW3 cho mch ch: dng ch ra u vo yu cu ngt IRi no ca n c tn hiu
INT ca mch th ni vo.
ICW3 cho mch th: dng lm phng tin cc mch ny c nhn bit.
V vy t iu khin khi u ny phi cha m s i ng vi u vo Iri ca mch ch m
Hnh V-6. Dng thc ca ICW2
Hnh V-5. Dng thc ca ICW1
Chng V. Tng quan v cc phng php vo ra d liu
-101-
mch th cho ni vo. Mch th s so snh m s ny vi m s nhn c CAS
2
-CAS
0
.
Nu bng nhau th s hiu ngt s c a ra but khi c INTA.
V d: Trong mt h vi x l ta c mt mch 8259A ch v 2 mch 8259A th ni
vo chn IR1 ca mch ch. Tm gi tr phi gn cho cc t iu khin khi u ICW ?
Gii: Nh trn ni, cc mch ny lm vic c vi nhau ta s phi gn cc t iu
khin khi u nh sau: ICW3 = 03H cho mch ch. ICW3 = 00H cho mch tho th nht v
ICW3 = 01H cho mch th th hai.
o ICW4
T iu khin khi u ny ch dng n khi trong t iu khin ICW1 c IC4 = 1 (cn
thm ICW4)
Bt PM cho ta kh nng chn loi vi x l lm vic vi 8259A. Bt PM = 1 cho
php cc b vi x l t 8086/88 hoc cao hn lm vic vi 8259A
Bt SFNM = 1 cho php chn ch u tin c nh c bit. Trong ch ny yu cu
ngt vi mc u tin cao nht hin thi t mt mch th lm vic theo kiu ni tng s c
mch ch nhn bit ngay c khi mch ch cn ang phi phc v mt yu cu ngt mch
th khc nhng vi mc u tin thp hn. Sau khi cc yu cu ngt c phc v xong th
chng trnh phc v ngt phi c lnh kt thc yu cu ngt (EOI) t trc lnh tr v
(IRET) a n cho mch 8259A ch.
Khi bt SFNM = 0 th ch u tin c nh c chn (IR0: mc u tin cao nht.
IR7: mc u tin thp nht) thc ra i vi mch 8259A khng dng n ICW1 th ch
ny c chn nh l ngm nh. Trong ch u tin c nh ti mt thi im ch c
mt yu cu ngt i c phc v (bt IRi = 1) lc ny tt c cc yu cu khc voi mc u
tin cao hon c th ngt yu cu khc vi mc u tin thp hn.
.
Hnh V-7. Dng thc ca ICW3 cho mch ch v th
Chng V. Tng quan v cc phng php vo ra d liu
-102-
Bt BUF cho php nh ngha mch 8259A lm vic vi CPU trong trng hp c
m hoc khng c m ni vi but h thng. Khi lm vic ch c m (BUF = 1). Bt
M/S = 1/0 cho php ta chn mch 8259A lm vic ch ch/ th. SP/EN tr thnh u
ra cho php m m PIC v CPU thng vi but h thng.
Bt AEOI = 1 cho php chn cch kt thc yu cu ngt t ng. Khi AEOI = 1 th
8259A t ng xa ISRi = 0 khi xung INTA cui cng chuyn ln mc cao m khng lm
thay i th t u tin. Ngc li. Khi ta chn cch kt thc yu cu ngt thng (AEOI = 0)
th chng trnh phc v ngt phi c thm lnh EOI t trc lnh IRET kt thc cho
8259A.
V.3.2.3.b Cc t iu khin hot ng OCW
Cc t iu khin hot ng OCW s quyt nh mch 8259A s hot ng nh th no
sau khi n c khi u bng cc t iu khin ICW. Tt c cc t iu khin ny s
c ghi vo cc thanh ghi trong PIC khi A0 = 0, tr OCW1 c ghi khi A0 = 1.
o OCW1
OCW1 dng ghi gi tr ca cc bt mt n vo thanh ghi mt n ngt IMR. Khi mt
bt mt n no ca c lp th yu cu ngt tng ng vi mt n s khng c
8259A nhn bit na (b che). T iu khin ny phi c a n 8259A ngay sau khi ghi
cc ICW vo 8259A.
Ta cng c th c li IMR xc nh tnh trng mt n ngt hin ti (xem trong thi
im hin ti yu cu ngt no b che)
Hnh V-8. Dng thc ca ICW4
Chng V. Tng quan v cc phng php vo ra d liu
-103-
OCW2
Cc bt R., SL, v EOI phi hp vi nhau cho php chn ra cc cch thc kt thc
yu cu ngt khc nhau. Mt vi cch thc yu cu ngt cn tc ng ti cc yu cu ngt
c ch ch danh vi mc u tin c gii m ha ca 3 bt L
2
, L
1
, L
0
.
Trc khi ni v cc cch kt thc yu cu ngt cho cc ch ta cn m du ngoc
y gii thiu cc ch lm vic ca 8259A.
- Ch u tin c nh:
y l ch lm vic ngm nh ca 8259A sau khi n c np cc t
iu khin khi u. Trong ch ny, cc u vo IR7-IRO c gn cho cc
mc u tin c nh: IRO c gn cho mc u tin cao nht cn IR7 mc u
tin thp nht. Mc u tin ny c gi khng thay i cho n khi ghi mch
8259A b lp trnh khc i do OCW2.
Trong ch u tin c nh ti mt thi im ch c mt yu cu ngt i c
phc v (bt ISRi = 1) lc ny tt c c yu cu khc vi mc u tin thp hn
u b cm, tt c cc yu cu khc vi mc u tin thp hn u c th ngt
yu cu khc vi mc u tin thp hn.
- Ch quay mc u tin (u tin lun phin) t ng:
ch ny sau khi mt yu cu ngt c phc v xong, 8259A s xo bt
tng ng ca n trong thanh ghi ISR v gn cho u vo ca n mc u tin
thp nht to iu kin cho cc yu cu ngt khc c c hi c phc v.
- Ch quay (i) mc u tin ch ch danh:
ch ny ta cn ch r (ch danh) u vo IRi no, vi i=L
2
L
1
L
0
, c gn
mc u tin thp nht, u vo IR
i+1
s uc t ng gn mc u tin cao nht.
Hnh V-9. OCW1 Trng thi yu cu ngt
Chng V. Tng quan v cc phng php vo ra d liu
-104-
Tr li cc vn lin quan n OCW, ta s ni r vic cc bt R, SL v EOI phi hp
vi nhau nh th no to ra cc lnh quy nh cc cch thc kt thc yu cu ngt cho cc
ch lm vic khc nhau ni n phn trn.
1. Kt thc yu cu ngt thng: chng trnh cn phc v ngt phi c lnh EOI
t trc lnh tr v IRET cho 8259A. Vi mch ny s xc nh yu cu ngt
IRi va c phc v v xo bt ISRi tng ng ca n to iu kin cho
chnh yu cu ngt ny hoc cc ngt khc c mc u tin thp hn c th c
tc ng.
2. Kt thc yu cu ngt thng: chng trnh con phc v ngt phi c lnh EOI
ch ch danh t trc lnh tr v IRET cho 8259A. 8259A xo ch danh bt
ISRi, vi i=L
2
L
1
L
0
to iu kin cho chnh yu cu ngt ny hoc cc ngt
khc c mc u tin thp hn c th c tc ng.
3. Quay (i) mc u tin khi kt thc yu cu ngt thng: chng trnh con
phc v ngt phi c lnh EOI t trc lnh tr v IRET cho 8259A. 8259A s
xc nh yu cu ngt th i va c phc v. Xa bt ISRi tng ng v gn
lun mc u tin thp nht cho u vo IR, ny cn u vo IR
i+1
s c gn
mc u tin cao nht.
C th theo di cch thc hot ng ca mch 8259A trong ch quay (i)
mc u tin khi kt thc yu cu ngt thng thng qua v d minh ha trnh
by trn Hnh V-10.
Hnh V-10. Trng thi ngt v ch quay mc u tin
Chng V. Tng quan v cc phng php vo ra d liu
-105-
4. Quay (i) mc u tin trong ch kt thc yu cu ngt t ng: ch cn mt
ln a lnh chn ch i mc u tin khi kt thc yu cu ngt t ng. C
th chn ch ny bng lnh lp ch quay khi c EOI t ng. T tr
i 8259A s i mc u tin mi khi kt thc ngt t ng theo cch tng t
nh mc 3. Mun b ch ny ta c th dng lnh xa ch quay khi c
EOI t ng.
5. Quay (i) mc u tin khi kt thc yu cu ngt ch danh: chng trnh cn
phc v ngt phi c lnh EOI ch danh cho 8259A t trc lnh tr v IRET.
Mch 8259A s xa bt ISRi ca yu cu ngt tng ng v gn lun mc u
tin thp nht cho u vo IRi, vi i = L
2
L
1
L
0
.
6. Lp mc u tin: ch ny cho php thay i mc u tin c nh hoc mc
u tin gn trc bng cch gn mc u tin thp nht cho yu cu ngt IRi
ch ch danh vi t hp i = L
2
L
1
L
0
. Yu cu ngt IR
i+1
s c gn mc u
tin cao nht.
OCW3
T iu khin hot ng sau khi c ghi vo 8259A cho php:
Chn cc ra thanh ghi c
Thm d trng thi yu cu ngt bng cch trng thi ca u vo yu cu ngt
Iri vi mc u tin cao nht cng m ca u vo v.
Thao tc vi mt n c bit.
Hnh V-11. OCW2 xc nh x l cc yu cu ngt
Chng V. Tng quan v cc phng php vo ra d liu
-106-
Cc thanh ghi IRR v ISR c th c c sau khi np vo 8259A t iu khin
OCW3 vi bt RR = 1: bt RIS = 0 s cho php c IRR. Bt RIS = 1 s cho php c ISR.
Dng thc ca cc thanh ghi ny biu din trn hnh di y.
Bng vic a vo 8259A t iu khin OCW3 vi bt P = 1 ta c th c c trn
but d liu ln c tip ngay sau t thm d, trong c cc thng tin v yu cu ngt
vi mc u tin cao nht ang hot ng v m tng ng vi yu cu ngt y theo dng
thc c biu din trn di y.
D7 D6 D5 D4 D3 D2 D1 D0
1: c ngt X x X x S hiu yu cu ngt
C th gi y l ch thm d yu cu ngt v ch ny thng c ng dng
trong trng hp c nhiu chng phc v ngt ging nhau cho mt yu cu ngt v vic
chn chng trnh no s dng l trch nhim ca ngi lp trnh.
Hnh V-13. Thanh ghi IRR v ISR
Hnh V-12. OCW3
Hnh V-14. Dng thc t thm d trng thi
Chng V. Tng quan v cc phng php vo ra d liu
-107-
Tm li, mun dng ch thm d ca 8259A xc nh yu cu ngt hin ti ta
cn lm cc thao tc ln lt nh sau:
- Cm cc yu cu ngt bng lnh CLI
- Ghi t lnh OCW3 vi bt P = 1
- c t thm d trng thi yu cu ngt trn but d liu.
Bt ESMM = 1 cho php 8259A thao tc vi ch mt n c bit. Bt SMM = 1 cho
php lp ch mt n c bit. Ch mt n c bit c dng thay i th t u tin
ngay bn trong chng trnh con phc v ngt. V d trong trng hp c mt yu cu ngt
cm (b che bi chng trnh phc v ngt vi t lnh OCW1 m ta li mun cho php cc
yu cu ngt vi mc u tin thp hn so vi yu cu ngt b cm c tc ng th ta s
dng ch mt n c bit. Mt khi c lp, ch mt n c bit s tn ti cho ti
khi b xa bng cch ghi vo 8259A mt t lnh OCW3 khc voi bt SMM = 0. Mt n c
bit khng nh hng ti cc yu cu ngt vi mc u tin cao hn)
V.3.2.3.c Hot ng ca 8086/8088 vi 8259A
Cui cng c ci nhn mt cch c h thng v hot ng ca h vi x l vi CPU
8086/8088 v PIC 8259A khi c yu cu ngt, ta tm lt hot ng ca chng nh sau:
1 Khi c yu cu ngt t thit b ngoi vi tc ng vo mt trong cc chn IR ca
PIC. 8259A s a INT = 1 n chn INTR ca 8086/8088.
2 8086/8088 a ra xung INTA u n 8259A
3 8259A dng xung INTA u nh l thng bo n hon tt cc x l ni b cn
thit, k c x l u tin nu nh c nhiu yu cu ngt cng xy ra.
4 8086/8088 a ra xung INTA th hai n 8259A
5 Xung INTA th hai khin 8259A a ra but d liu 1 byte cha thng tin v s
hiu ngt ca yu cu ngt va c nhn bit.
6 8086/8088 dng s hiu ngt tnh ra a ch ngt ca vect ngt tng ng.
7 8086/8088 ct FR, xa cc c IF v TF v ct a ch tr v CS:IP vo ngn xp.
8 8086/8088 ly a ch CS:IP ca chng trnh phc v ngt t bng vect ngt v
thc hin chng trnh .
V.4 Vo/ra bng truy nhp trc tip b nh (Direct memory Access)
V.4.1 Khi nim v phng php truy nhp trc tip vo b nh
Trong cc cch iu khin vic trao i d liu gia thit b ngoi vi v h vi x l
bng cch thm d trng thi sn sng ca thit b ngoi vi hay bng cch ngt b vi x l
trnh by cc chng trc, d liu thng c chuyn t b nh qua b vi x l ri t
ghi vo thit b ngoi vi hoc ngc li, t thit b ngoi vi n c c vo b vi x l
ri t c chuyn n b nh. V th tc trao i d liu ph thuc rt nhiu vo tc
thc hin ca cc lnh MOV, IN v OUT ca b vi x l v do vic trao i d liu
khng th tin hnh nhanh c.
Chng V. Tng quan v cc phng php vo ra d liu
-108-
Trong thc t c nhng khi ta cn trao i d liu tht nhanh vi thit b ngoi vi: nh
khi cn a d liu hin th ra mn hnh hoc trao i d liu vi b iu khin a. Trong
cc trng hp ta cn c kh nng ghi /c d liu trc tip vi b nh th mi p ng
c yu cu v tc trao i d liu. lm c iu ny cc h vi x l ni chung u
phi dng thm mch chuyn dng iu khin vic truy nhp trc tip vo b nh DMAC
(Direct Memory Access Controller)
V d di y minh ha iu ny. Trong khi mt mch DMAC nh 8237A ca Inter
c th iu khin vic chuyn mt byte trong mt mng d liu t b nh ra thit b ngoi vi
ch ht 4 chu k ng h th b vi x l 8086/8088 phi lm ht c 4 chu k:
; s chu k ng h
LAP: MOV AL, (SI ) ;10
OUT PORT, AL ;10
INC SI ; 2
LOOP LAP ; 17
; CNG:39 chu k
h tr cho vic trao i d liu vi thit b ngoi vi bng cch truy nhp trc tip
vo b nh. CPU thng c tn hiu yu cu treo HOLD mi khi thit b cn dng but
cho vic trao i d liu vi b nh th thng qua chn ny m bo cho CPU bit. n lt
CPU, khi nhn c yu cu treo th n t treo ln (t tch ra khi h thng bng cch a
cc bt vo trng thi tr khng cao) v a xung HLDA ra ngoi thng bo CPU cho
php s dng but.
S khi ca mt h vi x l c kh nng trao i d liu theo kiu DMA c th
hin trn hnh di y.
Ta nhn thy trong h thng ny, khi CPU t tch ra khi h thng bng cch t treo
(ng vi v tr hin thi ca cc cng tc chuyn mch), DMAC phi chu trch nhim iu
Hnh V-15. H vi x l vi DMAC
Chng V. Tng quan v cc phng php vo ra d liu
-109-
khin ton b hot ng trao i d liu ca h thng. Nh vy, DMAC phi c kh nng to
ra c cc tn hiu iu khin cn thit ging nh cc tn hiu ca CPU v bn thn n phi
l mt thit b lp trnh c. Qu trnh hot ng ca h thng trn c th c tm tt nh
sau:
Khi thit b ngoi vi c yu cu trao i d liu kiu DMA vi b nh, n a yu cu
DREQ=1 n DMAC, DMAC s a yu cu treo HRQ=1 n chn HOLD ca CPU. Nhn
c yu cu treo, CPU s treo cc but ca mnh v tr li chp nhn treo qua tn hiu
HLDA=1 n chn HACK ca DMAC, DMAC s thng bo cho thit b ngoi vi thng qua
tn hiu DACK=1 l n cho php thit b ngoi vi trao i d liu kiu DMA. khi qu trnh
DMA kt thc th DMAC a ra tn hiu HRQ=0.
V.4.2 Cc phng php trao i d liu
Trong thc t tn ti 3 kiu trao i d liu bng cch truy nhp trc tip vo b nh
nh sau:
Treo CPU mt khong thi gian trao i c mng d liu.
Treo CPU trao i tng byte.
Tn dng thi gian khng dng but trao i d liu.
V.4.2.1 Trao i c mt mng d liu
Trong ch ny CPU b treo trong sut qu trnh trao i mng d liu. Ch ny
c dng khi ta c nhu cu trao i d liu vi a hoc a d liu ra hin th. Cc bc
chuyn mt mng d liu t b nh ra thit b ngoi vi:
1. CPU phi ghi t iu khin v t ch lm vic vo DMAC quy nh cch thc
lm vic, a ch u ca mng nh, di ca mng nh, . . .
2. Khi thit b ngoi vi c yu cu trao i d liu, n a DREQ =1 n DMAC.
3. DMAC a ra tn hiu HRQ n chn HOLD ca CPU yu cu treo CPU. Tn hiu
HOLD phi mc cao cho n ht qu trnh trao i d liu.
4. Nhn c yu cu treo, CPU kt thc chu k but hin ti, sau n treo cc but
ca mnh v a ra tn hiu HLDA bo cho DMAC c ton quyn s dng but.
5. DMAC a ra xung DACK bo cho thit b ngoi vi bit l c th bt u trao i
d liu.
6. DMAC bt u chuyn d liu t b nh ra thit b ngoi vi bng cch a a ch
ca byte u ra but a ch v a ra tn hiu MEMR=O c mt byte t b nh
ra but d liu. tip DMAC a ra tn hiu IOW =0 ghi a d liu ra thit b
ngoi vi. DMAC sau gim b m s byte cn phi chuyn, cp nht a ch ca
byte cn c tip, v lp li c c ng tc trn cho ti khi ht s m (TC).
7. Qu trnh DMA kt thc, DMAC cho ra tn hiu HRQ=0 bo cho CPU bit
CPU dnh li quyn iu khin h thng.
V.4.2.2 Treo CPU trao i tng byte.
Trong cch trao i d liu ny CPU khng b treo lu di trong mt ln nhng thnh
thong li b treo trong khong thi gian rt ngn trao i 1 byte d liu (CPU b ly
Chng V. Tng quan v cc phng php vo ra d liu
-110-
mt mt s chu k ng h). Do b ly i mt s chu k ng h nh vy ln tc thc hin
mt cng vic no ca CPU ch b suy gim ch khng dng li. Cch hot ng cng
tng t nh phn trc, ch c iu mi ln DMAC yu cu treo CPU thi ch c mt byte
c trao i.
V.4.2.3 Tn dng thi gian CPU khng dng but trao i d liu.
Trong cch trao i d liu ny, ta phi c cc logic ph bn ngoi cn thit pht
hin ra cc chu k x l ni b ca CPU (khng dng n but ngoi) v tn dng cc chu k
vo vic trao i d liu gia thit b ngoi vi vi b nh. Trong cch lm ny th DMAC
v CPU lun phin nhau s dng but v vic truy nhp trc tip b nh kiu ny khng nh
hng g ti hot ng bnh thng ca CPU.
V.4.3 B iu khin truy nhp trc tip vo b nh Intel 8237A
V.4.3.1 Gii thiu
DMAC 8237A c th thc hin truyn d liu theo 3 kiu: kiu c (t b nh ra thit
b ngoi vi), kiu ghi (t thit b ngoi vi n b nh) v kiu kim tra.
Trong ch truyn kiu c th d liu c c t b nh ri a ra thit b ngoi vi.
Trong ch truyn kiu ghi th d liu c c t thit b ngoi vi ri a vo b nh. Khi
8237A lm vic ch kim tra th tuy a ch c a n b nh nhng DMAC khng
to ra cc xung iu khin tin hnh cc thao tc ghi/c b nh hay thit b ngoi vi.
Ngoi ra mch 8237A cn h tr vic trao i d liu gia cc vng khc nhau ca b
nh v cng ch ring trong ch lm vic ny, d liu cn trao i mi phi di qua DMAC
nhng vi tc cao hn khi i qua CPU nhng vi tc cao hn khi i qua CPU (trong
trng hp ny ta c th c c d liu trong thanh ghi tm). S khi cu trc bn
trong ca mch 8237A -5 c th hin trn hnh di y.
Hnh V-16. S khi 8237A
Chng V. Tng quan v cc phng php vo ra d liu
-111-
Mch DMAC 8237A cha 4 knh trao i d liu DMA vi mc u tin lp trnh
c. DMAC 8237A c tc truyn 1 MB/s cho mi knh, mt knh c th truyn mt
mng c di 64KB.
V.4.3.2 Cc tn hiu ca 8237A -5
CLK[I]:tn hiu ng h ca mch. mch c th lm vic tt vi h
8086/8088 th tn hiu CLK ca h thng thng c o trc khi a vo
CLK ca 8237A.
CS [I]: tn hiu chn v 8237A chn ny thng c ni vi u ra ca b gii
m a ch. b gii m a ch ny khng cn dng n u vo IO/M v bn
thn DMAC c cung cp cc xung iu khin mi ca hn thng.
RESET[I]:tn hiu ni vi tn hiu khi ng ca h thng. Khi mch 8237A
c khi ng ring thanh ghi mt n c lp cn cc b phn sau b xa:
o Thanhghi lnh
o Thanh ghi trng thi
o Thanh ghi yu cu DMA
o Thanh ghi tm thi
o Mch lt byte u /byte cui (First/Last)
READY[I]:tn hiu sn sng, ni vi READY ca h thng gy ra cc
chu k i i vi cc thit b ngoi vi v cc b nh chm.
HLDA [I]:tn hiu bo chp nhn yu cu treo t CPU
DREQ
0
-DREQ3[I]:cc tn hiu yu cu treo t thit b ngoi vi. Cc tnh
ca cc tn hiu ny c th lp trnh c. Sau khi khi ng cc tn
hiuny c nh ngha l cc tn hiu kch hot mc cao.
DB
0
-DB
7
[I, O]:tn hiu hai chiu ni n but a ch v but d lliu ca
h thng cc tn hiu ny c dng khi lp trnh cho DMAC v khi
DMAC hot ng cc chn ny cha 8 bt a ch cao A
8
-A
15
ca mng nh
d liu cn chuyn. Trong ch chuyn d liu gia cc vng ca b nh
ti cc chn ny c cc d liu c chuyn.
IOR[I, O]V IOW[I, O]: l cc chn tn hiu hai chiu dng trong khi lp
trnh cho DMAC v trong cc chu k c v ghi.
EOP[I, O]: l tn hiu hai chiu dng yu cu DMAC kt thc qu trnh
DMA. Khi l u ra n c dng bo cho bn ngoi bit mt knh no
chuyn xong s byte theo yu cu, luc ny n thng dng nh mt
yu cu ngt CPU x l vic kt thc qu trnh DMA.
A
0
-A
3
[I, O]:l cc tn hiu hai chiu dng chn cc thanh ghi trong
8237A khi lp trnh v khi c (u vo), hoc chuyn 4 bt a ch thp
nht ca a ch mng nh cn chuyn (u ra).
A
4
-A
7
[O]:cc chn cha 4 bt a ch phn cao trong byte a ch thp
ca a ch mng nh cn chuyn.
Chng V. Tng quan v cc phng php vo ra d liu
-112-
HRQ[O]:tn hiu yu cu treo n CPU. Tn hiu ny thng c ng b
vi tn hiu CLK ca h thng ri c a n chn HOLD ca
8086/8088.
DACK
0
-DACK
3
[0]: l cc tn hiu tr li cc yu cu DMA cho cc knh.
Cc tn hiu ny c th c lp trnh hot ng theo mc thp hoc
mc cao. Sau khi khi ng, cc tn hiu ny c nh ngha l cc xung
tch cc thp.
AEN[0]: tn hiu cho php mch ni vo DB
0
-DB
7
cht ly a ch ca
vng nh cn trao i theo kiu DMA. Tn hiu ny cng cho php cm cc
mch m but a ch v d liu hoc mch to tn hiu iu khin ca
CPU ni vo cc but tng ng khi DMAC hot ng.
ADSTB[0]: xung cho php cht cc bt a ch phn cao A8-A15 c mt
trn DB0-DB7.
MEMR[0] v MEMW[0]: l cc chn tn hiu do DMAC to ra v dng khi
c/ghi b nh trong khi hot ng.
Hnh v di y minh ha cch ghp ni cc tn hiu ca 8237A vi but h
thng.
V.4.3.3 Cc thanh ghi bn trong ca DMAC 8237A
Cc thanh ghi bn trong DMAC 8237A c CPU 8086/8088 chn lm vic nh cc
bt a ch thp A0-A3. Bng di y ch ra cch thc chn ra cc thanh ghi .
Hnh V-17. Ghp ni 8237 vi but h vi x l
Chng V. Tng quan v cc phng php vo ra d liu
-113-
Cc bng di y cho bit cc thanh ghi trn theo cc quan im ng
dng khc nhau d tra cu a ch cho chng khi lp trnh vi DMAC
8237A.
Bng V-2. a ch cc thanh ghi trong dng cho cc knh
Bng V-1. a ch cc thanh ghi 8237A
Chng V. Tng quan v cc phng php vo ra d liu
-114-
V.4.3.3.a Thanh ghi a ch hin thi:
y l thanh ghi 16 bt dng cha a ch ca vng nh phi chuyn. Mi knh c
ring thanh ghi ny cha a ch. Khi 1 byte c truyn i. Cc thanh ghi ny t ng
tng hay gim tu theo trc n c lp trnh nh th no.
V.4.3.3.b Thanh ghi s m hin thi:
Thanh ghi 16 bt ny dng cha s byte m knh phi truyn(nhiu nht l 16KB).
Mi knh c thanh ghi s byte ca mnh. Cc thanh ghi ny c ghi bng s m nh nht
hn 1 so vi s byte thc chuyn.
V.4.3.3.c Thanh ghi a ch c s v thanh ghi s m c s:
Cc thanh ghi ny c dng cha a ch v s m cho mi knh khi ch t
ng khi u c s dng.
Trong ch ny mt qu trnh DMA kt thc th cc thanh ghi a ch hin thi v s
m hin thi c np li gi tr c ly t thanh ghi a ch c s v thanh ghi s m c s.
Khi cc thanh ghi a ch hin thi v s m hin thi c lp trnh th cc thanh ghi a
ch c s v thanh ghi s m c s cng c lp trnh bt k ch t khi u c c s
dng hay khng.
V.4.3.3.d Thanh ghi lnh:
Thanh ghi ny dng lp trnh cho DMAC. N b xo khi khi ng hoc khi ta s
dng lnh xo ton b cc thanh ghi. Dng thc ca thanh ghi lnh nh sau.
Bng V-3. Cc thanh ghi iu khin v trng thi
Chng V. Tng quan v cc phng php vo ra d liu
-115-
Cc bt ca thanh ghi ny quyt nh cc phng thc lm vic khc nhau ca 8237A.
Ta s gii thch sau y ngha ca cc bt.
Bt D0 cho php DMAC dng knh 0 v knh 1 chuyn d liu gia 2 vng nh.
a ch ca byte d liu vng ch c cha trong thanh ghi a ch ca knh 1. S byte
chuyn c t trong thanh ghi m ca knh 1. Byte cn chuyn lc u c c t vng
gc vo thanh ghi tm ri t n c gi n vng ch trong bc tip theo (hot
ng nh lnh MOVSB nhng vi tc cao).
Bt D1=1 dng cho php knh 0 gi nguyn a ch trong ch truyn gi liu gia
2 vng nh. iu ny khin cho ton b cc nh vng ch c np cng mt byte d liu.
Bt D2 cho php DMAC hot ng hay khng.
Bt D3 quyt nh byte cn chuyn c truyn vi 4 hay 2 chu k ng h.
Bt D4 cho php chn ch u tin c nh (knh 0 c mc u tin cao nht. Knh 3
c mc u tin thp nht) hoc ch u tin lun phin (knh 0 lc u c mc u tin cao
nht. Sau khi knh ny c chn chuyn d liu th n c nhn mc u tin thp nht.
Knh 1 li tr thnh knh c mc u tin cao nht)
Bt D5 cho php chn thi gian ghibnh thng hay ko di cho tit b ngoi vi chm.
Cc bt D6 v D7 cho php chn cc tnh tch cc ca cc xung DRQ0-DRQ4 v
DACK0- DACK4.
V.4.3.3.e Thanh ghi ch :
Dng t ch lm vic cho cc knh ca DMAC. Mi knh ca DMAC c mt
thanh ghi ch ring. Dng thc ca thanh ghi ch c biu din nh sau:
Chng V. Tng quan v cc phng php vo ra d liu
-116-
Trong ch DMA theo yu cu. DMAC tin hnh chuyn d liu cho n khi c tn hiu
EOP t bn ngoi hoc cho n khi khng cn yu cu DMA na (DREQ tr nn khng tch
cc)
Trong ch DMA chuyn tng byte, chng no vn cn yu cu DMA (DREQ vn l
tch cc) th DMAC a ra HRQ=0 trong thi gian 1 chu k but sau mi ln chuyn sang 1
byte. Sau n li a ra HRQ=1. C nh vy DMAC v CPU lun phin nhau s dng but
cho n khi m ht (TC).
Trong ch DMA chuyn c mng, c mt mng gm mt s byte bng ni dung b
m c chuyn lin mt lc. Chn yu cu chuyn d liu DREQ khng cn phi gi c
mc tch cc sut trong qu trnh chuyn. Ch ni tng c dng khi c nhiu b
DMAC c dng trong h thng m rng s knh c th yu cu DMA.
V.4.3.3.f Thanh ghi yu cu:
Thanh ghi ny dng yu cu DMA c th c thit lp/ xo theo mun bng
chng trnh. iu ny rt c li khi ta mun chuyn d liu gia cc vng khc nhau ca b
nh lc ny cc knh lin quan phi c lp trnh ch chuyn c mng. Dng thc ca
thanh ghi yu cu nh sau:
V.4.3.3.g Thanh ghi mt n ring cho tng knh:
Bng thanh ghi ny ta c th lp trnh cm (cho Bt mt n tng ng = 1) thay cho
php hot ng (cho Bt mt n tng ng = 0) i vi tng knh mt.
Chng V. Tng quan v cc phng php vo ra d liu
-117-
V.4.3.3.h Thanh ghi mt n tng hp:
Vi thanh ghi ny ta c th lp trnh cm (Bt mt n tng ng = 1) thay cho php
hot ng (Bt mt n tng ng = 0) i vi tng knh ch bng mt lnh.
V.4.3.3.i Thanh ghi trng thi:
Thanh ghi ny cho php xc nh trng thi ca cc knh trong DMAC. Knh no
truyn xong (t s m TC), knh no ang c yu cu DMA trao i d liu. Khi mt
knh no t TC. Knh s t ng b cm. Cu trc thanh ghi trng thi nh sau:
D7 D6 D5 D4 D3 D2 D1 D0
D7=1: Knh 0 c yu cu D0=1: Knh 0 t s m
D6=1: Knh 1 c yu cu D1=1: Knh 1 t s m
D5=1: Knh 2 c yu cu D2=1: Knh 2 t s m
D4=1: Knh 3 c yu cu D3=1: Knh 3 t s m
V.4.3.4 Cc lnh c bit cho DMAC 8237A
C 3 lnh c bit iu khin hot ng ca DMAC 8237A. Cc lnh ny ch thc
hin bng cc lnh OUT vi cc a ch cng xc nh th theo thanh ghi m khng cn n
gi tr c th ca thanh ghi AL.
1. Lnh xa mch lt byte u/byte cui (First/Lt, F/L): F/L l mt mch lt bn
trong DMAC bt ch ra byte no trong cc thanh ghi 16bt (thanh ghi a ch
hoc thanh ghi s m c chn lm vic. Nu F/L=1 thi s l MSB, cn
nu F/L=O) th s l LSB. Mch lt F/L t ng thay i trng thi khi ta ghi
/c cc thanh ghi . khi khi ng xong th F/L=O
2. Lnh xo ton b cc thanh ghi: lnh ny c tc ng nh thao tc khi ng.
Tt c cc thanh ghi u b xo ring thanh ghi mt n tng hp th c lp
cm cc yu cu trao i d liu.
3. Lnh xo thanh ghi mt n tng hp: Lnh ny cho php cc knh ca DMAC
bt u yu cu trao i d liu.
V.4.3.5 Lp trnh cho cc thanh ghi a ch v thanh ghi s m:
Vic lp trnh cho cc thanh ghi a ch v thanh ghi s m c thc hin ring
cho mi knh. cn phi nh trc gi tr logic ca F/L thao tc chnh xc c vi
LSB v MSB ca cc thanh ghi trn. ngoi ra cn phi cm cc yu cu DMA ca cc
knh trong khi lp trnh cho chng. C th tun theo cc bc sau y lp trnh cho
DMAC 8237A:
Chng V. Tng quan v cc phng php vo ra d liu
-118-
+ xo mt lt F/L
+cm cc yu cu ca cc knh
+ghi LSB ri MSB ca thanh ghi a ch
+ghi LSB ri MSB ca thanh ghi s m
Di y l mt on m cho 8237A c a ch c s 70H v c ghp vi vi
x l 8088 nh trong Hnh V-18.
ChotB EQU 010H ; a ch mch cht B
FL EQU 07CH ; a ch mch lt
C0 EQU 070H ; a ch knh 0
C1 EQU 072H ; a ch knh 1
Dem_C1 EQU 073H ; a ch knh 0
CheDo EQU 07BH ; a ch thanh ghi ch
Lenh EQU 078H ; a ch thanh ghi lnh
MatNa EQU 07FH ; a ch thanh ghi mt n
YeuCau EQU 079H ; a ch thanh ghi yu cu
TThai EQU 078H ; a ch thanh ghi trng thi
SoByte DW 0100H ; S byte cn chuyn
A16_19 DB 01H ; 4 bt a ch cao
Nguon DW 00000H ; a ch ngun
Dich DW 04000H ; a ch ch
;
MOV AL,A16_19
OUT ChotB, AL ; Gi a ch cao ra mch cht
OUT FL, AL ; Xa mch lt
MOV AX, Nguon ;a ch ngun ra knh 0
OUT C0,AL
MOV AL, AH
OUT C0, AL
MOV AX, Dich ; a ch ch ra knh 1
OUT C1, AL
MOV AL, AH
OUT C1, AL
DEC SoByte
Chng V. Tng quan v cc phng php vo ra d liu
-119-
MOV AX, SoByte
OUT Dem_C1, AL ; s byte cn chuyn vo b m knh 1
MOV AL, AH
OUT Dem_C1, AL
MOV AL, 088H ; Ch knh 0
OUT CheDo, AL
MOV AL, 085H ; Ch knh 1
OUT CheDo, AL
MOV AL,1 ; Chuyn mng
OUT Lenh, AL
MOV AL, 0CH ; B mt n knh 0,1
OUT MatNa, AL
MOV AL,4 ; Knh 0 yu cu DMA
OUT YeuCau, AL
LAP: IN AL,TThai
TEST AL,2 ; Kim tra b m knh 1 xong?
JZ LAP
Chng V. Tng quan v cc phng php vo ra d liu
-120-
Hnh V-18. Ghp ni 8237A vi 8088 ch MIN
Chng VI. Cc b vi iu khin
VI.1 Gii thiu v vi iu khin v cc h nhng
VI.1.1 Gii thiu
H vi iu khin l mt my tnh trong cc vi mch cn thit c b tr trn mt vi
mch duy nht. Tt c cc my tnh iu c mt s im chung nh sau:
n v x l trung tm (CPU) thc hin cc chng trnh
B nh truy nhp ngu nhin RAM cha d liu thay i
B nh ch c ROM chc cc chng trnh
Cc thit b vo/ra lin lc vi th gii bn ngoi nh bn phm, mn hnh
H vi iu khin c th c m t bng cc c trng khc. Nu mt my tnh c cc
c im chung nh th th chng c th coi nh l h vi iu khin. H vi iu khin c th:
c nhng bn trong cc thit b khc (thng l cc sn phm tiu dng) kim
sot cc chc nng hay hot ng ca sn phm. H vi iu khin cng c coi
nh b iu khin nhng;
ch dng cho mt nhim v v chy mt chng trnh xc nh. Chng trnh ny
thng c lu trong ROM v khng thay i;
l thit b tiu th in thp. B vi iu khin s dng pin c th tiu th ch 50
mA.
B vi iu khin c th nhn u vo t thit b v iu khin thit b ny bng cch gi
cc tn hiu ti cc b phn khc nhau trong thit b c iu khin. B vi iu khin
thng nh v chi ph thp. B x l c dng trong mt b vi iu khin c th thay i
rt nhiu. Trong nhiu sn phm nh l vi sng, yu cu v CPU kh thp v sc p v gi
thnh li ln nn cc nh sn xut la chn cc vi mch vi iu khin chuyn dng. l cc
thit b CPU nhng, gi r, tiu th in thp. Cc vi mch Motorola 6811 v Intel 8051 l
cc v d tiu biu. Cc vi mch vi iu khin cp thp thng c sn 1KB ROM v 20 B
RAM trn vi mch cng vi 8 tn hiu vo/ra.
VI.1.2 Cc kiu vi iu khin
H vi iu khin ch yu l 8 bt do kch c t ny rt ph bin vi phn ln cc cng
vic m cc thit b ny cn phi thc hin. di t 8 bt c coi l cho hu ht cc ng
dng v c li th giao tip vi cc vi mch nh cng nh l-gc hin c. Cu trc d liu
ASCII ni tip cng c b tr theo byte nn vic truyn thng vi cc thit b vi iu khin
d dng tng thch v thun tin. Do cc dng ng dng vi vi iu khin c th thay i rt
ln, hu ht cc nh sn xut cung cp h cc thit b vi iu khin m kh nng mi thnh
Chng VI Cc b vi iu khin
-122-
vin ph hp vi yu cu ch to. iu ny trnh tnh trng thit b vi iu khin qu phc
tp v tn km p ng tt c cc dng ng dng, ng thi, hn ch vic mt s phn ca
vi iu khin hon ton khng c s dng khi chy ng dng. H vi iu khin s c tp
lnh con chung, tuy nhin cc thnh vin trong h c th khc nhau v s lng, kiu, b
nh, cc cng v. v. Nh vy nh sn xut c th ch to cc thit b vi chi ph hiu qu ph
hp vi cc yu cu sn xut c th.
Vic m rng b nh c th s dng cc vi mch ROM/RAM bn ngoi vi iu khin.
M s vi iu khin khng tch hp sn ROM cng nh EPROM hay EEROM. Mt s chc
nng b sung khc c th c tch hp vo vi mch ca b vi iu khin nh chuyn i
tng t s (Analogue-to-Digital Converter ADC). Mt s vi iu khin khc c s lng tn
hiu t hn gim thiu chi ph. Bng di y lit k c tnh ca mt s vi iu khin.
Bng VI-1. c tnh mt s vi iu khin
M-en Tn hiu:
Vo/ra
RAM
(byte)
ROM
(Byte)
rng t
(bt)
Tnh nng khc
Intel 8051 40:32 64 1K 8 B nh m rng 8K
Motorola
68HC11
52:40 256 8K 8 Cng ni tip ; chuyn i tng t s
Zilog Z8820 44:40 272 8K 8 B nh m rng 128K ; cng ni tip
Intel 8096 68:40 232 8K 16 B nh m rng 64K ; chuyn i tng
t s ;cng ni tip; iu bin xung
VI.2 H vi iu khin Intel 8051
Vi iu khin 8051 ln u tin c Intel gii thiu vo nm 1981. y l b vi iu
khin 8 bt vi 128 byte RAM v 4KB ROM, mt cng ni tip v 4 cng 8 bt trn mt vi
mch n l. Dng vi iu khin ny tr nn ph bin sau khi Intel cho php cc nh sn xut
khc c ch to vi iu khin tng thch vi 8051. n nay vi iu khin 8051 thc ra
bao gm h vi iu khin k hiu t 8031 ti 8751 c sn xut bng cng ngh NMOS v
CMOS vi nhiu kiu ng gi khc nhau. Phin bn nng cao ca 8051 l 8052 cng c cc
bin th khc nhau. Cc bin th ny nhm p ng cc yu cu ng dng khc nhau ca cc
nh pht trin.
Bng VI-2. Thng s ca mt s vi iu khin h 8051
Tnh nng 8051 8052 8031
ROM 4K 8K -
RAM (Byte) 128 256 128
B nh thi 2 3 2
Tn hiu vo/ra 32 32 32
Cng ni tip 1 1 1
Ngun ngt 6 8 6
Chng VI Cc b vi iu khin
-123-
VI.2.1 S khi
Hnh VI-1. S khi 8051
Hnh VI-1 cho thy khi chc nng c trng cho vi iu khin l: ROM v RAM,
cc cng vo/ra, b nh thi v knh thng tin ni tip. Hnh VI-2 cho bit s tn hiu ca
8051, ngha cc tn hiu c gii thch trong Bng VI-3.
Hnh VI-2. S chn tn hiu 8051
8051 h tr 4 cng vo/ra trong mt s bin th cc cng ny u c th hot ng
c hai ch vo v ra. Cng truyn thng ni tip thng x l d liu 8 bt cho php gi v
nhn song song. Cng ni tip c 4 ch hot ng. Ch 0, chn TxD s dng nh tn
hiu xung nhp c nh mc 1/12 xung nhp ca vi iu khin cn chn RxD dng thu v
pht. Ch 1 l ch giao tip UART vi 1 bt stop. Ch 2 ging ch 1 nhng thm
bt chn l. Ch 3 ging ch 2 nhng cho php lp trnh tc tn hiu.
B nh ROM trong vi mch c th l loi EPROM lp trnh bng in. B nh ngoi c
th truy nhp thng qua tn hiu truy nhp EA=0. Vic truy nhp ROM ngoi c thc hin
thng qua tn hiu PSEN mc thp kch hot vi mch nh ROM.
Chng VI Cc b vi iu khin
-124-
Bng VI-3. ngha tn hiu 8051
Tn hiu ngha
P0. 0-P0. 7 Tn hiu d liu cng P0
P1. 0-P1. 7 Tn hiu d liu cng P1
P2. 0-P2. 7 Tn hiu d liu cng P2
P3. 0-P3. 7 Tn hiu d liu cng P3
A8-A15 Tn hiu a ch
Xtal1-2 Tn hiu xung nhp
RxD Tn hiu thu truyn thng ni tip
TxD Tn hiu pht truyn thng ni tip
INT0-1 Tn hiu ngt 0-1 (mc thp)
RD c d liu b nh ngoi
WR Tn hiu ghi d liu b nh ngoi
EA Tn hiu truy nhp b nh chng trnh ngoi
EA=0 dng ROM ngoi
EA=1 dng ROM trong
ALE Tn hiu cht a ch trn P0
ALE=1 Trn nhm cng P0 l tn hiu a ch
ALE=0 Trn nhm cng P0 l tn hiu d liu
PSEN Tn hiu cho php lu chng trnh dng c b nh chng trnh bn ngoi
RST Khi ng li
Cc tn hiu ngt ca 8051 c th chia thnh 2 loi bn trong v bn ngoi khi xng.
Khi ngt din ra, chng trnh ang chy s b dng v chng trnh phc v ngt c kch
hot. Khi kt thc, vi iu khin s quay tr li chng trnh b dng nh cha c g xy ra.
Ngt xy ra ng thi c x l theo u tin.
B nh thi hay b m l chui mch lt thay i trng thi theo tng tn hiu vo/ra.
Hai b m T0, T1 c th c lp trnh chia 256, 8192 hay 65536 v sinh ra cc tn hiu
ngt khi kt thc. Tn hiu ny c th c pht hin thng qua phn mm.
VI.2.2 Cc thanh ghi
Thanh ghi m chng trnh (PC) v con tr d liu (DPTR) l cc thanh ghi 16 bt cho
php xc nh v tr 1 nh. B nh chng trnh nm trong di 0000-FFFFh trong 0000-
0FFFh l khng gian nh chng trnh bn trong vi iu khin. Con tr d liu chia thnh hai
phn thp (8 bt) v cao (8 bt)
Thanh ghi A v B l cc thanh ghi dng chung dng cho cc thao tc tnh ton ca n
v x l ca 8051. Thanh ghi A l thanh ghi gp (accumulator) dng trong cc thao tc s hc
v l-gc. Thanh ghi ny cng dng trao i d liu vi b nh ngoi. Thanh ghi B thng
Chng VI Cc b vi iu khin
-125-
dng km vi thanh ghi A trong cc thao tc nhn chia. Ngoi ra, 8051 cn 32 thanh ghi khc
nm trong b nh RAM trong chia thnh bn bng, B0-B3, gm 8 thanh ghi R0-R7.
C l cc thanh ghi 1 bt cho bit trng thi ca mt s lnh v c gp vo thanh ghi
t trng thi chng trnh (Program Status Word PSW). 8051 c cc c nh C, ph AC, trn
OV v chn l P. Cc c ngi dng F0 v GF0-1. Cc c ngi dng c th ty bin theo
yu cu ngi vit chng trnh nh lu cc s kin.
Con tr ngn xp SP l thanh ghi 8 bt lu v tr nh ngn xp trong b nh RAM trong
ca 8051.
Cc thanh ghi chc nng c bit nm trong b nh RAM trong t a ch 00-7Fh. Cc
thanh ghi ny c th c t tn ring trong mt m lnh v tham chiu qua a ch. V d
thanh ghi A cn c tham chiu qua a ch 0E0h.
VI.2.3 Tp lnh
8051 h tr cc ch a ch sau:
1. Ch a ch trc tip: d liu dnh cho lnh l mt phn trong m lnh. T
gi nh cho ch ny l du #. V d MOV A, #100.
2. Ch a ch thanh ghi: thanh ghi lu gi tr d liu.
3. Ch a ch trc tip: a ch nh l mt phn ca cu lnh
4. Ch a ch gin tip: gi tr thanh ghi cho bit a ch ca d liu. T gi
nh l @. V d MOV A, @R0 ; Np d liu ti nh c gi tr R0 vo thanh
ghi A.
Tp lnh 8051 h tr cc thao tc di chuyn d liu, cc thao tc l-gc, cc php
ton s hc v cc cu lnh nhy v gi hm.
V d VI-1
on chng trnh 8051
Nhan: INC 3Ch ; Tng gi tr nh 3Ch ln 1
MOV A, #2Ah ; A=2Ah
XRL A, 3Ch ; XOR A vi gi tr ti nh 3Ch
JNZ Nhan ; Nhy ti Nhan nu kt qu XOR khc 0
NOP ;khng lm g c
VI.3 Gii thiu mt s ng dng tiu biu ca vi iu khin
Vic chuyn i tn hiu tng t sang s v ngc li thng gp khi ta mun kt ni
my tnh vi th gii tng t. Trong phn ny gii thiu s dng b vi iu khin kt ni
vi b chuyn i tng t s (A/D) v ngc li (D/A). Thng thng cc b chuyn i
cho php kt ni thng qua knh d liu 8 bt, ba trng thi v cho php iu khin thngqua
cc tn hiu c/ghi, chn chp.
Chng VI Cc b vi iu khin
-126-
VI.3.1 Chuyn i s tng t (D/A)
Hnh VI-3 gii thiu kt ni gia vi iu khin 8051 v b chuyn i D/A khi qut.
B chuyn i D/A c c im sau:
V
out
= -V
ref
(byte u vo/100H) v V
ref
= 10V
Thi gian chuyn i 5s
Trnh t iu khin ~CS ri ~WR.
Cng 1 c ni vi cc tn hiu d liu ca b chuyn i cn cng 3 dng iu
khin. Trong v d ny, thit b to ra sng hnh sin vi chu k 1000Hz v c th thay i
theo chng trnh. V
ref
t bng -10V dng tn hiu u ra thay i t 0V ti +9, 96V.
Chng trnh dng bng tra cu sinh ra bin sng sin. Chu k c thit lp cn c vo
khong thi gian truyn d liu cho b chuyn i. Vi S im ly mu, chu k ngt nht
T
min
= 5S s tn s ti a f
max
= 200. 000/S.
Vi sng c tn s 1000Hz, cn s lng mu l 200. Tuy nhin thc t chy chng
trnh cho thy thi gian to ra mt mu cn 6s v thi gian chuyn sang mu k tip
mt hn 2s. Nh vy thc t ch cho php s lng mu l 166.
V d VI-2. Chng trnh chuyn i D/A
. org 0000h
daconv: clr p3, 2 ; Chn chp
mov dptr, #bang : ly a ch c s bng
repeat: mov r1, #0A6h ; Khi to R1 = 166
next: mov a, r1 ; Ly a ch offset ca bng
movc a, @a+dptr ;Ly gi tr mu
mov p1, a ; Gi mu ra cng 1
clr p3, 3
setb p3, 3
djnz r1, next
sjmp repeat
; Bng chuyn i s dng hm cosin tnh gi tr bin b ca tn hiu ti u ra. 83
gi
Hnh VI-3. Ghp ni b chuyn i D/A vi 8051
Chng VI Cc b vi iu khin
-127-
;tr u th hin bin t cc i ti nh hn 0, 83 gi tr cn li t 0 ti cc i. Vi
83
; mu cho na chu k gi tr gc ca hm cosin thay i 2, 17 cho cc mu k tip.
bang: . db 00h ;
. db ffh ; s1:FFcos(0)
. db feh ; s2:7FH+FFcos(2, 17)
. db feh ; s3:7FH+FFcos(2, 172)
. db 81h ; s42:7FH+FFcos(88, 9)
. . . . . . .
. db 00h ; s84:7FH+FFcos(180)
. . . . . .
. db feh ; s166:7FH+FFcos(2, 17)
VI.3.2 Chuyn i tng t s (A/D)
Hnh VI-4 s dng b chuyn i tng t s 8 bt c cc c tnh sau:
Tn hiu ly mu: Vin = Vref-, d liu =00h ; Vin=Vref+, d liu = FFh
Thi gian ly mu: 1 s
Trnh t iu khin: CS, WR ri RD ( mc tch cc thp). Trong hnh v, cng 1 ca
8051 ni vi knh d liu ca b chuyn i cn cng 3 ni vi cc tn hiu iu khin.
V d VI-3. Chng trnh chuyn i A/D
on chng trnh sau s ha cc tn hin Vref vi chu k 100s v lu kt qu vo
trong b nh RAM 4000h:43E7h.
. equ begin, 4000h ;a ch bt u
. equ delay, 74h ;tr 87s
. equ end1, 43h ;a ch kt thc byte cao
. equ end2, e8h ;a ch kt thc byte thp
adconv: mov dptr, #begin
clr p3, 2 ; Gi ~CS ti b A/D
next: clr p3, 3 ; To xung ~WR ti b A/D
setb p3, 3 ;
clr p3, 4 ;To xung ~RD
Hnh VI-4. Ghp ni 8051 v chuyn i A/D
Chng VI Cc b vi iu khin
-128-
mov a, p1 ;c d liu t A/D
setb p3, 4 ;Kt thc c
mov @dptr, a ;Lu vo RAM
inc dptr ;Tng con tr RAM ln 1
mov a, dph ;Kim tra kt thc
cjne a, #end1, wait
mov a, dpl
cjne a, #end2, wait
sjmp done ; Kt thc khi ti v tr cui cng
wait: mov r1, #delay ;Tr 87s
here: djnz r1, here
sjmp next
done: sjmp done
. end
Chng VII. Gii thiu mt s vi x l tin tin
VII.1 Cc vi x l tin tin da trn kin trc Intel IA-32
VII.1.1 Gii thiu IA-32
IA-32 l kin trc 32 bt do hng sn xut Intel pht trin ln u tin c gii thiu
trn b vi x l Intel386. Kin trc IA-32 h tr ba ch hot ng: ch bo v
(protected mode), ch thc (real mode) v ch qun l h thng SMM (System
Management Mode). Cc ch hot ng quyt nh cc lnh v cc chc nng m chng
trnh c th truy nhp:
Ch bo v: l ch cn bn ca b x l. Ch ny cho php chy cc phn
mm 8086 trong mi trng a nhim v bo v. Ch ny cn c gi l ch
8086 o.
Ch a ch thc: Ch ny cung cp mi trng lp trnh 8086 vi mt s tnh
nng m rng nh chuyn sang ch bo v. b x l hot ng ch ny
thng thng phi khi ng li b x l.
Ch qun l h thng - SMM: Ch ny cung cp cho h iu hnh cc c ch
trong sut phc v nhim v c th nh qun l nng lng hay bo mt h thng.
Ch ny c kch hot thng qua tn hiu SMM hoc tn hiu ny nhn c t
b iu khin ngt tin tin.
Trong ch ny b x l chuyn qua li cc khng gian a ch ring bit trong
khi lu li ng cnh cn bn ca cc chng trnh ang chy. Cc on m SMM
c th c thc hin hon ton trong sut. Ngay khi quay tr li t ch SMM,
b x l c khi phc li trng thi ging nh trc khi ngt SMM xy ra.
Bt k chng trnh chy trn b x l IA-32 c cung cp cc ti nguyn thc
hin lnh, lu on m, d liu v cc thng tin trng thi. Cc ti nguyn ny to lp nn
mi trng thc thi cho chng trnhh:
Khng gian a ch: bt c chng trnh no u c th nh a ch khng gian nh
tuyn tnh ti 2
32
byte hay 4GB v khng gian a ch vt l c th ln ti 2
36
khi s
dng cch nh a ch m rng.
Cc thanh ghi thc thi cn bn: bao gm 8 thanh ghi dng chung, su thanh ghi
on, thanh ghi c v con tr lnh EIP.
Cc thanh ghi u phy ng x87FPU: bao gm 8 thanh ghi d liu, thanh ghi iu
khin, thanh ghi trng thi, thanh ghi lnh, thanh ghi con tr ton hng, th v m
lnh. Cc thanh ghi ny cho php thc hin cc php ton vi chnh xc kp m
rng hay vi s nguyn 8 byte.
Chng VII. Gii thiu mt s vi x l tin tin
-130-
Cc thanh ghi MMX: bao gm 8 thanh ghi h tr c ch thc hin 1 lnh v nhiu
d liu vi cc thao tc cc s nguyn (1 byte, 2 byte hay 4 byte) c xp vo gi
64 bt.
Cc thanh ghi XMM: h tr cc thao tc s nguyn v s thc c xp vo cc gi
128 bt.
Cc vi x l th h sau h tr IA-32 p dng cc tnh nng thc thi lnh tin tin cho
php thc hin c nhiu hn 1 lnh trong 1 chu trnh lnh nh k thut ng ng, siu v
hng, hay siu phn lung. Cc th h Pentium u tin s dng cc vi kin trc siu v
hng cho php thc hin 3 lnh trong mt chu k xung nhp vi cc siu ng ng 12 on
v c ch thc thi v hng (out-of-order execution). Vi kin trc Netburst trong Hnh VII-1.
Vi kin trc Netburst tng cng tnh nng kin trc Pentium th h u bng vic tng
cng nng lc ca n v x l, nng cao hiu nng ca b m tch hp, m rng giao tip
but. Cc vi x l IA-32 th h mi cn h tr c ch a nhn (multi-core) bn cnh kin trc
siu phn lung cho php chy nhiu ng dng ng thi. Vic kt hp hai kin trc lm cho
cc chng trnh ng dng c th s dng 4 b vi x l l-gc trn 2 b vi x l vt l. Bn
cnh , b x l th h mi h tr cng ngh o ha cho php nhiu h iu hnh v ng
dng chy trn cc my o khc nhau cng chia s h thng phn cng.
Kin trc IA-32 cung cp cc chc nng h tr h iu hnh hay cc phn mm h
thng. Vi cc thao tc vo/ra ch bo v, cc thao tc ny b hn ch thng qua:
C c quyn IOPL (I/O privilege level) v trng thi ca quyn vo/ra trong
phn on trng thi chng trnh TSS (Task state segment)
C ch bo v on v trang b nh.
Hnh VII-1. Vi kin trc Netburst
Chng VII. Gii thiu mt s vi x l tin tin
-131-
V m hnh b nh, cc chng trnh khng truy nhp trc tip vo b nh vt l. Thay
vo , cc chng trnh c th s dng cc m hnh truy nhp:
1. Tuyn tnh: Chng trnh coi b nh nh mt chui lin tip cc byte. on
m, d liu v ngn xp u nm trong khng gian a ch ny.
2. Phn on: B nh c chia thnh cc khng gian khc nhau c gi l on.
Thng thng d liu, on m, ngn xp s dng cc on khc nhau. B x
l h tr IA-32 c th cung cp 16. 383 on vi cc kch c khc nhau, kch c
ln nht ca 1 on l 4GB.
3. a ch thc: y l m hnh b nh ca 8086.
4. Phn trang v b nh o: khi ny b nh chng trnh c chia thnh cc trang
nh x vo b nh o. Sau , b nh o c nh x vo b nh thc. Nu h
iu hnh s dng phn trang, c ch nh x hon ton trong sut i vi
chng trnh ng dng
VII.1.2 Cc vi x l h tr IA-32
Vi u th ca cng ngh v thit k vi kin trc mi, mi mt th h vi x l IA-32
mi u vt ngng tc (tn s hot ng) v nng lc thc hin ca cc vi x l th h
trc. Bng di y lit k cc vi x l IA-32 th h u khng c b m tch hp trong vi
x l (GP-thanh ghi dng chung; FPU-thanh ghi du phy ng).
Bng VII-1. Vi x l h tr IA-32 th h u
Vi x l
Nm sn
xut
Tn s
(MHz)
S thanh ghi
But d
liu m
rng
B nh
ti a
B m
80386DX 1985 20 32GP 32 4GB
Intel 486DX 1989 25
32GP
80 FPU
32 4GB 8KB L1
Pentium 1993 60
32GP
80 FPU
64 4GB 16KB L1
Pentium Pro 1995 200
32GP
80 FPU
64 64GB
16KB L1
256-512KB
L2
Pentium II 1997 266
32GP
80 FPU
64 MMX
64 64GB
32KB L1
256-512KB
L2
Pentium III 1999 500
32GP
80 FPU
64 MMX
128 XMM
64 64GB
32KB L1
512KB L2
Chng VII. Gii thiu mt s vi x l tin tin
-132-
Bng VII-2. Vi x l IA-32 th h sau
Vi x l
Nm sn
xut
Vi kin
trc
Tn s
(GHz)
S thanh
ghi
Bng
thng
but h
thng
B nh
ti a
B m
Pentium 4 2000 Netburst 1, 5
32 GP
80 FPU
64 MMX
128 XMM
3, 2GB/s 64GB
8KB L1
256KB L2
Pentium 4 2002
Netburst,
Siu phn
lung
3, 06
32 GP
80 FPU
64 MMX
128 XMM
4, 2GB/s 64GB
8KB L1
256KB L2
Pentium
M
2003 Pentium M 1, 6
32 GP
80 FPU
64 MMX
128 XMM
3, 2GB/s 64GB
64KB L1
1MB L2
Pentium 4
Extreme
2005
Netburst,
Siu phn
lung
3, 73
32 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
16KB L1
2MB L2
Core Duo 2006
Pentium M,
Li kp
2, 16
32 GP
80 FPU
64 MMX
128 XMM
5, 3 GB/s 4GB
64KB L1
2MB L2
Atom
Z5xx
2008
Atom, o
ha
1, 86
32 GP
80 FPU
64 MMX
128 XMM
4, 2GB/s 4GB
56KB L1
512KB L2
VII.2 Cc vi x l tin tin da trn kin trc Intel IA-64
Kin trc Intel IA-64 b sung khng gian a ch chng trnh 64 bt h tr khng gian
nh vt l ti 40 bt v ch IA-32e so vi kin trc IA-32 trc . Kin trc IA-64 m
bo tnh tng thch ngc cho php chy cc chng trnh vit cho kin trc IA-32. Cc ch
mi ca IA-64 bao gm:
Ch tng thch: cho php chy cc ng dng 16 v 32 bt m khng phi bin dch
li. Ch ny tng t nh ch bo v trong IA-32. Cc ng dng ch truy nhp
c 4GB u trong khng gian nh tuyn tnh. Tuy nhin, ng dng c th s dng
khng gian nh ln hn vi ch m rng a ch vt l.
Ch 64 bt. Cho php chng trnh truy nhp khng gian nh tuyn tnh 64 bt. Ch
ny m rng s lng cc thanh ghi dng chung v thanh ghi XMM t 8 ln 16. Cc
thanh ghi dng chung c kch c 64 bt.
Ch 64 c kch hot trn c s on m. Kch c mc nh cho a ch l 64 bt cn
ton hng 32 bt. Kch c ca ton hng c th thay i theo tng lnh s dng tin t
Chng VII. Gii thiu mt s vi x l tin tin
-133-
REX. iu ny gip cho cc cu lnh c c th chuyn sang ch 64 bt thanh ghi v
a ch.
Bng VII-3. Vi x l h tr IA-64
Vi x l
Nm
sn
xut
Vi kin trc
Tn s
(GHz)
S thanh
ghi
Bng
thng
but h
thng
B nh
ti a
B m
Xeon 2004
Netburst, Siu phn
lung, IA-64
3, 6
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
1MB L2
Xeon 2005
Netburst, Siu phn
lung, IA-64
3, 03
32, 64 GP
80 FPU
64 MMX
128 XMM
5, 3GB/s 1024GB
16KB L1
1MB L2
8MB L3
Pentium 4
Extreme
2005
Netburst, Siu phn
lung, IA-64
3, 73
32 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
16KB L1
2MB L2
Dual-Core
Xeon
2005
Netburst, Siu phn
lung, a nhn, IA-64
3
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
2MB L2 (Tng
4MB)
Pentium 4
672
2005
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
3, 8
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4GB/s 64GB
16KB L1
2MB L2
Core 2
Extreme
X6800
2006
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
2, 93
32, 64 GP
80 FPU
64 MMX
128 XMM
8, 5GB/s 64GB
64KB L1
4MB L2
Xeon
7140
2006
Netburst, Siu phn
lung, IA-64, o ha, a
nhn
3, 40
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 64GB
64KB L1
1MB L2 (tng
2MB)
16MB L3
Xeon
5472
2007
Netburst, Siu phn
lung, IA-64, o ha, a
nhn (4 nhn)
3, 00
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 256GB
64KB L1
6MB L2 (Tng
12MB)
Atom 2008
Atom, IA-64, o ha, a
nhn (4 nhn)
1, 60
32, 64 GP
80 FPU
64 MMX
128 XMM
12, 8 GB/s 64GB
56KB L1
512KB L2 (Tng
1MB)
Core i7 2008
Netburst, Siu phn
lung, IA-64, o ha, a
nhn (4 nhn)
3, 20
32, 64 GP
80 FPU
64 MMX
128 XMM
6, 4 GT/s 64GB
64KB L1
256KB L2
8MB L3
Chng VII. Gii thiu mt s vi x l tin tin
-134-
VII.3 Cc vi x l tin tin ca Sun Microsystems
Sun Microsystems h tr thit k b x l c th m rng SPARC (Scalable Processor
Architecture). Kin trc ny chu nh hng ca my tnh Berkeley RISC I. Tp lnh v t
chc cc thanh ghi ca b x l SPARC rt ging vi Berkeley RISC. SPARC cho php trin
khai t cc ng dng nhng cho ti cc my ch rt ln, tt c u dng chung mt tp lnh
cn bn. Hin nay, b x l SPARC thng c s dng rng ri trong mi trng my
ch, trm ;m vic s dng h iu hnh SUN, Unix v Linux.
B x l SPARC thng c ti 128 thanh ghi dng chung. Ti bt c thi im no,
phn mm c th s dng tc th 32 thanh ghi bao gm 8 thanh ghi ton cc, 24 thanh ghi
ngn xp. Cc thanh ghi ngn xp c th to thnh ca s thanh ghi (register window) ti a
32 ca s cho php ti u cc thao tc gi hm v tr v. Mi ca s c 8 thanh ghi cc b v
dng chung 8 thanh ghi vi ca s k. Cc thanh ghi chia s c dng truyn cc tham s
v gi tr tr v cho cc hm cn thanh ghi cc b dng lu cc gi tr cc b gia cc li
gi hm.
Hu ht cc lnh x l ca SPARC ch s dng cc ton hng thanh ghi. Cc lnh np
v lu chuyn dng trao i d liu gia cc thanh ghi v b nh. Ngoi ch d a ch
thanh ghi, SPARC ch s dng ch a ch dch chuyn. Trong ch ny, a ch hiu
dng ca ton hng c dch chuyn 1 on tng ng vi gi tr ca thanh ghi. thc
hin cu lnh np hoc ghi, qu trnh thc hin lnh s cn thm 1 giai on tnh a ch
nh.
Vi x l h tr SPARC 32 bt phin bn 8 cho php s dng 16 thanh ghi du phy
ng vi chnh xc kp, hoc 32 thanh ghi vi chnh xc n. Cc cp chn-l ca cc
thanh ghi chnh xc kp c th kt hp vi nhau nng chnh xc ln gp i mc 4.
SPARC 64 bt phin bn 9, xut hin vo nm 1993, c thm 16 thanh ghi chnh xc kp
nhng cc thanh ghi mi ny khng tch thnh cc thanh ghi c chnh xc n c.
Bng di y lit k mt s tnh nng ca cc vi x l s dng SPARC.
Chng VII. Gii thiu mt s vi x l tin tin
-135-
Bng VII-4. Tnh nng mt s vi x l SPARC
Tn Tn s MHz
Nm
sn
xut
S
lung x
S nhn
S chn
tn hiu
m d
liu L1
(k)
m
lnh L1
(k)
m L2
(k)
UltraSPARC IIs (Blackbird) 250400 1997 11 521 16 16
1024 or
4096
UltraSPARC IIs (Sapphire-
Black)
360480 1999 11 521 16 16
1024
8192
UltraSPARC IIi (Sabre) 270360 1997 11 587 16 16
256
2048
UltraSPARC IIi (Sapphire-Red) 333480 1998 11 587 16 16 2048
UltraSPARC IIe (Hummingbird) 400500 1999 11 370 16 16 256
UltraSPARC IIi (IIe+)
(Phantom)
550650 2000 11 370 16 16 512
UltraSPARC III (Cheetah) 600 2001 11 1368 64 32 8192
UltraSPARC III Cu (Cheetah+) 10021200 2001 11 1368 64 32 8192
UltraSPARC IIIi (Jalapeo) 10641593 2003 11 959 64 32 1024
UltraSPARC IV (Jaguar) 10501350 2004 12 1368 64 32 16384
UltraSPARC IV+ (Panther) 15002100 2005 12 1368 64 64 2048
UltraSPARC T1 (Niagara) 10001400 2005 48 1933 8 16 3072
UltraSPARC T2 (Niagara 2) 10001600 2007 88 1831 8 16 4096
UltraSPARC T2 Plus (Victoria
Falls)
12001600 2008 88 1831 8 16 4096
Ti liu tham kho
1. Crisp J. Introduction to microprocessors and microcontrollers, Newnes 2004
2. David Calcutt, Fred Cowan,Hassan Parchizadeh, 8051 Microcontrollers An
Applications-Based Introduction, Newnes 2004
3. Douglas V. Hall. Microprocessor and Interfacing- programming and hardware,
2
nd
edition. McGraw Hill. 1997.
4. Hari BalaKrishnan & Samel Madden. The lecture notes on Computer Systems
Engineering, Open Courses Ware. Massachusets Institute of Technology.
5. H Khnh Lm, K thut vi x l, NXB Bu in 2005
6. Intel Corp. Intel 64 and IA-32 Architectures Software Developers Manual
7. Rafiquzzaman M. Microprocessor theory and applications with 68000/68020 and
Pentium, John Wiley&Sons 2008
8. Vn Th Minh. K thut vi x l. NXB Gio dc 1999.