Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

§2 bé vi xö lý 8086/88

1. Tæ chøc cña 8086/88


 C¸c th«ng sè chÝnh cña 8088/86
Bé vi xö lý (MP - Microprocessor) lµ mét bé phËn thêng ®îc xem nh lµ
bé n·o cña hÖ m¸y tÝnh. Bé vi xö lý (VXL) thùc chÊt lµ 1 vi m¹ch tÝch hîp
cùc lín, víi kh¶ n¨ng linh ho¹t vµ c«ng dông nhÊt trong c¸c lo¹i vi m¹ch sè.
HiÖn nay ®· cã nhiÒu h·ng s·n xuÊt c¸c bé vi xö lý kh¸c nhau. Trong gi¸o
tr×nh nµy chóng ta sÏ ®Ò cËp tíi c¸c bé VXL cña h·ng Intel - lµ mét trong
nh÷ng lo¹i VXL m¹nh vµ ®îc phæ biÕn nhÊt hiÖn nay. Tríc hÕt chóng ta sÏ
xem xÐt cÊu tróc cña bé VXL c¬ së 8088/86. C¸c bé VXL tiÕp theo ®îc ph¸t
triÓn trªn nÒn cña bé VXL c¬ së nµy.
- Do Intel s¶n xuÊt vµo n¨m 1978
- Cã 40 ch©n, ®ãng vá kiÓu hai hµng ch©n DIP (dual in line package)
- C¶ hai ®Òu cã 20 ch©n ®Þa chØ, do vËy ®Þa chØ ho¸ ®îc 220=1 Mb
bé nhí
- C¶ hai ®Òu cã bus d÷ liÖu trong lµ 16 bit.
- §iÓm kh¸c nhau c¨n b¶n gi÷a hai bé xö lý nµy lµ bus d÷ liÖu ngoµi.
8088 cã bus d÷ liÖu ngoµi 8 bit vµ do vËy dïng víi c¸c thiÕt bÞ ngo¹i vi 8 bit
rÎ tiÒn vµ phï hîp víi thêi bÊy giê c¸c thiÕt bÞ ngo¹i vi ®ang chñ yÕu lµ 8 bit.
8086 cã bus d÷ liÖu ngoµi 16 bit vµ do vËy dïng víi c¸c thiÕt bÞ ngo¹i vi
16 bit lóc bÊy giê lµ ®ang cha phæ dông vµ ®¾t tiÒn.
- TÇn sè nhÞp ®ång hå lµ 4,77 MHz. C¸c phiªn b¶n sau dïng tÇn sè nhÞp
®ång hå lªn ®Õn 10 MHz.
VÒ ph¬ng diÖn m¸y tÝnh, 8086 ®îc dïng trong thiÕt kÕ m¸y tÝnh
Damaster ®Çu tiªn, tuy nhiªn thµnh c«ng trong viÖc dïng ®Î x©y dùng m¸y
tÝnh sau nµy l¹i thuéc vÒ bé vi xö lý 8088 mµ tªn cña nã g¾n liÒn víi thÕ hÖ
m¸y tÝnh IBM næi tiÕng. 2. Tæ chøc cña EU
 S¬ ®å khèi bé VXL 8086/8088 EU lµ ®¬n vÞ thùc hiÖn, lµ n¬i xÈy ra c¸c qu¸ tr×nh xö lý d÷ liÖu ë bªn
trong bé VXL. NhiÖm vô chÝnh cña EU lµ nhËn c¸c lÖnh vµ d÷ liÖu do BIU
Bé VXL 8086/8088 gåm cã 2 khèi chÝnh lµ §¬n vÞ thùc hiÖn lÖnh EU
chuyÓn ®Õn råi xö lý c¸c th«ng tin ®ã. D÷ liÖu ®· ®îc xö lý trong EU sau
(Execution Unit) vµ §¬n vÞ giao tiÕp BIU (Bus Interface Unit). EU thùc hiÖn
®ã ®îc chuyÓn ra bé nhí hoÆc c¸c thiÕt bÞ ngo¹i vi th«ng qua BIU. Nh vËy
tÊt c¶ c¸c tÝnh to¸n sè häc vµ l«gich, cßn BIU th× nhËn lÖnh (Fetche) vµ d÷
EU kh«ng liªn hÖ trùc tiÕp víi thÕ giíi bªn ngoµi mµ lu«n th«ng qua BIU.
liÖu tõ bé nhí. C¸c lÖnh nµy dïng ®Ó ®iÒu khiÓn ho¹t ®éng cña c¸c bé phËn
bªn trong vµ bªn ngoµi CPU. §¬n vÞ thùc hiÖn EU bao gåm cã 3 thµnh phÇn nh sau:
S¬ ®å khèi chøc n¨ng cña bé VXL 8086/8088 ®îc giíi thiÖu nh trªn H×nh 2.1 - §¬n vÞ sè häc vµ l« gich ALU (Arithmetic and Logic Unit).
H×nh 2.1. CÊu tróc bé vi xö lý 8086/8088
- TËp c¸c thanh ghi bao gåm: c¸c thanh ghi ®a n¨ng, thanh ghi con trá vµ
Díi ®©y chóng ta nghiªn cøu s©u h¬n vÒ c¸c khèi chøc n¨ng ®ã. chØ sè, thanh ghi cê. C¸c thanh ghi ®îc sö dông ®Ó xö lý sè liÖu vµ ghi gi÷
c¸c kÕt qu¶ trung gian.
- Khèi ®iÒu khiÓn cña EU. B¶ng 2.2 Thanh ghi con trá vµ chØ sè trong EU
a. §¬n vÞ sè häc-l«gic ALU (Arithmetic and logic Unit)
§¬n vÞ sè häc-l«gic ALU gåm c¸c m¹ch cã nhiÖm vô thùc hiÖn c¸c phÐp C¸c thanh ghi nµy thêng ®îc dïng chñ yÕu lµ ®Ó trá hoÆc ghi chØ sè ®Ó x¸c
tÝnh sè häc hoÆc logic trªn c¸c sè nhÞ ph©n theo tõng cÆp bit vµo. §Ó thùc ®Þnh 1 ®Þa chØ trong bé nhí. §Þa chØ ®îc chøa trong c¸c thanh ghi nµy cã
hiÖn ®îc c¸c phÐp tÝnh nµy ALU cÇn sö dông c¸c thanh ghi liªn quan. thÓ ®îc liªn hîp víi c¸c th«ng tin tõ BIU ®Ó ®Þnh vÞ trÝ thùc cña d÷ liÖu
trong bé nhí.
b. TËp c¸c thanh ghi (Register Set)
- BP (base pointer): con trá c¬ së, dïng ®Ó trá vµo d÷ liÖu n»m trong
Trong EU cña 8086/88 cã 3 nhãm thanh ghi lµ: c¸c thanh ghi ®a n¨ng,
®o¹n ng¨n xÕp SS. §Þa chØ ®Çy ®ñ cña phÇn tö trong ®o¹n ng¨n xÕp lµ
thanh ghi con trá vµ chØ sè vµ thanh ghi cê.
SS:BP.
C¸c thanh ghi ®a n¨ng (General Register):
Tríc khi t×m hiÓu tiÕp vÒ thanh ghi SP, cÇn ®Ò cËp tíi kh¸i niÖm liªn
Bao gåm 4 thanh ghi d÷ liÖu (data register) 16 bit. C¸c thanh ghi nµy ®îc quan lµ ng¨n xÕp.
sö dông ®Ó lu gi÷ t¹m c¸c kÕt qu¶ trung gian vµ ®îc ký hiÖu lµ AX, BX, CX,
Ng¨n xÕp (stack) lµ 1 vïng trong bé nhí trong ®Ó lu tr÷ c¸c d÷ liÖu t¹m
DX. §Æc ®iÓm cña c¸c thanh ghi nµy lµ trong trêng hîp cÇn chøa d÷ liÖu 8
thêi. Ng¨n xÕp ®îc sö dông khi ch¬ng tr×nh thùc hiÖn mét lÖnh gäi ch¬ng
bit th× mçi thanh ghi cã thÓ ®îc chia lµm 2 nöa 8 bit: nöa cao (øng víi ký hiÖu
tr×nh con hay 1 ng¾t. Lóc ®ã CPU lu ®Þa chØ cña lÖnh kÕ tiÕp sau lÖnh
H) vµ nöa thÊp (øng víi ký hiÖu L). Nh vËy c¸c thanh ghi ®a n¨ng cã thÓ
gäi vµo ng¨n xÕp. Khi thùc hiÖn xong ch¬ng tr×nh con hoÆc ng¾t th× CPU
dïng nöa 8 bit ®Ó lu theo Byte hoÆc kÕt hîp 2 nöa ®Ó lu theo Tõ. B¶ng 2.1
sÏ lÊy ®Þa chØ nµy ra khái stack ®Ó cã thÓ thùc hiÖn lÖnh kÕ tiÕp.
giíi thiÖu c¸c thanh ghi ®a n¨ng.
Ng¨n xÕp lµm viÖc theo nguyªn t¾c LIFO (Last In First Out)
B¶ng 2.1 C¸c thanh
ghi ®a n¨ng §Ó qu¶n lý ng¨n xÕp cÇn sö dông con trá ®Ó chØ ®Õn ®Ønh cña ng¨n
xÕp.
- Thanh ghi AX
(accumulator - Acc): thanh - SP (stack pointer): con trá ng¨n xÕp, ®îc dïng lµm con trá ®Ó chØ
ghi tÝch luü, lµ thanh ghi ®Õn phÇn tö ë ®Ønh cña ng¨n xÕp n»m trong ®o¹n ng¨n xÕp SS. §Þa chØ
chÝnh ®Ó thùc hiÖn c¸c ®Çy ®ñ cña ®Ønh ng¨n xÕp lµ SS:SP.
phÐp to¸n sè häc, c¸c lÖnh xuÊt nhËp cæng. Thanh ghi nµy thêng ®îc dïng
SI vµ DI ®îc dïng trong c¸c lÖnh xö lý chuçi vµ trong c¸c phÐp ®Þnh
®Ó lu (tÝch luü) c¸c kÕt qu¶ tÝnh to¸n (céng, trõ, nh©n, chia.....). NÕu kÕt
®Þa chØ chØ môc khi truy xuÊt bé nhí.
qu¶ lµ 8 bit th× thanh ghi AL ®îc coi lµ Acc.
- SI (source index): chØ sè nguån, dïng ®Ó x¸c ®Þnh ®Þa chØ d÷ liÖu
- BX (base): thanh ghi c¬ së, thêng dïng ®Ó chØ ®Þa chØ c¬ së cña mét
nguån trong ®o¹n d÷ liÖu DS. §Þa chØ ®Çy ®ñ cña d÷ liÖu nguån lµ DS:SI.
vïng nhí trong bé nhí.
- DI (destination index): chØ sè ®Ých, dïng ®Ó x¸c ®Þnh ®Þa chØ cña
- CX (count): thanh ghi ®Õm, dïng ®Ó chøa sè lÇn lÆp cña vßng lÆp,
d÷ liÖu ®Ých trong ®o¹n d÷ liÖu DS. §Þa chØ ®Çy ®ñ cña d÷ liÖu ®Ých lµ
phÐp dÞch, phÐp quay.
DS:DI.
- DX (data): Thanh ghi d÷ liÖu, thêng dïng ®Ó lu kÕt qu¶ cña c¸c phÐp
Riªng trong trêng hîp thao t¸c víi d÷ liÖu d¹ng chuçi th× cÆp ®Þa chØ
tÝnh nh©n, chia vµ ®Þnh ®Þa chØ cæng trong c¸c lÖnh xuÊt, nhËp cæng.
DS:SI sÏ chØ phÇn tö cña chuçi nguån, cßn cÆp ES:DI sÏ chØ phÇn tö cña
C¸c thanh ghi con trá vµ chØ sè. chuçi ®Ých.
Trong ®¬n vÞ EU cã 2 thanh ghi con trá (Pointer Register) ®îc ký hiÖu Tãm l¹i: VÒ c¸c thanh ghi ®a n¨ng, thanh ghi con trá, chØ sè ®îc sö dông
lµ SP, BP vµ 2 thanh ghi chØ sè (Index Register) ®îc ký hiÖu lµ SI vµ DI. hÇu hÕt ë c¸c phÐp tÝnh sè häc vµ l«gich. B¶ng 2.3 giíi thiÖu c¸c chøc n¨ng
§©y lµ c¸c thanh ghi 16 ngÇm ®Þnh cña c¸c thanh ghi ®ã. §Ó minh ho¹ viÖc sö dông thanh ghi SI, DI
bit vµ kh¸c víi thanh ghi vµ ng¨n xÕp, chóng ta xem vÝ dô sau:
®a n¨ng, chóng kh«ng
VÝ dô 1: Sö dông c¸c thanh ghi SI, DI viÕt ch¬ng tr×nh chuyÓn 100 byte tõ
thÓ chia thµnh 2 nöa 8
vïng nhí Source ®Õn vïng nhí Dest.
bit ®îc.
a) Dïng ng¨n xÕp b) Kh«ng dïng ng¨n xÕp B¶ng 2.4 ý nghÜa c¸c cê
Gi¶i:
a) b)
LEA SI, source LEA SI, source
LEA DI, dest LEA DI, dest
MOV CX, 50 MOV CX, 100
REP MOVSB
LAP:
POP [SI]
PUSH [DI]
ADD SI,2
ADD DI,2
LOOP LAP
Trong ®ã c¸c cê tõ 16 ph¶n ¸nh tr¹ng th¸i cña kÕt qu¶ sau mét thao t¸c nµo
B¶ng 2.3 Chøc n¨ng ngÇm ®Þnh c¸c thanh ghi ®ã. C¸c cê cßn l¹i tõ 79 lµ cê ®iÒu khiÓn vµ ®îc lËp hoÆc xo¸ b»ng c¸c
lÖnh riªng.
VÝ dô 2: X¸c ®Þnh xem c¸c phÐp tÝnh sau ¶nh hëng lªn c¸c cê nh thÕ nµo?
MOV AL,9CH
MOV DH,64H
ADD AL,DH
Gi¶i:
9C+64 =00
1001 1100
* Thanh ghi cê (FR - Flag register) + 0110 0100
Lµ thanh ghi 16 bit dïng ®Ó lu gi÷ th«ng tin vÒ c¸c tr¹ng th¸i c«ng t¸c cña 0000 0000
EU hoÆc kÕt qu¶ phÐp to¸n do ALU thùc hiÖn. C¨n cø vµo tr¹ng th¸i c¸c cê
mµ ngêi lËp tr×nh cã thÓ sö dông c¸c lÖnh thÝch hîp tiÕp theo cho bé vi xö CF=1
lý. PF=1
8086/8088 chØ sö dông 9 bit cê trong sè 16 bit ®Ó ghi th«ng tin (H×nh AF=1
2.2)
ZF=1
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
SF=0
VÝ dô 3: C¸c phÐp tÝnh sau ¶nh hëng lªn c¸c cê nµo?
H×nh 2.2. Thanh ghi cê cña bé vi xö lý 8086/88. MOV AX,94C2H
ý nghÜa vµ c«ng dông cña c¸c cê ®îc giíi thiÖu ë b¶ng 2.4 MOV BX,323EH
ADD AX,BX - §¬n vÞ ®iÒu khiÓn ®Þa chØ.
MOV DX,AX a. §¬n vÞ ®iÒu khiÓn BUS (Bus Control Unit)
MOV CX,DX Dïng ®Ó thùc hiÖn c¸c thao t¸c Bus ®èi víi MP. Nã tiÕp nhËn vµ t¹o c¸c
lÖnh, d÷ liÖu vµ c¸c tÝn hiÖu ®iÒu khiÓn gi÷a MP vµ c¸c bé phËn kh¸c cña
Gi¶i:
hÖ thèng. VÝ dô, x¸c ®Þnh híng di chuyÓn cña d÷ liÖu trªn BUS d÷ liÖu
94C2+323E=C700 b»ng ®êng d©y ®iÒu khiÓn DT/R (Data Transmit/Receive) ph¸t hoÆc thu d÷
1001 0100 1100 0010 liÖu.

+ 0011 0010 0011 1110 b. Hµng ®îi lÖnh (Instruction queue)

1100 0111 000 0 0000 Dïng hµng ®îi lÖnh ®Ó lµm n¬i lu gi÷ t¹m thêi c¸c lÖnh sÏ ®îc thùc
hiÖn trong EU. Th«ng qua ®¬n vÞ ®iÒu khiÓn bus, BIU nhËn tríc c¸c lÖnh
CF=0 vµ cÊt t¹m chóng vµo trong hµng chøa lÖnh. §©y lµ c«ng viÖc chiÕm nhiÒu
PF=1 v× byte ®Çu tiªn cã sè con sè 1 ch½n (b»ng 0) thêi gian h¬n so víi viÖc tÝnh to¸n trong EU. Do vËy BIU vµ EU cïng ho¹t
®éng song song b¶o ®¶m n©ng cao hiÖu qu¶ lµm viÖc cña MP.
AF=1
Hµng ®îi lÖnh lµ bé nhí kiÓu FIFO (First In First Out), cã nghÜa lÖnh
ZF=0 ®îc n¹p vµo tríc sÏ ®îc lÊy ra tríc. Bé vi xö lý 8088 cã hµng ®îi lÖnh 4 bytes
SF=1 (8 bit) cßn 8086 cã hµng ®îi lÖnh 3 tõ (mçi tõ 16 bit). ChÝnh v× vËy t¹i mçi
thêi ®iÓm nã mang 1 tõ (16 bit) th«ng tin. §©y lµ 1 ®iÓm kh¸c nhau quan
c. Khèi ®iÒu khiÓn cña EU träng n÷a gi÷a 2 bé VXL.
Trong khèi ®iÒu khiÓn (CU- Control Unit) cña EU cã m¹ch gi¶i m· lÖnh. c. §¬n vÞ ®iÒu khiÓn ®Þa chØ (Address Control Unit)
M· lÖnh ®äc vµo tõ bé nhí ®îc ®a ®Õn ®Çu vµo cña bé gi¶i m·, c¸c th«ng tin
thu ®îc tõ ®Çu ra sÏ ®îc ®a ®Õn m¹ch t¹o xung ®iÒu khiÓn tõ ®ã nhËn ®îc MP 8088/8086 cã 20 ®êng ®Þa chØ (20 bit) v× vËy cã kh¶ n¨ng ®¸nh
c¸c d·y xung kh¸c nhau tuú thuéc vµo m· lÖnh ®Ó ®iÒu khiÓn ho¹t ®éng c¸c ®Þa chØ ®Õn 1 Mb. §¬n vÞ ®iÒu khiÓn ®Þa chØ phèi hîp ho¹t ®éng víi
bé phËn bªn trong vµ bªn ngoµi CPU. con trá lÖnh, c¸c thanh ghi ®o¹n vµ m¹ch t¹o ®Þa chØ ®Ó x¸c ®Þnh ®Þa chØ
« nhí nh ®îc vÏ trong h×nh 2.3.
3. Tæ chøc cña BIU
Con trá lÖnh - IP (Instruction Pointer)
BIU lµ ®¬n vÞ giao tiÕp (Bus Interface Unit) cã nhiÖm vô giao tiÕp víi
c¸c thiÕt bÞ bªn ngoµi th«ng qua hÖ thèng BUS vµ gióp CPU khai th¸c tèi ®a Lµ mét thanh ghi 16 bit dïng ®Ó trá vµo lÖnh tiÕp theo sÏ ®îc thùc hiÖn
kh¶ n¨ng cña BUS. §Ó b¶o ®¶m ®îc ®iÒu ®ã, BIU ph¶i thùc hiÖn 2 chøc n»m trong ®o¹n m· CS. Mçi lÇn ®¬n vÞ thùc hiÖn EU nhËn 1 lÖnh th× con
n¨ng sau: trá lÖnh ®îc t¨ng lªn ®Ó trá tíi lÖnh ®îc thùc hiÖn tiÕp theo trong ch¬ng
tr×nh. §Þa chØ ®Çy ®ñ cña lÖnh tiÕp theo nµy ®îc x¸c ®Þnh bëi cÆp CS:IP.
- Chøc n¨ng 1: NhËn tríc c¸c lÖnh, cÊt t¹m vµo d·y chøa lÖnh nhê ®ã
mµ MP t¨ng ®îc tèc ®é tÝnh to¸n. C¸c thanh ghi ®o¹n (Segment Register)

- Chøc n¨ng 2: §¶m ®¬ng mäi chøc n¨ng ®iÒu khiÓn BUS ®Ó EU cã Gåm cã 4 thanh ®o¹n:
thÓ tËp trung vµo viÖc xö lý d÷ liÖu vµ thùc hiÖn lÖnh. Con trá lÖnh chøa - Thanh ghi ®o¹n m· (Code segment - CS): Dïng ®Ó chØ ®o¹n bé nhí m·
®Þa chØ cña lÖnh thùc hiÖn tiÕp theo.
- Thanh ghi ®o¹n d÷ liÖu (Data segment - DS): Dïng ®Ó chØ ®o¹n d÷
BIU ®îc dïng ®Ó trùc tiÕp truy xuÊt hoÆc phèi ghÐp víi nh÷ng bé liÖu.
phËn kh¸c cña m¸y tÝnh.
- Thanh ghi ®o¹n ng¨n xÕp (Stack segment - SS): Cho biÕt ®o¹n bé nhí
BIU gåm 3 khèi chøc n¨ng sau: dïng lµm ng¨n xÕp.
- §¬n vÞ ®iÒu khiÓn BUS. - Thanh ghi ®o¹n phô (Extra segment - ES): ChØ ra ®o¹n nhí phô ®îc
- Hµng ®îi lÖnh. dïng ®Ó cÊt gi÷ d÷ liÖu.
Mçi ®o¹n cña bé nhí cã thÓ dµi ®Õn 64 Kb. MP8086/8088 sö dông 20 EF224
®êng ®Þa chØ nªn cã thÓ lËp ®Þa chØ cho 2 20 = 1048576 « nhí (byte). §©y
lµ ®iÒu g©y khã kh¨n bëi v× c¸c thanh ghi cña MP ®Òu sö dông ®é dµi 16
bit. §Ó kh¾c phôc vÊn ®Ò nµy ngêi ta ®a ra kh¸i niÖm ®Þa chØ ®o¹n vµ B¶ng díi tr×nh bµy c¸c thanh ghi ®o¹n, thanh ghi offset vµ lo¹i thao t¸c
®Þa chØ offset (hay gäi lµ ®é lÖch, ®é dêi). C¸c thanh ghi ®o¹n 16 bit CS, ®îc thùc hiÖn.
DS, SS vµ ES ®îc dïng ®Ó x¸c ®Þnh ®Þa chØ ®o¹n. Sö dông c¸c thanh ghi B¶ng 2.5. Thao t¸c cña c¸c thanh ghi.
offset: IP, SP, BP, SI, DI ®Ó x¸c ®Þnh ®Þa chØ dÞch chuyÓn tÝnh tõ ®Þa
Thanh ghi offset Thao t¸c

Thanh ghi ®o¹n m· CS CS IP NhËn lÖnh


DS BX, SI, DI D÷ liÖu
Thanh ghi ®o¹n d÷ liÖu DS SS SP Ng¨n xÕp
ES DI N¬i göi tíi
Thanh ghi ®o¹n ng¨n xÕp SS
VÝ dô 5: Cho CS=24F6H vµ IP=634AH
Con trá lÖnh IP
Thanh ghi ®o¹n phô ES H·y x¸c ®Þnh:
16 bit offset 1. §Þa chØ logic
Bé t¹o 2. §Þa chØ offset
®Þa chØ 3. §Þa chØ vËt lý
§C c¬ së 16 bit §Õn bé nhí 4. Vïng ®Þa chØ thÊp
5. Vïng ®Þa chØ cao
16 bit Tõ EU
offset SP, BP, SI, DI, BX Gi¶i:
1. 24F6:634A
H×nh 2.3 §¬n vÞ ®iÒu khiÓn ®Þa chØ 2. 634A
3. 2B2AA(24F60+634A)
chØ ®o¹n. Cô thÓ lµ ®Þa chØ ®o¹n sÏ ®îc dÞch tr¸i 1 kho¶ng 4 bit kÕt hîp víi 4. 24F60(24F60+0000)
®Þa chØ offset gi÷ nguyªn sÏ t¹o thµnh c¸ch x¸c ®Þnh ®Þa chØ 20 bit. 5. 34F5F(24F60+FFFF)
Nh vËy, ®Þa chØ vËt lý ®îc x¸c ®Þnh theo c«ng thøc nh sau: VÝ dô 6: Cho SS=3500H vµ SP=FFFEH
§Þa chØ vËt lý = Thanh ghi ®o¹n x 16 + Thanh ghi lÖch H·y tÝnh:
§Þa chØ logic ®îc viÕt theo c¸ch nh sau: 1. §Þa chØ vËt lý cña ng¨n xÕp
Thanh ghi ®o¹n:Thanh ghi lÖch 2. Vïng ®Þa chØ thÊp
VÝ dô 4: 3. Vïng ®Þa chØ cao cña ®o¹n ng¨n xÕp
§Þa chØ ®o¹n (DS) EF00 ---- DÞch tr¸i 4 bit EF000 4. §Þa chØ logic cña ng¨n xÕp.
§Þa chØ offset: 0224 ----- Gi÷ nguyªn 0224 . Gi¶i:
§Þa chØ t¹o thµnh 20 bit 1. 44FFE (35000+FFFE)
2. 35000 (35000+0000) 5. C¸c ®êng ®iÒu khiÓn ng¾t.
3. 44FFF (35000+FFFF) 6. C¸c ®êng ®iÒu khiÓn thao t¸c.
4. 3500:FFFE Chóng ta xÐt lÇn lît.
VÝ dô 7: Trªn mµn h×nh t¹i dßng 10 cét 20 cã dßng ch÷ dµi 19 ký tù "LOP 1. C¸c ®êng nguån nu«i.
CHUYEN CAP khoa 19". ViÕt ch¬ng tr×nh dÞch dßng trªn sang tr¸i 6 cét.
Cã 3 ch©n: Ch©n 40 - nèi nguån nu«i, cã gi¸ trÞ +5V, ký hiÖu lµ +Vcc.
Gi¶i:
Ch©n 1, 20: nèi ®Êt.
mov Ax, 0b800h
mov ds, ax
dong = 10 GND 1 40 GND 1 40
AD14 2 39 A14 2 39
cot = 20
AD13 3 38 A13 3 38
mov si, (80*(dong-1)+cot-1)*2 4
AD12 37 A12 4 37
mov di, (80*(dong-1)+cot-7)*2 AD11 5 36 5
A11 36
mov cx,10 AD10 6 35 A10 6 35
Lap:

TEST TEST
AD9 7 34 A9 7 34
push [si] AD8 8 33 A8 8 33
AD7 9 32 AD7 9 32
mov [si], 20h AD6
8086
10
8088
31 AD6 10 31
pop [di] AD5 CPU
11 30 AD5 CPU
11 30
add si, 2 AD4 12 29 AD4 12 29
AD3 13 28 AD3 13 28
add di, 2 AD2 14 27 AD2 14 27
AD1 15 26 AD1 15 26
loop lap
AD0 16 25 AD0 16 25
4. Bè trÝ ch©n cña MP 8086/8088 NMI 17 24 NMI 17 24
INTR 18 23 INTR 18 23
 ChÕ ®é tèi ®a vµ chÕ ®é tèi thiÓu CLK 19 22 CLK 19 22
GND 20 21 GND 20 21
C¶ 2 bé VXL 8086/8088 ®Òu cã thÓ lµm viÖc ë 2 chÕ ®é: tèi thiÓu
(MINI) vµ tèi ®a (MAX). Hai chÕ ®é nµy cã thÓ chän b»ng d¾c c¾m. a) b)
ë chÕ ®é MINI, CPU truyÒn c¸c tÝn hiÖu ®iÒu khiÓn trùc tiÕp tíi c¸c
kªnh cña hÖ thèng, cßn ë chÕ ®é tèi ®a MAX, CPU truyÒn tÝn hiÖu ®iÒu H×nh 2.4: Bè trÝ ch©n ë chÕ ®é tèi thiÓu cña 8086 (a) vµ 8088 (b)
khiÓn tíi khèi ®iÒu khiÓn kªnh th«ng tin (chip 8288). Khèi nµy nhËn vµ xö lý 2. C¸c ®êng ®Þa chØ, tr¹ng th¸i.
tÝn hiÖu ®iÒu khiÓn ®ã råi míi ph¸t c¸c tÝn hiÖu ®iÒu khiÓn thø cÊp tíi
kªnh th«ng tin. Tæng céng cã cã 20 ch©n ®Þa chØ, ®ã lµ c¸c ch©n 2 - 16, 35 - 39
Cã 5 ch©n kÕt hîp chÌn th«ng tin tr¹ng th¸i trªn ®êng ®Þa chØ, ®ã lµ:
 Bè trÝ ch©n ë chÕ ®é tèi thiÓu Ch©n 35 -38: A19_A16/S6-S3 Multiplex: KÕt hîp vµ chen th«ng tin trªn
H×nh 2.4 giíi thiÖu s¬ ®å bè trÝ ch©n cña bé VXL 8088 ë chÕ ®é tèi 1 kªnh truyÒn tin: 4 bit ®Þa chØ cao hoÆc 4 tÝn hiÖu tr¹ng th¸i chØ thÞ ho¹t
thiÓu. C¸c ch©n nµy cã thÓ gép l¹i theo c¸c nhãm chøc n¨ng sau: ®éng hiÖn t¹i cña CPU. C¸c tr¹ng th¸i nh sau:
1. C¸c ®êng nguån nu«i.
2. C¸c ®êng ®Þa chØ, tr¹ng th¸i.
3. C¸c ®êng d÷ liÖu.
4. C¸c ®êng ®iÒu khiÓn §Þa chØ/D÷ liÖu
S4, S3 cho biÕt thanh ghi nµo ®ang ®îc sö dông ®Ó th©m nhËp bé nhí. * Ch©n 25: ALE (Address Latch Enable- chèt ®Þa chØ) ch©n ra møc
S4 S3 Thanh ghi ®îc truy xuÊt cao x¸c nhËn cã ®Þa chØ ®ang æn ®Þnh trªn bus ®Þa chØ.
0 0 D÷ liÖu ES * Ch©n 26 DEN (Data Enable) Lèi ra 3 tr¹ng th¸i. ë møc thÊp tÝn hiÖu
0 1 Ng¨n xÕp SS cho phÐp truyÒn d÷ liÖu gi÷a bé vi xö lý vµ Bé nhí/Vµo ra.
1 0 M· lÖnh CS * Ch©n 27 DT/R (Data Transmit/Receive) Lèi ra 3 tr¹ng th¸i, dïng ®Ó x¸c
1 1 D÷ liÖu DS ®Þnh chiÒu truyÒn sè liÖu.
* Ch©n 28 IO/M (Input Output/Memory) Lèi ra 3 tr¹ng th¸i x¸c ®Þnh bus
S5 chØ tr¹ng th¸i cê Interrupt (Interrupt Enable). ®Þa chØ ®îc nèi víi IO hay Memory.
S6 lu«n lu«n lµ 0 * Ch©n 29 WR (Write) Lèi ra 3 tr¹ng th¸i x¸c nhËn bé VXL ghi th«ng tin
BHE /S7 - Bus high enable (ch©n 34). V× 8086 cã bus d÷ liÖu ngoµi
lªn IO hoÆc Memory.
* Ch©n 32 RD (Read) Lèi ra 3 tr¹ng th¸i tÝch cùc ©m. X¸c nhËn viÖc
16 bit, do vËy cÇn ph©n biÖt ®îc byte cao vµ byte thÊp cña d÷ liÖu. §Ó thùc
®äc d÷ liÖu.
hiÖn nhiÖm vô nµy BHE kÕt hîp víi A0 cung cÊp c¸c th«ng tin nh sau: * Ch©n 34 SS0 (Status Line 0) Lèi ra 3 tr¹ng th¸i. KÕt hîp víi IO/M vµ
DT/R ®Ó cho th«ng tin vÒ chu kú bus
BHE A0 Tr¹ng th¸i bus d÷ liÖu
5. C¸c ®êng ®iÓu khiÓn ng¾t
0 0 TruyÒn 16 bit d÷ liÖu trªn D0-D15
Cã 5 ®êng ®iÒu khiÓn ng¾t, ®ã lµ c¸c ch©n 17, 18, 21, 23 vµ 24 cho
0 1 TruyÒn mét byte ë phÇn cao cña bus d÷ liÖu D8-D15
phÐp dõng ho¹t ®éng cña MP.
1 0 TruyÒn mét byte ë phÇn thÊp cña bus d÷ liÖu D0-D7 * Ch©n 17 NMI (Non Maskable Interrupt) Ng¾t kh«ng che mÆt n¹ - tÝn
1 1 Dù tr÷ (bus d÷ liÖu nghØ) hiÖu vµo hiÖu lùc ë møc cao dïng ®Ó ng¾t qu¸ tr×nh xö lý cña CPU. Lµ tÝn
B¶ng 2.6 C¸c tr¹ng th¸i cña chu kú BUS hiÖu kh«ng thÓ bÞ bá qua (bÞ che mÆt n¹) bëi CPU.
* Ch©n 18 INTR (Interrupt Request) TÝn hiÖu vµo ®Ó ng¾t qóa tr×nh
IO /M DT/ R SS0 Chøc n¨ng chu kú bus
xö lý cña CPU, cã thÓ che ®îc (masakable) tøc CPU cã thÓ bá qua b»ng sù
1 0 0 NhËn lÖnh
®iÒu khiÓn cña phÇn mÒm.
1 0 1 §äc bé nhí
* Ch©n 24 INTA (Interrupt Acknowledge) TÝn hiÖu ra b¸o MP ®· nhËn
1 1 0 Ghi bé nhí
1 lÖnh ng¾t.
1 1 1 Thô ®éng (Passive)
* Ch©n 21 RESET. Khëi ®éng l¹i MP.
0 0 0 B¸o nhËn lÖnh ng¾t
* Ch©n 23 TEST (Test Interrupt) TÝn hiÖu vµo. Khi MP ®ang thùc
0 0 1 §äc cæng I/O
hiÖn lÖnh WAIT th× MP sÏ kiÓm tra ch©n TEST. NÕu TEST=1 th× m¸y
0 1 0 Ghi cæng I/O
tiÕp tôc chê cho ®Õn khi TEST=0.
0 1 1 Dõng (Halt)
6. C¸c ch©n ®iÒu khiÓn thao t¸c
3. C¸c ®êng d÷ liÖu
Cã 5 ch©n ®iÒu khiÓn thao t¸c.
Cã 8 ®êng d÷ liÖu. gåm tõ ch©n 9-16: Multiplex - võa ®Þa chØ võa d÷
* Ch©n 19: CLK (Clock Input) TÝn hiÖu ®ång hå chñ, ®ång bé mäi ho¹t
liÖu.
®éng cña MP.
4. C¸c ®êng ®iÒu khiÓn ®Þa chØ/d÷ liÖu
* Ch©n 22: READY lµ tÝn hiÖu tr¶ lêi cña I/O hoÆc MEMORY b¸o
Cã 7 ®êng ®iÒu khiÓn ®Þa chØ d÷ liÖu, ®ã lµ c¸c ch©n: 25-29, 32,
chu kú chuyÒn sè liÖu ®· hoµn tÊt.
34. ®îc dïng ®Ó ®iÒu khiÓn vµ b¸o tr¹ng th¸i di chuyÓn cña th«ng tin trªn bus
* Ch©n 31 HOLD vµ 30 HOLDA (Hold Request) B¸o cã yªu cÇu lµm
d÷ liÖu vµ ®Þa chØ.
chñ bus tõ bªn ngoµi. Khi MP tiÕp nhËn yªu cÇu nµy th× ®a ra tÝn hiÖu C¸c tÝn hiÖu S2, S1, S0 ®îc dïng cho bé ®iÒu khiÓn bus 8288 ®Ó t¹o ra
c¸c tÝn hiÖu ®iÒu khiÓn bus hÖ thèng vµ cã trë kh¸ng cao khi bus treo.

GND 1 40 GND 1 40
AD14 2 39 A14 2 39 B¶ng 2.8: C¸c chu kú bus ë chÕ ®é MAX
AD13 3 38 A13 3 38
AD12 4 37 A12 4 37 S2 S1 S0

ItestNTA tes INTA


AD11 5 36 A11 5 36 0 0 0 Tr¶ lêi ng¾t INTA
AD10 6 35 A10 6 35
AD9 7 34 A9 7 34
0 0 1 §äc cöa I/O
AD8 8 33 A8 8 33 0 1 0 Ghi cöa I/O
AD7 9 32 AD7 9 32
AD6 10 31 AD6 10
0 1 1 Dõng
31
AD5 CPU
11 30 AD5 CPU
11 30 1 0 0 NhËn lÖnh
AD4 12 29 AD4 12
8086 AD3
8088 29 1 0 1 §äc bé nhí
AD3 13 28 13 28
AD2 14 27 AD2 14 27 1 1 0 Ghi vµo bé nhí
AD1 15 26 AD1 15 26
AD0
1 1 1 Thô ®éng
AD0 16 25 16 25
NMI 17 24 NMI 17 24
INTR 18 23 INTR 18 23 LOCK (29) cÊm kh«ng cho VXL hîp t¸c ®iÒu khiÓn bus.
CLK 19 22 CLK 19 22
GND 20 21 GND 20 21
RQ/GT1, RQ/GT0: cho phÐp bé ®ång xö lý ®îc quyÒn ®iÒu khiÓn bus.

Trong m¸y tÝnh IBM PC RQ / GT1 ®îc nèi tíi bé ®ång xö lý to¸n 8087

a) b) ®Ó cho phÐp vµ RQ / GT0 ®îc nèi cè ®Þnh lªn møc cao ®Ó kh«ng cho
phÐp 8087 th©m nhËp bus.
Tríc khi kÕt thóc phÇn giíi thiÖu s¬ ®å bè trÝ ch©n cña CPU
H×nh 2.5. ChÕ ®é tèi ®a a) 8086 vµ b) 8088 8086/8088 còng cÇn v¾n t¾t l¹i sù kh¸c nhau c¨n b¶n gi÷a 2 CPU nµy (H×nh
HLDA (Hold Acknowledge).
2.5 lµ s¬ ®å ch©n cña CPU 8086).
* Ch©n 33 MN/MX (Minimum/Maximum Mode) TÝn hiÖu lèi vµo b¸o
CPU 8086 lµ bé vi xö lý 16 bit hoµn chØnh, cßn CPU 8088 lµ bé vi xö lý
MP lµm viÖc ë mode tèi ®a (0) hay tèi thiÓu (1)
víi 16 bit d÷ liÖu bªn trong (gièng víi 8086) song d÷ liÖu ngoµi lµ 8 bit (kh¸c
 Bè trÝ ch©n ë chÕ ®é tèi ®a
víi 8086 - d÷ liÖu ngoµi còng 16 bit). Do ®ã ®iÓm kh¸c nhau ®Çu tiªn lµ ®é
Ch©n QS1 (24) vµ QS0 (25) b¸o th«ng tin tr¹ng th¸i vÒ hµng chøa lÖnh.
dµi hµng ®îi lÖnh. §é dµi nµy ë 8088 lµ 4 byte 8 bit cßn ë 8086 lµ 3 tõ 16 bit.
M· tr¹ng th¸i cña hµng ®îi lÖnh ®îc giíi thiÖu giíi thiÖu ë B¶ng 2.7
§iÓm kh¸c nhau thø hai lµ kÝch thíc bus d÷ liÖu: bus d÷ liÖu cña 8088 lµ 8
B¶ng 2.7: M· c¸c tr¹ng th¸i cña hµng ®îi lÖnh bit cßn cña 8086 lµ 16 bit. ChÝnh v× sù kh¸c nhau trªn nªn dÉn ®Õn viÖc bè
QS0 (24) QS1 (25) Tr¹ng th¸i hµng ®îi lÖnh trÝ ch©n cña 2 CPU cã phÇn kh¸c nhau (xem s¬ ®å bè trÝ ch©n cña 2 CPU).
0 0 Kh«ng ho¹t ®éng Tuy cã mét sè ®Æc ®iÓm kh¸c nhau nh vËy nhng v× chóng cã c¸c ®iÓm
0 1 ChØ byte thø nhÊt cña m· lÖnh ë hµng gièng nhau rÊt c¬ b¶n vµ cã tËp lÖnh lËp tr×nh gièng nhau nªn vÒ quan
1 0 ®îi ®iÓm lËp tr×nh th× chóng lµ t¬ng ®¬ng.
1 1 ChØ hµng chøa lÖnh rçng
ChØ byte tiÕp theo ë hµng chøa lÖnh 5. Gi¶n ®å thêi gian ho¹t ®éng cña 8086/88.
MP 8086/8088 sö dông ®ång hå 4.77 Mhz. Bé VXL 8086/8088 ho¹t ®éng
theo c¸c chu kú thêi gian gäi lµ chu kú bus (bus cycle). Mçi chu kú bus cÇn 4 /M. Cuèi chu kú T1, ALE h¹ xuèng møc thÊp vµ ®Þa chØ trªn bus bÞ chèt
chu kú ®ång hå ®Ó hoµn thµnh. Hai chu kú bus chÝnh lµ chu kú bus ®äc vµ ®ãng l¹i.
chu kú bus ghi. Chu kú bus ®äc lµ qu¸ tr×nh khi MP ®äc th«ng tin tõ bé nhí T2: ë chu kú nµy cã c¸c chuyÓn tr¹ng th¸i sau:
hoÆc I/O. Chóng ta xem xÐt kü h¬n chu kú nµy. AD0-AD7 chuyÓn sang tr¹ng th¸i trë kh¸ng cao.
 Chu kú bus ®äc A16/S3-A19/S6 chuyÓn sang tr¹ng th¸i ®a tÝn hiÖu ra.
A8-A15 kh«ng thay ®æi vµ vÉn ®a th«ng tin vÒ ®Þa chØ.
Mét chu kú bus ®äc ®iÓn h×nh cña bé vi xö lý 8088 ®îc giíi thiÖu qua
ALE chuyÓn xuèng møc thÊp vµ chØ ra r»ng ®Þa chØ kh«ng cßn tån t¹i
biÓu ®å thêi gian nh trªn h×nh 2.6.
trªn c¸c ®êng ®Þa chØ.
T1: Chu kú ®ång hå ®Çu tiªn, bus ®Þa chØ/d÷ liÖu ®îc sö dông ®Ó ®a
RD ph¸t tÝn hiÖu ®Ó bé nhí hoÆc I/O xuÊt d÷ liÖu
ra ®Þa chØ cña bé nhí hoÆc I/O. §ång thêi trong chu kú nµy ALU còng ®a
DEN lµm c¸c m¹ch ®Öm trong bus d÷ liÖu cã hiÖu lùc, cho phÐp d÷
Mét chu kú bus
liÖu ®îc göi vµo bus ®Ó ®Õn MP.
T3: T¹i chu kú nµy bé nhí hoÆc m¹ch I/O ®a d÷ liÖu lªn bus. Chu kú nµy
T1 T2 T3 T4
lµ kho¶ng thêi gian phô thªm ®Ó d÷ liÖu trë nªn æn ®Þnh trªn bus. ë chu kú
nµy bé VXL tiÕn hµnh th¨m dß ch©n READY, nÕu ë møc cao th× chu kú
tiÕp theo sÏ lµ T4, cßn nÕu ë møc thÊp th× chu kú tiÕp theo sÏ ë tr¹ng th¸i chê

IO
TW.
T4: T¹i thêi ®iÓm b¾t ®Çu cña chu kú, MP ®äc d÷ liÖu cã trªn bus. ë
cuèi chu kú T4, c¸c ®êng 3 tr¹ng th¸i chuyÓn sang tr¹ng th¸i trë kh¸ng cao ®Ó
§Þa chØ TÝn hiÖu tr¹ng th¸i chuÈn bÞ cho chu kú tiÕp theo. C¸c ®êng kiÓm so¸t RD vµ DEN chuyÓn
sang møc cao ®Ó b¸o hiÖu kÕt thóc chu kú bus ®äc. §Õn ®©y kÕt thóc chu
kú ®äc.

Mét chu kú bus


§Þa chØ æn ®Þnh
T1 T2 T3 T4

§Þa chØ D÷ liÖu ®äc

TRD §Þa chØ TÝn hiÖu tr¹ng th¸i

§Þa chØ æn ®Þnh


H×nh 2.6 BiÓu ®å thêi gian chu kú ®äc cña bé vi xö lý 8088
ra tÝn hiÖu ®iÒu khiÓn ALE, DT/R vµ IO

§Þa chØ D÷ liÖu ®äc


 Chu kú bus ghi
T¬ng tù nh ë chu kú ®äc chØ cã ®iÓm kh¸c nhá lµ ë chu kú nµy kh«ng
cÇn ®Õn tr¹ng th¸i ®îi v× MP lóc ®ã ®ang thùc hiÖn viÖc ghi vµo bé nhí
hoÆc I/O (H×nh 2.7).
 Chu kú nhËn vµ thùc hiÖn lÖnh
MP cã 2 chøc n¨ng chÝnh lµ nhËn (Fetch) vµ thùc hiÖn (Execute) lÖnh.
Bíc 1: Tríc hÕt MP nhËn lÖnh (mÊt 1-2 chu kú bus)
Bíc 2: Thùc hiÖn lÖnh. Cã nh÷ng lÖnh chØ cÇn 2 chu kú ®ång hå lµ
thùc hiÖn xong lÖnh. Song còng cã nh÷ng lÖnh cÇn rÊt nhiÒu chu kú ®ång
IO TWr

§©y lµ nh÷ng kh¸i niÖm ®Çu tiªn vÒ tæ chøc ®êng èng (Pipeline) cña
c¸c bé vi xö lý tiªn tiÕn sau nµy.

H×nh 2.7 BiÓu ®å thêi gian chu kú ghi cña bé vi xö lý

hå. C¸ch tæ chøc cña 8086/8088 ®· ®îc c¶i tiÕn th«ng minh h¬n nhiÒu so víi
c¸c MP thÕ hÖ tríc ë chç tæ chøc 2 ®¬n vÞ ho¹t ®éng t¬ng ®èi ®éc lËp lµ EU
vµ BIU.

Chu kú bus Chu kú bus Chu kú bus Chu kú bus

NhËn lÖnh Thùc hiÖn lÖnh Ghi CPU thÕ hÖ tr

§îc sö dông NghØ §îc sö dông

CPU 8088/8086
Thùc hiÖn lÖnh Ghi

NhËn lÖnh NhËn lÖnh NhËn lÖnh

§îc sö dông §îc sö dông §îc sö dông §îc sö dông

H×nh 2.8: NhËn vµ thùc hiÖn lÖnh cña CPU 8086/8088 vµ thÕ hÖ tríc

Trong thêi gian EU thùc hiÖn lÖnh th× BIU vÉn cã thÓ ®¶m nhËn
nhiÖm vô nhËn tríc c¸c lÖnh, cÊt t¹m vµo hµng ®îi lÖnh vµ c¸c thanh ghi d÷
liÖu. Nhê vËy mµ khi bus bÞ bËn trong chu kú ®äc th× EU thùc hiÖn c¸c
lÖnh tríc ®ã vµ khi bus bËn trong chu kú ghi th× EU l¹i thùc hiÖn lÖnh kh¸c.
Víi c¸ch tæ chøc nµy ®· lµm t¨ng hiÖu qu¶ cña toµn bé hÖ thèng lªn rÊt nhiÒu

You might also like