You are on page 1of 10

CU TRC VI X L 8086/8088

I. CU TRC BN TRONG CA VI X L 8086/8088 : 1. S khi : - Vi x l INTEL 8086 / 8088 l cc vi x l 16 bit. - Cc php ton x l bn trong CPU l php ton thc hin trn s nh phn 8 v 16 bit. - Tuyn a ch c 20 ng nn c th qun l ln n 1 MB b nh (tm a ch t 00000h n FFFFFh). - Tuyn d liu ca 8086 c 16 bit. - Tuyn d liu ca 8088 c 8 bit. y l mt ci tin v mt thng mi so vi 8086 vic giao tip vi b nh v xut nhp n gin hn, d dng thit k hn.
B thanh ghi tng qut (8 t 16 bit) B thanh ghi on v con tr lnh (5 t 16 bit)

Tuyn a ch

ALU 16 bit
Tuyn d liu

KHI GIAO TIP BUS

INTA, RD, WR DT / R, DEN ALE, M / IO

EU
(Execution Unit)

BIU
(Bus Interface Unit)

ui lnh (6 bytes)

INTR, NMI, TEST CLK, RESET READY MN/MX HOLD HLDA

LOCK

KHI IU KHIN & NH TH

QS1, QS0 S2, S1, S0

Tr.18 T chc v cu trc my tnh

CPU INTEL 8086/8088

- Cho php s dng h thng ngt qung v c ch DMA (Direct Memory Access). - S khi vi x l 8086 gm hai phn chnh : khi giao tip Bus (BIU:Bus interface unit) v khi thc thi (EU:Execution unit). - Khi BIU chu trch nhim ly lnh v giao tip ra bn ngoi iu khin b nh v xut nhp. - Khi EU c nhim v thi hnh lnh, nh th, kim tra cc tn hiu trng thi, cc tn hiu yu cu ngt qung, c ch DMA, tn hiu RESET, tn hiu READY. - Cc lnh trong b nh c khi BIU ly vo lin tc v ct trong ui lnh (c chiu di 6 byte i vi 8086 hoc 4 byte i vi 8088). Sau khi EU ly lnh t ui lnh ra gii m v thi hnh. - Hot ng ca hai khi BIU v EU din ra c lp vi nhau nn qu trnh ly lnh v thi hnh lnh c vi x l thc hin ng thi theo c cu ng ng (pipeline). iu ny tuy khng lm tng tc x l ca CPU (gii hn bi tn s xung ng b) nhng lm gim bt thi gian thi hnh ca c chng trnh. - Hnh sau minh ha v s phn phi thi gian cho hai qu trnh ly lnh v thi hnh lnh ca CPU bnh thng v ca CPU dng c cu ng ng.
Ly lnh
Lnh 1 Lnh 2 Lnh 3 t

Thi hnh lnh

Lnh 1

Lnh 2

Lnh 3 t

CPU thng

Ly lnh

Lnh 1

Lnh 2

Lnh 3 c lnh 2 c lnh 3 Lnh 3 t Thi gian tit kim c t

Thi hnh lnh

Lnh 1

Lnh 2

CPU dng c cu ng ng

- Tuyn a ch d liu dng chung AD15 AD0 cn c tn hiu iu khin ALE phn bit lc no l a ch lc no l d liu. Ch khi ALE = 1, tn hiu trn tuyn chung c xem l a ch. Trng hp cn li xem l tuyn d liu. - Thng th phi nh mt mch ci a ch v mt mch m 2 chiu tch tuyn chung ra thnh hai tuyn phn bit.
AD15 AD0
ALE L

Ci

A15 A0

m 2 chiu
DT/R DEN DIR OE

D15 D0

Bin son : Nguyn Xun Minh

i hc Bch khoa tp.HCM

CPU INTEL 8086/8088

T chc v cu trc my tnh Tr.19

2. B thanh ghi : 2.1 B thanh ghi a dng : - Gm 8 thanh ghi 16 bit. - Cc thanh ghi AX, BX, CX, DX c th dng AX phn na nh cc thanh ghi 8 bit AH, AL, BH, BX BL, CH, CL, DH, DL. - Thanh ghi AH l na cao ca thanh ghi AX. CX Thanh ghi AL l na thp ca thanh ghi AX. DX Chng hn nu AX= 1234h th AH=12h v AL=34h. - AX l thanh ghi b tch ly 16 bit (ACC). - AL l thanh ghi b tch ly 8 bit. - BX l thanh ghi nn (base register). - CX l thanh ghi b m (counter). - DX l thanh ghi d liu (data). - SI l thanh ghi ch s ngun (source index). - DI l thanh ghi ch s ch (destination index). - BP l thanh ghi con tr nn (base pointer). - SP l thanh ghi con tr chng (stack pointer). 2.2 B thanh on v con tr lnh : - Gm 4 thanh ghi on 16 bit dng qun l b nh theo phng php phn on. - CS l thanh ghi on chng trnh (code segment). - DS l thanh ghi on d liu (data segment). - SS l thanh ghi on chng (stack segment). - ES l thanh ghi on m rng (extra segment). - IP l thanh ghi con tr lnh (instruction pointer). 2.3 Thanh ghi trng thi :
OF DF IF TF SF ZF AF PF CF

AH BH CH DH SI DI BP SP

AL BL CL DL

CS DS SS ES IP

SF l c du (sign flag). CF l c nh (carry flag). ZF l c khng (zero flag). OF l c trn (overflow flag). AF l c trung gian (auxiliary flag) hay cn gi l c nh na (half-carry flag). AF = 0 khi khng c s trn v dung lng 4 bit. AF = 1 khi c s trn v dung lng 4 bit. V d : php ton 00001001 + 00000111 = 00010000 s lp c AF ln 1. - C AF thng c dng trong cc php ton BCD (l cc s dng h nh phn 4 bit biu din s thp phn t 0 9). - PF l c kim tra chn l (parity flag).
PF = 1 nu s bit 1 ca kt qu l s chn. PF = 0 nu s bit 1 ca kt qu l s l.

V d : sau khi thc hin (00000101 AND 00000101) th PF = 1. - DF l c nh hng (direction flag).
DF = 0 : nh hng gim a ch cho cc lnh x l chui. DF = 1 : nh hng tng a ch cho cc lnh x l chui.

- IF l c ngt qung (interrupt enable flag).


IF = 0 : cm ngt cng INTR. IF = 1 : cho php ngt cng INTR.

i hc Bch khoa tp.HCM

Bin son : Nguyn Xun Minh

Tr.20 T chc v cu trc my tnh

CPU INTEL 8086/8088

- TF l c by (trap flag). Dng chy tng bc khi cn kim tra hot ng ca CPU. II. QUN L B NH CA VI X L 8086/8088 : 1. Phn on v phn loi a ch : 1.1. S phn on b nh : - CPU 8086 dng phng php phn on b nh qun l b nh 1MB ca n. - a ch 20 bit ca b nh 1MB khng th cha trong cc thanh ghi 16 bit ca CPU 8086 v vy b nh 1 MB c chia ra thnh cc on (segment) 64KB. - a ch trong cc on 64KB ch c 16 bit nn CPU 8086 d dng x l bng cc thanh ghi ca n. - Nh vy phng php phn on b nh l cch dng cc thanh ghi 16 bit biu din cho a ch 20 bit. 1.2. a ch vt l v a ch lun l : - a ch 20 bit c gi l a ch vt l. a ch vt l c dng trong thit k cc mch gii m a ch cho b nh v xut nhp. - Ngc li, trong lp trnh, a ch vt l khng th dng c m n c thay th bng a ch lun l. - a ch lun l l a ch gm c hai thnh phn : a ch on (segment) v a ch trong on (offset). - Mi a ch thnh phn ch c 16 bit v c vit theo cch sau :
SEGMENT:OFFSET

- Segment v offset l cc s h 16. - Cch tnh a ch vt l t a ch lun l nh sau :


segment + offset a ch vt l 0 (segment dch tri 4 bit hay nhn 16) (offset gi nguyn) (a ch vt l 20 bit)

Hoc theo cng thc : a ch vt l = (segment x 16) + offset V d : tnh a ch vt l tng ng vi a ch lun l B001:1234 a ch vt l = B0010h + 1234 = B1244h - a ch segment cn c gi l a ch nn ca on. N cho bit im bt u ca on trong b nh. - Trong khi , a ch offset th hin khong cch k t u on ca nh cn tham kho. Do offset c 16 bit nn chiu di ti a ca mt on l 64K. Trong mi on, nh u tin c offset l 0000h v nh cui cng c offset l FFFFh.

Bin son : Nguyn Xun Minh

i hc Bch khoa tp.HCM

CPU INTEL 8086/8088

T chc v cu trc my tnh Tr.21

B nh segment offset 0000

nh c a ch lun l segment:offset

64KB FFFF

- Mi nh ch c duy nht mt a ch vt l nhng c th c nhiu a ch lun l. Chng hn cc a ch lun l 1234:1234, 1334:0234, 1304:0534, ... u c chung a ch vt l 13574h. - hiu r ti sao, ta ln lt xem quan h gia a ch vt l vi cc thnh phn segment v offset. - Vi a ch lun l 0000:0000 ta c a ch vt l l 00000h. - By gi ta gi nguyn phn segment v tng phn offset ln 1 thnh ra a ch lun l 0000:0001. a ch vt l tng ng l 00001h. - Tng t vi a ch lun l 0000:0002 ta c a ch vt l 00002h. - Ta nhn thy khi offset tng 1 n v th a ch vt l tng 1 a ch hoc l tng 1 byte. Nh vy ta c th xem n v ca offset l byte. - By gi ta lm li qu trnh trn nhng khng tng offset na m tng phn segment. Ta c : a ch lun l 0001:0000 tng ng vi a ch vt l 00010h. a ch lun l 0002:0000 tng ng vi a ch vt l 00020h. - Ta nhn thy khi segment tng 1 n v th a ch vt l tng 10h a ch hoc l tng 16 byte. Ngi ta gi n v ca segment l paragraph. 1 paragraph = 16 bytes - iu ny cng c th c gii thch l do cch tnh a ch vt l t a ch lun l nu trn.
Segment 0000: Segment 0001: Segment 0002: 00000h 00010h 00020h

Phn chng chp ca 3 segment 0000, 0001, 0002. 0FFFFh 1000Fh 1001Fh

- T cc a ch vt l tnh ra trn, ta thy segment 0000 nm u vng nh nhng segment 0001 bt u cch u vng nh ch c 16 bytes, segment 0002 bt u cch u vng nh 32 bytes . . .
i hc Bch khoa tp.HCM Bin son : Nguyn Xun Minh

Tr.22 T chc v cu trc my tnh

CPU INTEL 8086/8088

- Phn chng chp ca c ba segment 0000, 0001 v 0002 trn hnh v l vng b nh m bt k nh no nm trong (a ch vt l t 00020h n 0FFFFh) u c th c a ch lun l tng ng trong c 3 segment. Chng hn nh c a ch vt l 0002Dh s c a ch lun l trong segment 0000 l 0000:002D, trong segment 0001 l 0001:001D v trong segment 0002 l 0002:000D. - Nh vy nu vng b nh no cng c nhiu segment chng chp ln nhau th cc nh trong cng c nhiu a ch lun l (mt nh c t nht 1 a ch lun l v nhiu nht l 65536/16=4096 a ch lun l). 2. a ch lun l v cc thanh ghi : - tham kho n b nh trong chng trnh, vi x l 8086 cho php s dng cc a ch lun l mt cch trc tip hoc thng qua cc thanh ghi ca n. - Cc thanh ghi on dng cha a ch on segment. - Cc thanh ghi tng qut dng cha a ch trong on offset. - tham kho n a ch lun l c segment trong thanh ghi DS, offset trong thanh ghi BX, ta vit DS:BX. Nu lc tham kho, DS=2000h, BX=12A9h th a ch lun l DS:BX chnh l tham kho n nh 2000:12A9. - Trong cch s dng a ch lun l thng qua cc thanh ghi ca vi x l 8086, c mt s cp thanh ghi lun lun phi dng chung vi nhau mt cch bt buc nh sau :
CS:IP SS:SP SS:BP DS:SI ES:DI : : : : : ly lnh (a ch lnh sp thi hnh). a ch nh chng. thng s trong chng (dng cho chng trnh con). a ch chui ngun (ch c ngha trong cc lnh x l chui). a ch chui ch (ch c ngha trong cc lnh x l chui).

- Chng trnh m vi x l 8086 thi hnh thng c 3 on : on chng trnh c a ch trong thanh ghi CS, on d liu c a ch trong thanh ghi DS v on chng c a ch trong thanh ghi SS.
B nh CS

Chng trnh
DS

D liu

SS

Chng

II. CC HOT NG CHNH CA VI X L 8086/8088 : 1. Ly lnh : - Thc hin bng chu k my ly lnh ko di trong 4T (chu k xung clock). - Thc cht ca hot ng ly lnh l hot ng c b nh.

Bin son : Nguyn Xun Minh

i hc Bch khoa tp.HCM

CPU INTEL 8086/8088

T chc v cu trc my tnh Tr.23

- m u cho hot ng ly lnh, a ch lnh CS:IP c i thnh a ch vt l v c a ln tuyn a ch 20 bit km theo tn hiu cho php ci a ch ALE (Address latch enable) trong T1 . - Cc tn hiu iu khin c a ra trong T2 v T3 gm c : M/IO=1 RD=0 DEN=0 DT/R=0 - Sau , CPU s c m lnh t tuyn d liu vo u T4. - Thng cc chu k my ca vi x l c cung cp trong cc s tay tra cu di dng cc gin xung nh sau :
T1 T2 T3 T4

CLK M/IO A19A16 ALE AD15AD0 RD DT/R DEN


CS:IP M lnh CS:IP

2. c b nh : - Thc hin bng chu k my c b nh ko di trong 4T. - Trong T1, a ch b nh c i thnh a ch vt l v c a ln tuyn a ch 20 bit km theo tn hiu cho php ci a ch ALE. - Cc tn hiu iu khin c a ra trong T2 v T3 gm c : M/IO=1 RD=0 DEN=0 DT/R=0 - Sau , CPU s c m lnh t tuyn d liu vo u T4.
T1 T2 T3 T4

CLK M/IO A19A16 ALE AD15AD0 RD DT/R DEN


a ch D liu a ch

- Gin xung ca chu k my c b nh trn cng c th dng chung cho chu k my nhp.

i hc Bch khoa tp.HCM

Bin son : Nguyn Xun Minh

Tr.24 T chc v cu trc my tnh

CPU INTEL 8086/8088

- Trong trng hp b nh c thi gian truy xut b nh qu ln, khng th a d liu ra ng vo thi im CPU ly d liu, ngi ta phi thit k mt mch iu khin pht ra tn hiu READY=0 nhm ko di chu k c ra thm 1 hay nhiu chu k xung clock (cc chu k ko di thm gi l chu k i TW) trc khi chuyn sang T4. 3. Ghi b nh : - Thc hin bng chu k my ghi b nh ko di trong 4T. - Trong T1, a ch b nh c i thnh a ch vt l v c a ln tuyn a ch 20 bit km theo tn hiu cho php ci a ch ALE. - D liu cn ghi vo b nh c a ra tuyn d liu trong T2 v T3. - Cc tn hiu iu khin c a ra trong T2 v T3 gm c : M/IO=1 WR=0 DEN=0 DT/R=1 - Sau , CPU s ch cho n ht T4 v kt thc chu k ghi. - Gin xung ca chu k my ghi b nh v chu k my xut nh sau :
T1 T2 T3 T4

CLK M/IO A19A16 ALE AD15AD0 WR DT/R DEN


a ch D liu a ch

4. Nhp : - Thc hin bng chu k my nhp ko di trong 4T. - Trong T1, a ch cng xut nhp 16 bit c a ln tuyn a ch km theo tn hiu cho php ci a ch ALE. - Cc tn hiu iu khin c a ra trong T2 v T3 gm c : M/IO=0 RD=0 DEN=0 DT/R=0 - Sau , CPU s c m lnh t tuyn d liu vo u T4. - Gin xung ging nh ca chu k my c b nh, ch c khc ch tn hiu M/IO mc 0. 5. Xut : - Thc hin bng chu k my xut ko di trong 4T. - Trong T1, a ch cng xut nhp 16 bit c a ln tuyn a ch km theo tn hiu cho php ci a ch ALE. - D liu cn xut c a ra tuyn d liu trong T2 v T3. - Cc tn hiu iu khin c a ra trong T2 v T3 gm c : M/IO=0 WR=0 DEN=0 DT/R=1 - Sau , CPU s ch cho ht T4 v kt thc chu k xut. - Gin xung tng t nh ca chu k my ghi b nh, ch khc tn hiu M/IO mc 0.

Bin son : Nguyn Xun Minh

i hc Bch khoa tp.HCM

CPU INTEL 8086/8088

T chc v cu trc my tnh Tr.25

6. p ng ngt qung : - Vi x l 8086 s dng 3 loi ngt qung : . Ngt h thng : do CPU pht ra khi c mt li nghim trng xy ra trong qu trnh hot ng ca n. Chng hn nh chia cho s 0, in p ngun cung cp gim thp, chia trn . . . . Ngt cng : do thit b ngoi vi gy ra khi cn trao i thng tin vi CPU. c trng ca ngt cng l tn hiu yu cu ngt qung INTR. . Ngt mm : do thi hnh lnh INT trong chng trnh. Thc cht ca ngt mm chnh l mt dng gi n chng trnh con. - Mc ch ca vic phc v ngt qung l bng cch no chuyn iu khin sang cho mt chng trnh con c bit gi l chng trnh phc v ngt qung ca ring ngt qung c phc v. - i vi vi x l 86, vic phc v ngt qung c thc hin thng qua s ngt ca tng ngt qung. Mi ngt qung c mt s ngt ring. S ngt l mt s 1 byte nn vi x l 86 ch c th phc v cho ti a 256 ngt qung. - Vi x l 86 s dng phng php vector ngt chuyn iu khin n cc chng trnh phc v ngt qung. - Vector ngt l cc bin b nh di 4 bytes m c kh nng cha c mt a ch lun l y gm 2 byte segment v 2 byte offset. Ngi ta dng vector ngt cha a ch bt u ca chng trnh phc v ngt qung. - Cc vector ngt c xp ni tip nhau k t u ca vng b nh to thnh bng vector ngt. Chiu di ca bng vector ngt l 256 4=1024 hay 400h. Nh vy bng vector ngt s nm trong vng b nh c a ch vt l t 00000h n 003FFh. - S th t ca cc vector ngt c qui nh chnh l s ngt tng ng nn v tr ca vector ngt c xc nh theo cch sau :
a ch vt l ca vector ngt = s ngt 4

- Sau khi xc nh c v tr ca vector ngt ri, CPU s ly a ch chng trnh phc v ngt trong vector ngt ra v chuyn iu khin n . Tc l n s thc hin mt lnh gi n chng trnh phc v ngt qung. - V d phc v cho ngt qung s 8 theo hnh sau, CPU s chy chng trnh con c a ch trong vector ngt 8 ( a ch vt l 8 4=32=20h) m c th l a ch lun l 3000:2A76.
4 byte 00014h S ngt 8 00018h 0001Ch 36 2A 5B 76 00024h 5B 09 E4 E0 2A E8 7C 00 00 00 00 00 F0 F0 30 F0 Vector ngt 8

00020h
(a ch vt l)

Bng vector ngt

- Hot ng p ng ngt qung ca vi x l 86 ch dng cho ngt cng. - Vi x l 86 dng hot ng ny c s ngt tng ng t khi xut nhp. - Hot ng p ng ngt qung c thc hin bng chu k my p ng ngt qung ko di trong 4T. - Tuyn a ch khng c dng trong chu k p ng ngt qung.

i hc Bch khoa tp.HCM

Bin son : Nguyn Xun Minh

Tr.26 T chc v cu trc my tnh

CPU INTEL 8086/8088

- Cc tn hiu iu khin gm c : DEN=0 DT/R=0 INTA=0 - Tn hiu INTA l tn hiu c trng cho chu k my p ng ngt qung. - Tn hiu yu cu ngt qung INTR c kim tra cui mi chu k lnh ngha l CPU phi thi hnh xong lnh hin ti ri mi chuyn sang hot ng p ng ngt qung. Khi n pht ra 2 chu k my p ng ngt qung lin tip m cn gi l chu k INTA. - Sau chu k INTA th 2, s thi hnh lnh c chuyn sang chng trnh con phc v ngt qung. - Gin xung chu k my p ng ngt qung nh sau :
T1 T2 T3 T4

CLK AD15 AD0 DT/R INT DEN S ngt

Bin son : Nguyn Xun Minh

i hc Bch khoa tp.HCM

You might also like