You are on page 1of 180

[Type the document title]

MC LC CHNG I : CC H M V VIC M HA THNG TIN TRONG MY TNH.....................3 1. Cc h m dng trong my tnh.........................................................................3 1.1. H mi v h hai..........................................................................................3 1.2. S BCD (s h mi m ha bng h hai)......................................................5 1.3. H mi su (Hexa-decimal, hex, H)..............................................................5 2. Cc php ton s hc i vi s h hai................................................................5 2.1. Php cng.......................................................................................................5 2.2. Php tr v s b hai.....................................................................................6 2.3 Php nhn.......................................................................................................8 2.4 Php chia.........................................................................................................9 3. M ASCII - m tiu chun cho trao i thng tin................................................10 4. Quan h gia m ASCII vi s BCD.....................................................................12 CHNG 2 : MY VI TNH V H THNG VI X L...................................................................13 1. T my tnh ln n my vi tnh.........................................................................13 1.1.My tnh ln...................................................................................................13 1.2. My tnh con.................................................................................................13 1.3.My vi tnh.....................................................................................................13 2. S pht trin ca cc b vi x l........................................................................14 2.1.Th h 1 (1971-1973)....................................................................................14 2.2.Th h 2 (1974-1977)....................................................................................14 2.3.Th h 3 (1978-1982)....................................................................................14 2.4.Th h 4 (1983-1999)....................................................................................14 3.Gii thiu s lc cu trc v hot ng ca h vi x l.....................................15 CHNG 3: B VI X L INTEL 8088...............................................................................................17 1.Gii thiu cu trc bn trong vhot ng ca b vi x l 8088.........................17 1.1.BIU V EU......................................................................................................17 2.Cch m ho lnh cab vi x l 8088................................................................23 3.Cc ch a ch ca b vi x l 8088..............................................................25 CHNG 4 : LP TRNH BNG HP NG VI 8088......................................................................70 1. Gii thiu chung ca chng trnh hp ng........................................................70 1.1. C php ca chng trnh hp ng..............................................................70 1.2. D liu cho chng trnh..............................................................................72 [Type text] Trang

[Type the document title]


1.3. Bin v hng................................................................................................72 1.4. Khung ca mt chng trnh hp ng..........................................................75 2. Cch to v cho chy mt chng trnh hp ng trn my IBM PC....................81 3. Cc cu trc lp trnh c bn thc hin bng hp ng......................................85 CHNG 5 : GHP 8088 VI B NH V T CHCVO/RA D LIU..................................116 1. Gii thiu cc tn hiu ca 8088 v cc mch ph tr 8284, 8288..................116 1.1. Cc tn hiu ca 8088.................................................................................116 1.2. Phn knh tch thng tin v vic m cho cc bus..............................120 1.3. Mch to xung nhp 8284...........................................................................122 1.4. Mch iu khin bus 8288........................................................................123 3. Phi ghp 8088 vi thit b ngoi vi.................................................................142 3.1. Cc kiu phi ghp vo/ra..........................................................................142 3.2. Gii m a ch cho thit b vo/ra..............................................................143 3.3. Cc mch cng n gin............................................................................144 3.4. Mch phi ghp vo/ra song song lp trnh c 8255A............................145 CHNG 6 : VO RA D LIU BNG CCH THM D............................................................152 1. Gii thiu chung v cc phng php iu kin vo/ra d liu........................152 2. Vo/ra d liu bng phng php thm d......................................................152 CHNG 7 : NGT V X L NGT TRONG H 8088................................................................154 1. S cn thit phi ngt CPU...............................................................................154 2. Ngt trong h vi x l 8088..............................................................................154 2.1. Cc loi ngt trong h 8088.......................................................................154 2.2. p ng ca CPU khi c yu cu ngt........................................................155 2.3. X l u tin khi ngt:................................................................................156 2.4. Mch iu khin ngt u tin 8259A..........................................................156 CHNG 8: VO /RA D LIU BNG DMA...................................................................................170 1. Nguyn tc ca vic trao i d liu vi thit b ngoi vi bng cch thm nhp trc tip vo b nh (DMA) ................................................................................170 2.DMAC 8237A -5 trong h vi x l 8088..............................................................172 2.1.tn hiu HOLD v HLDA trong CPU 8088......................................................172 2.2. Mch DMAC 8237A -5ca Inter...................................................................172

[Type text] Trang

[Type the document title]


CHNG I : CC H M V VIC M HA THNG TIN TRONG MY TNH 1. Cc h m dng trong my tnh 1.1. H mi v h hai Trong cuc sng hng ngy chng ta dng h c s mi hoc ni gn hn h mi biu din cc gi tr s. iu ny l rt t nhin v t khi xa mt con ngi bnh thng bit dng 10 ngn tay ca mnh nh l cng c tnh ton s ng. Trong h thng ny chng ta dng t hp ca cc ch s 0..9 biu din cc gi tr s, i km theo tp hp c th dng thm ch D i m vn ngm hiu rng l s h mi Trong th gii my tnh th khc, biu din 1 gi tr s chng ta dng h c s hai hoc ni gn hn h hai, trong ch tn ti hai ch s 0 v 1 biu din cc gi tr s (ng vi hai trng thi c in v khng c in ca cc mch in t cu to trn my). 0 v 1 cng l cc gi tr c th c ca mt ch s h hai. H hai l h dng trong cc my tnh. Mt s h hai thng c nh du bng ch B i km cui phn bit vi cc h khc khi ta lm vic cng mt lc vi nhiu h m khc nhau. Mt cm 4 bit s to thnh 1 nibble, cm 8 bit s to thnh 1 byte, cm 16 bit thng thng s tro thnh mt t(word), cm 32 bit s to thnh mt t kp. Ch s u tin bn tri trong dy cc s h hai gi l bt c ngha ln nht, cn bit cui cng bn phi trong dy gi l bit c ngha b nht. ng vi vic m th t 1,2,3 h 10 th h 2 ta c 1,10,11 Nibble byte word Double Word Hnh1.1. Cc n v o di ca s h hai dn xut t bit V con ngi ch quen tnh ton vi h mi, trong khi cc b phn tnh ton ca my tnh ch bit lm vic vi h hai, nn m bo s giao tip thun tin gia ngi v my (khi a s liu vo v lc ly ra kt qu tnh ton) thng xuyn phi c vic chuyn i qua li gia hai h m ny. Chng ta cng xem xt nhanh cc vn trn thng qua cc v d n gin di y. Mt s h mi vit nh sau: 12345,67 S c gi tr s bng tng ca cc tch gia cc h s 1,2,3,4,5,6,7 vi cc trng s 10i nh sau: 12345,67=1.104 +2.103 +3.102 +4.101 +5.100 +6.10-1 +7.10-2 Tng t nh vy, mt s h hai vit nh sau: 10111,01 S c gi tr s bng tng ca cc tch gia cc h s 1,0,1,1,1,01,1 vi cc trng s 2 i tng ng ln lc nh sau: =1.24 +0.23 +1.22 +1.21 +1.20 +0.2-1 +1.2-2 Cc thut ton thng dng chuyn i gia hai h trn: i s h hai sang h mi

[Type text] Trang

[Type the document title]


Mun i mt s t h hai sang h mi ch cn tnh cc gi tr 2 i tng ng vi cc ch s khc khng th i ca h s hai ri cng li nh ni trn: V d 10111,11B =24 +22 +21 +20 +2-1 +2-2 =25,75 Ngc li mun chuyn mt s t h mi sang h hai ta c th lm theo hai cch: Cch mt i s h mi sang h hai Quy tc: Ly s h mi cn i tr i 2x (x l gi tr ln nht ca s m chn sao cho 2x nh hn hoc bng so vi s h 10 cn i), ghi li gi tr 1 cho ch s h hai ng vi 2 x. Tip tc lm nh vy i vi s d do php tr trn to ra v cc s 2i bc thp hn cho ti t ti 20 v ghi li cc gia tr (0 hoc 1) cho ch s h hai th i ty theo quan h gia s d v ly tha tng ng: 1, khi s d ln hn hoc bng 2i 0, khi s d nh hn hoc bng 2i (v php tr khng c thc hin) v d i s 34 sang h hai. Cc gi tr 2i cn tnh dn (25 =32 l gi tr 2x st di nht so vi s 34) 25 24 23 22 21 20 Cc ch s h hai tnh c: 1 0 0 0 1 0 Nh vy 34=100010B. Cch 2 i s h mi sang h hai

Quy tc: Ly s cn i chia cho 2 v ghi nh phn d, tip theo ly thng ca php chia trc chia cho 2 v ghi nh phn d. Lm nh vy cho ti khi c thng bng 0. o ngc th t dy cc s d s c cc ch s ca s h hai cn tm. V d : i s 34 sang h hai (hnh 1.1.). Kt qu c 100010B. 34 2 0 17 1 2 8 0

2 4 0 0

2 2 1

2 2 1

Cc s d trong khung s c sp xp theo chiu mi tn Hnh 1.1. Mt cch i s h mi sang h hai.. Trong trng hp s h mi cn i c thm c phn l sau du phy th u tin ta phi i ring r tng phn ri sau cng cc kt qu li. i vi phn nguyn ta c th lm theo 2 cch ni trn. Ring i vi phn sau du phy ta i theo quy tc trnh by sau y. Quy tc i s thp phn h mi ra h hai

[Type text] Trang

[Type the document title]


Ly s cn i nhn vi 2, tch nhn c s gm phn nguyn v phn l nh phn, ly phn l nh phn ca tch thu c nhn tip vi 2. Lm nh vy cho ti khi c tch chn bng 1. Chn ring cc phn nguyn (phn trc du phy) ca cc tch thu c v sp xp li s c cc ch s sau du phy ca s h hai cn tm. V d: s 0.125 ra s h hai. Ta thc hin php nhn ln lt theo cc bc trn: 0,125 * 2 = 0 ,250 0,250 * 2 = 0 ,500 0,500 * 2 = 1 ,000 v thu c kt qu l 0,125 = 0,001B (phn c ng trong khung). Kt hp cc v d trn li, nu phi i s 34,125 ra h hai ta thu c kt qu cui cng l 34,125 = 100010,001 B. 1.2. S BCD (s h mi m ha bng h hai) Gia h mi v h hai cn tn ti mt h lai: h BCD cho cc s h mi m habng h hai (Binary Coded Decimal number), rt thch hp cho cc thit b do c thm phn hin th s u ra dng cc loi n hin s khc nhau. y ta dng 4 s h hai m ha mt s h mi c gi tr nm trong khong 0 ..9. Nh vy, y ta khng dng ht cc t hp c th c ca 4 bit. V tm quan trng ca cc s BCD nn cc b vi x l thng c cc lnh thao tc vi chng. V d: S 410 nu biu din theo kiu s BCD th c 0100 0001 0000. Kt qu ny cng gi cho ta cch thc chuyn i gia hai loi s. 1.3. H mi su (Hexa-decimal, hex, H) Nu ta dng h hai biu din cc s c gi tr ln ta s gp iu bt tin l s h hai thu c qu di. V d biu din s 255 ta cn n 8 bit vit nh sau: 255 = 1111 1111 B Trong thc t vit kt qu biu din cc s cho gn li ngi ta tm cch nhm 4 s h hai (1 nibble) thnh mt s h mi su . Khc vi h BCD va ni h 16 dng ht cc t hp c th ca 4 bit biu din cc gi tr s. lm c iu ny ngi ta s dng cc ch s sn c ca h mi 0 .. 9 biu din cc gi tr s ng vi 0 .. 9 v dng thm cc ch ci A .. F biu din cc gi tr cn li ng vi 10 .. 15. phn bit mt s h mi su vi cc s h khc ta km thm ch H cui. Ta cng d nhn thy rng s mi ch l mt b phn ca h mi su. 2. Cc php ton s hc i vi s h hai 2.1. Php cng Php cng cc s h hai thc hin ging nh khi ta lm vi s h mi. Quy tc php cng s h hai c ch ra trong bng 1.1.

Bng 1.1. Quy tc php cng y=a+b [Type text] Trang

Bng 1.2. Quy tc php tr y= a-b 5

[Type the document title]


a b y 0 0 0 0 1 1 1 0 1 1 1 1 C: nh (Carry) C 0 0 0 1 a b y B 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 B: mn (Borrow)

V d: Cng h mi Cng h hai 11 nh 1111 1110 099 S hng 1 0110 0011 095 S hng 2 0101 1111 194 Tng 1100 0010 Cc b cng trong cc khi tnh ton s hc ca my tnh s thc hin cc php cng theo cch ni trn. 2.2. Php tr v s b hai a) Php tr Php tr cc s h hai thc hin ging nh khi ta lm vi s h mi. Quy tc php tr s h hai c ch ra trong bng 1.2. V d Tr h mi Tr h hai 1 Mn 110 0000 109 s b tr 0110 1101 9 s tr 0011 0001 060 Hiu 0011 1100 b) S b hai Trong khi lm pho tr ta nhn thy c th thc hin php tr bng php cng: cng s b tr vi s i ca s tr. iu ny cng c ng dng trong cc khi tnh ton s hc ca my tnh tn dng cc b cng c sn. Vn t ra i vi s h hai l ta phi c cch biu din s m mt cch thch hp sao cho ta c th ng dng c tnh cht ni trn. C rt nhiu cch m ha cc s h hai biu din s m nhng trong thc t hay dng nht l dng cch m ha kiu s b hai. Bng 1.3 ch ra cch to ra cc s h hai c du v s b hai trong s tng quan vi s h hai. Bng 1.3. Biu din cc s theo h hai, h hai c du v m b hai. S 8 bit h hai 0000 0000 0000 0001 0000 0010 ... 0111 1101 0111 1110 [Type text] Trang s h mi tng ng 0 1 2 ... 125 126 s h mi theo m h hai c du +0 +1 +2 ... + 125 +126 s h mi tnh theo m b hai +0 +1 +2 ... + 125 +126 6

[Type the document title]


0111 1111 1000 0000 1000 0001 1000 0010 ... 1111 1101 1111 1110 1111 1111 127 128 129 130 ... 125 126 255 +127 -0 -1 -2 ... -125 -126 -127 +127 - 128 - 127 - 126 ... - 3 -2 -1

Quan st k bng ny chng ta c th rt ra cc nhn xt sau: 1. Nu ta dng 8 bit biu din s th ta thu c 256 t hp c gi tr t 0 n 255 (tng ng 00 .. FF H), tc l ch biu din c s dng. 2. Vi t hp trn nu ta mun biu din s c du theo kiu du v ln (sign and magnitude) ta phi mt 1 bit dnh cho du v 7 bit cn li nh gi tr. Vi cch lm ny ta c kh nng biu din c s m v s dng nm trong khong -127 .. -0, +0 .. +127 (ch 2 gi tr 0 khc nhau). 3. S b hai c to ra theo cch gn ging nh kiu du v ln nhng n dng c 8 bit biu din gi tr ca s c m ha. M b hai di 8 bit c kh nng biu din cc s m v dng trong khong -128..0..+127. Mt s dng c m b hai ging nh h m hai thng thng. 4. Mt s biu din theo h hai s c cc gi tr khc nhau nu hiu l m biu din s theo kiu h hai c du hoc kiu s b hai. Ni khc i, mt cm cc s 0 v 1 s c cm nhn khc nhau khi n biu din gi tr s theo cc m khc nhau. Cho d c c biu din bng s h hai c du hay s b hai th cc s m u c bit b7 = 1, cn cc s dng c bit b7 = 0. By gi ta ni c th cch tnh s b hai ca mt s no . V mt ton hc th s b hai ca mt s chnh l s i ca n. Nh vy mt s dng s c s b hai l mt s m cng gi tr tuyt i v ngc li. Quy tc: Mun tm s b hai (cn gi l b s hc) ca mt s A ta lm theo cc bc sau: biu din s A theo m b hai ca n tm s b mt (b logic) ca s (bng cch o bit) cng 1 vo s b mt trn nhn c s b hai ca s A.

Ghi ch: Khi c mt s m c biu din theo m b hai nu mun tnh gi tr tuyt i ca n ta cng p dng quy tc ny (p dng cc bc 2.3). V d: Tm s b hai ca 13. 13 = 0000 1101 B (m b hai ca 13) s b 1 ca 13: 1111 0010 B (o bit ca s trn) cng thm 1: 1 s b hai ca 13: 1111 0011 B (tc l -13) C th ly mt v d khc chng t kt qu trn l ng v qua cng thy c ng dng ca s b hai trong khi lm php tr. V d: 15 - 13 = ? [Type text] Trang

[Type the document title]


Ta c th vit li php tr trn thnh php cng 15 + (-13) v s dng kt qu va tnh c trn cho s (-13): 15 ... 0000 1111 (-13) ... 1111 0011 tng ... 0000 0010 (nh 1) Nu khng n nh ta c kt qu l 2. V d: 12 - 13 = ? 12 ... 0000 1100 (-13) ... 1111 0011 tng ... 1111 1111 (tc -1) y l mt s m (bit b7=1) vi gi tr tuyt i l 1 (tra theo bng 1.2). Mt khc ta cng c th tm c gi tr tuyt i ca kt qu bng cch tm s b hai ca n: M b hai ca kt qu trn ... 1111 1111 S b 1 ca kt qu trn ... 0000 0000 Cng - tm gi tr tuyt i ... 0000 0001 2.3 Php nhn Php nhn cc s h hai thc hin ging nh khi ta lm vi h s mi. Quy tc php nhn s h hai c ch ra trong bng 1.4 Bng 1.4. Quy tc php nhn y=a.b a b y 0 0 0 0 1 0 1 0 0 1 1 1 Trn c s quy tc va nu v cho n gin ta thc hin v d mt php nhn 2 s h hai vi di 4 bit lm sng t thut ton nhn. 1001 0110 0000 1001 1001 0000 0110110 S b nhn (9) S nhn (6) Thnh phn 1 ca tng tch lu Thnh phn 2 ca tng tch lu Thnh phn 3 ca tng tch lu Thnh phn 4 ca tng tch lu Tng tch lu (54)

di cc i ca kt qu trong trng hp ny l 8 bit. Nu ta c cc ton hng 8 (hoc 16) bit th di cc i ca kt qu l 16 (hoc 32) bit. Mi ln nhn 1 bit khc 0 ca s nhn vi s b nhn ta thu c chnh s b nhn. Nu dch tri n mt s ln tng ng vi v tr ca bit khc 0 trong s nhn, ta to ra 1 thnh phn ca tng tch lu. Tng ca cc thnh phn nh trn l kt qu ca php nhn. Phn tch k qu trnh trn ta thy php nhn c th thc hin theo thut ton cng v dch (trn c s cc b cng v dch) nh sau:

[Type text] Trang

[Type the document title]


Thnh phn u tin ca tng tch lu thu c l tch ca s LSB trong s nhn vi s b nhn. Nu LSB = 0 th thnh phn ny cng bng 0, cn nu LSB = 1 th thnh phn ny chnh bng s b nhn. Mi thnh phn th i tip theo ca tng tch lu s tnh c bng cch tng t, nhng phi dch tri i bit (c th b qua cc thnh phn bng 0). Tng ca cc tng thnh phn l tch cn tm. minh ho cho thut ton trn, ta dng lun n rt gn v d lm trc y nh sau: 1001 S b nhn (9) 0110 S nhn (6) 1001 S b nhn dch tri 1 ln 1001 S b nhn dch tri 2 ln 0110110 Tng tch lu (54) 2.4 Php chia Php chia l php tnh ngc ca php nhn. T suy ra php chia c th c thc hin bng cc php tr v php dch lin tip cho ti khi khng th tr c na (do khng cn g tr hoc s b tr nh hn s chia). Sau y l thut ton ca php chia thng qua v d c th. V d: 35/5 = 7 Ta hy quan st k cc bc phi lm khi chia bng tay: 100011 101 000 0111 1000 101 111 101 101 101 0 Trong cc bc tnh trn lin tc cn phi c cc d on v kim tra tm ra c kt qu ng. Cng vic ny l rt kh khn i vi cc mch in t ca khi tnh ton s hc (vn l cc phn t thc hin php cng v dch trong my tnh). Sau y l mt thut ton khc phc c cc vn nu trn: 1.i s chia ra s b hai ca n ( bc sau lm tnh tr bng tnh cng). 2.Ly s b chia tr i s chia. Nu kt qu ny c bit du bng 0 (c ngha l phn ny ca s b chia chia c cho s chia) th bit tng ng ca thng bng 1. Nu kt qu ny c bit du bng 1 (c ngha l phn ny ca s b chia khng chia c cho s chia) th bit tng ng ca thng bng 0 v ta buc phi khi phc li gi tr ban u ca s b chia bng cch cng kt qu ny vi s chia m h hai. 3.Dch tri kt qu thu c trn v lm li bc 2 cho n khi nhn c kt qu cui cng l 0 (chia ht) hoc nh hn s chia (chia cn d). [Type text] Trang

[Type the document title]


V d: 36/5 = 7, d 1. Thc hin php chia ny trong h hai. u tin ta c 5 = 0101B v s b hai ca n l 1011B. Cc bc tnh ton tip ca php chia theo thut ton nu trn c lit k ra nh sau: Ton hng Thng Tn ton hng, thao tc 0 100100 1 011000 1 111100 1 111100 0 101000 0 100100 1 00100 1 01100 0 10000 1 0000 1 0110 0 0110 0 110 1 011 0 001 1 S b chia S chia m b hai cng Tng, kt qu 1 (kq1) kq1 S chia m h hai cng S b chia S b chia dch tri 1 ln S chia m b hai cng Tng, kt qu 2 (kq2) kq2 dch tri 2 ln S chia m b hai cng Tng, kt qu 3 (kq3) kq3 dch tri 3 ln S chia m b hai cng Tng, kt qu 4 (kq4)

Bit du T y ta rt ra 36/5 = 7 v d 1. 3. M ASCII - m tiu chun cho trao i thng tin


Hexadecimal

0
<NUL> 0 <SOH> 1 <STX> 2 <ETX> 3 <EOT> 4 <ENQ> 5 <ACK> 6 <BEL> 7

1
<DLE> 16 <DC1> 17 <DC2> 18 <DC3> 19 <DC4> 20 <NAK> 21 <SYN> 22 <ETB> 23

Bng 1.5. Bng m ASCII tiu chun 2 3 4 5 6


<SP> 32

7 P
96 112

0 1 2 3 4 5 6 7 [Type text] Trang

0
48

@
64

P
80

` a
81 97

!
33

1
49

A
65

Q R
66 82

q
113

34

2
50

B C
51 67

b
98

r
114

#
35

3 4
36 52

S
83

c
99

s
115

$ %
37

D
68

T
84

d
100

t
116

5
53

E
69

U
85

e
101

u
117

&
38

6
54

F
70

V
86

f
102

v
118

39

7
55

G
71

W
87

g
103

w
119

10

[Type the document title]


8 9 A B C D E F
<BS> 8 <HT> 9 <LF> 10 <VT> 11 <FF> 12 <CR> 13 <SO> 14 <SI> 15 <US> 31 <RSI> 30 <GS> 29 <FS> 28 <CAN> 24 <EM> 25 <SUB> 26 <ESC> 27

(
40

8
56

H
72

X
88

h
104

x
120

)
41

9
57

I
73

Y
89

i
105

y
121

*
42

:
58

J
74

Z
90

j
106

z
122

+
43

;
59

K
75

[
91

k
107

{
123

,
44

<
60

L
76

\
92

l
108

|
124

45

=
61

M
77

]
93

m
109

}
125

.
46

>
62

N
78

^
94

n
110

~
111 126 <DEL> 127

/
47

?
63

O
79

_
95

Trong cc phn trc ta ni n cch biu din s trong cc h m. By gi ta xem xt vic biu din thng tin ni chung trong my tnh. Tt c cc thng tin trong my tnh u c biu din di dng cc s 0 v 1. Mi t hp ca cc s 0 v 1 c gn mt k t ch ci, ch s hoc mt k t khc theo mt cch thc nht nh. Trogn thc t thng tin c truyn i, c lu gi trong cc b nh hoc hin th trn mn hnh u di dng k t v tun theo 1 loi m c dng rt rng ri gi l m ASCII (American Standard Code for Information Interchange, m chun ca M dng cho trao i thng tin). Vic dng cc k t m ho thng tin theo bng m ASCII (bng 1.5) cho ta kh nng trao i thng tin vi hu ht cc my tnh khc. Trong bng m ASCII tiu chun, ngi ta dng 7 bit m ha cc k t thng dng, nh vy bng m ny s c 128 k t ng vi cc m s t 0..127. Bit th 8 c th cho lin tc bng 0, 1 hoc c th dng cha bit parity (xem ngha ca parity chng 3, phn ni v cc c) phc v cho vic pht hin li khi truyn. Bn cnh bng ASCII tiu chun ngi ta cn dng bng ASCII m rng cho cc k t c bit (khc cc k t tiu chun) vi m t 128.. 255. Khi tra cc bng ny ta c m ca k t theo th t ct hng. V d: M ASCII ca mt s k t thng dng trong khi lp trnh: <Bel> (Bell, chung): 7 <BS> (Back space, xo li): 8 <HT> (Horizont tab, gin cch ngang): 9 <LF> (Line feed, thm dng mi): OAH <CR> (Carriage return, v u dng): ODH <SP> (Space, du cch): 2OH; $: 24H; 0: 30H; 9: 39H; A:41H; Khi xem xt bng 1.5 ta c th rt ra my nhn xt s b nh sau: 1. 2 ct u ca bng m c dng cho cc k t iu khin. 2. Ct 2 dnh ring cho cc k t ngn cch 3. Cc k t s nm ct 3. M ca k t 0 l 30H. 9 l 39H. Gia gi tr s v m ASCII ca s c khong cch l 30H. [Type text] Trang

a: 61H...

11

[Type the document title]


4. Cc ch ci hoa nm cc ct 4,5, cc ch ci thng ct 6,7. Khong cch gia ch thng v ch hoa cng tn l 20H. 4. Quan h gia m ASCII vi s BCD Trong khi lm ton vi cc s BCD ta thng kt hp 2 s BCD thnh 1 byte. Dng s BCD vit theo kiu ny gi l dng BCD chun hay cn c gi l dng BCD gi(packed BCD). Khi lu tr, khi hin th hoc khi truyn gia cc thit b cc gi tr s 0 .. 9, thc cht ta lm vic vi m ASCII ca cc s , tc l cc s 30H .. 39H. Nh vy ta thy trong 1 byte m ASCII biu din cc s 0 ..9 c 4 bit thp ng vi m BCD ca chnh cc s , 4 bit cao bao gi cng ng vi m BCD ca s 3 (tc l 0011B). Nu trong byte m ASCII ny ta thay 4 bit cao bng OH th ta thu c s BCDkhng gi. Ni cch khc s BCD khng gi l s di 1 byte, trong 4 bit cao bng khng, 4 bit thp l s BCD chun m ha s cn biu din. V d sau minh ha quan h gia s BCD gi, BCD khng gi v m ASCII. M ASCII M ASCII M ASCII khng gi M ASCII khng gi M ASCII gi (chun) ca ca ca ca ca 5 9 5 9 59 l l l l l 0011 0011 0000 0000 0101 0101B = 35H 1001B = 39H 0101B = 05H 1001B = 09H 1001B = 59H

T y ta c th rt ra cc bc phi lm i 2 s dng m ASCII sang dng s BCD chun: i s u tin t m ASCII ra s BCD khng gi i s th 2 t m ASCII ra s BCD khng gi Ly 4 bit thp ca s u ghp vi 4 bit thp ca s sau to thnh 1 byte biu din s BCD gi. y l cc cng vic hay gp khi thao tc vi cc s trong cc h vi x l.

[Type text] Trang

12

[Type the document title]


CHNG 2 : MY VI TNH V H THNG VI X L B vi x l c mt trong cc my vi tnh l s pht trin tip theo ca b x l c dng nh l mt b phn ch cht trong ccmy tnh ca cc th h trc. nm bt c tnh k tha v tnh lin tc ca s pht trin ny, trc khi gii thiu v cc b vi x l ta ra mt cht thi gian gii thiu v cc loi my tnh ni chung. 1. T my tnh ln n my vi tnh Nh ta bit v kin thc ca my tnh ni chung, mt my tnh (Computer) thng thng bao gm cc khi chc nng c bn nh: khi x l trung tm (CPU, central processing unit), b nh (M, Memory) v khi phi ghp vi thit b ngoi vi (I/O, input/output) . tu theo quy m phc tp ca cc khi chc nng k trn m ngi ta phn cc my i t v ang s dng ra thnh cc loi sau: 1.1.My tnh ln My tnh ln (mainframe) l loi my tnh c thit k gii cc bi ton ln vi tc nhanh. N thng lm vic vi s liu t 64 bit hoc ln hn na v c trang b b nh rt ln. Chnh v vy my tnh cng ln v kch thc vt l. Chng thng c dng iu khin cc h thng thit b dng trong qun s hoc cc h thng my mc ca chng trnh nghin cu v tr, x l cc thng tin trong ngnh ngn hng, ngnh kh tng, cc cng ty bo him ... Tiu biu cho loi my tnh ny l loi my IBM 8341, honeywell DSP8. loi my ln nht trong cc my ln c gi l supercomputer (nh loi my Y-MP/832 ca Cray). 1.2. My tnh con My tnh con (minicomputer) l mt dng thu nh v kch thc cng nh v tnh nng ca my tnh ln. N ra i nhm tho mn cc nhu cu s dng my tnh cho cc ng dng va phi m nu dng my tnh ln vo th s gy lng ph. Do vy my tnh con thng lm vic vi cc d liu c di t 32 bit vi tc chm hn v kh nng ca b nh hn ch hn. My tnh con thng c dng cho cc tnh ton khoa hc k thut, gia cng d liu quy m nh hay iu khin quy trnh cng ngh. Tiu biu cho nhm ny l loi my VAX 6360 ca Digital Equipment Corporation v MV/8000II ca Data genaral. 1.3.My vi tnh My vi tnh (Microcomputer) l loi my tnh rt thng dng hin nay. Mt my vi tnh c th l mt b vi iu khin (microcontroller)., mt my vi tnh trong mt v mch (one- chip- microcomputer), v mt h vi x l c kh nng lm vic vi s liu c di 1 bit, 4 bit, 8 bit, 16 bit. Hin nay mt s my vi tnh c tnh nng c th so snh c vi my tnh con, lm vic vi s liu c di t l 32 bit (thm ch l 64 bit). Ranh gii phn chia gia my vi tnh v my tnh con chnh v th ngy cng khng r nt. Mt dc im tiu biu nhn bit my vi tnh l chng u s dng cc b x l trung tm (CPU) c ch to bng cng ngh mch vi in t vi mc t hp ln, mch VLSI (very large of integration) m ngi ta quen gi l cc b vi x l (microcomputer, P) Cc b vi x l hin c tn th trng thng c xp theo cc h ph thuc vo cc nh sn xut v chng rt a dng v chng loi. Ni bt nht trong cc h vi x l l 2 h ca 2 nh sn xut hng u ni ting trong lnh vc ny, l h vi x l 80x86 ca Intel v h vi x l 680xx ca Motorola. Trong cc chng sau chng ta s quan tm ch yu n cc b vi x l, cc mch ph tr v cc h thng xy dng trn c s linh kin ca Intel, tuy th sau y cng ta cng s gii thiu lt qua v lch s pht trin v cc c im chung nht ca cc th h vi x l t trc n nay. Cui cng chng ta s a ra bng tng kt, trong nu ra cc thng s chnh ca cc b vi x k th h gn y nht ca 2 nh cung cp ni ting la Intel v Motorola. [Type text] Trang

13

[Type the document title]


2. S pht trin ca cc b vi x l 2.1. Th h 1 (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 bit ) ca Rockwell International, IPM-16 (16 bit) ca National Semiconductor. c im chung ca cc vi x l th h ny l: di t thng l 4 bit (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-16 s/lnh vi tn s ng h fclk = 0,1- 0,8 MHz. Tp lnh n gin phi cn nhiu mch ph tr mi to nn mt h vi x l hoan chnh. 2.2. Th h 2 (1974-1977) Cc b vi x l i din trong th h ny l cc vi x l 8 bit 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 bit ni ting mt thi nh Apple II v Commodore 64. Tt c cc b vi x l thi k ny u c sn xut bng cng ngh NMOS ( Vi mt in t trn mt n v din tch cao hn so vi cng ngh PMOS) hoc CMOS ( tit kim in nng tiu th) cho php t c tc t 1-8 s/lnh vi tn s ng h fclk = 1-5 MHz. 2.3. Th h 3 (1978-1982) Cc b vi x l trong th h ny c i din l cc b vi x l 16 bit 8086/80186/80286 ca Intel hoc 86000/86010 ca Motorola. Mt iu ti b hn hn so vi cc b vi x l 8 bit th h trc l cc b vi x l 16 bit 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-1 s/lnh vi tn s ng h fclk =5-10 MHz. Trong thi k ny cng xut hin cc my vi tnh 8 bit trong mt v nh 8048/49 v 6805R2 (mch ny cn c thm c ADC 12 bit cho 4 knh u vo tng t) hoc cc b vi iu khin 1 bit trong v nh MC 14500B v 4 bit trong 1 v nh MC 141000. 2.4. Th h 4 (1983-1999) Cc b vi x l i din trong th h ny l cc vi x l 32 bit 80386/80486 v 64 bit Pentium ca Intel 60-66MHz, Intel P6 - Pentium Pro 120- 133 MHz, Intel Pentium 150- 166 - 200 MHz vi cc m rng cho multimedia, Intel Pentium II 233-450 MHz, Intel Pentium III 500-550 MHz. Ngy nay cc thng s c bn ca b vi x l ngy cng c ci thin : tc ngy cng cao ( cc b vi x l hin i ca INTEL t ti tc 800 MHz - 3GHz, rng knh thng tin d liu ngy cng ln nh : 32, 64 bit . iu gip cho bi ton thit jk cc bi ton thjit kcc h vi x l chuyn dung vi tnh nng rang lain tr nn d dng hn. Song song vi cc h vi x l ca hng INTEL, hng Motola cng a ra cc vi x l 32 bit 68020/68030/68040 v cc vi x l 64 bit 68060/64. Ngy nay tc ca cc vi x l hin i ca hng MOTOROLA cng t trn 3GHz. c im ca cc b vi x l th h ny c s lng transistor rt ln ( t vi 3 triu n trn 50 triu transistor .Phn lain cc b vi x l mi thc hin cc lnh trong mt chu k, v thc t taut c chng u c n v x l du phy ng FPU (Floatingpoint Unit ) bn trong. Chng c cc thanh ghi chung 16-32 bit. Nhiu loi c phn bit cc tp thanh nghi [Type text] Trang 14

[Type the document title]


32-bit ( register file ) cho n v nguyn IU ( interger unit ) vaf teepj thanh ghi 32- bit cho FPU. Chng c Cache memory bn trong vi dung lng ln ti 36 KB. a s Cache memory bn trong phn i : dng cho lnh Icache v dng cho d liu 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 bus a ch u l 32 bit ( 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 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 cache (b nh n), b nh o. Cc b vi x l ny u c b qun l b nh(MMU) v nhiu khi c cc b ng x l ton hc bn trong. 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 lhn y ( 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, RC) 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... C l hy cn sm, nhng cng c nhiu biu hin c th ni c rng 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. 3. Gii thiu s lc cu trc v hot ng ca h vi x l Trn y b vi x l l mt thnh phn rt c bn khng thiu c to nn my vi tnh. Trong thc t b vi x l cn phi c th kt hp thm vi cc boo phn in t khc nh b nh v b phi ghp vo/ra to nn mt h vi x l hon chnh. Cn lu rng ch mt h thng c cu trc nh trn, thut ng h vi x l mang ngha tng qut hn so vi thut ng my vi tnh, v my vi tnh ch l mt ng dng c th cu h vi x l. Hnh 2.1 gii thiu s khi tng qut ca mt h vi x l.

Trong s naydf ta thy r cc khi chc nng chnh ca h vi x l gm: + Khi x l trung tm (central pgocessing unit,CPU) + B nh bn dn (memory, M + Khi phi ghp vi cc thit b ngoi vi (input/ output,I/O)K + Cc bus truyn thng tin. Ba khi chc nng u lin h vi nhau thng qua qp cc ng day truyn tn hiu gi chung l Bus h thng. Bus h thng bao gm 3 bus thnh phn. ng vi cc tn hiu a ch, d liu v iu khin ta c bus a ch, bus d liu v bus iu khin. CPU ng vai tr ch o trong h vi x l. y l mt mch vi in t c tch hp rt cao. Khi hot ng, n c m lnh c ghi di fng cc bit 0 v bit 1 t b nh, sau n s gii m cc lnh ny thnh cc dy xung iu khin ng vi cc thao tc trong lnh iu khin cc khi khc thc hin tng bc cc thao tc . lm c vic ny bn trong CPU c thanh ghi dng cha a ch ca lnh sp thc hin gi l thanh ghi con tr lnh (instruction pointer,IP) hoc b m chng trnh (program cuonter,PC), mt s thanh ghi a nng khc cng b tnh ton s hc v logic (ALU) thao tc [Type text] Trang

15

[Type the document title]


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

[Type text] Trang

16

[Type the document title]


CHNG 3: B VI X L INTEL 8088 Sau khi tm hiu qua v cu trc ca h vi x l. Trong chng ny ta s i su tm hiu mt bvi x l c th v rt in hnh: b vi x l ca Intel. Trc ht cn ni r l do ti sao yta li chn ch danh b vi z ly 8088 tm hiu m khng phi l b vi x l no khc ( iu m nhiu ngi khc phi lm ). Th nht, y l b vi x l ni ting mt thi thuc h 80x86 ca Intel, n 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 hng chc nm na, v vi tnh k tha ca cc sn phm trong h 80x86., cc chng trnh vit cho8088 vn c th chy trn cc h thng tin tin sau ny. Th hai, v gc s phm th y l b vi x l kh n gin v v vic dy hiu n l tng i d i vi nhng ngi mi bt u thm nhp vo lnh vc ny. Th ba, cc hvi x l tuy c khc nhau nhng xt cho cng cng c kh nhiu im ch yu rt ging nhau. Do mt khi nm c cc vn k thut ca8088, ta s c c s nm bt cc k thut ca cc b vi x l khc cng trong h Intel 80x86 hoc ca cc h khc. 1. Gii thiu cu trc bn trong vhot ng ca b vi x l 8088. Trc khi gii thiu tp lnh v cch thc lp trnh cho bvi x l8088 hot ng ta cn phi tm hiu k cu trc bn trong ca n. Trn hnh 3.1 l s khi cu trc bn trong cu b vi x l Intel 8088: 1.1. BIU V EU theo s khi trn hnh 3.1 ta thy bn trong CPU 8088 c 2 khi chnh: khi phi ghp ( bus interface unit, BIU ) vkhi thc hin lnh ( execution unit, EU ). 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 bus bn trong CPU c nhim v chuyn ti tn hiu ca cc khi khc. Trong s cc bus c bus d liu 16 bit ca ALU, bus cc tn hiu iu khin EU v bus trong ca h thng BIU. Trc khi i ra bus ngoi hoc ivo bus trong ca b vi x l, cc tn hiu truyn trn bus 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 bus v trao i d liu vi bus. Trong EU ta thy c mt khi iu khin ( control unit, CU ). Chnh ti bn trong khi iu khin 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 tu thu c cc dy xung khc nhau ( tu theo m lnh ) iu khin hot ng ca cc b phn bn trong v bn ngoi CPU. Trong khi EU cn c khi s hc v lgic ( arithmetic anh 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 4 byte dng cha cc m lnh c c nm sn ch EU x l ( trong ti liu ca Intel b m lnh ny cn c gi l hng i lnh ). y l mt cu trc mi c cy vo b vi x l 8086x88 do vic Intel a c ch x l xen k lin tc, dng m lnh ( instruction pipelining ) vo ng dng trong cc b vi x l th h mi. Pipeline l mt c ch c ng dng t nhng nm 60 t cc my ln. Nhn y ta s gii thiu s qua mt cht v c ch ny. Trong cc b vi x l cc th h trc ( nh 8085 chng hn ), thng thng hot ng ca CPU gm 3 giai on: c m lnh ( pcde fetch ), gii m lnh ( ecode ) v thc hin lnh ( execution ). Trong mt thi im nht nh, CPU th h ny ch c th thc hin mt trong ba cng vic ni trn v v [Type text] Trang

17

[Type the document title]


vy tu theo tng giai on s c nhng b phn nht nh ca CPU trng thi nhn ri. Chng hn, khi CPU gii m lnh hoc khi n ang thc hin nhng lnh khng lin quan n bus ( thao tc ni b ) th cc bus khng c dng vo vic g dn n tnh trng lng ph kh nng ca chng ( hnh 3.2 ). Trong khi t b vi x l 8086/88, Intel s dng c ch x l xen k lin tc dng m lnh th CPU c chia thnh 2 khi v c s phn chia cng vic cho tng khi: vic c m lnh l do khi BIU thc hin, vic gii m lnh v thc hin lnh l do khi EU m nhim. Cc khi chc nng ny c kh nng lm vic ng thi v cc bus s lin tc s dng: trong khi EU ly m lnh t b m 4 byte gii m hoc thc hin cc thao tc ni b th BIU vn c th c m lnh t b nh chnh ri t chng vo b nh m lnh ni. B m lnh ny lm vic theo kiu vo trc ra trc (first in-first out, FIFO ), ngha l byte no c ct vo m trc s c ly ra x l trc. Nu c s vo/ra lin tc ca dng m lnh trong b m ny th c ngha l c s phi hp hot ng hiu qu gia hai khi EU v BIU theo c ch x l xen k lin tc dng m lnh lm tng tc x l tng th. K thut x l xen k lin tc dng m lnh s khng cn tc dng tng tc x l chung ca CPU na nu nh trong m lnh c cha cc m lnh ca cc lnh CALL ( gi chng trnh con ) hoc JMP ( nhy ), bi v lc cc lnh ny ni dung ca b m s b xo v thay th vo l ni dung mi c np bi cc m lnh mi do lnh nhy hoc gi quyt nh. Vic ny tiu tn nhiu thi gian hn so vi trng hp trong m ch c m lnh ca cc lnh tun t Khng c pipelining C pipelining F1 D1 E1 F2 D2 E2 F3 D3 E3

F1 D1 E1 F1 D1 E1 F1 D1 E1 (F : c lnh , D :Gii m lnh, E : Thc hin lnh)

Hnh 3.2 : Dng lnh thng v dng lnh xen k lin tc Trong b vi x l 8088 ta cn thy c cc thanh ghi 16 bit nm trong c hai khi BIU v EU, ngoi ra cng c mt s thanh ghi 8 hoc 16 bit ti EU. Ta s ln lt gii thiu cc thanh ghi ni trn cng chc nng chnh ca chng. *Cc thanh ghi on Khi BIU a ra trn bus a ch 20 bit a ch, nh vy 8088 c kh nng phn bit ra c 220 = 1.048.576 = 1M nh hay 1Mbyte, v cc b nh ni chung 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 8088 c cc thanh ghi 16 bit 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 bit 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 [Type text] Trang

18

[Type the document title]


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 trong chng 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 Kbyte. 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 ), gi nh th v n ng vi khong lch ca to mt nh c th no so vi u on. lch ny c xc nh bi cc thanh ghi 16 bit khc ng vai tr thanh ghi lch ( Offset register ) m ta s ni n sau. C th, xc nh a ch vt l 20 bit ca mt nh no trong mt on bt k. CPU 8088 phi dng n 2 thanh ghi 16 bit ( mt thanh ghi cha a ch c s, cn thanh kia cha lch ) v t ni dung ca cp thanh ghi to ra a ch vt l theo cng thc sau: achvtl=Thanhghioanx16+Thanhghilch 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: Thanhghion: Thanhghilch 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 l ri c a ln bus a ch. Vic chuyn i ny do mt b to a ch thc hin (phn t trn hnh 3.1). V d: cp CS:IP s ch ra a ch ca lnh sp thc hin trong on m. Ti mt thi im no ta c CS = F00H v IP = FFFOH th CS:IP~FOOOHx16 + FFFOH = FOOOOH + FFFOH = FFFFOH a ch FFFFOH chnh l a ch khi ng ca 8088 du ~ y l ch s tng ng. a ch cc nh thuc cc on khc cng c th tnh c theo cch tng t nh vy. T nay khi cn ni n n a ch ca mt nh ta c th s dng c a ch logic ln a ch vt l v bao gi cng tn ti s tng ng gia hai loi a ch ny ( thng qua b to a ch ). Trc khi ni n cc thanh ghi khc ta ni thm cht t v tnh a tr ca cc thanh ghi on v thanh ghi lch trong a ch logic ng vi mt a ch vt l. iu ny cng ni ln tnh linh hot ca c ch segment offset trong vic nh a ch ca 8086/ 88. Nhn vo gi tr cui cng ca a ch vt l ta thy c th to ra a ch t nhiu gi tr khc nhau ca thanh ghi on v thanh ghi lch V d: a ch vt l 12345H c th c to ra t cc gi tr: Thanh ghi on Thanh ghi lch 1000H 2345H 1200H 0345H 1004H 2305H 0300H E345H *Cc thanh ghi a nng trong khi EU c bn thanh ghi a nng 16 bit AX, BX, CX, DX. iu c bit l khi cn cha cc d liu 8 bit th mi thanh ghi c th tch ra thnh hai thanh ghi 8 bit 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 v chnh v vy cc thanh ghi thng c gan cho nhng ci tn c bit rt c ngha. [Type text] Trang 19

[Type the document title]


C th: AX ( accumulator, acc ): thanh cha. Cc kt qa ca cc thao tc thng c cha y ( kt qu ca php nhn, chia ). Nu kt qu l 8 bit th thanh ghi AL c coi l acc. 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 bit. DX thng dng cha a ch ca cc cng trong cc lnh vo/ ra d liu trc tip. *Cc thanh ghi con tr v ch s Trong 8088 cn c ba thanh ghi con tr v hai thanh ghi ch s 16 bit. 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 thoa 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. *Thanh ghi c FR ( flag register ) y l thanh ghi kh c bit trong CPU, mi bit 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 bit nhng ngi ta ch dng ht 9 bit ca n lm cc bit c ( hnh 3.3 ). Cc c ca b vi x l 8086 x x x x O D I T S Z x A x P x C

X : Khng c nh ngha

. . ch ci thng ct 6,7. Hnh 3.3 S thanh ghi c ca b vi x Cc c c th C hoc CF ( carry flag ): c nh. CF = 1 khi c nh hoc mun t MSSP. P hoc PF ( parity flag ): c parity. PF phn nh tnh chn l ( parity ) ca tng s bit 1 c trong kt qu. C PF =1 khi tng s bit trong kt qu l chn ( even parity, parity chn ). y ta tm dng parity dng nguyn gc trnh s lng cng khi phi dch cm t even parity thnh tnh chn l chn hoc odd party thnh tnh chn l l. [Type text] Trang

20

[Type the document title]


A hoc AF ( auxilialyry carry flag ): c nh ph rt c ngha khi ta lm vic vi cc s BCD.AF = 1 khi c nh hoc mun t mt s BCD thp ( 4 bit thp ) sang mt s BCD cao ( 4 bit 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 ( over flow 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 bit c trng thi phn nh cc trng thi khc nhau ca kt sau mt thao tc no , trong 5 bit c u thuc byte thp ca thanh c l cc c ging nh ca b vi x l 8 bit 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 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 ) ngha ca cc c kh r rng. Ring c trn cn phi lm r hn ta hiu c bn cht v c ch lm vic ca n. C trn thng c dng n khi ta lm vic vi s b 2 c du. cho vic gii thch c n gin, u tin gi thit ta lm vic vi s b 2 di 8 bit, kt qu AL ( xem hnh 3.4 ). Gi C67 l c nh t bit 6 ( B6 ) ln bit 7 ( B7 ), trong B7 l MSB v cng chnh l bit du ( SF ) ca AL. Ta c th chng minh c rng quan h gia c OF vi cc c CF v C67 tun theo phng trnh sau: OF = CF C67. Ngha l khi thc hin cc php ton vi s b 2 c du, hin tng trn s xy ra ( c OF = 1 ) nu c nh t MSB ( tt l SF ) sang CF nhng li khng c nh vo chnh n ( SF ) hoc ngc li. iu ny c th tng qut ho cho cc trng hp lm vic vi s b 2 c du vi di 16/32 bit.

[Type text] Trang

21

[Type the document title]

AD14 AD13 AD12 AD11 AD10 AD00 AD91 AD81

40 Ch Ch GND 1 39 MIN MAX A14 2 38 VI6 A13 3 37 AI5 A12 4 36 AI6/S3 A11 5 35 AI7/S4 A10 6 34 AI8/S5 A9 7 P 33 AI9/S6 A8 8 8088 32 SS0 BIH AD7 9 AD6 10 [8086] 31 MN/MN 30 RD AD5 11 29 HOLD (RQ/GT0) AD4 12 28 WR (RQ/GH) AD3 13 27 IO/M (LOCK) AD2 14 26 DT7R (S2) AD1 15 25 DEN (S1) AD0 16 24 ARE (S0) NMI 17 23 ININ (QS0) INRT18 22 IIST (QS1) CLK 19 21 READY GND 20 RESET

Hnh 35 . S chn ca CPU 8088[8086] Trc khi kt thc phn m t cu trc ca b vi x l i vo gii thiu tp lnh ca 8088 ta ni qua mt cht v s ging nhau vkhc nhau gia 8088 v 8086 l b vi x l 16 bit hon chnh, cn 8088 l b vi x l vi 16 bit d liu bn trong ( ging nh 8086 ), nhng khi ra ngoi bus d liu ca n ch cn 8 bit. Cu trc bn trong ca 8088 v 8086 ging nhau v c bn, ngoi tr hai im. im khc nhau u tin l di b nh m lnh ( hng i lnh ) di ny 8088 l 4 byte cn 8086 l 6 byte; iu ny s c nh hng t nhiu n s khc bit v s tc x l ca hai b CPU. im khc nhau th hai l kch thc ca bus d liu: 8088 l 8 bit cn 8086 l 16 bit ( trong khi ALU v cc thanh ghi ca hai b CPU vn c di nh nhau. iu ny c nh hng nhiu n cng nng ( Perfomance ) v gi thnh ca h thng xy dng trn c s cc b vi x l ny. i vi 8086 do bus d liu l 16 bit n c th c/ghi c mt t nm hai nh thng hng ( mt t trong b nh c coi l xp thng hng khi a ch chn lbyte thp, a ch l l byte cao ) trong mt chu k c/ghi: cn 8088 do bus d liu ch c 8 bit nn c/ghi mt t nm hai nh thng hng ( nm lin tip nh trn ) n phi thc hin trong hai chu k c/ghi. B li nhc im v tc , 8088 c gi r vdng to ra [Type text] Trang

22

[Type the document title]


cc h thng vi gi phi chng v n d phi ghp vi cc thit b ngoi vi 8 bit ang thnh hnh lc . iu khc nhau na tt yu phi xy ra l s khc nhau trong vic b tr cc chn hai vi mch nh trn hnh 3.5 ( xem thm phn gii thiu c th cc tn hiu ti cc chn chng V ). Mc d c nhng im khc nhau nu, nhng v nhng im ging nhau l rt c bn v v hai b vi x l c tp lnh ging nhau nn v quan im lp trnh th chng l tng ng 2. Cch m ho lnh cab vi x l 8088 Lnh cab vi x l c ghi bng cc k t di dng gi nh ( memonic ) ngi s dng nhn bit. i vi bn thn b vi x l th lnh cho n c m ho di dng cc s 0 v 1 (cn gi l m my ) v l dng biu din thng tin duy nht m my hiu c. V lnh do b vi x l c cho di dng m nn sau khi nhn lnh., b vi x l phi thc hin vic gii m lnh ri sau mi thc hin lnh. Vic hiu r bn cht cch ghi lnh bng s h 2 cho b vi x l s c li khi ta cn dch bng tay . Mt lnh gi nh khi lm vic vi cc kit vi x l ( tuy rng vic ny t khi xy ra v ta thng lm vic vi cc h c trang b chng trnh dch hp ng ). Mt lnh c th c di mt vi byte tu theo b vi x l. Gi thit mt b vi x l no dng 1 byte cha cc m lnh ( opcode ) ca n. Ta c th tnh c s lnh ln nht m 1 byte ny c th m ho c l 256 lnh. Trong thc t vic ghi lnh khng phi hon ton n gin nh vy. Vic m ho lnh cho b vi x l l rt phc tp v b chi phi bi nhiu yu t khc na. i vi b vi x l 8088 mt lnh c th c di t 1 n 6 byte. Ta s ch ly trng hp lnh MOV gii thch cch ghi lnh ni chung ca 8088. Lnh MOV ch, gc dng nguyn d liu gia 2 thanh ghi hoc gia 2 nh v thanh ghi. Ch nguyn vi cc thanh ghi ca 8088, nu ta ln lt t cc thanh ghi vo cc v tr ton hng ch v ton hng gc ta thy phi cn ti hng trm m lnh khc nhau m ho t hp cc lnh ny. Hnh 3.6 biu din dng thc cc byte dng m ho lnh MOV. T y ta thy rng m ho lnh MOV ta phi cn t nht l 2 byte, trong 6 bit ca byte u dng cha m lnh. i vi cc lnh MOV. chuyn d liu kiu: Thanh ghi thanh ghi ( tr thanh ghi on ) hoc B nh thanh ghi ( tr thanh ghi on ) th 6 bit u ny lun l 100010. i vi cc thanh ghi on th iu ny li khc. Bit W dng ch ra rng 1 byte (W = 0 ) hoc 1 t ( W = 1 ) s c chuyn.
Byte 1 Byte 2 Byte 3 Byte 4

1 0 0 01 0
Opcode D W mod REG M/R

Disp

Disp

Hoc
Di chuyn trc tip phn thp Di chuyn trc tip phn cao

Hnh 3.6 Dng thc Byte m lnh ca lnh MOV Trong cc thao tc chuyn d liu, mt ton hng lun bt buc phi l thanh ghi. B vi x l dng 2 hoc 3 bit m ho cc thanh ghi trong CPU nh sau: [Type text] Trang

23

[Type the document title]


Thanh ghi W=1W=0 AX AL PX BL CX CL DX DL SP AH DI BH BP CH SI DH M 000 011 001 010 100 111 101 110 Thanh ghi on CS DS ES SS M 01 11 00 10

Bit D dng ch hng i ca d liu. D = 1 th d liu i n thanh ghi cho bi b bit ca REG. 2 bit MOD ( ch ) cng vi 3 bit R/M ( thanh ghi/b nh ) to ra 5 bit dng ch ra ch a ch cho cc ton hng ca lnh ( c th hiu ch a ch l cch tm ra a ch ca ton hng, xem thm phn sau ca chng ny r hn v ch a ch. Bng 3.1 cho ta thy cch m ho cc ch a ch ( cch tm ra cc ton hng bng cc bit ny ). MO D R/M 000 001 010 011 100 101 110 111 [BX]+[8] [BX]+[DI] [BP]+[SI] [BP]+[DI] [SI] [DI] [BX]+[SI]+d8 [BX]+[DI]+d8 [BP]+[SI]+d8 [BP]+[DI]+d8 [SI]+d8 [DI]+d8 [BX]+[SI]+d16 [BX]+[DI]+d16 [BP]+[SI]+d16 [BP]+[DI]+d16 [SI]+d16 [DI] +d16 [BP]+d16 [BX]+d16 W=0 AL AX CL CX DL DX BL BX AH SP CH BP DH SI BH DI ch thanh ghi W=1 00 01 10 11

d16 [BP]+d8 (a ch trc tip) [BX] [BX]+d8 ch b nh Ghi ch : disp , 8bit ,d16: disp , 16bit

[Type text] Trang

24

[Type the document title]


Cc gi tr cho trong cc ct 2,3,4 (ng vi MOD =00,01,10) l cc a ch hiu dng (EA) s c cng vi DS to ra a ch vt l (ring BP phi c cng vi SP ) Trong cc v d sau y ta s dng cc kin thc nu trn m ho mt vi lnh MOV. MOV CL ,[BX] 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 Opcode Chuyn ti thanh ghi Chuyn 1 byte MOV OF3H [SI] , CL m ho CL [ BX] -

1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 CL [SI] Chuyn t thanh ghi 1 Byte dS = F3H

3. Cc ch a ch ca b vi x l 8088 Ch a ch (addressing mode ) l cch CPU tm thy ton hng cho cc lnh ca n khi hot ng. Mt b vi x l c th c nhiu ch a ch. Cc ch a ch ny c xc nh ngay t khi ch to ra b bi x l v sau ny khng th thay i c. B vi x l 8088 v c h 80x86 ni chung u c 7 ch a ch sau: 1. Ch a ch thanh gi ( register addressing mode ). 2. Ch a ch tc th ( immediate addressing mode ). 3. Ch a ch trc tip ( direct addressing mode ). 4. Ch a ch gin tip qua thanh ghi ( register indirect addressing mode ). 5. Ch a ch tng i c s ( based indexed relative addressing mode ). 6. Ch a ch tng i ch s ( indexed relative addressing mode ). 7. Ch a ch tng i ch s c s ( based indexed relative addressing mode ). Cc ch a ch ny s c gii thch thng qua cc ch a chca lnh MOV v lnh ADD. *ch a ch thanh ghi Trong ch a ch ny ngi ta dng cc thanh ghi bn trong CPU nh l cc ton hng cha d liu cn thao tc. V vy khi thc hin lnh c th t tc truy nhp cao hon so vi cc lnh c truy nhp n b nh. V d: MOV BX, DX ; chuyn ni dung DX vo BX. MOV DS,AX ; chuyn ni dung AX vo DX ADD AL,DL ; cng ni dung AL v DL ri a vo *Ch a ch tc th [Type text] Trang

25

[Type the document title]


trong ch a ch ny ton hng ch l mt thanh ghi hay mt nh, cn ton hng ngun l mt hng s v ta c th tm thy ton hng ny ngay sau m lnh ( chnh v vy ch a ch ny c tn l ch a ch tc th ). Ta c th dng ch a ch ny np d liu cn thao tc vo bt k thanh ghi no ( tr cc thanh ghi on v thanh c ) hoc vo bt k nh no trong on d liu DS. V d: MOV CL, 100 ; chuyn 100 vo CL. MOV AX, OFFOH ; chuyn OFFOH vo AX ri a MOV DS, AX ; vo DS ( v khng th chuyn ; trc tip vo thanh ghi on ) MOV ( BX ), 10 ; ch DS:BX. Trong v d cui ta dng ch a ch gin tip qua thanh ghi ch ra nh ( ton hng ch ) s nhn d liu ch a ch tc th ( ton hng ngun ). Ti y ( BX ) c ngha l nh c a ch DS:BX. *Ch a ch trc tip Trong ch a ch ny mt ton hng cha a ch lnh ca nh dng cha d liu cn ton hng kia ch c th l thanh ghi m khng c l nh. Nu so snh vi ch a ch tc th ta thy y ngay sau m lnh khng phi l ton hng m l a ch lch ca ton hng. Xt v phng din a ch th l a ch trc tip. V d: MOV AL, ( 1234H ) ; chuuyn ni dung nh DS:1234 ; vo AL. MOV ( 4320H ), CX ; chuyn ni dung CX vo 2 nh ; lin tip DS:4320 v DS:4321 *Ch gin tip qua thanh ghi Trong ch a ch ny mt ton hng l mt thanh ghi c s dng cha a ch lch ca nh cha d liu, cn ton hng kia ch c th l thanh ghi m khng c l nh ( 8088 khng cho php quy chiu b nh 2 ln i vi mt lnh ). V d: MOV AL, ( BX ) ; chuyn ni dung nh c a ; ch DS:BX vo AL. MOV ( SI ), CL ; chuyn ni dung CL vo nh ; c a ch DS:SI. MOV ( DI ), AX ; chuyn ni dung AX vo 2 nh ; lin tip c a ch DS:DI v ; DS: ( DI + 1 ). *Ch a ch tng i c s Trong ch a ch ny cc thanh ghi c s nh BX v BP v cc hng s biu din cc gi tr dch chuyn ( displacement values ) c dng tnh a ch hiu dng ca ton hng trong cc vng nh DS v SS. S c mt ca cc gi tr dch chuyn xc nh tnh tng i ( so vi c s ) ca a ch. V d: MOV CX, ( BX ) +10 ; chuyn ni dung 2 nh lin ; tip c a ch DS: ( BX + 10 ) v ; DS: ( BX+10 ) vo CX. MOV CX, ( BX+10 ) ; mt cch vit khc ca lnh trn . MOV CX, 10 ( BX ) ; mt cch vit khc ca lnh u. [Type text] Trang

26

[Type the document title]


; chuyn ni dung nh SS: ( BP+5 ) ; vo AL. ADD AL, Table ( BX ) ; cng AL vi ni dung nh do ; BX ch ra trong bng table ; ( bng ny nm trong DS ), kt ; qu da vo AL. Nhn y cn lm r mt s thut ng hay dng thng qua cc v d trn. 10.5.Table gi l cc dch chuyn ca cc ton hng tng ng. 10 v 5 l cc gi tr c th. Table l tn mng biu din kiu dch chuyn ca mng ( phn t u tin ) so vi a ch u ca on d liu DS. ( BX+10) hoc ( BJP+5 ) gi l a ch hiu dng (effective address. EA.theo cch gi ca Intel ). DS: ( BX+10 ) hoc SS: ( BP+5 ) chnh l logic tng ng vi mt a ch vt l. Theo cch nh ngha ny th a ch hiu dng ca mt phn t th BX no ( k t 0 ) trong mng Table ( BX ) thuc on DS l EA = Table+BX v ca phn t u tin l EA = Table. *Ch a ch tng i ch s c s Kt hp hai ch a ch ch s v c s ta c ch a ch ch s c s. Trong ch a ch ny ta dng c thanh ghi c s ln thanh ghi ch s tnh a ch ca ton hng. Nu ta dng thm c thnh phn biu din s dch chuyn ca a ch th ta c ch a ch phc hp nht: ch a ch tng i ch s c s. Ta c th thy ch a ch ny rt ph hp cho vic da ch ho cc mng hai chiu V d: MOV AX, [ BX ] [SI ]+8 ; chuyn ni dung 2 nh ; lin tip c a ch ; DS:(BX+SI+8 ) v ; DS:(BX+SI+9 ) vo AX MOV AX, [BX+SI+8] ; mt cch vit khc ca lnh trn MOV CL, [BP+DI+5] ; chuyn ni dung nh ; SS:( BP+DI+5 ) vo CL. *Tng kt cc ch a ch Cc ch a ch trnh by trn c th tm tt li trong bng 3.2. Mt hnh thc tng kt khc v ca ch a ch ca 8086/88 c biu din trrrn hnh 3.7 *Phng php b ngm nh thanh ghi on ( segment override ) Nh trong cc phn trc ni, cc thanh ghi on v thanh ghi lch c ngm nh i km vi nhau tng cp dng a chho cc ton hng teong cc vng khc nhau va b nh.Bng 3.3 ch ra cc kh nng cp i ngm nh ca ccthan ghi on v thanh ghi lch thng dung. V tnh ngm nh ny nntong cc lnh ta ch cn vita cctnh thanh ghi lch l c s tnh ra c ia ch ca ton hng. Tuy nhin, ngoi cc t hp ngm nh k, 8088 cn cho php ta lm vic vi cc t hp ngm nh k, 8088 cn cho php ta lm vic vi cc t hp khc ca cc thanh ghi on v thanh ghi lch. Mun loi v cc t hp ngm nh ni trn, trung khi vit lnh ta phi ghi r thanh ghi on s dng tnh a ch v km thm du 2 chm trc thanh ghi lch. Cm k hiu ny goik l cm tip u li b thanh ghi on ngm inhj (segmnent override prefix) v dt c ivc loi b ny ch cn ghi r thanh ghi on. Bng 3.2 : Tm tt cc ch a ch [Type text] Trang MOV AL, ( BP ) +5

27

[Type the document title]


Ch a ch Thanh ghi Tc th Trc tip Gin tip qua thanh ghi Ton hng Thanh ghi on ngm nh Reg Data [offset] DS [BX] DS [SI] DS [DI] DS Tng i c s [BX]+disp DS [BP] +DISP SS Tng i ch s [DI]+Disp DS [SI]+ DISP DS Tng i ch s c s [BX]+[DI]+DISP DS [BX]+[SI]+DISP DS [BP]+[DI]+DISP SS [BP]+[SI]+DISP SS (Ghi ch : Reg : thanh ghi ; Data : d liu tc th ; disp : dch chuyn ) Bng 3.3 : Cc cp thanh ghi on v thanh ghi lch ngm nh Thanh ghi on CS DS ES SS Thanh ghi lch IP SI,DI,BX DI SP,BP V d: Trong lnh chuyn d liu th a ch vt l ca ton hng chuyn vo thanh ghi AL, tng ng vi DS:BX, v DS s on ngm nh cuarvng nh chaton hng do BX ch ra.Nu ta mun thay i,khng ly ton hng trong on d liu DS ,m li ly ton hng traong on d liu ph ES d a vo AL,th ta phi vit li lnh trn thnh MOV AL.ES:[BX] Trong ta dng cm tip u ES : loi b thanh ghi on ngm nh DS v ch r thanh ghi on mi dng trong lnh nayf by gi l ES .

[Type text] Trang

28

[Type the document title]


Ch c s hoc ch s BX hoc BP hoc DI hoc SI Dch chuyn CSx16 hoc DSx16 hoc SSx16 hoc ESx16 a ch vt l a ch hiu dng Ch ch s c s BX hoc BP SI hoc DI

Hnh 3.7 : mt hnh thc khc tng kt cc ch a ch ca 8088 4. M t tp lnhca b vi x l 8088. C nhiu cnh trnh by tp lnh ca b vi x l:Trnh by cac lnh cho cc nhm hoc theo th t ABC .Ta s chn cch lm th 2 sau ny d tm kim cac lnh cn tra cu c th.Trong khi ni ti cc lnh dng gi nh tacng m t ngn gon lun tng lnh v tc ng (nu c) ca lnh ti cac c. cho cc din gii d c ta quy nh k hiu AL c hiu l thanh ghi AL hoc l ni dung ca AL.Trong khi ghi lnh ,du[ X] nn c hiu nh l mt ki hiu ca Intel ghi lnh.Khng nn hiu l ni dung ca X ,cn {XX:YY} dng ch ni dung nh ti a ch XX:YY hoc {SP} dng ch nh ca ngn xp c a ch do ni dung ca thanh ghi con tr ngn xp SP ch ra . AAA _ASCII Adjust after Addition (Chnh sau khi cng hai s dng ASCII) D liu truyn t cc thit b u cui n my tnh thng di dng m ASCII .Khi d truyn i cc s di dng ASCII roi,i khi ta mun cng lun cc s .B vi x l 8088 cho phep ta lm iu ny vi iu kin phi chnh li kt qu c trong AL,bng lnh AAA thu c kt qu l s BCD khng gi. Cp nht : AF , CF Khng xc nh: OF , PF ,SF ,ZF V d:Ta c 2 s di dng m ASCII l 30H v 39H ng vi 0 v 9 Nu cng hai s dng m li ta c s 69H.S ny khng c ngha g v n khng phi la s BCD ng .Ta s thu c s BCD khng gi nu dng thm lnh AAA . ;AL = 0011 0000B = 30H = 0, ;BL = 0011 1001B = 39H = 9, [Type text] Trang 29

[Type the document title]


ADD AL , BL ; thu c AL = 0110 1001B = 69H , Kt qu sai. AAA ; thu c AL = 0000 1001B = 9, kt qu ng. OR AL ,30H ; thu c AL = 39H = 9 truyn kt qu tr li thit b u cui . AAD_ ASCII Adjust before Division (Chnh trc khi chia 2 s dng ASCII ) Lnh ny i 2 s BCD khnbg gi AH v AL sang s h 2 tng ng ti Al.Vic ny phi thc hin trc khi lm php chia mt s BCD khng gi( gm 2 ch s ) trong AX cho 1 s BCD khng gi khc.Kt qu v s d cng l cac s BCD khng gi. Khng xc nh :tt c cc c . V d: ;AX = 0605H l s BCD khng gi ca 65 ;(s b chia) ;BL = 08H la s BCD khng gi ;(s chia). AAD ;sau khi chnh AX = 0041 = 41H DIV BL;sau khi chia c thng AL = 08 ;s d AH = 1 l s BCD khng gi , AAM_ASCII Adjust After Mult iplication (Chnh sau khi nhn 2 s dng ASCII ) Lnh ny dung i 1 s h 2,l tch ca 2 s BCD khng gi ,c trong AL sang s BCD khng gi ti AX . Cp nht :PF , SF ,ZP. Khng xc nh: AF ,CF ,OF V d: Sau khi nhn 2 s 5 v 9 dang ASCII .Ta i kt qu sang dng BCD khng gi bng lnh AAM v sau i tip thnh m ASCII truyn tip ;AL = 0011 0101B = 35H = 5 , ;BL = 0011 1001B = 39H = 9 , MUL BL; thu c AX = 002DH = 45, AAM; thu c AX = 0405H, m BCD ;khng nen ca 45. OR AX ,3030H; thu c AX = 3435H, m ASCII ;cho 45 truyn kt qu ; tr li thit b u cui. AAS-ASCH Adjust after Subtraction ( chnh sau khi tr 2 s dng ASCH ) Lnh ny dng i mt s h hai l hiu ca 2 s BCD khng gi, c AL. sang s BCD khng gi. Cp nhp: AF, CF. Khng xc nh: OF, PF, SF, ZP. V d: a) ; BL = 0011 0101B = 35 = 5, ; AL = 0011 1001B = 39H = 9, ; ASCII 9 ASCII 5: SUB AL, BL ; thu c AL = 04H = 4, AAC ; thu c AL = 04H, m BCD khng ; gi ca 4. OR AL, 30H ; thu c AL = 34H, m ASCII cho 4 [Type text] Trang

30

[Type the document title]


; truyn kt qa tr li thit b ; u cui. b) ; AL = 0011 0101B = 35H = 5, ; BL = 0011 1001B = 39H = 9, ; ASCII 5- ASCII 9: SUB AL, BL ; thu c AL = FCH = -4, CF = 1, AAS ; thu c AL = 04H, m BCD khng ; gi ca 4, CF = 1 ( c th dng cho cc ; php tr nhiu ch s ) ADC-Add With Carry ( cng c nh ) Vit lnh:ADC ch, Gc. M t: ch ch + Gc + CF Trong tn hng ch v gc c th tm wocj theo cc ch a ch khc nhau. Nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. iu hn ch ny cng p dng cho cc lnh khc c ng php tng t. Cp nht: AF, CF, OF, PF, SP, ZP. V d: Cc v d sau y c th i din ch cc ch a ch c th c trong lnh cng ny cng nh mt s cc lnh khc voi ng php tng t. ADD-Add ( cng 2 ton hng). Vit lnh: ADD ch, Gc. M t: ch - ch + Gc. Trng ton hng ch v gc c th tm c theo cc ch a ch khc nhau. Nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. C th tham kho cc v d ca lnh ADC. Cp nht: AF, CF, PF, SF, ZP/ AND-And Corresponding Bits of Two Operands ( V 2 ton hng ) Vit lnh: AND ch, Gc M t: ch - ch, Gc. Trong ton hng ch v gc c th tm c thoe cc ch a ch khc nhau. Nhng phi cha d liu cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. Php AND thng dng che i/ gi li mt vi bit no ca mt ton hng bng cch nhn logic ton hng vi ton hng tc th c cc bit 0/1 cc ch cn che i/gi nguyn tng ng ( ton hng tc th lc ny cn c gi l mt n ). Xo: CF, OF. Cp nht: PF, SF, ZP, PF ch c ngha khi ton hng l 8 bit. Khng xc nh: . V d: AND AL, BL ; AL , AL BL theo tng bit. AND OFH ; che 4 bit cao ca BL. CALL-Call o Proceduce ( Gi chng trnh con ) M t: Lnh ny dng chuyn hot ng ca b vi x l t chng trnh chnh ( CTC ) sang chng trnh con ( ctc ). Nu ctc trong cng mt on m vi CTC th ta c gi gn ( near call ). Nu CTC v ctc nm hai on m khc nhau th tra c gi xa ( far call ). Gi gn v gi xa khc nhau v cch to ra a ch tr v ( return address). a ch tr v l a ch ca lnh tip ngay sau lnh Call. Khi gi gn th [Type text] Trang

31

[Type the document title]


ch cn cc IP ca a ch tr v ( v CS khng i ). Khi gi xa th phi ct c CS v IP ca a ch tr v. a ch tr v c t ng ct ti ngn xp khi bt u thc hin lnh gi v c t ng ly ra khi gp lnh RET ( tr v CTC t ctc ) ti cui ctc. Vit lnh: Sau y l v d cc dng khc nhau ca cc dng khc nhau ca cc lnh gi ctc v cch tnh a ch ca ctc: CALL Multiple: Gi ctc c tn l Multiple trong cng on m vi CTC, ctc ny phi nm trong gii hn ch chuyn-32Kbyte ( dch v phi a ch thp ) hoc ( 32K-1) byte ( dch v pha a ch cao ) so vi lnh tip theo ngay sau lnh Call. Sau khi ct IP c ( a ch tr v ) vo ngng xp . IP mi c tnh: IP IP + Dch chuyn. CALL Divi: Gi ctc c tn Divi on m khc. Trong chng trnh hp ng Divi phi c khai bo l mt ctc xa: Divi Proc Far i ch ca ctc l i ch CS:IP cu Divi. CALL WORD PTR [ BX ]: Gi ctc nm trong cng on m, ctc c a ch dch chuyn ( tnh t lnh tip ngay sau lnh gi ti lnh u tin ca ctc ) cha trong 2 nh do BX v BX+1 ch ra trong on DS. a ch lch ny s a vo IP ( SI, DI c th dng thay ch ca BX ). CALL DWORD PTR [ BX ]: Gi ctc khng nm trongcng mt on m, ctc c a ch CS:IP, gi tr gn cho IP v CS cha trong 4 nh do BX v BX +1 (cho IP) v BX+2 v BX+3 ( cho CS ch ra trong on DS ( SI, DI c th dng thay ch ca BX ). CBW-Convert a Byte to a Word ( Chuyn byte thnh t ) Lnh ny m rng bit du ca AL sang 8 bit ca AH, AH lc ny c gi l phn m rng du cu AL. Ta dng CBW m rng du cho s c du nm trong AL trc khi mun chia n cho mt s c du 8 bit khc bng lnh IDIV ( lnh chia cc s c du ), hoc trc khi mun nhn n vi mt s c du 16 bit khc bng lnh IMUL, ( lnh nhn cc s c du ). Lnh ny khng tc ng n cc c. V d: Nu AL = 80 th sau lnh chuyn ta c AX = PF80H. CLC-Clear the Carry Flag ( xo c nh ) M t: CF 0. Khng tc n n cc c khc. CLD Clear the Direction Flag ( xo c hng ). M t: DF 0. Lnh ny nh hng thao tc theo chiu trin ch cc lnh lin quan n chui. Cc thanh ghi lin quan l SI v DI s c t ng tng khi lm vic xong vi mt phn t ca chui. Khng tc ng n cc c khc. CLI Clear the Interrupt Flag ( xa c cho php ngt ). M t: IF 0. Lnh ny xo c cho php ngt. Cc yu t ngt che c s b che. Khng tc ng n cc c khc. CMC Complement the Carry Flag ( o c nh ). M t: CF CF. Cp nht: CF Khng tc ng n cc c khc. CMP-Compare Byte or Word *~( so snh 2 byte hay 2 t ). Vit lnh: CMP ch, Gc. M t: ch Gc. [Type text] Trang

32

[Type the document title]


Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau. Nhng phi cha d liu c cng di v khng c php ng thi l 2 nh. Lnh ny ch to cc c, khng lu kt qu so sanh, sau khi so sanh cc ton hng khng b thay i. Lnh ny thng c dng to c cho cc lnh nhy c iu kin ( nhy theo c ). Cc c chnh theo quan h ch v gc khi so snh 2 s khng du: CF 2F ch = Gc 0 1 ch > Gc 0 1 ch > Gc 1 0 Cp nht: AF, CF, OF, PF, SF, ZP. CMPS/CMPSB/CMPSW-Compare String Bytes or String Word ( so snh 2 chui byte hay 2 chui t ). Vit lnh:CMPS Chui ch, chui gc. CMPSB CMPSW. M t: Chuich Chuigc. Lnh ny so snh tng phn t ( byte hay t ) ca 2 xu c cc phn t cng loi. Lnh ch to cc c, khng lu kt qu so snh, sau khi so snh cc ton hng khng b thay i. Trong lnh ny ngm nh cc thanh ghi vi cc chc nng: +DS:SI l a ch ca phn t so snh trong chui gc. +ES:DI l a ch ca phn t so snh trongchui ch.. Ta s gii thch c th cc trng hp dng cc dng lnh trn. Gii thch ny cng c th p dng cho ccln c dng thc ln hoc cu trc ng php ng t. MOVS, STOS, LODS, SCAS. C 2 cch ch ra mt chui l chui byte hoc chui t. Cch u tin l ta khai r bng ten ngay t u chui ngun v chui ch l loi g. Sau ta dng lnh COMPS thao tc vi cc chui . StrByte1 DB daylachuoibyte1 StrByte2 DB daylachuoibyte2 StrWord1 DW daylachuoit1 StrWord1 DW daylachuoitu2 LEA SI, StrByte1 LEA DI, StrByte2 COMPS StrWord2, StrWord1 ;c th thay ; bng MOMPSB. Cch ths hai l ta thm vo lnh CMPS ui thch hop bo cho chng trnh dch bit kiu thao tc trn chui c nh ngha: ui B thao tc vi byte hoc ui W thao tc vi t trong chui. Cp nht: AF, CF, OF, PF, SF, ZP. V d: MOV DI, OFFSET chuich ; ly a ch lch ; ca chuich ti ; ES vo SI, MOV SI, OFFSET chuigc ; ly a ch lch ; ca chuigc ti [Type text] Trang

33

[Type the document title]


; DS vo SI, ; lm vic vi chui theo ; chiu tin, CMPSB ; chuyn 1 byte. ; SI v DI tng thm 1. CWD-Convert a Word to a DoubleWord ( chuyn t thnh t kp ) Lnh ny m rng bit du ca AX sang 16 bit ca DX. DX lc ny c gi l phn m rng du ca AX. Ta dng CWD m rng du cho s c du nm trong AX trc khi mun chia n cho mt s c du khc bng lnh IDIV. Lnh ny khng tc ng n cc c. V d: nu DX = 0000H. AX = 8087H th sau lnh i ta c: DX = FFFFH, AX = 8086H. DAA-Decimal Adjust AL after BCD Addition ( chnh AL sau khi cng s BCD ). Lnh ny dng chnh li kt qu ( hin nm AL ) sau php cng 2 s BCD. L do phi chnh li kt qu ny l do ta dng b ALU ca XPU, cn ch bit lm ton vi cc s h hai. lm otn vi cc s VCD, lnh D ch tc ng n kt qu AL ngay sau khi va thc hin php cng. Hot ng ca lnh DAA: +Nu 4 bit thp cu AL ln hn 9 hoc AF = 1 th AL AL + 6 . +Nu 4 bit cao ca AL ln hn 9 hoc CF = 1 th AL AL + 60H. Cp nht: AF, CF, PF, SF, ZP. Khng xc nh: OF. V d: a) ; AL = 0101 1001BCD = 59 ; BL = 0011 0110BCD = 36 ADD AL, BL ; AL = 1000 1111 B = 8FH DAA ; v F > 9 nn AL + 6 = 1001 0101BCD = 95 b) ; AL = 1000 1001BCD = 89 ; BL = 0100 0111BCD = 47 ADD AL, BL ; AL = 1101 0000 B = D0H, AF = 1 DAA ; vi D > 9 v = 1 nn ; AL + 60H +6 = 1001 0000BCD = 36,CF = 1. DAS- Decimal Adjust AL after BCD Subtraction ( chnh AL sau khi tr 2 s BCD ) Lnh ny dng chnh li kt qu ( hin nm AL ) sau php tr 2 s BCD. L do phi chnh li kt q ny l do ta dng b ALU ca CPU, vn ch bit lm ton vi cc s h hi, lm ton vci cc s BCD. Lnh DAS ch tc ng ng n kt qu AL ngay sau khi va thc hin php tr. Hot ng ca lnh DAS: +Nu 4 bit thp ca AL ln hn 9 hoc AF = 1 th AL AL.6. +Nu 4 bit cao ca AL ln hn 9 hoc CF = 1 th AL AL.60H. Cp nht: AF, CF, PF, SP ,ZP. Khng xc nh: OF. V d: a) ; AL = 0101 0110BCD = 56 ; BL = 0011 1001BCD = 39 SUB AL, BL ; AL = 0001 1101B = 1DH. DAS ; v D > 9 nn AL-6 = 0001 1001BCD = 99, CF. CLD [Type text] Trang

34

[Type the document title]


Trong th d trn CF = 1 c ngha l phi mn 100 thm vo s b tr c kt qu l 99. Ni cch khc i kt qu ng s l -1. DEC Decrement Destination Register or Memory ( Gim ton hng i 1 ). Vit lnh : DEC Destination M t: ch ch -1. Trong ton hng ch c th tm oc tho cc ch a ch khc nhau. Lu l nu ch = 00H ( hoc 0000H ) th ch -1 = FFH ( hoc FFFFH ) m khng lm nh hng n c CF. Lnh ny cho kt qu tng ng nh lnh SUB ch nhng chy nhanh hn. Cp nht: AF, OF, PF, SF, ZP. Khng tc ng: CF/ DIV Unsingned Divide ( chia 2 s khng c du ) Vit lnh: DIV Gc Trong ton hng Gc l s chia v c th tm c theo cc ch a ch khc nhau. M t: tu theo di ca ton hng gc ta c 2 trng hp b tr php chia. Cc ch ngm nh cho s b chia v kt qu: Nu Gc l s 8 bit: AX/Gc. S b chia phi l s khng du 16 bit trong AX. Nu Gc l s 16 bit: DXAX/Gc. S b chia phi l s khng du 32 bit trong cp thanh ghi DXAX. Nu thng khng phi l s nguyn n c lm trn theo s nguyn st ui. Nu Gc = 0 hoc thng thu c ln hn FFH hoc FFFFH ( tu theo di ca ton hng Gc ) th 8088 thc hin lnh ngt INT 0. Khng xc nh: AF, CF, OF, PF, SF, ZP. ESC Escape Lnh ny dng truyng cc lnh cho b ng x l ton hc 8087 b tm dng v b vi x l 8088 bc vo trng thi dng. thot khi trng thi dng ch c cch tc ng vo mt trong cc chn INTR.NMI. hoc RESET ca b vi x l. IDIV Integer Division ( Signed division ) ( chia s c du ) Vit lnh: IDIV Gc Trong ton hng Gc l s chia v c th tm c theo cc ch a ch khc nhau. y l lnh dng chia cc s nguyn c du. Ch ngm nh ca s chia. S b chia. Thng v s d ging nh lnh DIV. ch c 2 iu khc l: +Sau php chia AL cha thng ( s c du ). AH cha s d ( s c du ). +Du ca s c d s trng vi du ca s b chia. +Nu Gc = 0 hoc thng nm ngoi di.128+ 127 hoc -32768+32767 ( tu theo di ca Gc ) th 8088 thc hin lnh ngt INT 0. Khng xc nh: AF, CF, OF, PF, SF, ZP. IMUL Integer Multiplication ( Multiply Signed Numbers ) ( Nhn s c u ). Vit lnh: IMUL Gc. Trng d ton hng Gc l s nhn v c th tm c theo cc ch a ch khc nhau. M t: tu theo di ca ton hng Gc ta c 2 trng hp b tr php nhn. Ch ngm nh cho s b nhn v kt qu: Nu Gc l s c du 8 bit: ALxGc. S b nhn phi l s cso du 8 bit trong AL. Nu Gc l s c du 16 bit: AXxGc. S b nhn phi l s c du 16 bit trong AX. [Type text] Trang

35

[Type the document title]


Nu tch thu c nh, khng lp y ht c cc ch dnh cho n th cc bit khng dng n c thay bng bit du. Nu byte cao ( hoc 16 bit cao ) ca 16 ( hoc 32 bit ) kt qu ch cha mt gi tr ca du th CF = OF = 0. Nu byte cao ( hoc 16 bit cao ) ca 16 ( hoc 32 ) bit kt qa cha mt phn kt qu th CF = OF = 1. Nh vy CF v OF s bo cho ta bit kt qu cn di thc cht l bao nhiu. V d: Nu ta cn nhn mt s c du 8 bit vi mt s c du 16 bit, ta s 16 bit gc v s 8 bit AL. S 8 bit ny AL cn phi c m rng du sang AH bng lnh CBW. Sau cng chvic dng lnh IMUL gc v kt qu c trong cp DXAX. Cp nht:CF, OF. Khng xc inh: AF, PF, FS, ZP. In- Input Data From a Port ( c d liu t cng vo thanh ACC. Vit lnh: In ACC, Port. M t: ACC <- {Port}. Trong {Port } l d liu ca cng c a ch l Port. Port l a ch 8 bit ca cng, n c th c cc gi tr trong khong 00HFFH. Nh vy ta c th c cc kh nng sau: +Nu ACC l AL th d liu 8 bit c a vo t cng Port. +Nu ACC l AX th d liu 16 bit c a vo t cng Port v cng Port+1. C mt cch khc biu din a ch cng l thng qua thanh ghi DX. Khi dng thanh ghi DX cha a ch cng ta s c kh nng a ch cng ho mm do hn. Lc ny a ch cng nm trong di 0000H..FFFFH v ta phi vit lnh theo dng: In ACC, DX. Trong DX phi c gn t trc gi tr ng vi a ch cng. Lnh ny khng tc ng n cc c. Inc-Increment Destination Register or Memory ( tng ton hng ch thm 1 ). Vit lnh : Inc-ch M t: ch <- ch+1. Trong ton hng ch c th tm c theo cc ch a ch khc nhau. Lu l nu ch = FFH ( hoc FFFFH ) th ch+1 = 00H (0000H ) m khng nh hng n c CF. Lnh ny cho kt qu tng ng nh lnh ADD ch.1.nhng chy nhanh hn. Cp nht: AF, OF, PF, SF, ZP. Khng tc ng: CF. INT-Interupt Program Execution ( ngt, gin on chng trnh ang chy ). Vit lnh: INT N, N = 0..FFH M t: cc thao tc ca 8088 khi chy lnh INT N: 1. SP <- SP-2, {SP} <- FR 2. IF <- 0 ( cm cc ngt tc ng ). TF <-0 ( chy sut ). 3. SP <- SP-2, {SP} <- CS 4. SP <- SP-2, {SP} <- IP 5. {Nx4} <- IP, {Nx4+2} <-CS. V d vi N = 8 th CS <- {0022H}. IP <- {0020H}.

[Type text] Trang

36

[Type the document title]


Mi lnh ngt ng vi chng trnh phc v ngt ( CTPVN ) khc nhau c a ch ly t bng veto ngt. Bng ny gm 256 vecto, cha a ch ca cc CTPVN tng ng v chim 1Kbyte Ram c a ch thp nht ca b nh. CTPVN cng c th c gi l chng trnh con phc v ngt ( CTCPVN ) v cch thc t chc v quan h gia n vi chng trnh b ngt cng ging nh cch thc t chc v quan h gia CTC vi ctc. INTO-Interrupt On Overflow ( ngt nu c trn ). Nu c trn ( OF = 1 ) th lnh ny ngt cng vic ang lm ca vi x l v thc hin lnh ngt INT 4. IRET-Interrupt Return ( tr v CTC t chng trnh ( Con ) phc v ngt ). Nh trnh by lnh CALL, ti cui ctc phi c lnh tr v ( RET ) b vi x l t ng ly li a ch tr v CTC. Trong trng hp CTCPVN, tr v CTC vi y thng tin cn thit v a ch v trng thi, tt nhin phi cn c lnh vi cc tc ng tng ng: lnh IRET. Lnh ny, ngoi vic t ng ly li a ch tr v CTC, cn ly li thanh ghi c c ct gi trc khi chy CTCPVN. JA/JNBE-Jump If Above/Jump If Not Below Or Equal ( nhy nu cao hn/nhy nu khng thp hn hoc bng ). Vit lnh: JA NHAN JNBE NHAN M t IP IP Dchchuyn Hai lnh trn iu khin cng mt thao tc Nhy c iu kin vi nhn nu CF+ZF = 0 .Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . Vi d :Nu 1 khung thanh AL cao hn 10H th nhy ln nhn TH01 CMP AL , 10H ; so snh Al vi 10H UA THOI ; nhy ln TH01 nu Al cao hn 4AE/JNB/4NC 4jump if Above or Equal /jump if not below /jump if nocarry(nhy nu cao hn hoc bng / nhy nu thp hn / nhy nu khng c nh ) Vit lnh : JAE NHAN JNB NHAN JNC NHAN M t : IP IP Dchchuyn Ba lnh trn u thc hin cng mt thao tc : nhy c iu kin ti NHAN nu CF = 0 . Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu ni dung thanh AL cao hn hoc bng 10H th nhy n nhn THOI CMP AL ,10H ; So snh AL vi 10H JAE .THOI ; nhy n THOI nu Al cao hn hoc bng 10H [Type text] Trang

37

[Type the document title]


JB/JC/JNAE - jump if Below/ Jump if Carry /Jump Not Above or Equal ( Nhy thp hn / nhy nu c / nhy nu khng cao hn hoc bng ) Vit lnh JB NHAN JC NHAN JNAE NHAN Ba lnh trn u thc hin cng mt thao tc : nhy c iu kin ti NHAN nu CF = 0 . Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu ni dung thanh AL thp hn hoc bng 10H th nhy n nhn THOI CMP AL ,10H ; So snh AL vi 10H JB THOI ; nhy n THOI nu Al thp hn hoc bng 10H JBE/JNA- jump if Below/ Jump if Carry /Jump Not Above or Equal ( Nhy thp hn / nhy nu c / nhy nu khng cao hn hoc bng ) Vit lnh : JBENHAN IBA NHAN M t : IP IP Dchchuyn Hai lnh trn u thc hin cng mt thao tc : nhy c iu kin ti NHAN nu CF+ZF=1 . Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu ni dung thanh AL thp hn hoc bng 10H th nhy n nhn THOI CMP AL ,10H ; So snh AL vi 10H JBE THOI ; nhy n THOI nu Al thp hn hoc bng 10H JBE/JNA- jump if Below/ Jump if Carry /Jump Not Above or Equal ( Nhy thp hn / nhy nu c / nhy nu khng cao hn hoc bng ) Vit lnh : JCXZ NHAN M t : IP IP + Dchchuyn y l lnh nhy iu kin ti NHAN nu CX =0 v khng c lin h g vi c ZF . Nhn NHAN phi nm cch xa (di chuyn mt khong ) -128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu thanh CX rng th nhy n lnh THOI : JCXZ THOI : THOI :RET ; Tr v CTC nu CX = 0 JE/JZ - Jump Equal /jump if Zero ( Nhy nu bng nhau /Nhy nu kt qu bng khng ) [Type text] Trang

38

[Type the document title]


Vit lnh : JE NHAN JZ NHAN

M t IP IP + Dchchuyn Hai lnh trn u thc hin cng mt thao tc : nhy (c iu kin ) ti NHAN nu ZF=1.Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh JE/JZ .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu ni dung thanh AL bng 10H th nhy n nhn THOI SUB AL ,10H ; AL tr gi tr cn quan tm JE THOI ; Nhy n THOI nu AL bng 10H Vit lnh : JGNHAN JNLENHAN M t IP IP + Dchchuyn Hai lnh trn u thc hin cng mt thao tc : nhy (c iu kin ) ti NHAN nu (SFOF)+ZF =0 . Quan h ln hn (greater than ), b hn (less than) v cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Ln hn c ngha l dng hn .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh JG/JNLE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c V d : Ni dung cc thanh AL ln hn 10H th nhy n nhn THOI CMP AL , 10H ; So snh AL vi 10H JG THOI ; Nhy n THOI nu AL ln hn 10H JGE/JNL - Jump if Greater than or Equal /Jump if Not Less than (Nhy nu ln hn hoc bng / Nhy nu khng b hn ) Vit lnh JGE NHAN JNL NHAN M t IP IP + Dchchuyn Hai lnh trn u thc hin cng mt thao tc : nhy (c iu kin ) ti NHAN nu (SFOF =0 . Quan h ln hn (greater than ), b hn (less than) v cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Ln hn c ngha l dng hn .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh JG/JNLE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c V d : Nu ni dung thanh AL ln hn hoc bng 10H th nhy n nhn THOI : CMP AL , 10H ; So snh AL vi 10H

Vit lnh :
[Type text] Trang

JG NHAN JNLE NHAN


39

[Type the document title]


M t : IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu (SFOF) +ZF=0. Quan h ln hn (greater than) v b hn (less than) l cc quan h dnh cho vic so snh (do lnh CMP thc hin) ca 2 s c du. Ln hn c ngha l dng hn. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JG/JNLE . chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c : V d : Nu ni dung thanh AL ln hn 10H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JG THOI ; nhy n THOI nu AL ln hn 10H. JGE/JNL - Jump if Greater than or Equal/jump if not less than (Nhy nu ln hn hoc bng /Nhy nu khng b hn) Vit lnh : M t : JG NHAN JNLE NHAN IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc: nhy (c iu kin) ti NHAN nu (SFOF)=0. Quan h ln hn (greater than) v b hn (less than) l cc quan h dnh cho vic so snh (do lnh CMP thc hin) ca 2 s c du. Ln hn c ngha l dng hn. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JGE/JNL. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c : V d : Nu ni dung thanh AL ln hn hoc bng 10 H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JGE THOI ; nhy n THOI nu AL ln ; bng 10H. hn hoc

JL/JNGE - Jump if Less than/Jump if Not Greater than or Equal (Nhy nu b/Nhy nu khng ln hn hoc bng) Vit lnh : JG NHAN JNGE NHAN

[Type text] Trang

40

[Type the document title]


M t : IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu (SFOF)=1. Quan h ln hn (greater than) v b hn (less than) l cc quan h dnh cho vic so snh (do lnh CMP thc hin) ca 2 s c du. Ln hn c ngha l dng hn. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JL/JNGE. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c : V d : Nu ni dung thanh AL nh hn 10 H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JL THOI ; nhy n THOI nu AL nh hn 10H.

JLE/JNG - Jump if Less than or Equal/Jump if Not Greater than (Nhy nu b hn hoc bng/Nhy nu khng ln hn) Vit lnh : M t : JLE NHAN JNG NHAN IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu (SFOF) +2Z=1. Quan h ln hn (greater than) v b hn (less than) l cc quan h dnh cho vic so snh (do lnh CMP thc hin) ca 2 s c du. Ln hn c ngha l dng hn. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JLE/JNG. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c : V d : Nu ni dung thanh AL khng ln hn 10H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JL THOI ; nhy n THOI nu AL khng ln hn ; 10H. JMP - Unconditinal Jump to specified Destination (Nhy (v iu kin ) n mt ch no ). Lnh ny khin cho b vi x l 8088 bt u thc hin mt lnh mi ti a ch c m t trong lnh. Lnh ny c cc ch a ch ging nh lnh Call v n cng phn bit nhy xa v nhy gn. Tu thuc vo di ca bc nhy chnh ta phn bit 5 kiu lnh nhy khc nhau : 3
[Type text] Trang 41

[Type the document title]


kiu nhy gn v 2 kiu nhy xa vi di lnh khc nhau (hnh 3.8). Mi trn cc lnh tng ng mt byte dng ghi lnh. Nh vy lnh nhy c di t 2 n 5 byte. Vit lnh : sau y l cc dng lnh nhy khng iu kin : JMP NHAN Lnh mi bt u ti a ch ng vi nhn NHAN. Chng trnh dch s cn c vo khong dch gia nhn v lnh nhy xc nh xem l : + nhy ngn (short jump) ng vi trng hp a) hnh 3.8. Trong trng hp ny nhn NHAN phi nm cch xa (dch i mt khong nhiu nht l -128 .. + 127 byte so vi lnh tip theosau lnh JMP. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn m rng du cho n. Sau IP IP + Dchchuyn y l lnh nhy trc tip v dch chuyn c trc tip trong m lnh. nh hng cho chng trnh dch lm vic nn vit lnh di dng : JMP SHORT NHAN + nhy gn (near jump) ng vi trng hp c) hnh 3.8 Trong trng hp ny nhn NHAN phi nm cch xa (dch i mt khong nhiu nht l -32768 .. + 32767 byte so vi lnh tip theosau lnh JMP. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn m rng du cho n. Sau IP IP + Dchchuyn y l lnh nhy trc tip v dch chuyn c trc tip trong m lnh. nh hng cho chng trnh dch lm vic nn vit lnh di dng : JMP NEAR NHAN + nhy xa (far jump) ng vi trng hp d) hnh 3.8. Trong trng hp ny NHAN nm on m khc so vi lnh tip theo sau lnh JMP. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr a ch nhy n (CS:IP ca NHAN). Sau Nhy ngn : IP IP ca NHAN CS CS ca NHAN
[Type text] Trang

42

[Type the document title]


y l lnh nhy trc tip v a ch nhy n c trc tip trong m lnh. nh hng cho chng trnh dch lm vic nn vit lnh di dng : JMP FAR NHAN NHAN trong trng hp ny phi c khai l NHAN LABEL FAR JMP BX y l lnh nhy gn ng vi trng hp b) hnh 3.8, trc BX phi cha a ch lch ca lnh nh nhy n trong on CS. Khi thc hin lnh ny : IP BX y cng l lnh nhy gin tip v a ch lch nm trong thanh ghi. nh hng cho chng trnh dch lm vic nn vit lnh di dng : JMP NEAR PTR BX JMP [BX] y l lnh nhy gn ng vi trng hp e) hnh 3.8, IP mi c ly t ni dung 2 nh do BX v BX+1 ch ra trong on DS (SI,DI c th dng thay ch ca BX). y cng l lnh nhy gin tip v a ch lch nm trong nh. nh hng cho chng trnh dch lm vic nn vit lnh di dng : JMP WORD PTR [BX] Mt bin dng khc ca lnh trn thu c khi ta vit lnh di dng : JMP DWORD PTR [BX] y l lnh nhy xa ng vi trng hp e) hnh 3.8. a ch nhy n ng vi CS:IP. Gi tr gn choIP v CS c cha trong 4 nh do BX v BX+1 (cho IP) v BX+2 v BX+3 (cho CS) ch ra trong on DS(SI,DI c th dng thay ch ca BX). y cng l lnh nhy gin tip v a ch c s nm trong nh. Lnh ny khng tc ng n cc c. JNA - Xem JBE JNAE - Xem JB JNB - Xem JAE JNBE - Xem JA JNC - Xem JAE JNE/JNZ - jump if Not Equal/jump if Not Zero (nhy nu khng bng nhau/Nhy nu kt qu khng rng) Vit lnh : JNE NHAN JNZ NHAN M t : IP IP + Dchchuyn.
[Type text] Trang

43

[Type the document title]


Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu ZF=0. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JNE/JNZ. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu ni dung thanh AL khc 10H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JNE THOI ; nhy n THOI nu AL khc 16. JNG - Xem JLE JNGE - Xem JL JNL - Xem JGE JNLE - Xem JG JNO - Jump if No Overflow (nhy nu khng trn) Vit lnh : M t : JNO NHAN IP IP + Dchchuyn.

y l lnh nhy (c iu kin) ti NHAN nu OF=0, tc khng sy ra sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JNO. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m khng c trn th nhy n nhn THOI : ADD AL, AH JNO THOI ; tnh tng 2 s c du trong AL v AH ; nhy n THOI nu khng trn.

JNP/JPO - Jump if No Parity/Jump if Parity Odd (nhy nu Parity l) Vit lnh : M t : JNO NHAN JPO NHAN IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu PF=0. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JNP/JPO. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu ta truyn i mt k t vi parity chn m khi nhn li c k t parity l th nhy n nhn THOI :
[Type text] Trang 44

[Type the document title]


IN AL, 99H ; c k t t cng, OR AL,AL ; to c, JNP THOI ; nhy n THOI nu parity l. JNS - Jump if Not Signed (Jump if Positive) (nhy nu kt qu dng) Vit lnh : JNS NHAN M t : IP IP + Dchchuyn. y l lnh nhy (c iu kin) ti NHAN nu SF=0, tc kt qu l dng sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JNS. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m kt qu dng th nhy n nhn THOI : ADD AL, AH ; tnh tng 2 s c du trong AL v AH JNS THOI ; nhy n THOI nu kt qu dng. JNZ - Xem JNE JO - Jump if Overflow (nhy nu trn) Vit lnh : M t : JO NHAN IP IP + Dchchuyn.

y l lnh nhy (c iu kin) ti NHAN nu OF=1, tc sy ra trn sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JO. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m c trn th nhy n nhn THOI : ADD AL, AH JO THOI ; tnh tng 2 s c du trong AL v AH ; nhy n THOI nu c trn.

JP/JPE - Jump if Parity/jump if Parity Even (nhy nu parity chn) Vit lnh :
[Type text] Trang

JP NHAN
45

[Type the document title]


M t : JPE NHAN IP IP + Dchchuyn.

Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu PF=1. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JP/JPE. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu ta truyn i mt k t vi parity l m khi nhn li c mt k t parity chn th nhy n nhn THOI : IN AL, 99H ; c k t t cng, OR AL,AL ; to c, JP THOI ; nhy n THOI nu parity chn. JPE - Xem JP JPO - Xem JNP JS - Jump if Signed (Jump if Negative) (nhy nu kt qu m) Vit lnh : M t : JS NHAN IP IP + Dchchuyn.

y l lnh nhy (c iu kin) ti NHAN nu SF=1, tc kt qu l m sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JS. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m kt qu m th nhy n nhn THOI : ADD AL, AH ; tnh tng 2 s c du trong AL v AH JS THOI ; nhy n THOI nu kt qu m. JZ - Xem JE LAHF - Load AH with the low byte of the Flag register (Np byte thp ca thanh c vo AH) M t :
[Type text] Trang

AH FRL
46

[Type the document title]


Dng lnh ny phi hp vi lnh PUSH AX th c th m phng lnh PUSH PSW ca b vi x l 8085 trn 8088 (lnh PUSH PSW ca vi x l 8085 ct thanh ghi c v Acc ca n vo ngn xp). Lnh ny khng tc ng n cc c. LDS - Load Register and DS with Words from Memory (Np mt t (t b nh) vo thanh ghi cho trong lnh v mt t tip theo vo DS) Vit lnh : LDS ch,Gc

Trong : + ch l mt trong cc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. + Gc l nh trong on DS c ch r trong lnh. M t : ch Gc, DS Gc + 2.

y l lnh np vo thanh ghi chn v vo DS t 4 nh lin tip Mt trong nhng ng dng ca lnh ny l lm sao cho SP v DS ch vo a ch u ca vng nh cha chui gc trc khi dng n lnh thao tc chui. Lnh ny khng tc ng n cc c. V d : LDS SI,STR_PTR Th d trn np vo SI ni dung 2 nh STR_PTR v STR_PTR+1 v np vp DS ni dung 2 nh STR_PTR+2 v STR_PTR+3. Cc nh ny u nm trong on d liu DS v cha a ch ca chui gc. Do vy sau DS:SI ch vo u chui gc cn thao tc. LEA - Load Effective Address (Np a ch hiu dng vo thanh ghi) Vit lnh : LEA ch,Gc

Trong : + ch thng l mt trong cc thanh ghi : BX, CX, DX, BP, SI, DI. + Gc l tn bin trong on DS c ch r trong lnh hoc nh c th. M t : ch a ch lch ca Gc, hoc ch a ch hiu dng ca Gc

y l lnh tnh a ch lch ca bin hoc a ch ca nh chn lm gc ri np vo thanh ghi chn.


[Type text] Trang 47

[Type the document title]


Lnh ny khng tc ng n cc c. V d : LEA DX, MSG ; ; LEA CX, [BX] [DI] ; ; np a ch lch ca bn tin MSG vo DX. np vo CX a ch hiu dng do BX v DI ch ra : EA =BX+DI

LES - Load Register and ES with Words from Memory (Np mt t (t b nh) vo thanh ghi cho trong lnh v mt t tip theo vo ES) Vit lnh : LES ch,Gc

Trong : + ch l mt trong cc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. + Gc l nh trong on DS c ch r trong lnh. M t : ch Gc, ES Gc + 2.

y l lnh np vo thanh ghi chn v vo ES t 4 nh lin tip Mt trong nhng ng dng ca lnh ny l lm sao cho DI v ES ch vo a ch u ca vng nh cha chui gc trc khi dng n lnh thao tc chui. Lnh ny khng tc ng n cc c. V d : LES DI,[BX] Th d trn np vo DI ni dung 2 nh BX v BX+1 v np vp ES ni dung 2 nh BX+2 v BX+3. Cc nh ny u nm trong on d liu DS v cha a ch ca chui gc. Do vy sau ES:DI ch vo u chui gc cn thao tc. LOCK - Assert Bus Lock signal (a ra tn hiu kho bus) Lnh LOCK dng t trc cc lnh m khi chy n c nguy c gy li do kh nng xy ra tranh chp trong vic s dng bus gia b vi x l 8088 v cc b x l khc trong h thng a x l. Nu c lnh LOCK t trc mt lnh no , th khi chy lnh ny, 8088 a ra tn hiu kho bus. Tn hiu ny s ni ra thit b iu khin bus ngoi cm cc b x l khc trong h thng s dng bus. Lnh ny khng tc ng n cc c. V d :
[Type text] Trang

LOCK XCHG AL,Kytu

48

[Type the document title]


Lnh XCHG cn 2 ln thm nhp bus hon tt vic thc hin lnh, do cn t sau LOCK trnh nguy c tranh chp bus c th xy ra trong h thng a x l. LODS/LODSB/LODSW - Load string Byte/Word into AL/AX (Np vo AL/AX 1 phn t ca chuoi byte/t) Vit lnh : M t : AL phnthinthi, SI Si 1 tu theo DF, nu l chui byte. AL phnthinthi, SI Si 2 tu theo DF, nu l chui t. (phnthinthi ca chui l do DS:SI hin thi ch ra) Lnh LODS np vo AL/AX 1 byte/t (1 phn t ca chuuo c nh ngha trc l chui gm cc byte hoc t ) do SI ch ra trogn on DS, sau SI t ng tng/gim ch vo phn t tip theo tu theo c hng. Khi phi dch lnh LODS Chuigc, chng trnh dch dng tn Chuigc xc nh xem lc khai bo th Chuigc c cc phn t l byte hay t. Mun ch r cho chng trnh dch hp ng rng ta lm vic vi chui cc byte hoc cc t, ta cng c th dng lnh LODSB hoc LODSW. Lnh ny khng tc ng n cc c. V d : CLD LEA SI, STRI LODS STRI ; ; ; ; lm vic vi chui theo chiu SI ch vo u chui STRI ti on d liu DS np vo Acc 1 phn t. LODS Chuigc LODSB LODSW

LOOP - Jump to Sspecified Label if CX 0 after Autodecrement (lp li on chng trnh do nhn ch ra cho n khi CX=0) Vit lnh : LOOP NHAN

Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t nhn NHAN n ht lnh LOOP NHAN) cho n khi s ln lp CX=0. iu ny c ngha l trc khi vo vng lp ta phi a s ln lp mong mun vo thanh ghi CX v sau mi ln thc hin lnh LOOP NHAN th ng thi CX t ng gim i mt (CX CX-1). Nhn NHAN phi nm cch xa (dch i mt khong) -128 byte so vi lnh tip theo sau lnh LOOP.

[Type text] Trang

49

[Type the document title]


Lnh ny khng tc ng n cc c. V d : XOR AL, AL MOV CX,16 LAP: INC AL LOOP LAP ; ; ; ; xo AL s ln lp ti CX tng AL thm 1 lp li 16 ln, AL = 16

LOOPE/LOOPZ - Loop While CX 0 and ZF=1 (Lp li on chng trnh do nhn ch ra cho n khi CX=0 hoc ZF=0) Vit lnh : LOOPE NHAN LOOPZ NHAN

M t : Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t nhn NHAN n ht lnh LOOPE NHAN hoc LOOPZ NHAN) cho n khi s ln lp CX=0 hoc ZF=0. iu ny c ngha l trc khi vo vng lp ta phi a s ln lp mong mun vo thanh ghi CX v sau mi ln thc hin lnh LOOP NHAN th ng thi CX t ng gim i 1 (CX CX-1). Nhn NHAN phi nm cch xa (dch i mt khong) -128 byte so vi lnh tip theo sau lnh LOOPE/ LOOPZ. Lnh ny khng tc ng n cc c. V d : MOV AL, AH MOV CX,100 LAP: INC AL CMP AL,16 LOOP LAP ; ; ; ; ; ; AL c gn gi tr ca AH m s ln lp tng AL thm 1 AL=16 ? lp li cho n khi AL 16 hoc m xong.

LOOPNE/LOOPNZ - Loop While CX 0 and ZF=0(lp li on chng trnh do nhn ch ra cho n khi CX=0 hoc ZF=1) Vit lnh : LOOPE NHAN LOOPZ NHAN

M t : Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t nhn NHAN n ht lnh LOOPNE NHAN hoc LOOPNZ NHAN) cho n khi s ln lp CX=0 hoc ZF=1. iu ny c ngha l trc khi vo vng lp ta phi a s ln lp mong mun vo thanh ghi CX v sau mi ln thc hin lnh LOOP NHAN th ng thi CX t ng gim i 1 (CX CX-1).
[Type text] Trang

50

[Type the document title]


Nhn NHAN phi nm cch xa (dch i mt khong) -128 byte so vi lnh tip theo sau lnh LOOPNE/ LOOPNZ. Lnh ny khng tc ng n cc c. V d : MOV AL, AH MOV CX,100 LAP: INC AL CMP AL,16 LOOP LAP LOOPNZ - Xem LOOPNE LOOPZ - Xem LOOPE MOV - Move a Word or byte (Chuyn 1 t hay 1 byte) Vit lnh : M t : MOV ch,Gc. ch Gc ; ; ; ; ; ; AL c gn gi tr ca AH m s ln lp tng AL thm 1 AL=16 ? lp li cho n khi AL=16 hoc m xong.

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi c cng di v khng c php ng thi l 2 nh hoc 2 thanh ghi on. Lnh ny khng tc ng n cc c. V d : MOV AL, 74H ; AL 74 MOV CL,BL ; CL BL MOV DL,[SI] ; DL {DS:SI} MOV AL,Table [BX] ; AL {DS:(Table+BX)} MOVS/MOVSB/MOVSW - Move String Byte or String Word (Chuyn 1 phn t ca 1 chui sang mt chui khc) Vit lnh : M t : MOVS Chuich,Chuigc MOVSB MOVSW PhntChuich PhntChuigc

Lnh ny dng chuyn tng byte hay tng t ca chui gc sang chui ch,
[Type text] Trang

51

[Type the document title]


trong : + DS:SI l a ch ca phn t trong chui gc. + ES:DI l a ch ca phn t trong chui ch. + Sau mi ln chuyn SI SI 1, DI DI 1 hoc SI SI 2, DI DI 2 mt cch t ng tu thuc c hng DF l 0/1 v chui l chui byte hoc chui t. C hai cch ch ra chui l chui byte hay l chui t. Cch u tin l ta khai r bng tn chui ngun v chui ch l loi g ngay t u chng trnh. Cch th hai l ta thm vo lnh MOVS ui B cho chui byte hoc ui W cho chui t. (xem m t cch s dng ti lnh COMPS). Lnh MOVS/MOVSB/MOVSW c th dng km vi lnh REPE hoc REPNE so snh tt c cc phn t trong chui. Lnh ny khng tc ng n cc c. V d : MOV DI, OFFSET Chuich ; ; ; MOV SI, OFFSET Chuigc ; ; ; CLD ; ; MOVSB ; ; ly a ch lch ca chuich ti ES vo DI ly a ch lch ca chuigc ti DS vo SI lm vic vi chui theo chiu chuyn 1 byte . SI v DI tng thm 1.

MUL - Multiply Unisigned Byte or Word (nhn s khng du) Vit lnh : MUL Gc

Trong ton hng Gc l s nhn v c th tm c theo cc ch a ch khc nhau. M t : tu theo di ca ton hng Gc ta c 2 trng hp t chc php nhn, ch ngm nh cho s b nhn v kt qu :
nu Gc l s 8 bit : AL Gc,

s b nhn phi l s 8 bit trong AL. sau khi nhn : AX tch, nu Gc l s 16 bit : AX Gc,
[Type text] Trang 52

[Type the document title]


s b nhn phi l s 16 bit trong AX. sau khi nhn : DXAX tch. Nu byte cao (hoc 16 bit cao) ca 16 (hoc 32) bit kt qu cha 0 th CF=OF=0 Nh vy cc c CF v OF s bo cho ta bit c th b i bao nhiu s 0 trong kt qu. V d : Nu ta cn nhn mt s 8 bit vi mt s 16 bit , ta s 16 bit ti Gc v s 8 bit AL. S 8 bit ny AL cn phi c m rng sang AH bng cch gn AH=0 lm cho s b nhn nm trong AX. Sau cng ch vic dng lnh MUL Gc v kt qur c trong cp DXAX. Cp nht : CF, OF. Khng xc nh : AF, PF, SF, ZP. NEG - Negate a Operand (Form its 2s Complement) (ly b hai ca mt ton hng, i du ca mt ton hng) Vit lnh : NEG ch

Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : ch 0 - (ch)

iu ny hon ton tng ng vi vic ly (ch + 1) lm kt qu. Nu ta ly b 2 ca -128 hoc -32768 th ta s c kt qu khng i nhng c OF=1 bo l kt qu b trn (v s dng ln nht biu din c l + 127 v + 32767). Cp nht : AF, CF, OF, PF, SF, ZF. V d : NEG AH ; AH 0 -(AH) NEG BYTE PTR [BX] ; ly b hai ca nh ; BX ch ra trong DS NOP - No Operation ( CPU khng lm g) Lnh ny khng thc hin cng vic g ngoi tr vic tng ni dung ca IP v tiu tn 3 chu k ng h. N thng c dng tnh thi gian trong cc vng tr hoc chim ch cho cc lnh cn thm vo chng trnh sau ny m khng lm nh hng n di ca chng trnh. Lnh ny khng tc ng n cc c.
[Type text] Trang

53

[Type the document title]


NOT - Invert Each Bit of an Operand (Form its 1s complement) (ly b ca mt ton hng, o bit ca mt ton hng). Vit lnh : NOT ch

Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : ch (ch)

Lnh ny khng tc ng n cc c. V d : NOT AH ; AH (AH) NOT BYTE PTR [BX] ; ly b 1 ca nh ; BX ch ra trong DS OR - Logically Or Corresponding Bits of Two Operands (hoc hai ton hng) Vit lnh : M t : OR ch,Gc ch ch v Gc

Trong ton hng ch v gc c th tm c theo cc a ch khc nhau, nhng phi cha d liu cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. Php OR thng dng lp mt vi bit no ca ton hng bng cch cng loogic ton hng vi ton hng tc thi c cc bit 1 ti cc v tr tng ng cn thit lp. Xa : CF,OF. Cp nht : PF, SF, ZP,PF. Ch c ngha khi ton hng l 8 bit. Khng xc nh : AF. V d : OR AL, BL OR BL, 30H ; AL AL v BL theo tng bit ; lp bit b4 v b5 ca BL ln 1.

OUT - Output a Byte or a Word toa Port (a d liu t Acc ra cng) Vit lnh : OUT Port,Acc

[Type text] Trang

54

[Type the document title]


M t : Acc {port}

Trong {port}l d liu ca cng c a ch l Port. Port l a ch 8 bit ca cng, n c th c cc gi tr trong khong 00H ... FFH . Nh vy ta c th c cc kh nng sau : + Nu Acc l AL th d liu 8 bit c a ra cng port. + Nu Acc l AX th d liu 16 bit c a ra cng port v cng port +1. C mt cch khc biu din a ch cng l thng qua thanh ghi DX. Khi dng thanh ghi DX cha a ch cng ta s c kh nng a ch ho cng mm do hn. Lc ny a ch cng nm trong di 0000H ...FFFFH v ta phi vit lnh theo dng : OUT DX, Acc Trong DX phi c gn t trc gi tr ng vi a ch cng. Lnh ny khng tc ng n cc c. POP - Pop Word from Top of Stack (ly li 1 t vo thanh ghi t nh ngn xp) Vit lnh : M t : POP ch ch {SP}, SP SP +2.

Trong ton hng ch c th tm c theo cc ch a ch khc nhau : c th l cc thanh ghi a nng, thanh ghi on (nhng khng c l thanh ghi on m CS) hoc nh. D liu ti ngn xp khng thay i. Gi tr ca SS khng thy i. Lnh ny khng tc ng n cc c. V d : POP DX POP Table[BX] ; ; ; ; ; ly 2 byte t nh ngn xp a vo DX. ly 2 byte t nh ngn xp ri ti vng DX c a ch u ti (Table + BX)

POPF - Pop Word from Top of Stack to flag Register (ly mt t t nh ngn xp ri a vo thanh c) Vit lnh :
[Type text] Trang

POPF
55

[Type the document title]


M t : RF {SP}, SP SP +2.

Sau lnh ny d liu ti ngn xp khng thay i. SS khng thay i. Lnh ny khng tc ng n cc c. PUSH - Push Word on the Stack (ct 1 t vo ngn xp) Vit lnh : M t : POPF Gc

SP SP - 2. Gc {SP}. Trong ton hng gc c th tm c theo cc ch a ch khc nhau : c th l cc thanh ghi a nng, thanh ghi on hoc nh. Lnh ny thng dng vi lnh POP nh l mt cp i ngu x l cc d liu v trng thi ca chng trnh chnh (CTC) khi vo/ra chng trnh con (ctc). Lnh ny khng tc ng n cc c. V d : PUSH BX PUSH Table[BX] ; ct BX vo ngn xp ti v tr Trisdo SP ch ra. ; ct 2 byte ca vng d liu DS ; c a ch u ti (Table + BX).

PUSHF - Push Flag register to the Stack (ct thanh c vo ngn xp) Vit lnh : M t : POPF Gc SP SP - 2. RF {SP}.

D liu ti ngn xp khng thay i. SS khng thay i. Lnh ny khng tc ng n cc c. RCL - Rotate through CF to the left (Quay tri thng qua c nh) Vit lnh :
[Type text] Trang

RCL ch,CL

56

[Type the document title]


Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : CF MSB LSB

Hnh 3.9. Lnh RLC Lnh ny dng quay ton hng sang tri thng qua c CF. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : RCL ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy s ln ca quay l 9 th kt qu khng thay i v cp CF v ton hng quay trn ng mt vng. Tc ng vo c : ch c CF v OF b nh hng. Sau lnh RCL c CF mang gi tr c ca MSB, cn c OF 1 nu sau khi quay mt ln m bit MSB b thay i so vi trc khi quay. C OF s khng c xc nh sau nhiu ln quay. V d : RCL BX,1 MOV CL,8 RCL AL, CL ; ; ; ; ; ; quay tri thanh ghi BX thng qua CF s ln quay trong CL, quay tri thanh ghi AL 8 ln thng qua CF. MSB lc ny cha gi tr CF ban u.

RCR - Rotate though CF to the right (quay phi thng qua c nh) Vit lnh : RCR ch,CL

Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t :


[Type text] Trang

57

[Type the document title]


CF MSB LSB

Hnh 3.10. Lnh RCR. Lnh ny dng quay ton hng sang tri thng qua c CF. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : RCR ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy s ln ca quay l 9 th kt qu khng thay i v cp CF v ton hng - thanh ghi quay trn ng mt vng. Tc ng vo c : ch c CF v OF b nh hng. Sau lnh RCR c CF mang gi tr c ca LSB, cn c OF 1 nu sau khi quay mt ln m bit MSB b thay i so vi trc khi quay. C OF s khng c xc nh sau nhiu ln quay. V d : RCR BX,1 MOV CL,8 RCR AL, CL ; ; ; ; ; quay phi thanh ghi BX thng qua CF s ln quay trong CL, quay phi thanh ghi AL 8 ln thng qua CF. LSB lc ny cha gi tr CF ban u.

REP - Repeat String Instruction until CX=0 (lp li lnh vit sau cho ti khi CX=0). y l tip u ng dng vit trc cc lnh thao tc vi chui d liu m ta mun lp li mt s ln. S ln lp phi trc trong CX. Khi cc lnh ny c lp li th CX t ng gim i mt sau mi ln lp. Qu trnh s kt thc khi CX =0. V d : REP MOVSB ; lp li lnh chuyn byte ca ; chui ti khi CX=0

REPE/REPZ - Repeat String Instruction until CX=0 or ZF=0 (lp li lnh vit sau cho ti khi CX=0 hoc ZF=0).
[Type text] Trang

58

[Type the document title]


y l tip u ng dng vit trc cc lnh thao tc vi chui d liu m ta mun lp li mt s ln. S ln lp phi trc trong CX. Khi cc lnh ny c lp li th CX t ng gim i mt sau mi ln lp. Khi dng REPE/REPZ vi lnh so snh chui, qu trnh s kt thc khi m ht (CX=0) hoc khi hai phn t so snh khc nhau (ZF=0). V d : REPE CMPSB ; lp li lnh so snh cc ; byte ca 2 chui ti khi CX=0 ; hoc ZF=0.

REPNE/REPNZ - Repeat String Instruction until CX=0 or ZF=1 (lp li lnh vit sau cho ti khi CX=0 hoc ZF=1). y l tip u ng dng vit trc cc lnh thao tc vi chui d liu m ta mun lp li mt s ln. S ln lp phi trc trong CX. Khi cc lnh ny c lp li th CX t ng gim i mt sau mi ln lp. Khi dng REPNE/REPNZ vi lnh qut chui, qu trnh s kt thc khi m ht (CX=0) hoc khi Acc bng phn t ca chui (ZF=1). V d : REPNE CMPSB ; ; ; ; lp li lnh qut cc byte ca chui ti khi ht chui (CX=0) hoc Al bng 1 phn t ca chui (ZF=1).

RET - Return reom Procedure to Calling Program (Tr v CTC t ctc) Vit lnh : RET hoc RET n,n l s nguyn dng. M t : RET c t ti cui ctc b vi x l ly li a ch tr v (a ch ca lnh tip theo lnh gi ca CTC), n c t ng ct ngn xp khi c lnh gi ctc. Tu theo loi gn hay xa ta cng s cc x l khc nhau i vi a ch tr v (xem thm phn m ta chung vi lnh Call). c bit nu ta dng RET n th sau khi ly li c a ch tr v (ch c IP hoc c CS v IP) th SP SP + n (dng nhy qua m khng ly li cc thng s khc ca chng trnh cn li trong ngn xp). Lnh ny khng tc ng n cc c. ROL - Rotate All Bits to the Left (Quay vng sang tri) Vit lnh :
[Type text] Trang

RCR ch,CL
59

[Type the document title]


Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : CF MSB LSB

Hnh 3.11. Lnh ROL. Lnh ny dng quay vng ton hng sang tri, MSB s c a qua c CF v LSB. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : ROL ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy nu CL=8 v ton hng quay l 8 bit th kt qu khng b thay i v ton hng quay trn ng mt vng, cn nu CL=4 th 2 nibble ca ton hng b i ch. Tc ng vo c : ch c CF v OF b nh hng. Sau lnh ROL c CF mang gi tr c ca MSB, cn c OF 1 nu sau khi quay mt ln m bit MSB b thay i so vi trc khi quay. C CF t gi tr ca MSB lm iu kin cho cc lnh nhy c iu kin. V d : ROL BX,1 MOV CL,8 ROL AL, CL ; ; ; ; ; quay vng sang tri thanh ghi BX s ln quay trong CL, quay vng qua tri thanh ghi AL 8 ln thanh ghi AL lc ny cha gi tr ban u (trc khi quay).

ROR - Rotate All Bits to the right (Quay vng sang phi) Vit lnh : ROR ch,CL

Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t :


[Type text] Trang 60

[Type the document title]


MSB LSB CF

Hnh 3.12. Lnh ROR. Lnh ny dng quay vng ton hng sang phi, LSB s c a qua c CF v MSB. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : ROR ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy nu CL=8 th kt qu khng b thay i v ton hng quay trn ng mt vng, cn nu CL=4 th 2 nibble ca n b i ch. Tc ng vo c : ch c CF v OF b nh hng. Sau lnh ROR c CF mang gi tr c ca LSB, cn c OF 1 nu sau khi quay mt ln m bit MSB b thay i so vi trc khi quay. C OF s khng c xc nh sau nhiu ln quay. Lnh ny thng dng to c CF t gi tr ca LSB lm iu kin cho cc lnh nhy c iu kin. V d : ROR BX,1 MOV CL,8 ROR AL, CL ; ; ; ; ; quay vng qua phi thanh ghi BX. s ln quay trong CL, quay vng qua phi thanh ghi AL 8 ln, thanh ghi AL lc ny cha gi tr ban u (trc khi quay).

SAHF - Store AH Register into byte of Flag Register (ct thanh ghi AH vo byte thp ca thanh c) M t : FRL AH

Dng lnh ny phi hp vi lnh POP AX th c th m phng lnh POP PSW ca b vi x l 8085 trn 8088. Cp nht : AF, CF, OF, PF, SF, ZP. SAL - Shift Arithmetically Left (dch tri s hc)/SHL - Shift (Logically) Left (dch tri logic).
[Type text] Trang 61

[Type the document title]


Vit lnh : SAL ch,CL SHL ch,CL

Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : CF MSB LSB


0

Hnh 3.13. Lnh SAL/SHL. Hai lnh ny c cng tc dng dch tri s hc ton hng (cn gi l dch tri logic c lnh i ngu vi lnh dch phi logic s ni phn sau). Mi ln dch MSB s c a qua c CF v 0 a vo LSB. Thao tc kiu ny c gi l dch logic. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : SAL ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy mt ln dch tri kiu ny tng ng vi mt ln lm php nhn vi 2 ca s khng du. V vy ta c th lm php nhn mt s vi s nhn khng du tng ng vi 2 bng cch dch tri s hc s b nhn i ln. Chnh v vy thao tc ny cn c gi l dch tri s hc. Trong chng mc nht nh ln ny chy nhanh hoen MUL. Tc ng vo c : Sau lnh SAL hoc SHL c CF mang gi tr c ca MSB (v vy lnh ny cn dng to c CF t gi tr ca MSB lm iu kin cho cc lnh nhy c iu kin), cn c OF 1 nu sau khi dch mt ln m bit MSB b thay i so vi trc khi quay. C OFe khng c xc nh sau nhiu ln dch.

Cp nht : SF, ZF, PF.PF ch c ngha khi kt qu l 8 bit. Khng xc nh : AF.


V d : SAL BX,1 MOV CL,4 SLH AL, CL
[Type text] Trang

; ; ; ;

dch tri s hc thanh ghi BX s ln dch trong CL, dch tri thanh ghi AL 4 ln, thanh ghi AL lc ny c gi
62

[Type the document title]


; tr bng 1/16 thanh ghi AL ban u. SBB - Substract with Brrow (tr c mn) Vit lnh : M t : SBB ch,Gc ch ch - Gc - CF

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi cha cng mt loi d liu v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. Cp nht : AF, CF, OF, PF, SF, ZP (AF v PF ch lin quan n 8bit thp). V d : Cc v d sau y c th i din cho cc ch a ch c th c trong lnh tr ny cng nh mt s cc lnh khc vi ng php tng t. SBB SBB SBB SBB AL,74H CL,BL DL,[SI] AL,Table[BX] ; ; ; ; AL AL - 47 - CF CL CL - BL - CF DL DL - {DS:SI} - CF AL AL - {DS:(Table+BX)} - CF

SCAS/SCASB/CASW - Scan a String Byte or a String Word (Qut chui byte hay chui t) Vit lnh : M t : AL : Phntchuich, DI DI 1 tu theo DF, nu l chui Byte, AL : Phntchuich, DI DI 2 tu theo DF, nu l chui t. (Phntchuich l do ES:DI hin thi ch ra) Lnh SCAS so snh AL hoc AX vi tng byte hay tng t ca xu ch ch to cc c, khng lu kt qu so snh, cc ton hng khng b thay i. Sau DI t ng tng /gim ch vo phn t tip theo tu theo c hng. Khi dch ln SCAS Chuich, chng trnh dch dng tn Chuich xc nh xem lc khai bo th Chuich c cc phn t l byte hay t. Mun chi r cho chng trnh dch hp ng rng ta lm vic vi chui byte (cha cc byte) hoc chui t (cha cc t ), ta cng c th dng lnh SCASB hoc SCASW. Cc lnh ny cn thng dng km vi REPNE/REPNZ lp li vic qut mt s ln hoc qut cho ti khi tm c mu cn tm. Cp nht : AF, CF.OF, PF, SF, ZP. V d :
[Type text] Trang 63

SCAS Chuich SCASB SCASW

[Type the document title]


CLD BX,1 MOV AL,13 MOV CX,80 LEA DI, STR1 REPNE SCASB STR1 SHL - Xem SAL SHR - Shift (Logically) Right (dch phi logic) Vit lnh : SHL ch,CL SHL ch,CL Trong ton hng ch c th tm c theo cc ch a ch khc nhau. M t : MSB
0

; ; ; ; ; ; ; ;

lamf vic vi chui theo chiu AL cha m ASCII ca k t v u dng (CR), dch qut mt dng 80 k t, DI ch vo u chui STR1 ti on d liu ES so AL vi mt phn t ca chui tm CR.

LSB

CF

Hnh 3.15. Lnh SHR. Lnh ny dng dch phi logc ton hng. Sau mi ln dch LSB s c a qua c CF v 0 a vo MSB. Thao tc kiu ny c gi l dc logc. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : SHR ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy mt ln dch tri kiu ny tng ng vi mt ln lm php chia cho 2 ca s khng du. V vy ta c th lm php chia mt s khng du cho mt s khng du tng ng vi 2i bng cch dch phi logc s b chia i ln. Tc ng vo c : Sau lnh SHR c CF mang gi tr c ca LSB(v vy lnh ny cn dng to c CF t gi tr ca LSB lm iu kin cho cc lnh nhy c iu kin), cn c OF 1 nu sau khi dch mt ln m bit MSB b thay i so vi trc khi dch. C OF s khng c xc nh sau nhiu dch.
[Type text] Trang

64

[Type the document title]


Cp nht : SF, ZF, PF.PF ch c ngha khi kt qu l 8 bit. Khng xc nh : AF.

V d : SHR BX,1 MOV CL,4 SHR AL, CL ; ; ; ; ; ; dch phi lgc thanh ghi BX. s ln dch trong CL, dch phi thanh ghi AL 4 ln, thanh ghi AL lc ny c 4 bit thp bng 4 bit cao ban u v 4 bit cao l 0.

STC - Set the Carry Flag (lp c nh) M t : CF 1.

Khng tc ng n cc c khc. STD - Set the Direction Flag (Lp c hng) M t : DF 1.

Lnh ny nh hng thao tc cho cc lnh lm vic vi chui theo chiu li (). Cc thanh ghi SI v DI lin quan s c t ng gim khi lm vic xong vi mt phn t ca chui. Khng tc ng n cc c khc. SET - Set the Interrupt Flasg (lp c cho php ngt) M t : IF 1.

Lnh ny lp c cho php ngt cho php cc yu cu ngt tc ng vo chn INTR c CPU nhn bit. Khi IF=1 nu c tn hiu INTR=1 th 8088 s b ngt, n s t ng ngt thanh ghi c v a ch tr v vo ngn xp ri chuyn sang chy chng trnh (con) phc v ngt CTPVN. Ti chui CTPVN s c lnh tr v CTC t CTPVN (IRET) 8088 ly li t ngn xp gi tr ca thanh ghi c v a ch tr v. Khng tc ng n cc c khc.

[Type text] Trang

65

[Type the document title]


STOS/STOSB/STOSW - Store AL/AX in String Byte/Word (ct AL/AX vo mi phn t ca chui byte/t) Vit lnh : STOS Chuich STOSB STOSW

M t : AL : Phnthinthi, DI DI 1 tu theo DF, nu l chui Byte, AL : Phnthinthi, DI DI 2 tu theo DF, nu l chui t. (Phnthinthi ca chui l do ES:DI hin thi ch ra) Lnh STOS ct AL/AX vo 1 byte/t (1 phn t ca chui c nh ngha trc l chui gm cc byte hoc t. Do DI ch ra trong on ES, sau DI t ng tng /gim ch vo phn t tip theo tu theo c hng. Khi dch ln STOS Chuich, chng trnh dch dng tn Chuich xc nh xem lc khai bo th Chuich c cc phn t l byte hay t. Mun chi r cho chng trnh dch hp ng rng ta lm vic vi chui cc byte hoc cc t ta cng c th dng lnh STOSB hoc STOSW. Lnh ny khng tc ng n cc c. V d : MOV DI,OFFSET STR1 MOV CL,4 STOS STR1 ; ; ; ; ; DI ch vo u chui STR1 ti on d liu ph ES, Ct Acc vo 1 phn t ca chui

Trong th d trn chng trnh dch hp ng s dng tn STR1 xc nh kiu ca STR1 l byte hay l t ri t ng ct AL hay AX vo chui. ; DI ch vo u chui ; STR1 ti on ; d liu ph ES, STOS STR1 ; Ct Acc vo 1 phn t ca ; chui Trong th d th 2 chng trnh dch hp ng s hiu l ch B trong lnh STOSB xc nh kiu ca STR1 l byte v t ng ct AL vo chui. SUB - Substract ( tr hau ton hng)
[Type text] Trang 66

MOV DI,OFFSET STR1 MOV CL,4

[Type the document title]


Vit lnh : M t : SUB ch,Gc. ch ch - Gc

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. C th tham kho cc v d ca lnh SBB.

Cp nht : AF, CF, OF, PF, SF, ZP ( AF v PF ch lin quan n 8 bit thp). TEST - And Operands to Update Flag ( v 2 ton hng to c)
Vit lnh : M t : TEST ch,Gc. ch Gc

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. Sau lnh ny cc ton hng khng b thay i v kt qu khng c lu gi. Cc c c to ra s c dng lm iu kin cho cc lnh nhy c iu kin. Lnh ny cng c tc dng che nh mt mt n. Xo : CF, OF. Cp nht : PF, SF, ZP (PF ch lin quan n 8 bit thp). Khng xc nh : AF. V d : TEXT AH,AL ; AH AL to c TEXT AH,01H ; bit 0 ca AH bng 0 TEXT BP, [BX] [DI] ; v BP vi nh do ; BX + DI ch ra trong ; vng d liu DS WAIT - Wait for TEST or INTR Signal (ch tn hiu t chn TEXT hoc INTR) M t : Lnh ny a b x l 8088 vo trng thi ngh v n s mang li trng thi ny cho ti khi c tn hiu mc thp tc ng vo chn TEXT hoc khi c tn hiu cao tc ng vo chn INTR. Nu c yu cu ngt v yu cu ny c php tc ng trong khi 8088 ang trng thi ngh th sau khi thc hin CTPVN n li quay li trng thi ngh. Lnh ny dng ng b hot ng ca 8088 v cc b phn bn ngoi nh b x l ton hc 8087.
[Type text] Trang

67

[Type the document title]


Lnh ny khng tc ng n cc c. XCHG - Exchange 2 Operands ( tho ni dung hai ton hng) Vit lnh : M t : XCHG ch,Gc ch Gc

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. Lnh XCHG ton hng ny cha ni dung c ca ton hng kia v ngc li. Lnh ny khng tc ng n cc c. V d : XCHG AH,AL ; XCHG AX,BX ; XCHG AL, Table[BX] ; ; ; tro ni dung AH v AL tro ni dung ca AX v BX tro ni dung AL vi nh c a ch Table [BX] trong vng d liu DS

XLAT - Translate a byte in AL ( i ni dung AL theo bng cho trc) Vit lnh : XLAT M t : AL {AL + BX} Lnh ny dng 8 bit hot t hn t m ny ( gc) sang m khc (ch) theo mt bng tra cho sn trc khi thc hin lnh i, bng tra phi cha cc m ch v BX phi cha a ch lnh ca bng ny trong on d liu. Cn m gc (cn i) phi c cha trong AL. khi chy lnh XLAT th php cng AL + BX phi c thc hin to ra a ch nh trong bng so m ni dung ca n s c cch tr li vo thanh ghi AL. Lnh ny khng tc ng n cc c. AL 0000H BX
0100 FF

23H

AL

FFH

0000H
FF

0123H 0124H BX
0100

0123H 0124H

[Type text] Trang

68

[Type the document title]

XOR - Exclusive Or Corresponding Bits of two Operands ( hoc loi tr hai ton hng) Vit lnh : M t : XOR ch,Gc ch ch Gc

Trong ton hng ch v gc c th tm c theo cc ch a ch khc nhau, nhng phi cha d liu c cng di v khng c php ng thi l 2 nh v cng khng c l thanh ghi on. T tnh cht ca php hoc loi tr ta thy nu ton hng ch trng vi ton hng gc th kt qu bng 0, do lnh ny cn c dng xo v 0 mt thanh ghi no v km theo cc c CF v OF cng b xo. Cp nht : PF, SF, ZP, PF ch c ngha khi ton hng l 8 biit. Khng xc nh : AF. V d : XOR AL,BL XOR BH,BH ; AL AL BL theo tng bit mt ; xo BH, xo CF v OF.

Trn y ta gii thiu qua tc c cc lnh c trong tp lnh ca b vi x l 8086/88. Mc d trong thc t lp trnh nhiu khi ta khng s dng ht c tt c cc lnh trong tp lnh ny. Tp lnh ny ca b vi x l cao cp hn trong h 80x86 ngoi nhng lnh ny cn bao gm nhng lnh khc na. Ta c th coi y l mt v d v mt tp lnh ca mt b vi x l dng ch to ra my tnh vi tp lnh y (Complex instruction set computer CISC) vi c trng l : c rt nhiu lnh vi cc ch a ch rt a dng, cc lnh c di khc nhau v thi gian thc hin cng khc nhau. B vi x l v th thng c cu trc rt phc tp. Th m trn thc t, trong cc chng trnh hp ng gii quyt cc cng vic c th, thng c nhiu lnh c dng vi tn sut ln nhng cng c nhng lnh rt t khi hoc thm ch khng h c s dng. y cng chnh l l do cc nh sn xut cho ra i cc b vi x l c cu trc ci tin theo hng n gin ho vi tp lnh lnh rt hu dng ( c s lnh t hn vi ch a ch n gin, cc lnh c di thng nht v c thi gian thc hin nh nhau) nhng laijcos kh nng thc hin lnh nhanh hn gp bi so vi loi CISC. l cc b vi x l dng lm CPU cho cc my tnh vi tp lnh rt gn (Redduced instruction set computer, RISC).

[Type text] Trang

69

[Type the document title]

CHNG 4 : LP TRNH BNG HP NG VI 8088 M u Trong chng trc ta gii thiu kh t m tp lnh ca b vi x l 8086/88. Trong chng ny ta s gii thiu cch lp trnh dng hp ng trn cc my IBM PC hoc tng thch vi IBM PC (t nay c gi chung l IBM PC), v l mi trng ph thng v tin li nht to ra v th nghim cc chng trnh vit bng hp ng. Ni nh vy l v a) v phn cng, my IBM PC c cu trc kh tiu biu ca mt h vi x l, b) v phn mm, ta c th tn dng cc chng trnh son tho vn bn hoc rt nhiu chc nng sn c khc ca my IBM PC cho cc chng trnh ca ta thng qua cc dch v (cc chng trnh con phc v ngt) ca cc ngt ca DOS (Disk Operating System, h iu hnh) v ca BIOS (Basic Inpus Output System, h thng vo ra c s). Tuy nhin, mt h thng vi x l c th c th c kt cu khc mt my vi tnh IBM PC, do khi lp trnh cho cc h thng gi nh kiu nh vy, s c nhng chng trnh m ta khng th em th nghim trn my IBM PC c. Cc chng trnh ny s c nh du cn thn bng du /// ta khng em chng cho chy th trn IBM PC nhm trnh cc hu qu ng tic c th xy ra. Ta s s dng chng trnh dch hp ng MASM 5.0 (Macro assemler phin bn 5.0) ca Microsoft vi cch nh ngha on n gin v ch b nh nh. iu ny hon ton p ng cc yu cu ny sinh khi ta thc hin cc chng trnh n gin ban u. Ta cng c th dng chng trnh dch hp ng TASM 4.0 (Turbo assembler phin bn 4.0) ca Borland International th nghim cc chng trnh hp ng. 1. Gii thiu chung ca chng trnh hp ng 1.1. C php ca chng trnh hp ng Trc khi trnh by cch lp trnh bng hp ng ta phi tm hiu qua c php ca ngn ng ny, bi v nh ta bit, lm vic c vi bt k mt ngn ng lp trnh no ta cng cn nm c c php ca n. Chng trnh di dng hp ng m ta vit ra, nu ng v c php, s c chng trnh dch hp ng MASM dch ra m my, t chng trnh m my ny ta c th to ra cc chng trnh chy (thc hin) c ngay bng cch dch tip ra cc tp c ui EXE hoc COM. Do vy khi vit mt chng trnh hp ng ta phi tun th nhng quy tc c php nht nh chng trnh MASM c th hiu v dch c n. Mt chng trnh hp ng bao gm cc dng lnh, mt dng lnh c th l mt lnh tht di dng k hiu (symbolic), m i khi cn c gi l dng gi nh (mnemonic) ca b vi x l, hoc mt hng dn cho chng trnh dch (assembler directive). Lnh gi nh s c dch ra m my cn hng dn cho chng trnh dch th khng c dch, v n ch c tc dng ch dn ring thc hin cng vic. Ta c th vit cc dng lnh ny bng ch hoa hoc ch thng v chng s c coi l tng ng v i vi dng lnh chng trnh dch khng phn bit kiu ch. [Type text] Trang

70

[Type the document title]


Mt dng lnh ca chng trnh hp ng c th c nhng trng sau (khng nht thit phi c ht tt c cc trng): Tn M lnh Cc ton dng Ch gii Mt v d dng lnh gi nh: TIEP : MOV AH, {BX} {SI} ; np vo AH ni dung ; nh c a ch DS : (BX+SI) Trong v d trn, ti trng tn ta c nhn TIEP, ti trng m lnh ta c lnh MOV, ti trng ton hng ta c cc thanh ghi AH, BX v SI v phn ch gii gm c cc dng ; np vo AH ni dung ; nh c a ch DS : (BX+SI) Mt v d khc l cc dng lnh vi cc hng dn cho chng trnh dch: MAIN PROC v MAIN ENDP Trong v d ny, trng tn ta c tn th tc l MAIN, trng m lnh ta c cc lnh gi PROC v ENDP. y l cc lnh gi dng bt u v kt thc mt th tc c tn l MAIN. Trng tn Trng tn cha cc nhn, tn bin hoc tn th tc. Cc tn v nhn ny s c chng trnh dch gn bng cc a ch c th ca nh. Tn v nhn c th c di 1..31 k t, khng c cha du cch v khng c bt u bng s. Cc k t c bit khc c th dng trong tn l ?.@_$%. Nu du chm ('.') c dng th n phi c t v tr u tin ca tn. Ni chung ta c t cc tn bnh thng v c ngha l s t khi b sai. Mt nhn thng kt thc bng du hai chm (:). Trng m lnh Trong trng m lnh ni chung s c cc lnh tht hoc lnh gi. i vi cc lnh tht th trng ny cha cc m lnh gi nh. M lnh ny s c chng trnh dch dch ra m my. i vi cc hng dn chng trnh dch th trng ny cha cc lnh gi v s khng c dch ra m my. Trng ton hng i vi mt lnh th trng ny cha cc ton hng ca lnh. Ty theo tng loi lnh m ta c th c 0,1 hoc 2 ton hng trong mt lnh. Trong trng hp cc lnh vi 1 ton hng thng thng ta c ton hng l ch hoc gc, cn trong trng hp lnh vi 2 ton hng th ta c 1 ton hng l ch v 1 ton hng l gc. i vi hng dn chng trnh dch th trng ny cha cc thng tin khc nhau lin quan n cc lnh gi ca hng dn. Trng ch gii Li gii thch trng ch gii phi c bt u bng du chm phy (;) Trng ch gii ny c dnh ring cho ngi lp trnh ghi cc li gii thch cho cc lnh ca chng trnh vi mc ch gip cho ngi c chng trnh d hiu cc thao tc ca chng trnh hn. Li ch gii cng c li ngay cho chnh tc gi ca n v sau mt thi gian khng xem n chng trnh th mi vic li nh mi. Khi c thy du chm phy, chng trnh dch b qua khng dch t phn ny tr i. Chnh v vy ngi ta cng thng hay dng du ny loi b mt dng lnh no trong chng trnh. Thng thng li ch [Type text] Trang

71

[Type the document title]


gii cn phi mang thng tin gii thch v thao tc ca lnh trong hon cnh c th v nh th th mi c ch cho ngi c. i vi nhng ngi mi lp trnh bng hp ng cn thiu kinh nghim th li ch gii cn phn nh s hiu bit v vn phi gii quyt ca h, v nu khng hiu thu o vn th khng a ra li ch gii tt c. Tm li l ta nn trnh vic a ra mt li ch gii v b (khng mang thng tin) kiu nh: MOV BX, 0 ; a 0 vo thanh ghi BX V t thn lnh gi nh c ngha nh li gii thch ri. Nu trong bi ton c th thanh ghi BX c chn dng lm tng tch lu cho mt tnh ton nht nh ta c th c li ch gii hn nh sau: MOV BX, 0 ; tng tch lu BX lc u bng 0. Ta cng c th dng mt vi dng lnh ch lm ch gii cho mt cng vic no . Cn lu l mi dng ch gii phi bt u bng du chm phy. V d: ; khi u thanh ghi DS v ES trong on d liu MOV AX, @DATA MOV DS, AX MOV ES, AX 1.2. D liu cho chng trnh D liu ca mt chng trnh hp ng l rt a dng. Cc d liu c th c cho di dng s h hai, h mi, h mi su hoc di dng k t (cn ch l trn cc my IBM PC trong chng trnh DEBUG, mt cng c tm li rt thng dng cho cc chng trnh hp ng n gin, d liu bng s c ngm nh phi h mi su). Khi cung cp s liu cho chng trnh, s cho h no phi c km ui ca h nh ta ni r chng I (tr h mi th khng cn v l trng hp ngm nh ca assembler). Ring i vi s h mi su nu s bt u bng cc ch (a.f hoc A.. F) th ta phi thm 0 trc chng trnh dch c th hiu c l mt s h mi su ch khng phi l mt tn hoc mt nhn. V d cc s vit ng: 0011B ; S h hai. 1234 ; S h mi 0ABBAH ; S h mi su, khng nhm c vi ; tn ca mt ban nhc ni ting ABBA. 1EF1H ; S h mi su. Nu d liu l k t hoc chui k t th chng phi c ng trong cpk du trch dn n hoc kp, th d 'A' hay "abcd". Chng trnh dch s dch k t ra m ASCII tng ng ca n, v vy trong khi cung cp d liu kiu k t cho chng trnh ta c th dng bn thn k t c ng trong du trch dn hoc m ASCII ca n. V d, ta c th s dng liu k t l "0" hoc m ASCII tng ng l 30H, ta cps th dng '$' hoc 26H hoc 34... 1.3. Bin v hng Bin trong chng trnh hp ng c vai tr nh n c ngn ng bc cao. Mt bin phn c nh kiu d liu l kiu byte hay kiu t v s c chng trnh dch gn cho mt a ch nht nh trong b nh. nh ngha cc kiu d liu khc nhau ta thng dng cc lnh gi sau: DB (define byte) : nh ngha bin kiu byte DW (define word) : nh ngha bin kiu t DD (define double word) : nh ngha bin kiu t kp [Type text] Trang 72

[Type the document title]


Bin byte Bin kiu byte s chim 1 byte trong b nh. Hng dn chng trnh dch nh ngha bin kiu byte c dng tng qut nh sau: Tn DB gi_ tr_khi_u V d: B1 DB 4 V d trn nh ngha bin byte c tn l B1 v dnh 1 byte trong b nh cho n cha gi tr khi u bng 4. Nu trong lnh trn ta dng du? thay vo v tr ca s 4 th bin B1 s c dnh ch trong b nh nhng khng c gn gi tr khi u. C th dng lnh gi: B2 DB ? ch nh ngha 1 bin byte c tn l B2 v dnh cho n mt byte trong b nh. Mt trng hp c bit ca bin byte l bin k t. Ta c th c nh ngha bin k t nh sau: C1 DB ' $' C2 DB 34 Bin t Bin t cng c nh ngha theo cch ging nh bin byte. Hng dn chng trnh dch nh ngha bin t c dng nh sau: Tn DB gi_ tr_khi_u V d: W1 DW 40 V d trn nh ngha bin t c tn l W1 v dnh 2 byte trong b nh cho n cha gi tr khi u bng 40. Chng ta cng c th s dng du? ch nh ngha v dnh 2 byte trong b nh cho bin t W2 m khng gn gi tr u cho n bng dng lnh sau: W2 DW ? Bin mng Bin mng l bin hnh thnh t mt dy lin tip cc phn t cng loi byte hoc t, khi nh ngha bin mng ta gn tn cho mt dy lin tip cc byte hay t trong b nh cng vi cc gi tr ban u tng ng. V d: M1 DB 4, 5, 6, 7, 8, 9 V d trn nh ngha bin mng c tn l M1 gm 6 byte v dnh ch cho n trong b nh t a ch ng vi M1 cha cc gi tr khi u bng 4, 5, 6, 7, 8, 9. Phn t u tng mng l 4 v c a ch trng vi a ch ca M1, phn t th hai l 5 v c a ch M1+1... Khi chng ta mun khi u cc phn t ca mng vi cng mt gi tr chng ta c th dng thm ton t DUP trong lnh. V d: M2 DB 100 DUP (0) M3 DB 100 DUP (?)

[Type text] Trang

73

[Type the document title]


V d trn nh ngha mt bin mng tn l M2 gm 100 byte, dnh ch trong b nh cho n cha 100 gi tr khi u bng 0 v bin mng khc tn l M3 gm 100byte, dnh sn ch cho n trong b nh cha 100 gi tr nhng cha c khi u. Ton t DUP c th lng nhau nh ngha ra 1 mng. V d: dng lnh M4 DB 4, 3, 2, 2 DUP(1,2 DUP(5),6) S nh ngha ra mt mng M4 tng ng vi lnh sau: M4 DB 4,3,2,1,5,5,6,1,5,5,6 Mt iu cn ch na l i vi cc b vi x l ca Intel, nu ta c mt t trong b nh th byte thp ca n s c nh c a ch thp, byte cao s c nh c a ch cao. Cch lu gi s liu kiu ny cng cn c th thy cc my VAX ca Digital hoc ca mt s hng khc v thng gi l 'quy c u b' (little endian, byte thp c ct ti a ch thp). Cng nn ni thm y l cc b vi x l ca motorola li c cch ct s liu theo th t ngc li hay cn c gi l 'quy c u to' (big endian byte cao c ct ti a ch thp) . V d: Sau khi nh ngha bin t c tn l WORDA nh sau: WORDA DW OFFEEH Th trong b nh thp (EEH) s c ti a ch WORDA cn byte cao (FFH) s c ti a ch tip theo, tc l ti WORDA+1 Bin kiu xu k t Bin kiu xu k t l mt trng hp c bit ca bin mng, trong cc phn t ca mng l cc k t. Mt xu k t c th c nh ngha bng cc k t hoc bng m ASCII ca cc k t . Cc v d sau u l cc lnh ng v u nh ngha cng mt xu k t nhng gn n cho cc tn khc nhau: STR1 DB 'string' STR2 DB 73h, 74h, 72h, 69h, 6Eh, 67h STR3 DB 73h, 74h, 'x' 'i', 6Eh, 67h Hng c tn Cc hng trong chng trnh hp ng thng c gn tn lm cho chng trnh tr nn d c hn. Hng c th l kiu s hay kiu k t. Vic gn tn cho hng c thc hin nh lnh gi EQU (equate) nh sau: CR EQU 0Dh ;CR l carriage return LE EQU 0Ah ;LF l line feed Trong v d trn lnh gi EQU gn gi tr s 13 (m ASCII ca k t tr v u dng) cho tn CR v 10 (m ASCII ca k tu thm dng mi) cho tn LF. Hng cng c th l mt chui k t. trong v d di y sau khi gn mt chui k t cho mt tn: CHAO EQU 'Hello' ta c th s dng hng ny nh ngha mt bin mng khc. MSG DB CHAO, '$'

[Type text] Trang

74

[Type the document title]


V lnh gi EQU khng dnh ch ca b nh cho tn ca hng nn ta c th t n kh t do ti nhng ch thch hp bn trong chng trnh. Tuy nhin trong thc t ngi ta thng t cc nh ngha ny trong on d liu. 1.4. Khung ca mt chng trnh hp ng Mt chng trnh m my trong b nh thng bao gm cc vng nh khc nhau cha m lnh, cha d liu ca chng trnh v mt vng nh khc c dng lm ngn xp phc v hot ng ca chng trnh. Chng trnh vit bng hp ng cng phi c cu trc tng t khi c dch n s to ra m tng ng vi chng trnh m my ni trn. to ra sn ca mt chng trnh hp ng chng ta s s dng cch nh ngha n gin i vi m hnh b nh dnh cho chng trnh v i vi cc thanh ghi on, cch nh ngha c php t phin bn 5.0 ca Microsoft Macro Aesembler,...

Khai bo quy m s dng b nh Kch thc ca b nh dnh cho on m v on d liu trong mt chng trnh c xc nh nh hng dn chng trnh dch MODEL nh sau (hng dn ny phi c t trc cc hng dn khc trong chng trnh hp ng, nhng sau hng dn v loi CPU): .MODEL Kiu_ kch_thc_b_nh C nhiu Kiu_ kch_thc_b_nh cho cc chng trnh vi i hi dung lng b nh khc nhau. i vi ta thng thng cc ng dng i hi m chng trnh di nht cng ch cn cha trong mt on (64KB), d liu cho chng trnh nhiu nht cng ch cn cha trong mt on, thch hp nht nn chn Kiu_ kch_thc_b_nh l Small (nh) hoc nu nh tt c m v d liu c th gi trn c trong mt on th c th chn Tiny(hp): .Model small hoc .Model Tiny Ngoi Kiu_ kch_thc_b_nh nh hoc hp ni trn, tu theo nhu cu c th MASM cn cho php s dng cc Kiu_ kch_thc_b_nh khc nh lit k trong bng 4.1 Bng 4.1. Cc kiu kch thc b nh cho chng trnh hp ng Kiu kch thc M t Tiny M lnh v d liu gi gn trong mt on (Hp) Small M lnh gi gn trong mt on , d liu nm (Nh) trong mt on. Medium M lnh khng gi gn trong mt on , d liu (Trung bnh) nm trong mt on. Compact M lnh khng gi gn trong mt on , d liu (Gn) khng gi gn trong mt on. Large M lnh khng gi gn trong mt on , d liu (ln) khng gi gn trong mt on. khng c mng no ln hn 64KB. [Type text] Trang 75

[Type the document title]


Huge ( s) M lnh khng gi gn trong mt on , d liu khng gi gn trong mt on. cc mng c th ln hn 64KB

Khai bo on ngn xp Vic khai bo on ngn xp l ct dnh ra mt vng nh ln dng lm ngn xp phc v cho hot ng ca chng trnh khi c chng trnh con. Vic khai bo c thc hin nh hng dn chng trnh dch nh sau. .Stack Kch_thc Kch_thc s quyt nh s byte dnh cho ngn xp. Nu ta khng khai Kch_thc th chng trnh dch s t ng gn cho Kch_thc gi tr 1 KB, y l kch thc ngn xp qu ln i vi mt ng dng thng thng. Trong thc t cc bi ton ca ta thng thng vi 100-256 byte l lm ngn xp v ta c th khai bo kch thc cho n nh sau: .Stack 100 Hoc .Stack 100H Khai bo on d liu on d liu cha ton b cc nh ngha cho cc bin ca chng trnh. Cc hng cng nn c nh ngha y m bo tnh h thng mc d ta c th chng trong chng trnh nh ni phn trn. Vic khai bo on d liu c thc hin nh hng dn chng trnh dch DATA, vic khai bo v hng c thc hin tip ngay sau bng cc lnh thch hp. iu ny c minh ho trong cc th d n gin sau: .Data MSG DB 'helo!$' CR DB 13 LF EQU 10 Khai bo on m on m cha m lnh ca chng trnh. Vic khai bo on m c thc hin nh hng dn chng trnh dch .CODE nh sau: .CODE Bn trong on m, cc dng lnh phi c t chc mt cch hp l, ng ng php di dng mt chng trnh chnh (CTC) v nu cn thit th km theo cc chng trnh con (ctc). Cc chng trnh con s c gi ra bng cc lnh CALL c mt bn trong chng trnh chnh. Mt th tc c nh ngha nh cc lnh gi PROC v ENDP. Lnh gi PROC bt u mt th tc cn lnh gi ENDP c dng kt thc n. Nh vy mt chng trnh chnh c th c nh ngha bng cc lnh gi PROC v ENDP theo mu sau: Tn_CTC Proc ; Cc lnh ca thn chng trnh chnh : CALL Tn_ ctc; gi ctc : [Type text] Trang

76

[Type the document title]


Tn_CTC Endp Ging nh chng trnh chnh con cng c nh ngha di dng mt th tc nh cc lnh gi PROC v ENDP theo mu sau: Tn_ctc Proc ; cc lnh thn chng trnh con : RET Tn_ctc Endp Trong cc chng trnh ni trn, ngoi cc lnh gi c tnh nghi thc bt buc ta cn ch n s b tr ca lnh gi (CALL) trong chng trnh chnh v lnh v (RET) trong chng trnh con. Khung ca chng trnh hp ng dch ra chng trnh .EXE T cc khai bo cc on ca chng trnh ni trn ta c th xy dng mt khung tng qut cho cc chng trnh hp ng vi kiu kch thc b nh nh. Sau y l mt khung cho chng trnh hp ng ri sau khi c dch (assembled) ni (linked) trn my IBM PC s to ra mt tp chng trnh chy c ngay (executable) vi ui .EXE. . Model small .Stack 100 .Data ; cc nh ngha cho bin v hng ti y .Code MAIN Proc ; Khi u cho DS MOV AX, @Data MOV DS, AX ; Cc lnh ca chng trnh chnh ti y ; Tr v DOS dng hm 4CH ca INT 21H MOV AH, 4CH INT 21 H MAIN Endp ; cc chng trnh con (nu c ) ti y END MAIN Trong khung chng trnh trn, ti dng cui cng ca chng trnh ta dng hng dn chng trnh dch END v tip theo l MAIN kt thc ton b chng trnh. Ta c nhn xt rng MAIN l tn ca chng trnh chnh nhng quan trng hn v v thc cht th n l ni bt u cc lnh ca chng trnh trong on m. Khi mt chng .EXE c np vo b nh. DOS s to ra mt mng gm 256 byte ca ci gi l on mo u chng trnh (Programsegment prefix. PSP) dng cha cc thng tin lin quan n chng trnh v cc thanh ghi DS v ES. Do vy DS v ES khng cha gi tr a ch ca cc on d liu cho chng trnh ca chng ta. chng trnh c th chy ng ta phi c cc lnh sau khi u cho thanh ghi DS (hoc caES na nu cn): MOV AX, @Data MOV DS, AX ; nu cn th b ';' [Type text] Trang

77

[Type the document title]


trong @ Data l tn ca on d liu. Data nh ngha bi hng dn chng trnh dch s dch tn @ Data thnh gi tr s ca on d liu. Ta phi dng thanh ghi AX lm trung gian cho vic khi u DS nh trn l do b vi x l 8086/88, V nhng l do k thut, khng cho php chuyn gi tr s (ch a ch tc th) vo cc thanh ghi on. Thanh ghi AX cng c th c thay th bng cc thanh ghi khc. Sau y l v d ca mt chng trnh hp ng c vit dch ra chng trnh vi ui .EXE. khi cho chy, chng trnh ny s hin ln mn hnh li cho 'Hello' nm gia hai dng trng cch u cc dng mang du nhc ca DOS. Chng trnh 4.1 Chng trnh Hello.EXE . Model Small . Stack 100 . Data CRLF DB 13,10,' $ ' MSG DB ' Hello!$ ' . Code MAIN Proc ; khi u thanh ghi DS MOV AX,@Data MOV DS, AX ; v u dng mi dng hm 9 ca INT 21H MOV AH, 9 LEA DX, CRLF INT 21H ; hin th li cho dng hm 9 ca INT 21H MOV AH, 9 LEA DX, MSG INT 21H ; v u dng mi dng hm 9 ca INT 21H MOV AH, 9 LEA DX, CFLF INT 21H ; tr v DOS dng hm 9 ca INT 21H MOV AH, 4CH INT 21H MAIN Endp END MAIN Trong v d trn chng ta s dng cc dch v c sn (cc hm 9 v 4CH) ca ngt INT 21H ca DOS trn my IBM PC hin th xu k t v tr v DOS mt cch thun li. Chng ta s ni k hn v cc ngt ny ch khc. Khung ca chng trnh hp ng dch ra chng trnh. COM

[Type text] Trang

78

[Type the document title]


Nhn vo khung chng trnh hp ng dch ra tp chng trnh ui .EXE ta thy c mt y cc on. Trn my tnh IBM PC ngoi tp chng trnh vi ui .EXE. Chng ta cn c kh nng dch chng trnh hp ng c kt cu thch hp ra mt loi tp chng trnh chy c kiu khc vi ui .COM. y l mt chng trnh ngn gn v n gin hn nhiu so vi tp chng trnh ui .EXE, trong cc on m, on d liu v on ngn xp c gp li trong mt on duy nht l on m. Nh vy nu ta c cc ng dng m d liu v m chng trnh khng yu cu nhiu v khng gian ca b nh, ta c th ghp lun c d liu, m chng trnh v ngn xp chung vo trong cng mt on m ri to ra tp .COM. Vi vic to ra tp ny cn tit kim c c khng gian nh khi phi lu tr n trn a. c th dch c ra chng trnh ui .COM th chng trnh ngun hp ng phi c kt cu sao cho thch hp vi mc ch ny. Sau y l khung ca mt chng trnh hp ng dch c ra tp chng trnh ui .COM. . Model Tiny . Code ORG 100h START: JMP CONTINUE ; cc nh ngha cho bin v hng ti y CONTINUE : MAIN Proc ; cc lnh ca chng trnh chnh ti y INT 20H ; Tr v DOS MAIN Endp ; cc chng trnh con (nu c) ti y END START So snh khung ny vi khung cho chng trnh .EXE ta thy trong khung khng c khai bo on ngn xp v on d liu, cn khai bo quy m s dng nh l kiu Tiny. ngay u on m l lnh gi ORG (origin: im xut pht) lnh JMP (nhy). Lnh gi ORH 100H dng gn a ch bt u cho chng trnh ti 100H trong on m, cha li vng nh vi dung lng 256 byte (t a ch 0 n a ch 255) cho on mo u chng trnh (PSP). Lnh JMP sau nhn START dng nhy qua phn b nh dnh cho vic nh ngha v khai bo d liu (v nguyn tc, d liu c th c t u hoc cui on m, nhng y ta t n u on m c th p dng cc nh ngha n gin ni). ch ca lnh nhy l phn u ca chng trnh chnh. Hnh 4.1 biu din vic mt chng trnh kiu .COM c np vo v sp xp trong mt on m ca b nh ra sao. Theo hnh 4.1 ta thy mt chng trnh .COM cng c np vo b nh sau vng PSP nh chng trnh ui .EXE. Ngn xp cho chng trnh .COM c xp t ti cui on m, nh ca ngn xp lc ban u l nh c a ch l FFFEH. Trong trng hp chng trnh kiu.COM ny chng ta s b cc hn ch gy ra bi a) dung lng nh cc i ca mt on l 64KB, tc l ta phi lun chc chn c rng cc chng trnh ng dng phi c s lng byte ca m my v d liu cho chng trnh khng ln lm (nu khng n s lm cho c nhm ny n ra v pha a ch cao ca on) v b) chng trnh [Type text] Trang

79

[Type the document title]


cng ch c php s dng ngn xp mt cch hn ch (nu khng iu ny c th lm cho nh ca n trong khi hot ng dng ln nhiu v pha a ch thp ca on). a ch lch 000H on u chng trnh (PSP) 0100H JMP CONTINUE D liu nm ti y CONTINUE: (chiu tin ca m & d liu) (chiu tin ca ngn xp) IP

FFFEH

SP Hnh 4.1. Tp chng trnh .COM trong b nh Tm li chng ta phi chc chn m bo khng th xy ra hin tng trm vo nhau ca cc thng tin ti vng m lnh hoc d liu. Tuy nhin ta cng khng cn phi lo lng qu n vn ny, cc chng trnh kiu .COM trong hu ht cc trng hp trong thc t vn c th tho mn c cc yu cu ca cc bi ton m ta mun th nghim. Khi kt thc chng trnh kiu .COM, tr v DOS ta dng ngt INT 20H ca DOS lm cho chng trnh gn hn. Tt nhin ta cng c th dng hm 4CH ca ngt INT 21H nh dng trong chng trnh dch ra tp .EXE. kt thc ton b chng trnh ta dng hng dn chng chnh dch END i km theo nhn START tng ng vi a ch lnh u tin ca chng trnh trong on m. Sau y l v d ca mt chng trnh hp ng dch ra tp chng trnh chy c vi ui .COM (chng trnh 4.2). Chng trnh 4.2. Chng trnh Helo.COM . Model Tiny . Code ORG 100H START : IMP CONTINUE CRLF DB 13, 10, '$' MSG DB !Hello! $' CONTINUE: MAIN Proc ; v u dng mi dng hm 9 ca INT 21H MOV AH, 9 [Type text] Trang

80

[Type the document title]


LEA DX, CRLF INT 21H ; hin th li cho MOV AH, 9 LEA DX, CRLF INT 21H ; tr v DOS INT 20H MAIN Endp END START Chng ta c th nhn xt rng trong chng trnh 4.2 ta khng cn n cc thao tc khi u cho thanh ghi DS, nh ta phi lm trong chng trnh 4.1, v trong chng trnh.COM khng c on d liu nm ring r. Stack

chng trnh 100h PSP

SS CS DS ES

chng trnh 100h PSP

Hnh 4.2. Mun chng trnh .COM v .EXE trong b nh. .COM .EXE Cui cng kt thc phn ni v cc chng trnh kiu .COM v .EXE ta a ra hnh nh ca cc chng trnh ny khi chng c ti vo trong b nh c th tin so snh (hnh 4.2). 2. Cch to v cho chy mt chng trnh hp ng trn my IBM PC Nh ni trong phn trc, my IBM PC l phng tin l tng chng ta to ra v th nghim cc chng trnh hp ng 8086/88. Cc bc lm cng vic ny c th lit k ra nh sau: 1. Dng cc phn mm son tho vn bn (SK, NCedit...) to ra mt tp vn bn chng trnh gc bng hp ng. Tp ny phi c gn ui .ASM. 2. Dng chng trnh dch MASM dch tp.ASM ra m my di dng tp .OBJ. Nu trong bc ny nu trong chng trnh c li c php th ta phi quay li bc 1 sa li chng trnh gc. 3. Dng chng trnh LINK ni mt hay nhiu tp OBJ li vi nhau thnh mt tp chng trnh chy c vi ui .EXE. 4. Nu chng trnh gc vit ra l dch ra kiu .COM th ta phi dng chng trnh EXE2BIN (c l EXEtoBIN) ca DOS dch tip tp .EXE ra tp chng trnh chy c vi ui .COM. 5. Cho chy chng trnh va dch [Type text] Trang

81

[Type the document title]


Qua qu trnh thc hin cc cng vic ni trn c th c minh ha bng lu trn hnh 4.2. Sau y ta s ni k v c th hn v mt s cng on trong qu trnh son tho v cho chy chng trnh hp ng. son tho chng trnh hp ng ta c th dng cc chng trnh son tho vn bn nh BKED hoc cc chc nng son tho ca Turbo Pascal, SK, NC... nhng tt nht nn dng cc chng trnh SK hoc NC v cc chng trnh ny c kh nng thng tr do rt thch hp cho vic sa i v cho chy th chng trnh. Trong bc 2 ta c th dng lnh MASM theo 2 cch khc nhau. Gi thit chng ta c tp chng trnh 4.2 mang tn vidu.asm ti a A v chng trnh dch hp ng MASM ti C. Nu ta khng mun MASM trong khi dch to ra cc tp khc ngoi tp .obj th ti du nhc A> ca DOS ta g vo lnh sau (ch du chm phy';'): A>C:MASM vidu;

To ra tp vn bn ca chng trnh *.asm Dng MASM dch ra m my *.obj Dng LINK ni tp .obj lithnh *.exe s Dch c ra.com? Dng EXE2BIN dch *.exe thnh *.com [Type text] Trang 82

Cho chy chng trnh

[Type the document title]

Hnh 4.2. Cc bc cng vic to ra v cho chy mt chng trnh hp ng Sau lnh ny MASM s kim tra li ca chng trnh gc v a ra bn thng k cc li nu c. Trong trng hp chng trnh hp ng khng b li ta nhn c cc dng thng bo sau: A>C:MASM vidu; Microsoft (R) Macro Assembler Version 5.00A Copy rights (C) Microsoft Corp 1981-1985, 1987 All rights reserved 49020 Bytes symbol space free 0 Warning Errors 0 Severe Errors Kt cc ta thu c mt tp m my l vidu.obj ti A. Trong v d trn, gi thit c li c php (chng hn khi nh ngha chui k t b thiu du ' ti dng lnh th 6 trong chng trnh gc), MASM s thng bo li nh sau: Micrisoft (R) Macro Assembler Version 5.00A Copy rights (C) Microsoft Corp 1981-1985, 1987 All rights reserved Object filename [VIDU.OBJ] : Source listing [NUL.LST] : vi du Cross - reference [NUL.CRF] : vidu 49020 Bytes symbol space free 0 Warning Errors 0 Severe Errors Ta thy trong trng hp ny MASM lm vic ch i thoi v ta phi tr li bng cch g thm cc thng tin cn thit cho vic to ca cc tp mi. Thng tin u tin lin quan n tn tp .obj.MASM mc nh tn tp obj trng vi tn tp.asm, nu ta mun c thy i th g thm vo bn cnh, nu khng ch cn g Enter cho qua. Thng tin th 2 lin quan n tn tp .lst. y l tp cha vn bn ca chng trnh gc km theo m my ca tng dng lnh. MASM mc nh tn tp l NUL, tc l khng to ra tp ny (g Enter cho qua). Nu mun c tp ny ta phi g thm tn vo. Thng tin th 3 lin quan n tn tp .crf, tp tham kho cho. Tp tham kho cho cha danh sch cc tn v nhn c trong chng trnh cng vi to ca chng (ta y l s th t dng). MASM mc nh tn tp l NUL, tc l khng to ra tp ny (g Enter cho qua). Nu mun c tp ny ta phi g thm tn vo. Sau khi to ra tp .obj, trong bc 3 ta phi dng chng trnh LINK bin (hay ni) chng trnh m my trong mt hay nhiu tp .obj thnh mt tp chng trnh chy c [Type text] Trang

83

[Type the document title]


duy nht vi ui .EXE. Nu trong C ta c chng trnh LINK v tp vidu.obj A th ta c th c lnh: A>C:LINK vidu; Microsoft (R) Overlay Linker Version 3.65 Copy rights (C) Microsoft Corp 1983-1988 All rights reserved Nu tp gc l tp c vit ra dch ra chng trnh kiu .COM th trong bc ny ta c th gp thng bo li nh sau: LINK : Warning L4021 : No stack segment (khng c on ngn xp) Thng bo ny l li cnh bo ng v chng trnh kiu .COM khng c ngn xp ring v v vy chng trnh ca ta vn c dch bnh thng. Kt cc ta thu c mt tp chng trnh chy c l vidu.exe ti A. Cn ch rng cho d vidu.obj l tp .obj duy nht nhng ta vn dng LINK bin n thnh tp chy c vi ui EXE. Nu ta c nhiu mun chng trnh c dch ra di dng tp .obj v cc tp ny cn phi c ni to thnh tp. EXE duy nht cui cng, ta c th dng lnh sau: A >C:LINK viuviu2; trong vidu1.obj l mt mun chng trnh, bn trong n c cha li gi mt chng trnh khc hoc tham chiu ti cc tham s mt mun c tn vidu2.obj. Tn ca tp c t ti v tr u tin trong phn thng s ca lnh LINK (trong trng hp ca ta l vidu1.obj), s c chn t tn cho tp .EXE cui cng. Ngha l sau dng lnh trn ta s thu c tp vidu1.exe. Ch i vi cc chng trnh gc c vit dch ra chng trnh ui .COM ta mi phi tin hnh bc th 4, tc l dng EXE2BIN dch tip chng trnh .EXE va thu c ra chng trnh .COM. Cn lu rng mt chng trnh .EXE c to ra ri tip theo c dch thnh Chng trnh .COM (nh trng hp vidu.exe ca chng ta) khng phi l mt chng trnh chy c. Gi thit c chng trnh EXE2BIN ti C v chng trnh vidu.exe ti A ta c th s dng lnh sau: A>C:EXE2BIN vidu vidu.com Ch : Trong cu lnh cui cng ta phi vit r vidu.com nhn c tp ui.COM v lnh EXE2BIN ny mc nh s to ra tp chng trnh ui .BIN dng cho cc cng vic khc. Kt cc ta thu c mt tp chng trnh chy c l vidu.com ti A. Bc cui cng l cho chy chng trnh va thu c. Cc chng trnh chy c ui .COM hay .EXE u c cho chy trong mi trng DOS bng cch gi tn ca n. kt thc v d nu ta c th cho chy chng trnh vidu.com bng lnh: A>vidu v trn mn hnh s thu c cc dng ch nh sau: A> vidu Hello! A> [Type text] Trang

84

[Type the document title]


lm c tt c cc cng vic trn mt cch thun li ta c th tp hp cc thao tc phi lm vo tong mt tp x l theo l run.bat nh sau (chng trnh 4.3) Chng trnh 4.3 Chng trnh RUN.BAT @ Echo Assemble and link %1 @ If not exits 1.asm goto END MASM % 1, %1; @ If Errorlevel 1 goto END LINK %1, %1, NUL; @ If not exits %1.exe goto END @ If not 'A%2'=='A' goto RUN EXE2BIN % 1.exe %1.com @ DEL @1.exe @ DEL @1.obj : RUN PAUSE Ctrl_Break ta terminate or %1 :END Chng trnh run.bat gi thit l ta c sn cc chng trnh MASM.LINK v EXE2BIN trong th mc hin ti cng vi tp vn bn gc filename.asm c son tho thch hp dich ra tp chng trnh ui .EXE v .COM. Tu theo mc ch dch ta c cc cu lnh sau: + RUN filename / dch tp chng trnh gc son theo kiu .EXE ra tp chng trnh.EXE v cho chy lun chy chng trnh ny. + RUN filename dch tp chng trnh gc son theo kiu .COM ra tp chng trnh.COM v cho chy lun chy chng trnh ny. 3. Cc cu trc lp trnh c bn thc hin bng hp ng Ngy nay, trong khi tin hnh vic thit k h thng ngi ta thng dng phng php thit k t trn xung di. Phng php ny v th cng c p dng trong khi vit phn mm cho mt h thng nhm gii quyt mt nhim v nht nh no . Bn cht ca phng php thit k ny l u tin ta chia chng trnh tng th thnh cc khi chc nng nh hn, cc khi chc nng nh ny li c chia tip thnh cc khi chc nng nh hn na, vic phn chia chc nng phi lm cho n khi mi khi nh ny tr thnh cc khi chc nng n gin v d thc hin. [Type text] Trang 85

[Type the document title]


Trong khi thc hin cc khi chc nng thnh phn, thng thng ngi ta s dng cc cu trc lp trnh c bn thc hin cc nhim c ca khi . iu ny lm cho cc chng trnh vit ra tr thnh c cu trc vi cc u im chnh l d pht trin, d hiu chnh hoc ci tin v d lp ti liu. gii quyt cc cng vic khc nhau thng thng trong khi vit chng trnh ta ch cn n 3 cu trc lp trnh c bn sau: + cu trc tun t. + Cu trc la chn (IF-THEN-ELSE) v + Cu trc lp (WHILE.DO). Thay i cc cu trc ny mt cht t, ta c th to thm 4 cu trc khc cng rt c tc dng trong khi vit chng trnh : + cu trc chn kiu IF-THEN + cu trc chn kiu CASE, + cu trc lp kiu REPEAT-UNTIL v + cu trc lp kiu FOR-DO. c im chung ca tt c cc cu trc lp trnh c bn l tnh cu trc chi c mt li vo cu trc v mt li ra ra khi cu trc . Nhng cu trc lp trnh k trn l cc cu trc m ta lm quen t nhiu khi vit chng trnh ngn ng bc cao. Vn i vi ta by gi l lm th no thc hin cc cu trc lp trnh ny bng hp ng.

Cu trc tun t Cu trc tun t l mt cu trc thng dng v n gin nht. Trong cu trc ny cc lnh c sp xp tun t, lnh n tip lnh kia. Sau khi thc hin xong lnh cui cng ca cu trc th cng vic phi lm cng c hon tt. Ng php: Lnh1 Lnh2 . . Lnhn V d Cc thanh ghi CX v BX cha cc gi tr ca bin c v b. Hy tnh gi tr ca biu thc a = 2 (c+b) v cha kt qu trong thanh ghi AX. Gii [Type text] Trang

86

[Type the document title]


Ta c th thc hin cng vic trn bng mu chng trnh sau: XOR AX, AX ; tng ti AX lc u l 0. ADD AX, BX ; cng thm b. ADD AX, CX ; cng thm c. SHL AX, l ; nhn i kt qu trong AX. RA: ; li ra ca cu trc. Cu trc IF - THEN Ng php (hnh 4.2): IF iu kin THEN cng vic. T ng php ca cu trc IF-THEN ta thy nu tho mn iu kin th Cng vic c thc hin nu khng Cng vic s b b qua. iu ny tng ng vi vic dng lnh nhy c iu kin b qua mt thao tc no trong chng trnh hp ng.

iu kin Sai ng Cng vic Cng vic 1 Sai

iu kin ng Cng vic 1

Hnh 4.2 Cu trc IF-THEN

Hnh 4.3 Cu trc IF-THEN-ELSE

[Type text] Trang

87

[Type the document title]

V d Gn cho BX gi tr tuyt i ca AX. Gii thc hin php gn BX AXta c th dng cc lnh sau: CMP AX,0 ; AX<0? JNL GAN ; khng, gn lun. NEG AX ; ng. o du, ri GAN: MOV BX, AX ; li ra ca cu trc. Cu trc IF - THEN - ELSE Ng php (hnh 4.3): IF iuKin THEN CngVic1 ELSE CngVic2 T ng php ca cu trc IF-THEN-ELSE ta thy nu tho mn iu kin th Cngvic1 c thc hin nu khng th Cngvic2 c thc hin. iu ny tng ng vi vic dng lnh nhy c iu kin v khng iu kin nhy n cc nhn no trong chng hp ng. V d Gn cho CL gi tr bit du ca AX. Gii Ta c th thc hin cc cng vic trn bng mu chng trnh sau: QR AX, AX ; 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. Cu trc CASE Ng php (hnh 4.4) : CASE Biuthc Gitr1: Cngvic1 Gitr2: Cngvic2 ... Biuth CngvicN GitrN: END c CASE Gitr1 Gitr2 GitrN Cngvic1 [Type text] Trang Hnh 4.4. Cu trc lnh CASE Cngvic2 CngvicN 88

[Type the document title]

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 ... 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. V d Dng CX biu hin cc gi tr khc nhau ca AX theo quy tc sau: Nu AX < 0 th CX =-1, nu AX = 0 th CX =0, nu AX > 0 th CX =1. 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. Cu trc lp FOR - DO Khi u b Ng php (hnh 4.5): m FOR S ln lp DO Cng Cng vic vic Gim b m i 1 s B a i m= 0 n g Hnh 4.5. Cu trc lp FOR - DO.

[Type text] Trang

89

[Type the document title]

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 , ng nhin trc ta phi gn S ln lp cho thanh ghi CX. V d 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. 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. Cu trc lp WHILE - DO Ng php (hnh 4.6): 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. ng s iu kin a ng i Cng vic [Type text] Trang Hnh 4.6. Cu trc WHILE - DO Cng vic

iu kin

s a i 90

Hnh 4.7. Cu trc REPEAT - UNTIL

[Type the document title]

V d 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. Cu trc lp REPEAT - UNTIL Ng php (hnh 4.7: 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. V d: 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. 4. 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.

[Type text] Trang

91

[Type the document title]


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.

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

Mt iu cn nhc li ln na lu khi c cc v d Du \\\\\\\\ ( nu c) t trc mt v du l cnh bo rng v d lin quan ch dng m t thut gii cho vn no m khng chy c trn cc my IBM PC hoc tng thch. Cc v d: V d 1 Trong phn u ca chng trnh hp ng ta c gio 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 Chao tay ChaoTa . Code MAIN Proc [Type text] Trang DB DB DB 13, 10, '$' 'hello!$' 'Chao ban!$'

92

[Type the document title]


; khi u thanh ghi DS MOV AX, @ Data 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 thnh ghi CX. iu ny chc chn l khng phi thun tin i vi ngi s dng chng trnh. V d 2 Trn c s v d trc, ta phi vit chng trnh sao cho s dng phi gin cch c th thay i c ngay trong khi chy chng trnh. Gii Mun c s dng cch thay i c theo mun gia 2 li cho ta v ty khi chy chng trnh m khn phi thay gi tr mi gn cho thanh ghi CX ngay trong chng trinh nh v d trc, ta cn dng thm 1 bin mi cha s dng cch v vit chng trnh sao cho mi cha s dng cch v vit chng trnh sao cho mi khi cho chy chng trnh c thm phn i thoi ngi s dng c th ty thay i gi tr ca s dng gin cch . thay i gi tr ca s dng gin cch . Sau y l vn bn ca 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' .Code MAIN Proc [Type text] Trang

93

[Type the document title]


; khi u thanh ghi DS MOV AX, @Data 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, CFLF 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 4CH ca INT 21H MOV AH, 4CH I'NT 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 gin cch gia hai li cho ta v li cho ty, ta phi gn gi tr khc cho thanh ghi CX. iu ny chc chn khng phi l thun tin i vi ngi s dng chng trnh. V d 2 Trn c s v d trc, ta phi vit chng trnh sao cho s dng phai gin cch c th thay i c ngay trong khi chy chng trnh. 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 gn 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 vn bn ca 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 [Type text] Trang

94

[Type the document title]


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 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 th 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 39 HH (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) gi tr s c th thc hin c bng mt trong cc lnh sau: + SUB AL30H [Type text] Trang

95

[Type the document title]


+ AND AL0FH Tng t nh vy, vic bin i ngc li t s h hai (thng gi thit c sn trong thanh ghi DL) m ASCII ( a ra hin ln mn hnh) c th lm c bng mt trong cc lnh sau: + ADD DL30H + OR DL30H V d 3 c t bn phm mt s h hai (di nht l 16 bit), kt qu c c ti thanh ghi BX. Sau hin ni dung thanh ghi BX ra mn hnh. Gii Cng vic ca mi 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 vn bn ca chng trnh thc hin cng vic trn: .Model Small .Stack 100 . Data TBao DB 'Go vao 1 so he hai (max 16 bit,' 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 [Type text] Trang

96

[Type the document title]


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 ca2 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. 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. V d 4 Ngi ta sn trong b nh 2 s h hai, mi s ny c di 10 byte v c theo th t MSB...LSB. Ta phi tnh tng ca hai s nhiu byte , kt qu cng trong b nh. Gii lm tnh cng vi cc ton hng l cc s vi di nhiu hn 1 byte nh trn ta phi ngh ngay n vic dng lnh cng c nh ADC cho cc byte nm bn tri ca LSB. Cn cng cc byte LSB ca 2 s, tt nhin ta phi dng lnh cng bnh thng ADD. cho vic t chc cc lnh trong chng trnh c ti u, ta thay th lnh ADD trong trng hp cng 2 LSB ny bng lnh ADC nhng vi c CF = 0. Xt v mt t chc d liu cho chng trnh trong on d liu, ta thy mng nh dng cha kt qu cn c di 11 byte cha ht c kt qu ca php cng trong trng hp tng qut. Chnh v vy ta cng cn tng di cho cc mng cha ton hng, mi mng thm 1 byte na, gn sn cho chng gi tr 0 v t pha trc cc byte MSB to ra di thng nht cho cc mng d liu cha cc ton hng v kt qu ca php cng. Bng cch ny trong khi vit chng trnh ta c th t c vic qun l n gin hn i vi cc thanh ghi lch. Sau y l chng trnh thc hin cng vic ni trn. [Type text] Trang

97

[Type the document title]


.Model Small .Stack 100 .Data TBao DB 'DU lieu bat dau t day' So1 DB 00, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10 So2 DB 00, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10 ;xi v yi phi c thay bng s c th ; Sum DB 11 dup (0) . Code MAIN proc MOV AX, @Data MOV DS, AX MOV ES, AX LEA BX, So1 ; BX tr vo u dy So1 LEA SI, So2 ; SI tr vo u dy So2 LEA DI, Sum ; DI tr vo u dy Sum MOV CX, 11 ; CX cha s byte phi cng XOR AL, AL ; xa c CF v AL LAP:MOV AL, 10[BX] ; ly 1 byte ca So1 ADC AL, 10[SI] ; cng vi byte ca So2 MOV 10[DI],AL ; ct kt qu vo Sum DEC BX ; gim con tr ti cc mng DEC SI DEC DI LOOP LAP ; lp li vi cc byte khc MOV AH, 4CH ; tr v DOS INT 21H MAIN Endp END MAIN Trong chng trnh trn ta khng c phn lnh hin th kt qu ca php cng, v vy ngay c khi thay cc gi tr s c th vo cc bin So1 v So2 ri dch ra tp chng trnh c ui.EXE v cho chy n, ta cng khng kim tra kt qu bng cch dng chng trnh tm li Debug (xem thm phn ph lc hiu c cc thao tc cn thit trong Debug). Bng chng trnh Debug ta c th quan st c cc lnh ca chng trnh trn c dch v ct trong b nh nh th no, ng thi ta cng xem c cc mng d liu ca 2 ton hng v ca kt qu c t chc ra sao trong b nh. Lc ny ta mi gii thch l do ti sao ta c nh ngha dng thng bo TBao trong on d liu m bn trong chng trnh trn ta khng h s dng n n. Thc cht y chi l cch dng mt chui k t nh du on d liu m ta quan tm. iu ny cho php ta d dng nhn c on d liu m ta quan tm. iu ny cho php ta d dng nhn ra c on d liu m ta cn quan tm trong mt vng nh cha d liu mi khi ta dng Debug xem ni dung ca n. By gi ta s cp n vn s dng Deug c th hn. [Type text] Trang

98

[Type the document title]


Nu ta g vn bn ca chng trnh trn ri t tn l tp ADC.ASM v dch n ra tp ADC.EXE ta c th dng lnh sau chy ADC trong Debug: Debug adc.exe Trn mn hnh s xut hin du- l du nhc ca Debug Ti du nhc ca Debug nu ta g -u 0 60 ta s nhn c mt mn hnh, trong mt bn cha a ch cc nh km theo ni dung ca cc (cc m lnh v d liu) v bn kia l cc dng lnh gi nh tng ng. Thc ra phn m lnh ca chng trnh kt thc ti a ch IP=0029H (byte cui ca lnh INT 21H). Tip ngay sau chnh l phn dnh cho cc d liu ca cc ton hng v kt qu, nh nhng d liu lc ny (do ta ang ch dch ngc -unassemble) b Debug coi nh l m lnh v c dch ra thnh cc lnh gi nh. Mun xem cc mng d liu ny ta g: -d CS:0 60 ta s thy m lnh v d liu c ti mt a ch no c hin ln theo 2 kiu: bng cc s h mi su (phn bn tri) v bng cc k t ASCII (phn bn phi). Chnh trn phn hin th bn phi ny ta d dng nhn thy dng k t dng nh du m ta ni n trc y ('Du lieu bat dau tu day'). Nu ly hng ch ny lm mc v nhn sang phn hin th di dng s h mi su bn tri (bt u t a ch lch 002AH) ta d dng ta tm ra v tr v ni dung ca cc byte d liu (l cc ton hng) v kt qu (kt qu c tm gn bng 0 lc u). xem chng trnh ny cho kt qu ra sao ta phi cho n chy trong mi trng Debug. Mun vy ta c th g -g 50 Sau khi nhn c t my cu tr li 'program terminated normally' -chng trnh kt thc bnh thng (khng li), ta g tip -d CS: 0 50 xem kt qu ca chng trnh sau khi chy c ct gi trong b nh ra sao. Sau y l mt trng hp ca chng trnh trn vi cc d liu c th. Nu ta g vo cc byte ca cc ton hng vit di dng cc s h mi su: So1 = 00H 80H 81H 82H 83H 80H 80H 80H 83H 84H 85H v So2 = 00H 80H 81H 82H 83H 80H 80H 80H 83H 84H 85H th khi cho chy chng trnh ta s nhn c. Sum = 01H 01H 03H 05H 07H 01H 01H 01H 07H 09H 0AH Ta c th tnh 'bng tay' kim chng li kt qu trn. [Type text] Trang

99

[Type the document title]


Cui cng ra khi Debug ta g -q Qua mt vi thao tc s b trong v d trn ta cng thy c phn no s tin li ca chng trnh Debug trong vic cho chy v th nghim cc chng trnh hp ng n gin V d 5 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 12 bt ri sau quay tip thanh ghi BH i 4 bt l xong. Sau y l chng trnh thc hin cng vic trn. .Model Small .Stack 100 .Code MAIN Proc MOV CL,12 ROL BX,CL ; quay BX i 12 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 END MAIN V d 6 C mt chui k t trong b nh. Hy to ra mt bn sao ca chi trn ri ct trong b nh. Gii gii bi ton loi ny c th ng dng cc lnh chuyn chui. Sau y l cch t chc d liu v chng trnh cho bi ton trn vi di chi l 8 byte .Model Small .Stack 100 .Data [Type text] Trang

100

[Type the document title]


Str1 DB 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' Tbao DB "bn sao ca chi gc:', 10,13 Str2 DB 8 DUP (' ') DB '$' . Code MAIN proc MOV AX, @Data ; khi u cho DS v ES MOV DS, AX MOV ES, AX LEA SI, Str1 ; SI ch vo chui gc. LEA DI, Str2 ; DI ch vo chui ch. CLD ; nh hng tin MOV CX, 8 ; CX cha s byte phi cp REP MOVSB ; cp sang chi ch LEA DX, Tbao ; chun b hin th bn sao MOV AH, 9 INT 21H MOV AH, 4CH ; v DOS INT 21H MAIN Endp END MAIN V d 7 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 du 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 [Type text] Trang

101

[Type the document title]


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 V d 8 Cho 1 mng gm cc phn t kiu byte. Hy sp xp chng theo th t ln dn. Gii: y l bi ton kinh in rt hay gp trong khi hc lp trnh vi cc ng ng khc nhau. Thut gii ca n v th cng kh quen thuc: tm phn t ln nht (max) trong dy v xp phn t vo cui dy, tip tc lm nh vy vi cc phn t cn li (tr phn t va c tm thy v c xp vo cui dy). minh ha thut ton trn nhng vi d liu c th, ta gi thit chui cn sp xp l chui ca cc k t ASCII gm 10 phn t. Tt nhin, chng trnh vn chy ng khi t thay cc phn t ca mng trn bng cc s khng du c ln biu din c trong phm vi 1 byte. Ti y ta t chc chng trnh thnh 1 chng trnh chnh v 1 chng trnh con. Chng trnh con c tn l DOICHO c gi ra mi khi cn i ch 2 phn t ca dy. Sau y l chng trnh thc hin cng vic trn. . Model Sall . Stack 100 . Data Tbao DB 'chui sp xp:' , 10, 13 MGB DB 'a' , 'Y' , 'G' , 'T' , 'y' , 'Z' , 'U' , 'B' , 'D' , 'E' DB '$' . Code MAIN Proc MOV AX, @Data ; khi u DS MOV DS, AX ; BX: s phn t ca mng [Type text] Trang

102

[Type the document title]


LEA DX, MGB DEC BX LAP : MOV SI, DX MOV CX, BX MOV DI, SI MOV AL, {DI} TIMMAX: INC SI CMP {SI}, AL JNG TIEP MOV DI, SI MOV AL, {DI} TIEP: LOOP TIMMAX CALL DOICHO DEC BX JNZ LAP MOV AH, 9 LEA DX, Tbao INT 21H MOV AH, 4CH INT 21H MAIN End ; DX ch vo u mng byte ; s vng so snh phi lm ; SI ch vo u mng ; CX s ln so ca vng so ; gi s phn t u l max ; AL cha phn t ca max ; ch vo phn t bn cnh ; phn t mi > max ? ; khng, tim max ; ng, DI ch vo max ; AL cha phn t max ; tm max ca mt vng so ; i ch max - s mi ; s vng so cn li ; lm tip vng so mi ; hin th chui sp xp

; v DOS

DOICHO Proc PUSH AX MOV AL, {SI} XCHG AL, {DI} MOV {SI}, AL POP AX RET DOICHO Endp END MAIN Sau khi dch v cho chy chng trnhtrn ta thu c cc dng sau: chuoi da sap xep: B, D, E, G, T, U, Y, Z, a, y V d 9 c vo mt hng (max 80) k t ri hin th n theo th t ngc li Gii Thut ton cho vic c v hin th mt hng k t khng c g l phc tp. c th hin th cc k t theo th t ngc li so vi khi c mt cch thun tin v trnh c cc thao tc rm r, ta c th ngh ngay n vic ng dng nguyn tc lm vic "vo trc ra sau" ca ngn xp: khi c c cc k t ta ct chng ln lt vo ngn xp v sau li ly ln lt cc k t trn ra hin th. [Type text] Trang

103

[Type the document title]


Sau y l chng trnh thc hin cng vic trn. . Model Small . Stack 100 . Data Tbao1 DB 'g vo mt dy k t: S' Tbao2 DB 13, 10, 'dy k t xp ngc li: S' . Code MAIN Rroc MOV AX, @Data MOV DS, AX MOV AH, 9 LEA DX, Tbao1 INT 21H ; hin Tbao1 XOR CX, CX ; CX: m s k t c c MOV AH, 1 DOCTIEP: INT 21H ; c 1 k t LAP : CMP AL, 13 ; CR ? JE THOIDOC ; ng, hin th Tbao2 PUSH AX ; khng, ct n vo ngn xp INC CX ; cp nht b m s k t IMP DOCTIEP THOIDOC:LEA DX, Tbao2 MOV AH, 9 INT 21H ; cch 1 dng v hin Tbao2 MOV AH, 2 ; chun b hin th k t HIEN: POP DX ; ly k t ra t ngn xp INT 21H LOOP HIEN ; hin dng k t xp ngc MOV AH, 4CH ; v DOS INT 21H MAIN Endp END MAIN V d 10 Ta phi c vo 1 dng k t t bn phm, kt thc bng Enter. Sau ta phi m s nguyn m v s ph m c trong dy k t ri hin th cc s . Gii Trong bi ton ny cng vic c vo mt dy k t t bn phm l rt n gin. Ch cn phi ni qua v thut ton tm cc nguyn m v ph m: ta phi t chc d liu thnh nhm cc nguyn m v nhm cc ph m v s so snh cc k t c c vi cc thnh phn ca mi nhm ny. Mi khi tm c k t cc phn t ngi ta thng dng lnh kiu REPNE SCASB. [Type text] Trang

104

[Type the document title]


Sau y l chng trnh NAMPAMASM thc hin cng vic trn. ; tnh s nguyn m v ph m trong mt dng k t .Model Small .Stack 100 .Data Str DB 80 dup (0) NAM DB 'AaEeIiOoUuYy' Pam' DB 'BCDFGHJKLMNPQRSTVWXZ' DB 'bcdfghjklmnpqrstvwxz' Tbao1 DB 13, 10, 'so ky tu la nguyen am = s' Tbao2 DB 13, 10, 'so ky tu la phu am = s' Tbao3 DB 'go vao 1 xau ky tu la phu am = '$' SoNAM DW 0 SoPAM DW 0 .Code MAIN Proc MOV AX, @Data ; khi u cho DS v ES MOV DS, AX MOV ES, AX LEA DI, Str ; DI ch vo chui CALL DOCXAU ; c chui, s k t ti BX MOV SI, DI ; SI ch vo chui va c CLD ; nh hng tin LAMLAI: LODSB ; ly 1 phn t ca chui LEA DI, NAM ; DI ch vo chui ng.m MOV CX, 12 ; 6 nguyn m, 2 loi ch REPNE SCASB ; k t l nguyn m ? JNE PHUAM ; khng, l ph m INC SoNAM ; tng s nguyn m JMP TIEP PHUAM : LEA DI, PAM ; DI ch vo chui ph m MOV CX, 40 ; 20 ph m, 2 loi ch REPNE SCASB ; k t l ph m ? JNE TIEP ; khng INC SoPAM ; tng s ph m TIEP: DEC BA ; s k t phi kim tra JNE LAMLAI ; lm li MOV AH, 9 ; chun b hin th Tbao1 [Type text] Trang

105

[Type the document title]


LEA DX, Tbao1 INT 21H MOV AX, SoNAM ; ly s nguyn m CALL OUTSO ; hin th s ph m MOV AH, 4CH ; v DOS INT 21H MAIN Endp DOCXAU Proc ; c v lu mt chui k t, kt thc bng Enter ; Vo: DI cha a ch lch ca chui ; Ra: DI cha a ch lch ca chui BX cha s k t c c PUSH DI ; ct con tr CLD ; nh hng tin ct XOR BX, BX ; xa b m s k t MOV AH, 1 ; chun b c mt k t DOCTIEP : INT 21H CMP AL, 13 ; CR ? JE THOI ; ng, kt thc CMP AL, 8 ; BS ? (xa tri) JNE LUU ; khng, ct DEC DI ; ng, i li con tr DEC BX ; bt i mt k t JMP DOCTIEP ; c tip LUU: STOSB ; ct k t INC BX ; cp nht s k t c JMP DOCTIEP ; c tip THOI: POP DI ; ly li con tr RET ; v CTC DOCXAU Endp OUTSO Proc ; hin th s trong AX ; Vo: AX MOV BL, 10 XOR CX, CX LAP: DIV BL PUSH AX INC CX XOR AH, AH [Type text] Trang

; dng BL cha s chia ; CX: b m s ln hin ; AL: thng, AH: d ; ct s d ; cp nht s ln ; chun b chia tip

106

[Type the document title]


OR AL, AL ; thng = 0? JNE LAP ; cha, lp MOV AH, 2 ; ri, chun b hin th HIEN: POP DX ; ly li s d OR DH, 30H ; i s d ra m ASCII MOV DL, DH INT 21H ; hin th kt qu LOOP HIEN ; ly li s ln phi hin RET ; v CTC OUTSO Endp END MAIN So vi cch lm t trc n nay th trong phn chng trnh c k t (DOCXAU) ta a vo thm mt s lnh lm cho vic x l cc k t g t bn phm c mm do hn: ta c th loi b k t g nhm bng cch dng phm BS (Back space, xa tri). Tuy nhin, trn mn hnh ta khng thy c hiu ng xa tri tht s ca BS v chng trnh m ta vit y vn cn qu n gin c th x l c vn kh phc tp ny. Mun lm c iu va nu ta s phi vit mt chng trnh phc tp hn trong phi s dng n cc hm khc ca ngt 21H. Ti chng trnh ny ta cng thy c cch lm ra cc cu ch gii cho phn mo u ca cc chng trnh con. Thng thng trong cc ch gii kiu ny ta phi nu ln c mt cch vn tt cc vn sau: + Nhim v ca chng trnh con + Cc thanh ghi tham gia vo vic truyn tham s ca chng trnh khi vo hoc ra chng trnh . Nh phn mo u ny ca mi chng trnh con ta c th thu c cc thng tin s b v bn thn chng trnh con c s dng. V d nh trong chng trnh con DOCXAU, ta c th thy c cc thanh ghi no tham gia vo vic truyn tham s gia chng trnh chnh v chng trnh con. Vn truyn tham s gia cc chng trnh cng l vn m ta s cp k hn phn sau. V d 11 Lp mt chng trnh tr vi thi gian tr 1ms di dng chng trnh con c th s dng n trong cc trng hp cn thit. Gii Chng trnh tr thi gian c rt nhiu ng dng trong thc t: t vic to ra xung m thanh vi cc thanh iu khc nhau cho n vic iu khin cc i lng vt l trong mt h thng vi x l - iu khin ng dng trong cng nghip. gii quyt vn ny, thng thng ta lp ra mt chng trnh trong c cha mt cu trc lp, bn trong cu trc lp cha cc lnh m thi gian chy mi lnh c th xc nh c t cc ti liu tra cu. S ln lp ca vng lp thng c cha trong mt thanh ghi c th thay i c. Mt chng trnh nh nh vy thng ph thuc rt nhiu vo phn cng ca h thng (ch t cng ph thuc vo loi CPU v tn s ca ng h nhp cho n). Trong th d sau y, cho cng vic tnh ton c n gin, ta gi thit CPU l loi 8088-5 MHz (Tclk = 0.200 s). Mt chng trnh vit di dng th tc to thi gian tr 1ms c th nh sau: [Type text] Trang

107

[Type the document title]


TRE1ms Proc ; chng trnh tr 1ms ; CLI PUSH CX MOV CX, 292 LAP:; NOP LOOP LAP POP CX ; STI RET TRE1ms Endp

; cm cc ngt ; ct CX ; xem cch tnh '292' di ; c NOP tng thi gian ; ly li CX ; cho php ngt tr li

Trong chng trnh con ni trn, s ln lp trong CX phi c tnh ton sao cho thi gian chy ton b chng trnh vi cc vng lp ko di xp x 1ms. Ta ni xp x l v trong thc t khi CPU lm vic, n cn c th cn b treo cho qu trnh lm ti b nh c hon tt (nu h thng s dng RAM ng). Thm vo , v s ln lp cha trong CX phi l s nguyn nn kt qu t cc tnh ton thc cn phi c lm trn cho ph hp, t gy ra sai s. Trong mt h vi x l hot ng vi nhiu ngun gy ngt, i khi to ra mt khong thi gian tr xc nh v khng chu tc ng ca cc yu cu ngt, ta cn phi c cc lnh cm/cho php cc yu cu ngt trc/sau khi chy phn lnh tnh thi gian (nh trong v d trn, ta c th b cc du chm phy'.' ng trc cc lnh CLI v STI t c iu ny). By gi ta s ni qua v cch tnh gi tr s phi a vo thanh ghi CX trong th d trn (khng tnh n cc lnh CLI.NOP v STI) Theo ti liu tra cu dnh cho tp lnh ca CPU 8088, ta c c thi gian cho cc lnh lin quan trong chng trnh trn tnh theo n v Tclk nh sau: Lnh S chu k PUSH 11 POP 8 MOV 4 LOOP 17 (hoc 5 trong trng hp khng lp) RET 16 Nu ta gi s cn tm a vo thanh ghi CX l N, ta s thu c N khi gii phng trnh sau: Tclk* (11 + 8 + 4 + 16 +(N-1)*17 + 5) = 1 ms Thay s vo ta c: 34 + 17 * N = 5000 hay N = 5000/17-2 T rt ra N 292, y chnh l gi tr phi a vo thanh ghi CX trn. Nhn xt phng trnh cui cng ta thy thi gian m vng lp phi "git" ln hn rt nhiu so vi thi gian dnh cho cc lnh khc, v vy ta c th tnh c N vi sai s khng ln lm khi ly N 5000/17 294.

[Type text] Trang

108

[Type the document title]


Trong v d trn ta mi ch dng n mt gi tr nh m thanh ghi CX c kh nng biu din. Nu ta thay gi tr ln nht CX = 65535 th c th t c thi gian tr ln nht khong 224 ms. Trong cc my IBM PC cc chng trnh tr thi gian t chnh xc cao thng c thc hin bng cch dng chng trnh m cc xung thu c t cc mch nh thi gian (timer) c sn trong my. Cc mch nh thi gian ny s c xung u vo rt chnh xc c ly t cc xung ng h ca h thng. 5. Vn truyn tham s gia cc chng trnh Trong khi lp trnh cho cc ng dng c th, mt vn rt ng quan tm l cch truyn tham s gia chng trnh chnh (CTC) v chng trnh con (cyc) hoc gia cc mun chng trnh vi nhau (khi dng k thut lp trnh kiu mun m ta khng xem xt y). Ni chung trong thc t ngi ta thng dng cc cch truyn thng s sau: + Truyn tham s qua thanh ghi + Truyn tham s qua nh - bin + Truyn tham s qua nh c a ch do thanh ghi ch ra + Truyn tham s qua ngn xp Sau y l mt s v d v vic truyn tham s gia cc chng trnh. V d 1: truyn tham s qua thanh ghi Cch truyn tham s thng qua thanh ghi trong cc ngn ng khc cn c gi l truyn bng gi tr. V d trnh by mt chng trnh dc v hin th mt h s mi su gm 2 phn c t chc theo kiu CTC v ctc. CTC gi 1 ctc c vo mt s h mi su ri ct n trong thanh ghi BX v gi tip 1 ctc khc ly s va c ct ti BX hin th ra mn hnh; ni khc i, 2 phn ca chng trnh truyn tham s vi nhau thng qua ni dung ca thanh ghi BX. Cc chng trnh con c gn vo sau chng trnh chnh nh lnh gi INCLUDE. Sau y l avn bn chng trnh thc hin cng vic trn. Tp CHINH.ASM (cha CTC): .Model Small .Stack 100 .Code MAIN Proc CALL INHEX ;vo s h hex, kt qu BX MOV AH, 2 ;cch 1 dng MOV DL, 13 INT 21H MOV DL, 10 INT 21H CALL OUTHEX ;hin th kt qu c ti BX MOV AH, 4CH ;v DOS INT 21H MAIN Endp

[Type text] Trang

109

[Type the document title]


INCLUDE vao.asm; vao.asm cha INHEX INCLUDE ra.asm ; ra.asm cha INHEX ;cc ctc ny nm trong cng th mc vi CTC END MAIN Tip theo y l tp VAO.ASM cha th tc INHEX v tp RA.ASM cha th tc OUTHEX. Cc th tc ny c gi trong chng trnh CHINH.ASM ni trn. Tp VAO.ASM v RA.ASM phi c trong cng mt th mc vi CHINH.ASM, nu khng ta phi ghi c ng dn y ca chng. Tp VAO.ASM (cha ctc INHEX): INHEX Proc ;nhn vo 4 s h mi su. ;ra : BX cha kt qu BDAU:XOR BX, BX ; xa BX cha kt qu MOV CX, 4 ;CL cha s ln dch MOV AH, 2 ;chun b hin du nhc MOV DL,'?' INT 21H MOV AH, 1 ;c 1 k t LAP1: INT 21H CMP AL, 13 ;CR ? JE RA ;ng, ra CMP AL, '0' ;k t >='0' ? JNGE SAI ;khng, x l sai CMP AL'9' ;k t <='9' ? JG CHUI ;khng, c th l ch AND AL, OFH ;ng, i ra s. JMP DICH ;x l tip CHU1: CMP AL.'A' ;k t >='A' ? JNLE SAI ;khng, x l sai CMP AL'F' ;k t <='F' ? JNLE SAI ;khng, x l sai SUB AL, 37H ;i k t h hex ra s DICH: SHL BX, CL ;dch 4 bit ly ch OR BL, AL ;chn s c c vo BX JMP LAP1 ;c tip 1 k t RA : RET ;v CTC SAI: MOV AH, 2 MOV DL, 13 INT 21H MOV DL, 10 INT 21H ;v du dng mi [Type text] Trang

110

[Type the document title]


JMP BDAU ;lm li t u INHEX Endp OUTHEX Proc ;hin th s h mi su trong BX MOV CX, 4 ;CX: b m s ln hin MOV AH, 2 ;chun b hin kt qu LAP2: PUSH CX ;ct b m sln hin MOV CL, 4 ;CL: s bit phi quay ROL BX, BL ;ca thanh ghi BX MOV DL, BL ;chuyn sang DL x l AND DL, OFH ;ch quan tm 4 bit cui CMP DL, 9 ;s hex l ch? JG CHU2 ;ng, i ch ra m ASCII OR DL, 30H ;khng, i s ra m ASCII IMP HIEN CHU2:ADD DL, 37H HIEN: INT 21H ;hin th kt qu POP CX ;ly li s ln phi hin LOOP LAP2 ;hin cho n ht th thi RET ;v CTC OUTHEX Endp Chng trnh OUTHEX chng qua l chng trnh OUTSO gii thiu phn trc v c thay i cht t cho ph hp vi vic hin th s h mi su. Trong chng trnh trn, lm cho chng trnh n gin ta ch vit cc lnh hin ra du?. Vi mc ch nhc nh ngi s dng g vo 4 s h mi su ng quy cch. ta nh ngha cc s sau l cc ch s h mi su ng quy cch cho chng trnh trn. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Trong khi chy chng trnh s t ng tin hnh kim tra vic g vo h s mi su loi b trng hp cc k t khng hp l. Nu ngi s dng g vo cc k t khng ng quy cch th phi g li t u. V d 2: truyn tham s qua nh bin V d ny trnh by mt chng trnh cng 2 s gm 2 phn, t chc theo kiu chng trnh chnh v chng trnh con. Hai phn ny truyn vo tham s vi nhau thng qua nh dnh cho bin (thanh ghi ngoi). Chng trnh ca v d ny c vit ra vi mc ch chnh ch l trnh by mt cch t chc mi lin h gia mt chng trnh chnh v mt chng trnh con: v vy vn m chng trnh cn gii quyt c t ra tht n gin: cng 2 s m tng ca chng nh hn 10. Nu ta g vo 2 s khng ng yu cu trn th chng trnh khng tr li c v t thot ra. Sau y l vn bn chng trnh thc hin cng vic trn. .Model Small .Stack 100 [Type text] Trang

111

[Type the document title]


.Data Tbao1 Tbao2 So1 So2 DB 'G vo 2 s c tng <10: S' DB 13, 10, ' Tng ca ' DB ? DB ' v ' DB ? DB ' l ' DB -30H, '$'

SUM .Code MAIN Proc MOV AX, @Data MOV DS, AX MOV AH, 9 LEA DX, Tbao1 INT 21H MOV AH, 1 INT 21H MOV Sol, AL MOV DL, ',' MOV AH, 2 INT 21H MOV AH, 1 INT 21H MOV So2, AL CALL ADD2SO LEA DX, Tbao2 MOV AH, 4CH INT 21H MAIN Endp

;khi to

;hin Tbao1 ;c So1 ;ct m s So1 ;du phy an xen gia 2 s

;c s 2 ;ct m ca So2 ;cng 2 s ;v DOS

ADD2SO Proc MOV AL, So1 ;ly m s1 ADD AL, So2 ;cng vi m s2 ADD SUM, AL ;i ra ASCII v ct i RET ADD2So Endp END MAIN V d 3: truyn tham s qua nh a ch cho bi thanh ghi y l mt cch truyn tham s m trong cc ngn ng lp trnh khc thng c mang tn l truyn bng a ch ca tham s

[Type text] Trang

112

[Type the document title]


d so snh cc cch truyn tham s vi nhau, ta minh ha cch truyn tham s ny bng cch gi nguyn bi ton ca v d trwosc Cc thanh ghi SI, DI v BX c s dng cha a ch lch ca cc tham s cn truyn (cn thanh ghi on d liu ngm nh l DS) Sau y l vn bn chng trnh thc hin cng vic trn. .Model Small .Stack 100 .Data Tbao1 Tbao2 So1 So2 SUM

DB 'G vo 2 s c tng <10: S' DB 13, 10, 'Tng ca ' DB ? DB ' v ' DB ? DB ' l ' DB -30H, '$'

.Code MAIN Proc MOV AX, @Data MOV DS, AX MOV AH, 9 LEA DX, Tbao1 INT 21H MOV AH, 1 INT 21H MOV Sol, AL MOV DL, ',' MOV AH, 2 INT 21H MOV AH, 1 INT 21H MOV So2, AL LEA SI, So1 LEA DI, So2 LEA BX, SUM CALL ADD2SO LEA DX, Tbao2 INT 21H MOV AH, 4CH INT 21H MAIN Endp [Type text] Trang

;khi to DS

;hin Tbao1 ;c So1 ;ct m ca n i ;du phy an xen gia 2 s

;c s 2 ;ct m ca n i ;SI ch vo ton hng 1 ;DI ch vo ton hng 2 ; BX ch vo kt qu ;cng 2 s ;hin th Tbao2 ;v DOS

113

[Type the document title]


ADD2SO Proc ;tnh tng 2 s ;Vo: SI: a ch ca s hng 1 DI: a ch ca s hng 2 BX: a ch ca kt qu ;Ra: {DS:BX} cha kt qu MOV AL, {SI} ;ly m ca s1 ADD AL, {DI} ;cng vi m ca s2 ADD {BX}, AL ;i ra ASCII v ct i RET ;v CTC ADD2SO Endp END MAIN V d 4: truyn tham s qua ngn xp Trong v d ny ta s dng ngn xp lm ch cha cc tham s cn phi truyn. d so snh cc cch truyn tham s vi nhau, ta vn gi nguyn bi ton v d trc nhng thay i cch gii hng v d vo minh ha vic s dng ngn xp. Sau y l vn bn chng trnh thc hin cng vic trn .Model Small .Stack 100 .Data Tbao1 DB 'G vo 2 s c tng <10: S' Tbao2 DB 13, 10, 'Tng ca ' So1 DB ? DB ' v ' So2 DB ? DB ' l ' SUM DB -30H, '$' .Code MAIN Proc MOV AX, @Data MOV DS, AX ;khi to DS MOV AH, 9 LEA DX, Tbao1 INT 21H ;hin Tbao1 MOV AH, 1 ;c So1 INT 21H MOV Sol, AL ;ct vo bin hin th PUSH AX ;v vo ngn xp truyn MOV DL, ',' ;du phy an xen gia 2 s [Type text] Trang

114

[Type the document title]


MOV AH, 2 INT 21H MOV AH, 1 INT 21H MOV So2, AL PUSH AX CALL ADD2SO ADD SUM, AL MOV AH, 9 LEA DX, Tbao2 INT 21H MOV AH, 4CH INT 21H MAIN Endp

;c So2 ;ct vo bin hin th ;v vo ngn xp truyn ;cng 2 s ;lu kt qu hin th

;hin th Tbao2 ;v DOS

ADD2SO Proc ; tnh tng 2 s ; Vo: ngn xp lc k t nh ; a ch tr v ; s hng 2 ; s hng 1 ; Ra: AX cha kt qu PUSH BP ;ct BP dng vo vic MOV BP, SP ;BP ch vo nh ngn xp MOV AX, (BP+6) ;ly k t ca Sol MOV AX, (BP+4) ;cng vi k t ca So2 POP BP ;ly li BP RET 4 ;tr v v b qua 4 byte ADD2SO Endp END MAIN Trong chng trnh ny khi c c cac ton hng ca php cng, mt mt ta ct chng ti nh dnh cho bin (ch c dng n khi hin th thng bo Tbao2 nh lm cc v d trc), mt khc ta cng ct chng ti ngn xp truyn gia cc khc chng trnh. Khi thc hin php cng ta ly li c a ch tr v v tr ban u nh khi cha dng n ngn xp. Mt iu na cng phi nhn thy trong chng trnh ny l: l ngoi vc dng ngn xp truyn tham s (cc ton hng), y ta s dng thm c thanh ghi AX cho vic truyn kt qu.

[Type text] Trang

115

[Type the document title]


CHNG 5 : GHP 8088 VI B NH V T CHCVO/RA D LIU 1. Gii thiu cc tn hiu ca 8088 v cc mch ph tr 8284, 8288 1.1. Cc tn hiu ca 8088
IO/() DT/R() () () READY HOLD (/) HLDA (/) (QS1) ALE (QS0) NMI INTR RESET MN/) TEST CLK Vcc GND GND A/D0 A/D1 A/D2 A/D3 A/D4 A/D5 A/D6 A/D7 A8 A9 A10 A11 A12 A13 A14 A15 A16 /S3 A17 /S4 A18 /S5 A19 /S6

Tn hiu iu khin h thng Tn hiu iu khin bus iu khin CPU

8 ng dn knh ca bus A/D phn thp

8 ng ca bus A phn cao

ng h V ngun

4 ng dn knh ca bus C/Acao

8088

Hnh 5.1. cc tn hiu ca 8088 ch MIN v (MAX). Hnh 5.1 th hin vic chia cc tn hiu ca 8088 theo cc nhm ta d nhn din. S b tr c th cc chn ca vy x l 8088 c th hin trong hnh 5.2. Sau y ta s th hin chc nng ca tng tn hiu ti cc chn c th. + ADO - AD7 [I;O : tn hiu vo v ra] : Cc chn dn knh cho cc tn hiu phn thp ca bus d liu v bus a ch. Xung ALE s bo cho mnh ngoi bit khi no trn cc ng c tn hiu P d liu (ALE = 0) hoc a ch (ALE = 1). Cc chn ny trng thi tr khng cao khi chp nhn treo. + A8 - A15 [O] : Cc bit phn cao ca bus a ch. Cc chn ny trng thi tr khng cao khi chp nhn treo. P + 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 s c mt ti cc chn khi ALE = 1 cn khi AEL = 0 th trn cc chn c P cc tn hiu trng thi S3 - S6. Cc chn ny trng thi tr khng cao khi chp nhn treo. [Type text] Trang

116

[Type the document title]


Bng 5.1. cc bit 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 Bit S6 = 0 lin tc, bit S5 phn knh gi tr bit IF ca thanh ghi c. Hai bit S3 v S4 phi hp vi nhau ch ra vic truy nhp cc thanh ghi on (bng 5.1) + R [O] : Xung cho php c. Khi R = 0 th bus d liu sn sng nhn s liu ti b nh D D P hoc thit b ngoi vi. Chn R trng thi tr khng cao khi chp nhn treo. D + 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 m ch chng. Lc ny CPU tu ko di thi gian thc hin lnh ghi/c bng cch chn thm cc Ch chu k i. Ch
Vcc A15 A16/S3 A16/S4 A16/S5 A16/S6 MN/) HOLD HLDA IO/ DT/ ALE (High) (/) (/) () () () () (QS0) (QS1)

Min MIN

MAX

AND A14 A13 A12 A11 A10 A9 A8 A/D7 A/D6 A/D5 A/D4 A/D3 A/D2 A/D1 A/D0 NMI INTR CLK GND

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

READY RESET

Hnh 5.2. S chn ca CPU 8088.

[Type text] Trang

117

[Type the document title]


+ 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. + T ST [I] : Tn hiu ti chn ny c kim tra bi lnh WAIT. Khi CPU thc hin lnh E WAIT m lc tn hiu TE T =1, n s ch cho n khi tn hiu TE T = 0 th mi thc hin lnh tip S S 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 8088. khi RESET = 1 ko di t nht trong thi gian 4 chu k ng h th 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 TF 0 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 +5V 10%.340mA + GND [O] : Hai chn ngun ni vi im OV ca ngun nui. + MN/MX [I] : Chn iu khin hot ng ca CPU theo ch MIN/MAX. Do 8088 c th lm vic 2 ch khc nhau nn c mt s chn tn hiu ph thuc vo cc ch . Ch MIN (Chn MN/MX cn c ni thng vo +5V m khng qua in tr !) 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 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. + IO/ M [O] : Tn hiu ny phn bit trong thi im nh phn t no trong cc thit b vo/ra (IO) hoc b nh (M) c chn lm vic vi CPU. Trn bus a ch lc s c cc a ch tng P ng ca cc thit b . Chn ny trng thi tr khng cao khi chp nhn treo. + WR [O] : Xung cho php ghi. Khi CPU a ra WR=0 th trn bus d liu cc d liu n nh v chng s c ghi vo b nh hoc thit b ngoi vi ti thi im t bin W = 1. Chn W R R P trng thi tr khng cao khi chp nhn treo. + 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 bus d liu. + ALE [O] : Xung cho php cht a ch. Khi ALE = 1 c ngha l trn bus 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. + DT/ R [O] : Tn hiu iu khin cc m 2 chiu ca bus d liu chn chiu chuyn ca P vn d liu trn bus D. Chn ny trng thi tr khng cao khi chp nhn treo. + D N [O] : Tn hiu bo cho bn ngoi bit l lc ny trn bus dn knh AD c d liu n E P nh. Chn ny trng thi tr khng cao khi chp nhn treo. [Type text] Trang 118

[Type the document title]


+ HOLD [I] : Tn hiu yu cu treo CPU machj ngoi thc hin vic trao i d liu vi b nh bng cch thm nhp trc tip (direct memory access, DMA). Khi HOLD = 1. CPU 8088 s t tch ra h thng bng cch treo tt c cc bus A, bus D, bus C ca n ( cc bus 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 5.2. Cc chu k ca bus qua cc tn hiu IO/ M 0 0 0 0 1 1 1 1 DT/ R 0 0 1 1 0 0 1 1
S0 S

S0 S

, IO/ M , DT/ R

0 1 0 1 0 1 0 1

Chu k iu khin ca bus c m lnh c b nh Ghi b nh Bus r (ngh) Chp nhn yu cu ngt c thit b ngoi vi Ghi thit b ngoi vi Dng (halt)

+ HLDA [O] : Tn hiu bo cho bn ngoi bit yu cu treo CPU dng cc bus c chp nhn , v CPU 8088 treo cc bus A, bus D v mt s tn hiu ca bus C. + SSO [O] : Tn hiu trng thi. Tn hiu ny ging nh S trong ch MAX v c O dng kt hp vi IO/M v DT/ R gii m cc chu k hot ng ca bus (xem bng 5.2). Ch MAX (Chn MN/MX ni t) 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 bus 8288. Ch MAX c s dng khi trong h thng c mt b ng x l ton hc 8087 + S 2, S1 v S 0 [O] : Cc chn trng thi dng trong ch MAX ghp vi mch iu khin bus 8288. Cc tn hiu ny c 8288 dng to ra cc tn hiu iu khin trong cc chu k hot ng ca bus. Cc tn hiu iu khin c ch ra trong bng 5.3.

Bng 5.3. Cc tn hiu iu khin ca 8288. Chu k iu khin ca bus

S2

S1

S0

Tn hiu

[Type text] Trang

119

[Type the document title]


0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Chp nhn yu cu ngt c thit b ngoi vi Ghi thit b ngoi vi Dng (halt) c m lnh c b nh Ghi b nh Bus ri (ngh) INTA IORC IOWC, AIO C W Khng MRDC MRDC MWTC,
A W M C

Khng

Q Q + R / G 0 v R / G 1 [I/O] : Cc tn hiu yu cu dng bus ca cc b x l khc T T Q hoc thng bo chp nhn treo ca CPU cho cc b vi x l khc dng bus. R / G 0 c mc u T Q tin hn R / G 1 . T + LO K [O] : Tn hiu do CPU a ra cm cc b x l khc trong h thng dng bus C trong khi n ang thi hnh mt lnh no t sau tip u LOCK. + QS0 v QS1 [O] : Tn hiu thng bo cc trng thi khc nhau ca m lnh (hng i lnh). Bng 5.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 dng ca n vi b vi x l 8088.

Bng 5.4. Cc trng thi ca lnh m QS1 0 0 1 1 QS0 Trng thi lnh m 0 Khng hot ng 1 c byte m lnh u tin t m lnh 0 c lnh rng 1 c byte tip theo t m lnh

1.2. Phn knh tch thng tin v vic m cho cc bus gim bt kh khn v mt cng ngh do vic phi ch to nhiu chn cho cc tn hiu ca vi mch CPU, ngi ta tm cch hn ch s chn ca vi mch bng cch dn knh nhiu tn hiu trn cng mt chn. V d cc chn AD0 - AD8 ca 8088 c dn knh c th a ra bn ngoi cc thng tin v a ch phn thp v d liu phn thp. 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 bus c lp (bus a ch v bus 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 bus 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. [Type text] Trang

120

[Type the document title]


Hnh 5.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 8088 lm vic ch MIN. Hnh A19/S6 5.5 cung cp cho ta hnh nh t m hn v cch t chc c th khc ca bus a ch, d liu v A18/S5 iu khin thng qua lc ca my IBM PC/XT. Trong b vi x l 8088 lm vic ch MAX. A17/S4 A16/S3 cch CPU trn hnh 5.4 ta cn thy s c mt ca cc mch ph tr ca intel nh : Bn + B iu khin bus 8288. + B to ra cc xung ng h 8284. Bus A15+ B phi ghp ngoi vi song song 8255. A14+ B iu khin trao i d liu bng cch thm nhp trc tip vo b nh 8237. iu LS244 khin A13+ B iu khin ngt u tin 8259. A12 + B m/nh thi gian 8253 v A11 A10+ Ch cm dnh cho b ng x l ton hc 8087. A9 Mt s mch trong cc mch k trn cng s c gii thiu trong chng trnh ny v cc LS373 chngA8 sau ta c th hiu c hot ng ca tng h. trnh G/ Trn s ny ta cng thy vic s dng cc mch cht v mch khuch i m thng dng ( cc mch 74LS373, 74LS244 v 74LS245) ti nhng ch cn thit ca bus a ch, bus d liu v bus iu khin nh ni trn.
OC1,2 LS244
ALE IO/

Bus a ch

A7 A6 A5 A4 A3 A2 A1 A0

LS373 G OC

LS245

Bus D liu

[Type text] Trang

DIR

121

[Type the document title]

1.3. Mch to xung nhp 8284. Cho d lm vic trong ch MIN hay MAX, CPU 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. ngha ca cc tn hiu [Type text] Trang

122

[Type the document title]


+ A N 1 , A N 2 : Tn hiu cho php chn u vo tng ng RDY1, RDY2 lm tn hiu E E bo tnh trng sn sng ca b nh hoc thit b ngoi vi. + RDY1, RDY2 : cng vi A N 1 , A N 2 dng gy ra cc chu k i CPU. E E + A YN : Chn ng b hai tng hoc ng b mt tng cho tn hiu RDY1, RDY2. Trong S C ch ng b mt tng ( A YN = 1) tn hiu RDY c nh hng n tn hiu READY ti tn sn S C xung ca xung ng h tip theo. Cn trong ch ng b hai tng ( A YN = 0) tn hiu RDY ch c S C nh hng n tn hiu READY khi c sn xung ca xung ng h tip theo. + READY : Ni n u READY ca CPU. Tn hiu ny c ng b vi cc tn hiu RDY1, RDY2. + X1, X2 : Ni vi hai chn ca thch anh vi tn s fx, thch anh ny l mt b phn ca mt mch dao ng bn trong 8284 c nhim v to xung chun dng lm tn hiu ng h cho ton h thng. + F/ C : Dng chn ngun tn hiu chun cho 8284. Khi chn ny mc cao th xung ng h bn ngoi s c dng lm xung nhp cho 8284, ngc li th xung ng h ca mch dao ng bn trong dng thch anh s c chn lm xung nhp. + EFI : li vo cho xung t b dao ng ngoi. + CLK : Xung nhp fCLK=fx/3vi rng 77% ni n chn ca CLK ca 8088. + PCLK : Xung nhp fCLK=fx/6vi rng 50% dnh cho thit b ngoi vi. + OSC : Xung nhp c khuch i c tn s bng fx ca b dao ng. + R S : Chn khi ng, ni vi mch RC 8284 t khi ng khi bt ngun. E + RESET : Ni vo RESETca 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 5.6) + Hnh 5.6 biu din cc ng ni tn hiu chnh ca 8088 v 8284. Mch 8284 nhn c xung khi ng t bn ngoi thng qua mch RC khi bt u bt in X1 CLK +5V 10k K + RES RESET F/ C Khi ng h thng Hnh 5.6. Mch 8284 ni vi 8088. X2 8284 CLK 8088 RESET

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. 1.4. Mch iu khin bus 8288 Nh gii thiu phn trc, vi mch 8288 l mch iu khin bus, n ly 1 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 808m vic ch MAX. S chn v cc tn hiu ca 8288 c th hin trn hnh 5.7. Cc tn hiu chnh ca 8288 bao gm : [Type text] Trang

123

[Type the document title]


IOB CLK
S1

DT/ R ALE
AN E A W M C M T WC GD N

1 2 3 4 8288 5 6 7 8 9 10

20 19 18 17 16 15 14 13 12 11

Vcc
S0 S2

MCE/ P E DN DEN CEN


IN A T IO C R A W IO C IO C W

A N : address enable E CEN : command enable IOB : input/output bus mode MD R C : memory read comm : memory write comm M T WC : advanced M T A W M C WC IO C : i/o read command R IO C : i/o write command W A W IO C : advanced IO C W DT/ R : data transmit/receive DEN : data enable

MCE/PDEN : master cascade enable/peripheral data enable Hnh 5.7. Mch to xung iu khin 8288. + S 2 , S 1 , S 0 [I, I, I] : l cc tn hiu trng thi ly thng t CPU. Tu theo cc tn hiu ny m mch 8288 s to ra cc tn hiu iu khin khc nhau ti cc chn ra ca n iu khin hot ng ca cc thit b ni vi CPU. Bng 5.3 m t cc tn hiu vo v ra . + CLK [I] : y l u vo ni vi xung ng h h thng (t mch 8284) v dng ng b ton b cc xung iu khin i ra t mch 8288. + CEN [I] : L tn hiu u vo cho php a ra tn hiu DEN v cc tn hiu iu khin khc ca 8288. + IOB [I] : tn hiu iu khin mch 8288 lm vic cc ch bus khc nhau. Khi IOB = 1 8288 lm vic ch bus vo/ra, khi IOB = 0 mch 8288 lm vic ch bus h thng (nh trong cc my IBM PC). + M D [O] : tn hiu iu khin c b nh. N kch hot b nh a d liu ra bus. R C + M TC [O] AM C [O] : l cc tn hiu iu khin ghi b nh hoc ghi b nh ko di. W W thc cht l cc tn hiu ging nh M M E W , nhng A W M C (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. + IO C [O] : tn hiu iu khin c thit b ngoi vi. N kch hot cc thit b c chn R cc thit b ny a d liu ra bus. + IO C [O] AIO C [O] : l cc tn hiu iu khin c thit b ngoi vi hoc c thit b W W ngoi vi ko di. thc cht l cc tn hiu ging nh IO , nhng AIO C (advanced I/O write W W command) hot ng sm ln mt cht to ra kh nng cho cc b nh chm c thm c thi gian ghi. + IN A [O] : l u ra thng nbaos l CPU chp nhn yu cu ngt ca thit b ngoi vi v T lc ny cc thit b ngoi vi phi a ra s hiu ngt ra bus 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). [Type text] Trang

124

[Type the document title]


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 bus h thng khi ghi hoc ngc li, t bus h thng n CPU khi c. + DEN [O] : y l tn hiu iu khin bus d liu tr thnh bus cc b hay bus 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/ PD N [O] : y l tn hiu dng nh ch lm vic cho mch iu khin ngt E 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. 1.5. Biu thi gian ca cc lnh ghi/c Trn hnh 5.8 v 5.9 l cc biu thi gian c n gin ho ca cc tn hiu c bn trong CPU 8088 cho cc lnh ghi/c b nh hoc thit b ngoi vi. Trong trng hp bnh thng mt chu k ghi/c (cn gi l chu k bus) 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 bus ko di 4*T=800ns.

T1 CLK

Mt chu k ca bus T2 T3 Tw

T4

ALE [Type Trang


A/S A16/S3 text] A19/S6

125

[Type the document title]


a ch
A (A8-A15) A/D (AD0-AD7

Tn hiu trng thi a chn nh

a ch

D liu ghi tgi W TWr

W R
DN E

Hnh 5.8. Cc tn hiu ca CPU 8088 trong chu k ghi n gin ho. Mt chu k ca bus T1 T2 T3 T4 CLK Tw ALE ttrach
ADRS A16/S3 A19/S6 ADR (A8-A15) ADRD (AD0-AD7

a ch

Tn hiu trng thi a chn nh tgiK

a ch

D liu c TWr

R D
DN E

Hnh 5.9. Cc tn hiu ca CPU 8088 trong chu k c n gin ho. Chng ta m t tm tt cc hin tng xy ra trong mt chu k T ni trn. + Chu k T1 : Trong chu k ny a ch ca b nh hay thit b ngoi vi c a ra trn cc ng a ch, hoc a ch/d liu v a ch/ trng thi. Cc tn hiu iu khin ALE. DT/ R . IO/ M cungx c a ra gip vic hon tt vic gi thng tin a ch ny. [Type text] Trang 126

[Type the document title]


+ Chu k T2 : Trong chu ny CPU a ra cc tn hiu iu khin R hoc W . D N v tn hiu d liu R E D trn D0 - D7 nu l lnh ghi. D N thng dng m cc b m ca bus d liu nu nh chng c E 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. + 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 bus d liu. Nu ti cui chu k ng h T2 (hoc gia mi chu k T ca Tw) m CPU pht hin ra tn hiu READY=0 (do b nh hay thit b ngoi vi a n) th CPU t xen vo sau T3 mt vi chu k T to chu k i Tw = n*T nhm ko di thi gian thc hin lnh, to iu kin cho b nh hoc thit b ngoi vi. c thi gian hon tt vic ghi/c d liu. + Chu k T4 : Trong chu k ny cc tn hiu trn bus c gii hot (a v trng thi khng tch cc) chun b cho chu k bus mi. Tn hiu W trong khi chuyn trng thi t 0 ln 1 s kch hot ng qu R trnh a vo b nh hay thit b ngoi vi. Trn cc hnh v 5.8 v 5.9 cng biu din cc thng s quang 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 5.9) ta thy vic truy nhp b nh ko di trong khong thi gian t T1 - T3 (gn 3 chu k ng h 3*T = 600 ms). Trong tng s thi gian ny phi tnh n thi gian tr khi chuyn a ch ttr da 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 8088 5MHz cn phi c thi gian thm nhp nh hn : 3*T - ttr da ch - tgiR - ttr m = 600 - 110 - 30 - 40 = 420ns. Mt khc vi CPU 8088 5MHz th rng xung c l TRD = 325ns, l thi gian di cho b nh vi thi gian thm nhp c 420ns lm vic. Trong biu thi gian ghi ( hnh 5.8) ta thy phi c mt thi gian gi d liu ti thiu ghi tgiW = 88ns sau khi W t bin t 0 ln 1. trong thc t thi gian ny gn nh bng 0 i vi b nh R thng dng. di ca xung ghi i vi CPU 8088 - 5MHz l TWR = 340ns cng l ph hp vi cc b nh vi thi gian thm nhp c 450ns. Trn hnh 5.10 l mt mch dng xem thm chu k i vi thi gian i tu chn nT (n=07). Bng cch thay i u ni n cc u ra ca mch vo song song ra ni tip 74LS164 cho n khi c sn dng ca T2. 2. Phi ghp 8088 vi b nh 2.1. B nh bn dn Trc khi ni v phi ghp 8088 vi b nh ta ni qua mt cht v cc b nh bn dn thng dng vi b vi x l. [Type text] Trang

127

[Type the document title]


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 (aerraseble programmable ROM l b nh ROM c th lp trnh c bng xung in v xo c bng tia cc tm). + B nh khng c nh RAM ( random access memory, b nh ghi/c) 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 (stiatic RAM hay SRAM, trogn mi phn t nh l mt mch lt hay trng thi n nh) v loi RAM ng (dyamic 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 sau (hnh 5.11) Tn hiu a ch
W R

A0 A1 A2 Am Dn

D0 D1 D2

Tn hiu d liu

WR : Write WE : write enable OE : Output CS OE enable Chn v R D CS : Chip select Hnh 5.11. s khi 1 vi mch nh. RD : Read Theo s khi ny ta thy mt lvi mnh nh c cc nhm tn hiu sau : Nhm tn hiu a ch : Cc tn hiu a ch c tc dng chn ra mt nh (t nh c th ghi/c. Cc nh c di khc nhau tu theo nh sn xut : 1, 4, 8, bit. S ng tn hiu a ch c lin quan n dung lng ca mch nh. Vi mt mch nh c m bit 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 = 220 = 1048576). 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. Cng tn ti mch nh RAM vi u ra v u vo d liu ring bit. i vi RAM loi ny, khi dng trong mch ca bus d liu ngi s dng phi ni hai u li. Cc mch nh thng c u ra d liu kiu 3 trng thi. S dng 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 ... Nhm tn hiu chn vi mch (chn v) : [Type text] Trang

128

[Type the document title]


Cc tn hiu chn v l C (chip select) hoc C (Chip enable) thng c dng to ra S E vi mch nh c th ghi/c. Tn hiu chn v cc mch RAM thng la C , cn mch ROM S thng l C . Cc tn hiu chn v thng c ni vi u ra ca b gii m a ch. Khi mt mnh E nh khng c chn th bus d liu ca n b treo ( trng thi tr khng cao) 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 O (output enable) cho php d liu c a ra bus. Mt mt nh khng c m E bi O th bus d liu ca n b treo. E 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 W (write enable) iu E khin ghi v O iu khin c. Hai tn hiu ny phi ngc pha nhau iu khin vic ghi/c E mch nh. Mt thng s c trng khc ca b nh l thi gian thm nhm tac. Ni chung n c nh ngha nh l thi gian k t khi c xung a ch trn bus a ch cho n khi c d liu ra n nh trn bus 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 thm nhp nh (10 - 30ns) cn cc b nh lm bng cng ngh MOS c thi gian thm nhp ln hn nhiu (c 150ms hoc hn na). Sau y l v d mt s loi b nh thng dng : B nh EPROM : Cc b nh EPROM thng dng tn ti di nhiu kiu mch khc nhau. H 27xxx c cc loi makchj sau : 2708 (1Kx8), 2716 (2Kx8), 2732 (4Kx8), 2764 (8Kx8), 27128 (16Kx8), 27256 (32Kx8), 27512 (64Kx8) vi tac = 250-450ns tu theo loi c th. Trn hnh 5.12 l s cc tn hiu v bng chc nng ca 2716. Mch nh 2716 c thi gian thm nhp tac = 450ns, nh vy ghp v lm vic c vi CPU 8088 5MHz n cn phi thm chu k i. Ngc li mch nh 2716 - 1 li c tac = 250ns nn khng cn thm chu k i. Cn lu l trong ch duy tr cng sut tiu th ca mch gim c 75% so vi cng sut khi n ch tch cc C h A0 - A10 D0 D7
O E C E

Vpp /PG M
O E

Vcc [V] +5 +5 +2 5 +5

D0 - D7

[V] +5 +5 +2 5 +2

Ch c Duy tr Ghi Kim tra

0 1 0ms 0

0 X 5 1 0

Dout HZ Din Dout 129

Vpp [Type text] Trang


C E

/PG

[Type the document title]


Cm ghi 0 1 5 +2 5 +5 HZ

A0 - A10 : a ch D0 - D7 O E : cho php a d liu ra C /PGM : in p ghi E

x : khng quan tm HZ : Trng thi tr khng cao

Hnh 5.12. B nh EPROM 2716 (2Kx8) B nh RAM tnh (SRAM) : B nh SRAM c kh nng lu gi thng tin trong n chng no n cn c cp in. Cc b nh SRAM v EPROM cng dung lng thng c cch b tr chn ging nhau d b dy thay th ln trong qua trnh pht trin h thng. Trn hnh 5.13 l v d mch nh TMS 4014 (2Kx8) vi thi gian thm nhp tac = 250ns. tn ti trong thc t mch nh SRAM dung lng 32Kx8 (62256LP-10) vi thi gian thm nhp c 100ns ch to theo cng ngh CMOS v mt loi SRAM khc chs to theo cng ngh lng cc 8KB - 120KB c thi gian thm nhp 15ns. A0 - A10 D0 D7
O E W E C S

A0 - A10 : a ch x : khng quan tm D0 - D7 : D liu HZ : Trng thi tr khng cao O E : cho php a d liu ra W Hnh 5.13. B nh E : Cho TMS 4016 (2Kx8). RAM tnh php ghi C S : Chn v B nh RAM ng (DRAM) :

B nh DRAM lu gi thng tin bng cch np hay khng np in tch ln cc t in cng ngh MOS. Mi phn t nh ca b nh DRAM v vy cn c lm ti li (bng cch ghi hay c phn t ) sau mt khong thi gian c 15,6 s , nu khng in tch trn cc t in s b tiu tn v dn n mt thng tin. Cc mch DRAM cn c cc mch logic ph m bo vic lm ti v v th vic phi ghp vi b vi x l l rt phc tp. B li nhc im ny cc mch nh DRAM li c u im l c th ch to c mt s lng rt ln cc phn t nh trn 1 n v in tch, cc vi mch ny do vy cng cn rt nhiu chn cho cc tn hiu a ch. lm gim bt s lng chn a ch trn mt vi mch nh, ngi ta thng chia a ch ra lm hai nhm : a ch hng v a ch ct dn knh chng trn cc chn a ch, ng thi cung cp thm cc tn hiu cho php cht gi ring l a ch hng ( R S ) v ct ( A C S ) bn trong vi mch nh (hnh 5.14). A A0 - A7 D0 - D3
O E
CS A

[Type text] Trang

W E
RS A

A0 - A7 : a ch x : khng quan tm D0 - D3 : D liu C S : xung cho php cht a ch ct A R S : xung cho php cht a ch A hng O E : cho php a d liu ra W E : Cho php ghi

130

[Type the document title]

RS A
RS A

A0 - A7

c ct

c hng

Hnh 5.14. B nh RAM ng TMS 4464 (64Kx4). Cc mch nh DRAM thng c ch to vi di 1 hoc 4 bit. tn ti trong thc t mch nh DRAM dung lng 1 Mx1, 4 Mx1, v 16 Mx1 v chng thng c t hp thnh b nh kiu SIMM (single in-line memory module) hay SIP (single in-line package) dng trong cc my tnh th h mi. Trn hnh 5.15 l v d ca vi mch nh TMX4C1024 dung lng 1 Mx1 vi thi gian thm nhp 60ns. 2.2. Gii m a ch cho b nh A0 - A9 : a ch x : khng quan tm Di Di : D liu vo A0 - A9 D0 : D liu ra C S : xung cho php cht a ch ct A D0 R S : xung cho php cht a ch A W E hng Hnh 5.15. B nhW : ng TMX 4C1024 (1Mx1) RAM cho php ghi E CS RS A A Mi mch nh ni ghp vi CPUW phi c CPU qui chiu ti mt cch chnh xc khi cn : Cho php ghi E 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 v 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 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 tai y ta phi c ch cho mt bng gm 256 vect ngt ca 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 khi ng ca CPU). V nguyn tc mt b gii m a ch thng c cu to nh trn hnh 5.16.

[Type text] Trang

131

[Type the document title]


C 1hiu S Tn
C 2 hiu S Tn C n S

a ch /khin

Mch gii m a ch

Cc tn hiu chn v

Hnh 5.16. Mch gii m a ch tng qut. u vo ca b gii m l cc tn hiu a ch v tn hiu iu khin. Cc tn hiu a ch gm cc bit a ch c quan h nht nh vi cc tn hiu chn v u ra. Tn hiu iu khin thng l tn hiu IO/ M dng phn bit i tng m CPU chn lm vic l b nh hay thit b vo/ra. Mch gii m l mt trong nhng khu gy ra vic tr thi gian ca tn hiu t CPU ti b nh hoc thit b ngoi vi m trong khi chn mch nh/ngoi vi ta phi tnh n. 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 u 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 chon ra cc mch nh cc vng nh khc na. Nh vy, gii m thiu th tit kim c linh kin khi thc hin b gii m nhng li lm mt tnh n tr ca xung chn thu c u ra. 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 cab nh th vn c th s dng c mch gii m c thit k . Thc hin mch gii m bng cc mch NAND

Bng cc mch kiu mch ca NAND ta c th xy dng c mch gii m a ch n gin vi s u ra hn ch, ta phi a n u vo ca mch ca nhiu li v mt t hp thch hp ca cc bit a ch nhn c u ra ca n tn hiu chn v cho mch nh. Trong mch gii m n gin cho EPROM ny, xung chn v s c tc ng khi ta c b nh ti a ch nm trong khong EF800H - FFFFFH, tc l vng a ch c cha a ch khi ng ca CPU 8088. 9 bit a chphn cao ca bus a ch (A11-A19) mc 1 s phi hp cng xung IO/ M ( c o) to ra xung chn vng nh 2 KB t ti a ch cao nht trong khng gian a ch ca 8088. mi nh c th trong 2 KB ca mch nh EPROM 2716-1 s do cc bit thp cn li ca bus a ch (A0 A10) chn ra. kim chng nhanh iu ny ta cn nh rng vi cc bit a ch A10 ta chn ra c cc mch nh 1KB v vi bit A11 ta chn ra c cc mch nh 2 KB cc mng nh ny nm ri rc trong khng gian ca b nh. Thc hin b gii m dng mch gii m kiu 74LS138 : 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 ca tng ln. Trong trng hp nh vy ta thng s dng cc mch gii m c sn. Mt trong cc mch gii m hay dc s dng l 74LS138, mch gii m 3-8 (hnh 5.18) [Type text] Trang 132

[Type the document title]


Bus A Bus B
R D

A0 - A9 276415 D0 - D7
O E
C E

A13 A14 A15 A17 A16 A18 IO/ M A19

A Y Y1 B Y2 C LS138 Y3
Y4

F0000-F1FFF

Cc chn chn v cho 7 mch 276415 khc FE000-FFFFF

G2 A G2 B G1

Y5 Y6 Y7

Hnh 5.19. s b gii m dng 74LS138. V d Gi thit ta cn dng ring vng nh 64 KB c a ch F0000H-FFFFFH. Cho cc mch nh EPROM 8 KB (dng 8x2764-15, tac = 150ns). Hy dng mch gii m kiu 74LS138 thc hin.

Cc u vo chn

A B C
Y3

Y Y1 Y2

138 Cc u vo cho ghp


Y4

Cc u ra ca mch gii m

G2 A G2 B G1

Y5 Y6 Y

7 Hnh 5.18. s khi ca 74LS138

[Type text] Trang

133

[Type the document title]


Gii Ta c th dng mch 74LS138 v b tr cc ng a ch nh trn hnh 5.19. th d ny ta cn lu rng bit a ch A13 c kh nng chn ra cc mng nh 8 KB nm ri rc trong khng gian nh ca 8088. chnh v vy ta dng n nh u vo A ca 74LS138, cng vi cc a ch bit A14 v A15 ti cc chn B v C ta s chn ra c 8 vng nh lin nhau, mi vng c dung lng l 8 KB hay ton vng l 64 KB ny phn cao nht trong khng kgian nh. iu ny c th t c mt cch d dng bng vic dng t hp 4 bit a ch cao nht A16 A19 trng thi 1 (A19 thng qua u vo G1 v A16 -A18 qua 1 mch NAND 3 u vo a n G2A ca mch 74LS138). 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 hoc PLA (programable logic array) vi u im chnh l chng c rt nhiu u vo cho cc bit a ch v v th rt thch hp trong cc h vi x l sau ny vi khng gian a ch ln. Thc hin b gii m dng PR OM : trnh by ng dng ca PROM trong vic thc hin cc b gii m ta ly li v d phn vng b nh cho 64 KB EPROM trong phn trc. Ti y ta dng mch PROM loi TPB 28L42 vi dung lng 512 byte lm b gii m. Trong bng 5.5 l mu cc bit ghi vo PROM TPB 58L42 cho trng hp ng dng c th ny. Theo bng 5.5 ta thy rng thc hin b gii m cho b nh theo yu cu ni trn ta mi ch s dng ht 8 byte u tin trong tng s 512 byte ca mch nh PROM ghi cc gi tr cn thit. Cc nh ti a ch khc v th u cha cng gi tr nh nhau l FFH.

Bus A Bus D A13 A14 A15 A16 A17 A18 [Type text] A19 A20 Trang A0 O0 A1 A2 A3 A4 A5 A6 A7 A8
R D

A0 - A12 276415 D0 - D7
O E
C E

O1 O2 O3 O4 O5 O6 O7 O8

F0000-F1FFF

Cc chn chn v cho 7 mch 276415 khc 134

[Type the document title]

FE000-FFFFF IO/ M Hnh 5.20. S b gii m dng PROM Mch gii m cho b nh EPROM 64 KB dng PROM c th hin trn hnh 5.20. 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. Trong cc my vi tnh c nhn thng phm vic phn chia vng v gii m a ch cho b nh thng c thc hin hon chnh. Vic lp chung cc modun RAM vo mt h thng cng c nh sn xut tnh ton t trc to thun li ti a cho ngi s dng. 2.3. Pi ghp CPU 8088 - 5MHz vi b nh Sau khi gii thiu cc phng php gii m cho mch nh trong phn ny ta s gii thiu cch phi ghp 8088 vi b nh. C th ni tng qut rng nu -khng c xung t gia tc thm nhp mch nh v tc CPU th vic phi ghp CPU vi b nh n gin ch l vic gii m a ch trong mch nh. Trong phn ln cc trng hp iu ny c th ng cho cc mch nh RAM v cc mch nh EPRAM c thi gian thm nhp nh hoen hoc bng 250 ms, cch phi ghp CPU vi cac mch ny v c bn l ging nhau. i vi cc mch nh EPROM nh 2716, 2732 ... loi tc 450 ms khi thc hin phi ghp vi 8088 - 5MHz th cn phi tnh ton thn trng hn. Trong phn u ca chng ny ta tnh c rng mun phi ghp c vi CPU 8088 5MHz th cc mch nh phi c thi gian thm nhp di nht l c 450 ms, v vy nu ta mun ghp EPROM 2732 tc 450ms vo b nh th chc chn phi c cch bo cho CPU xen thm chu k i trn hnh 5.21 l s mch phi ghp EPROM 2732 c thm mch NAND to tn hiu cho php mch gii m v tn hiu yu cu i a n chn RDI1 ca 8284 ( c trnh by phn trc). Bng cch ny mi khi CPU i EPROM 2732 tc chm th 1 chu k i s c t ng xen thm. A0 - A11 Bus A B to Tw A12 A13 A14 CS A B C LS138 Bus D
R D

Ti RYD1 Ca 8284

2732 D0 - D7 F0000F1FFF Cc chn chn v cho 7 mch 2764-15 khc

A15 A16 [Type text] Trang

FE000FFFFF

135

[Type the document title]


A17 A18 A19 IO/ M

Vcc

Hnh 5.21. Phi ghp EPROM 2732 - 450 ns vi CPU 8088 - 5MHz. Vic phi ghp SRAM vi 8088 thng n gin hn so vi EPROM v SROM c tc nhanh nn khng cn mch xen thm chu k i. Trong hnh 5.23 ta c th thy vic ghp 16KB SRAM vi CPU c dng mt b gii m kiu 74LS138. khi 16KB SRAM ny bt u ti a ch thp nht l 00000H bao trm vng nh cha bng vect ngt ca CPU 8088. Vn kim tra parity pht hin li trong b nh RAM : Do cc b nh bn dn DRAM dng cho my vi tnh ngy nay c gi c ngy cng r nn ngi ta a vo s dng cc vng nh dung lng ngy cng ln v v vy vic kim tra parity pht hin li trong thit b nh l mt vn d bc thit. Bn cht ca vn y l ngi ta phi dng thm 1 bit nh (bit th 9) lm kim tra parity cho 8 b d liu thc v ngi ta so snh bit parity khi ngh v bit parity khi c pht hin li. Ta c th dng 1 trong 2 kiu parity : parity chn hoc parity l. Nu ta dng parity chn th khi tng s bit 1 trong 8 bit s l chn th ta ghi vo bit s 9 l 0 trong trng hp ngc li ta ghi vo bit s 9 l 1. Nu ta dng parity l th khi tng s bit 1 trong 8 bit s l chn th ta ghi vo bit s 9 l 1 trong trng hp ngc li ta ghi vo bit s 9 l 0. Cc cng vic trn c th thc hin bng chng trnh nhng nu thc hin bng mch in t chuyn dng th s thu c kt qu nhanh hn rt nhiu. Trong thc t ngi ta ch to ra nhng vi mch chuyn dng dng trong vic kim tra parity nhm xc nh li ca b nh khi hot ng mt trong nhng vi mch ny l mch to parity v pht hin li parity 74AS280. chc nng ca mch c m t trn hnh 5.22. Cch hot ng ca mch nh sau : nu ta a 9 bit d liu vo 9 u vo ca vi mch ny th tu theo s lng cc bit 1 ca d liu m ta 0s thu c u ra Even (chn) v u ra Odd (l) cc gi tr nh c cho trong bng bn cnh m 74LS139 c chc nng gn ging 74LS138 m chng ta ni phn trc. Trong s ny ta dng parity l. tc l khi s bt 1 ti cc u vo A-H ca 74AS280 A l chn (u vo mt ni t) th ta ghi 1 b nh parity, ngc li th ta ghi 0 ti . Khi c s liu, bt paraty c a n u vo I ca 74AS280 B. Nh vy nu cc bt c c ti cc chn t A-H l khng i th u ra Even ca 74AS280 B l 0 v khng xut hin yu cu ngt MNI. Vi s mch trn hnh 5.23 ta c kh nng pht hin sai ti 1 bt no ca t nh.

[Type text] Trang

136

[Type the document title]


B us D (D0-D7) 280 B R eset CL R Q D E ven A -H 1 E ven A -H 1 D WR RD A 0-A 11 WR 280 A

CL K RD B us A

A 0-A 11
1 A 1 B * 193 1E y3 RD WR A 11 A 12 A 13 A B C y0 y1 A 0-A 10 D 0-D 7 y0 ( 2016 la K B ) 2

* 138 G2A G2B G1 A 14 - A 19 +5 V y7

8 x 2016
( 2016 la K B ) 2

Hnh 5.23. S 16KBSRAM c trang b b kim tra parity.

Trong thc t tn ti nhng mch rt phc tp c kh nng pht hin sai v sa sai dng cho cc b nh cho cc vi my tnh (v d mch 74LS636, vi 5 bt parity ghi thm vo t nh 8 bt ca b nh, c kh nng pht hin sai ti 2 bt v t ng sa sai i vi trng hp c li ti mt bt). Nu so snh vi SRAM th vic phi ghp CPU vi DRAM s phc tp hn v ta cn phi c thm cc mch dn knh a ch v mch lm ti. Nh ta bit phn trc, mun cho cc thng tin lu gi ti DRAM (trn cc phn t nh kiu t in MOS) c bo ton th theo nh k 15,6 s mi phn t nh ca DRAM phi c lm ti li mt ln. Cc mch nh DRAM thng c 2 ch lm ti. + Lm ti c mng: mt mng cc phn t gm 128-256 (hoc 512) hng c chn ra c lm ti c 2-4ms (hoc 8ms) 1 ln. + Lm ti tng hng: vi tc sao cho m bo mi phn t u c lm ti trong gii hn 15,6 s. Vic lm ti mi phn t nh thc hin bng cch ghi hoc c mt lot cc nh. S lng bt c lm ti cng mt lc ph thuc vo t chc bn trong ca mi mch nh. Mt chu k lm ti c [Type text] Trang 137

[Type the document title]


bit l mt chu k khi vic lm ti l cng vic ni b ca DRAM v c hon tt trong khi cc b phn khc ca b nh vn ang lm vic. iu ny c thc hin nh vic a ra cc tn hiu a ch hng v dng xung R S nhm chn ra mt hng cc phn t cn c lm ti (RAS only refresh). A Xung R S s khin cho dng nh chn lm ti c c v ghi li. a ch lm ti c ly t mt A b m 7,8 (hoc 9) bt tu theo kch thc ca mch nh cn lm ti, ni dung ca b m ny c tng ln sau mi chu k lm ti sao cho tt c cc dng u c lm ti trong thi gian nh (hnh 5.24). Kiu lm ti ny cn c gi l lm ti n v trong lc lm ti mt vng no ca DRAM th b vi x l vn c ghi/c vng nh khc.. i vi DRAM ni chung cc nh ch to cu trc mch sao cho thi gian lm ti cho 1 phn t l 1,5 s. Cc cng vic phi lm khi phi ghp DRAM vi vi x l l: + Dn knh 2 loi tn hiu a ch cho mi mch nh v cung cp xung cho php cht a ch R S v C S . A A + Cung cp cc tn hiu iu khin vic ghi/ c b nh. + Lm ti mi hng trong thi gian thch hp. + m bo khng c trang chp trong hot ng ghi/c bnh thng ca CPU vi cng vic lm ti. lm n gin vic phi ghp CPU-DRAM, cc nh sn xut vi mch cung cp cc b iu khin DRAM thc hin cc chc nng ca mch dn knh cho a ch hng, ct v mch lm ti m khng nh hng nhiu n hot ng bnh thng ca h vi x l.
RAS

CAS

c.hag n

c.hag n

c.hag n khog quan ta n m cho RAM TM34464 (64K 4).

Hnh 5.24. Chu k lm ti

R S A

B iu khin DRAM Chng ta s gii thiu s qua ti y b iu khin DRAM TMS 4500A. Trn hnh 5.25 l s khi ca b iu khin DRAM. Trong TMS 4500A c b dn knh a ch, b m a ch lm ti v cc b phn to xung ring cn thit cho vic lm ti. M t cc chn tn hiu ca b iu khin DRAM TMS 4500A + RA0-RA7 [I]: a ch hng., thng c ni vi b a ch ti cc chn a ch thp A0-A7. + CA0- CA7 [I]: a ch ct, thng c ni vi bus a ch ti cc chn a ch cao.A8- A15. + MA0-MA7[O]: a ch cho vi mch nh, c ni trc tip vi DRAM ti cc chn a ch A 0A7. + ALE [I]: Cho php cht cc tn hiu a ch hng, a ch ct REN1 v C . S [Type text] Trang

138

[Type the document title]


+ C .[I]: Xung chn mch bt u vic ghi/c DRAM, c ni qua b iu khin trong thi S im sn xung ca xung ALE. + REN1 [I] : Chn 1 trong 2 khi nh DRAM ni vi b iu khin (REN=1) th chn RA SO , REN1=0 th chon R S 1 A + A R [I]: Sn ln ca xung ny kt thc vic c. Thng c ni vi R trong ch C D MN. + A W [I]: Sn ln ca xung ny kt thc vic ghi. Thng c ni vi W trong ch C R MN. + CLK [I]: u vo cho xung ng h (ni vi CLK ca PCU).
RAO-RA7 Cho t ch ng a ha

ALE MUX Cho t ch t a co

MAO-MA7

CAO-CA7

Bo m e

ALE CS REN 1 ARC ACW REFERQ Tro g ta n i RDY Cho t tn hie cho u n RAS1 Ta nh o p va ie u khie n MAO-MA7

CAS

TWST FS0 FS1 Ta xung o la ti m

CLK

Hnh 5.25. B iu khin DRAM TMS 4500A

[I, O] : Xung vo iu khin vic bt u chu k lm ti hoc xung ra bo cho ERQ + RF E bn ngoi bit b nh ang c lm ti. A A + R S 0, R S1 [O] : Cc chn cho php cht a ch hng ca RAM. + C S [O]: Chn cho php cht a ch ct ca DRAM. A + RDY [O]: RDY = 0 khi DRAM ang c lm ti (ni n RDY ca 8284).
[Type text] Trang 139

[Type the document title]


+ TWST [I]: (Timing/wait strap) chn trng thi ch v cc thng s thi gian khc khi TWST = 1 th CPU s phi xen thm 1 trng thi ch khi ghi/c. + FSO,FS1 [I]: cng vi TWST chn ch v tn s lm vic (bng 5.6). Hot ng ca TMS 4500A Trn hnh 5.26 l mt th d ng dng ca b iu khin DRAM TMS 4500A trong mch nh gm 4 4464 to nn b nh 128 KB bt u ti a ch 00000H. Cn lu cch s dng cc chn REN1 ni vi A16 chn ra 2 mnh 64KB v C ni vi mch NAND t 2 mng nh vo vng S a ch nh. Cc chn TWST FS1 v FSO c t l 0,1 v 1 khng c trng thi ch v vic lm ti c tin hnh sau 61 chu k ng h v ko di trong 4 nhp ca xung lm ti. Vi tn s f CLK = 5 MHz th nhp lm ti cho mi hng l 12,2 s (xp x vi gi tr c ni n ti phn trc l 15,6 s). Khi b iu khin lm ti nh th RDY = 0 v CPU b a vo trng thi ch. Bng 5.6. Chn ch ca TMS 4500A. TWST 0 0 0 0 1 1 1 1 FS1 0 0 1 1 0 0 1 1 FSO 0 1 0 1 0 1 0 1 S trng thi ch 0 0 0 0 1 1 1 1 Chu k lm ti ngoi Tclk 31 Tclk 46 Tclk 61 Tclk 46 Tclk 61 Tclk 76 Tclk 76 Tn s xung lm ti(KHz) REFREQ 64-95 64-85 64-82 64-85 64-80 64-77 64-88 S nhp cho 1 ln lm ti 4 3 3 4 3 4 4 4

[Type text] Trang

140

[Type the document title]


RA0-RA7 MA0-MA7 CA0-CA7 2X4464
RAS0

A0-A7

ALE REN1 ACR ACW TNS 4500A

RAS CAS

CAS

A0-A7 CS CAS RDY CLK TWST RAS1 FS FS 1K RAS 2X4464 + 5V

Hnh 5.26. TMS 4500A v 128 KB DRAM ti a ch 00000FH-1FFFFH Hnh 5.27 m t cc xung ca b iu khieenr khi n hot ng. Cn lu l xung yu cu lm ti c t bn trong mch, c to ra sau 61 chu k ng h v phi ch cho chu k bus hin ti c hon tt th mi c tc dng.

[Type text] Trang

141

[Type the document title]


1 2 3 4 1 W W W 2 3 4 1 2

CLK

ALE

ACR ACW

Hag n

ch t a co

La ti m

ch t a co

Hag n

RES

CAS

REF-REQ

RDY

Hnh 5.27. Biu thi gian ca b iu khin TMS 4500A 3. Phi ghp 8088 vi thit b ngoi vi 3.1. Cc kiu phi ghp vo/ra [Type text] Trang 142

[Type the document title]


i vi 8088 (hay h 80x86 ni chung) c 3 cch phi ghp CPU vi cc thit b ngoi vi (cc cng vo/ra, I/O) : a) thit b ngoi vi c khng gian a ch tch bit vi b nh v b) thit b ngoi c khng gian a ch chung vi b nh. Thit b vo/ra c khng gian a ch tch bit Trong cch phi ghp ny, b nh c c quyn dng 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. Tt nhin ta phi dng tn hiu IO/M, v cc lnh trao i d liu mt cch thch hp cho mi khng gian (xem hnh 5.28a). 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 8088 c kh nng a ch ha. Cc thit b ngoi vi s chim mt vng no trong khng gian 1MB, phn cn li l ca b nh. Tt nhin trong trng hp ny ta dng chung tn hiu IO/ M =0 v lnh trao i d liu kiu lnh MOV cho c b nh v thit b ngoi vi (xem hnh 5.28.b) 3.2. Gii m a ch cho thit b vo/ra 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 bit ti A0-A7, trong mt s h vi x l khc (nh cc my IBM PC) cc cng c 16 bit ti A0 - A15. Tu theo di ca ton hng trong lnh l 8 hay 16 bit ta sn xut c 1 cng 8 bit 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 bit A0-A7 v mch gii m thng dng c sn 9nh 74LS138 chng hn) to ra cc xung chn thit b. Cc mch gii m n gin c th to c t mch NAND nh hnh 5.29. 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. Th d trn hnh 5.30 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. B gii m nh vy c minh ho trn hnh 5.31.
A 11 A 12 A 13
AO-A7

A B C G2B RD IO/M G2A G1

y0 y1 y2 y3 y4 y5 y6 y7

ISP

A 11 A 12 A 13
AO-A7

A B C G2B G2A G1

ISP

WR IO/M

y0 y1 y2 y3 y4 y5 y6 y7

ISP

ISP

Hnh 5.30. Cc b gin m vi a ch 00-07 cho a) cng vo ; b) cng ra.


A 0 A 1 R D
A 2 -A 6 A 7

W R

y0 y1 IS P 7C y2 y 3 IS P 7F y4 G 2 Ay 5 O S P 7 C G 1 y6 G 2 By 7 O S P 7 S A B C

Hnh 5.31. Mt b gii m cho cng vo v cng ra vi a ch 7CH-7FH

[Type text] Trang

143

[Type the document title]


3.3. 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 nn t cc mch cht 8 bit c u ra 3 trng h (74LS373: kch theo mc; 74LS374: kch theo sn), cc mch khuch i m 2 chiu 8 bit 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 bus hoc cc mch cng to ra cc tn hiu mc ni... Trn hnh 5.32 l v d mt mch phi ghp n gin dng mch 74LS373 a tn hiu ra iu khin cc n LED bng lnh OUT 7CH, AL.

DO

D Q G

QO DIEU KHIEN LED

BusD

D7

373

Q7

OSP7C

OC

Hnh 5.32. Mt mch phi ghp ra n gin dng 74LS373 Trn hnh 5.33 l v d mt mch phi ghp n gin dng mch 74LS244 c tn hiu t thit b ngoi vi vo CPU bng lnh IN Al,7CH.
DO QO TOI BUSD CUA CPU

TU THIET BI VAO

D7 244 ISP7C OC1 OC2

Q7

[Type text] Trang

144

[Type the document title]


Hnh 5.33. Mt mch phi ghp ra n gin dng 74LS244 Ngoi cc mch phi ghp n gin trn, trong thc t cn c cc mch phi ghp lp trnh c dng cho cc cng vic t chc vo/ra d liu phc tp hn. 3.4. Mch phi ghp vo/ra song song lp trnh c 8255A Mch 8255A thng c gi l mch phi ghp vo/ra lp trnh c (program mable peripheral interface, PPI). Do kh nng mm do trong cc ng dng thc t n l mch phi ghp c dng rt ph bin cho cc h vi x l 8-16 bit. S khi m t chc nng bn trong ca 8255A c th hin trn hnh 5.34. Cc chn tn hiu ca 8255A c ngha kh r rng. Chn Reset phi c ni vi tn hiu reset chung ca ton h (khi reset th cc cng c nh ngha l cng vo khng gy ra s c cho cc mch iu khin). CS c ni vi mch to xung chn thit b t mch 8255A vo mt a ch c s no . cc tn hiu a ch A0, A1 s chn ra 4 thanh ghi bn trong 8255A 1 thanh ghi ghi t iu khin cho hot ng ca 8255A (vit tt l CWR, control word register) v 3 thanh ghi khc ng vi cc cng (port) l PA, PB, PC ghi/c d liu (xem bng 5.7). Theo bng ny ta nhn thy a ch cho PA cng chnh l a ch c s ca 8255A. C 2 loi t iu khin cho 8255A: + T iu khin nh ngha cu hnh cho cc cng PA, PB, PC + T iu khin lp/xa tng bit u ra ca PC
PAO-PA7 Bus nobo i NHO A M CO G A N

ie khie u n NHO A M NHO A M COG C N DO-D7 e m BusD (CAO) PC4-PC7

NHO B M COG C N (THA) P RD WR AO A1 RESET CS Logic ie khie u n ghi / o c NHO B M CO G B N ie khie u n NHO B M

PCO-PC3

PBO-PB7

Hnh 5.34. S khi cu trc bn trong ca 8255A

[Type text] Trang

145

[Type the document title]


C S

1 0 0 0 0

A1 x 0 0 1 1

A0 x 0 1 0 1

Chn ra khng chn PA PB PC CWR

T iu khin nh ngha cu hnh

Dng thc ca t iu khin nh cu hnh c th hin trn hnh 5.35. T iu khin lp/xo bit ra PCi: Dng thc ca t iu khin lp/xo PCi c th hin trn hnh 5.36. Lp/xo 0 0 0 0 S/R M ho PCi 1: lp PCi 000 : PC0 0: xo PCi ... 111 : PC7 Nh ta thy trn, cc ch (mode) lm vic ca mch cng 8255A c th c nh ngha bng t iu khin CWR. C th 8255A c 4 ch lm vic: + Ch 0: "Vo/ra c s" (cn gi l "vo ra n gin"). Trong ch ny mi cng PA. PB. PCH v PCL u c th c nh ngha l cc cng vo hoc ra. + Ch 1: "Vo/ra c xung cho php". Trong ch ny mi cng PA. PB c th c nh ngha thnh cng vo hoc ra vi tn hiu mc ni (handshaking) do cc bit tng ng ca cng PC trong cng nhm m nhim. + Ch 2: "Vo ra 2 chiu".Trong ch ny ch ring cng PA c th c nh ngha thnh cng vo/ra 2 chiu vi cc tn hiu mc ni do cc bit ca cng PC m nhim. Cng PB c th lm vic trong ch 0 hoc 1. + Lp/xo cc bit PCi: ch ny c th thy r trn hnh 5.36. Sau y ta s gii thiu c th cc ch lm vic 0, 1 v 2 ca 8255A. Ch 0:"Vo/ra c s" Trong ch ny, bn cng PA, PB, PCH, PCL u c th c nh ngha l cng vo hoc cng ra. Nh vy, vi t hp tt c cc kh nng vo/ra cho 4 cng ta c c 16 cu hnh khc nhau.

[Type text] Trang

146

[Type the document title]


Ch 1: "Vo/ra c xung cho php"
PA-PA INTEA PA-PA INTEA

PC7

OBFA

PC4

STBA

PC6

ACKA

PC5

IBFA

WR INTEA

PC3

INTRA

RD INTEA

PC3

INTRA

PC1

OBFB

PC2

STBB

PC2

ACKB

PC1

IBFB

PC0

INTRB

PC0

INTRB

PB-PB PC4,5 I/O

PB-PB PC6,7 I/O

Hnh 5.37. Mch 8255A ch 1 v cc tn hiu trng thi. n gin ta coi PA v PB cng c nh ngha l cng ra hoc cng vo. Ra d liu trong ch 1 (hnh 5.37 a) y PA v PB cng c nh ngha l cng ra v c tn hiu mc ni tng ng nhau cho vic trao i d liu. Ta ch cn gii thiu y cc tn hiu cho PA, cc tn hiu cho PB cng tng t: + 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 S B ca thit b nhn. T + 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 i thoi-trng thi k trn u c th ly trc tip c t cc chn tng ng ca vi mch hoc c c vo CPU thng qua vic c cng PC (xem hnh 5.37c thy trng thi c c khi 8255A c nh ngha ch 1). [Type text] Trang 147

[Type the document title]


Vo d liu trong ch 1 (hnh 5.37 b) y PA v PB c nh ngha l cng vo v c cc tn hiu mc ni tng ng nhau cho vic trao i d liu. Ta ch cn gii thiu y cc tn hiu cho PA, cc tn hiu cho PB cng tng t: + S B (Cho php cht d liu): Khi d liu sn sng c c vo bng PA, thit b ngoi T vi phi dng S B bo cho 8255A bit m cht d liu. T + 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. + INTRA (yu cu ngt t cng PA): 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 (xem biu quan h gia cc tn hiu trong hnh 5.39). + 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 PC4 ca PC. Mt s trong cc tn hiu i thoi-trng thi k trn u c th ly c trc tip t chn tng ng ca vi mch hoc c th c c vo CPU thng qua vic c PC (xem hnh 5.37d). Cac tn hiu i thoi-trng thi c th c s dng lm tn hiu mc ni cho cc kiu vo/ra d liu bng cch ngt CPU hay bng cch thm d trng thi sn sng ca thit b ngoi vi (s c trnh by trong cc phn sau). Ch 2: "Bus 2 chiu" (hnh 5.40) Trong ch ny ch ring cng PA c nh ngha lm vic nh mt cng 2 chiu c cc tn hiu mc ni do mt s bit ca PC m nhim, cn PB th c th lm vic ch 1 hoc 0 tu theo cc bit iu khin trong CWR. Cc chn tn hiu cn li ca PC c th c nh ngha lm vic nh cc chn vo hoc ra, hoc phc v cho cng PB.

[Type text] Trang

148

[Type the document title]


PA-PA PA-PA

PC3

INTRA

PC3

INTRA

PC7 PC6 INTE1 PC5 PC4 INTE2

OBFA ACKA

PC7 PC6 INTE1 PC5 PC4 INTE2 PB-PB

OBFA ACKA

IBFA STBA

IBFA STBA

WR RD

PB-PB I/O

PC1 WR RD PC2 PC0

OBFB ACKB INTRB

PC-PC

Hnh 5.40. 8255A ch "Bus hai chiu". Mt s tn hiu mc ni c bit cn gii thiu ca PA gm: + INTRA: Yu cu ngt cho d liu theo hai chiu vo v ra. + INTE1 v INTE2 l 2 tn hiu ca 2 mch lt bn trong 8255A cho php/cm yu cu ngt ca cng PA. Cc bit ny c lp/xo bi cc bit PC6 v PC4 ca cng PC. Biu thi gian ca cc tn hiu mc ni ca 8255A c biu hin trn hnh 5.41. Mt s trong cc tn hiu i thoi-trng thi k trn u c th ly c trc tip t chn tng ng ca vi mch hoc c th c c vo CPU t cng PC v cho php iu khin vic trao i d liu bng cch thm d cc tn hiu ny. Khi dng 8255A trong ch bus 2 chiu trao i d liu theo cch thm d ta phi kim tra xem bit OBFA c bng 1 (m ra rng) hay khng trc khi dng lnh IN c d liu vo t cng PA. Sau y l mt vi v d v cch lp trnh cho 8255A. V d 1: Gi thit mch 8255A c cc a ch sau: a ch 7Ch 7Dh 7Eh 7Fh [Type text] Trang Thanh ghi (cng) PA PB PC CWR

149

[Type the document title]


Lp trnh nh ngha ch 0 cho 8255A vi cu hnh cc cng nh sau: PA: Ra PB: Vo PCH: Ra PCL: Vo Sau c cc gi tr d liu c ti PB ri a ra PA v PCL ri a ra PCH. Gii: C th nh ngha cc hng cho cng, thanh ghi t iu khin v cho t iu khin nh lnh gi EQU: PA EQU 7CH PB EQU 7DH PC EQU 7EH CWR EQU 7FH CW EQU 83H ; t iu khin cho yu ; cu trn 83H=10000011 v sau dng hng vo vic nh ngha cu hnh cho 8255A: MOV AL, CW ; t iu khin trong AL OUT CWR, AL ; a CW vo CWR IN AL, PB ; c cng PB OUT PA, AL ; a d liu c c ra cng PA IN AL, PC ; c cng PCL MOV CL, 4 ; s ln quay AL ROL AL, CL ; chuyn 4 bit thp thnh 4 bit cao OUT PC, AL ; a d liu c c ra cng PCH V d 2: Lp trnh bit PC4 ca 8255A v d trn to ra 256 xung vi T=50ms, rng 50%. Gi thit c sn chng trnh con tr 25ms l TRE25MS. Gii: S dng cc k hiu v d trn v cc nh ngha mi PC4ON PC4OF EQU 09H EQU 08H ; t iu khin PC4=1 (On): 00001001B ; t iu khin PC4=0 (Off): 00001000B

ta c mu chng trnh sau: MOV CX, 100H CLI Lap: MOV AL, PC4ON OUT PC, AL CALL TRE25MS ; s xung phi to ra ; cm ngt yn tm m ; to xung ; t iu khin cho PC4=1. ; PC4=1 ; ko di 25ms.

[Type text] Trang

150

[Type the document title]


MOV AL,PC4OFF CALL TRE25MS STI ... ; PC4=0 ; Lp cho s xung ; cho php ngt tr li

Trong v d trn ta ch lnh CLI ( cm ngt) v lnh STI ( cho php ngt) u v cui on chng trnh tnh thi gian to ra dy xung. iu ny l cn thit v ta dng chng trnh to ra cc khong thi gian v v th ta mun cc yu cu ngt (nu c) khng nh hng ti vic to ra cc khong thi gian . V d 3: c mch 8255A vi a ch c s l 30H ni vi cc phn t ngoi vi n gin (hnh 5.42). Lp trnh c U1>U2 th c trng thi cng tc K, nu K ng th cho n LED tt, K m th cho n LED sng. Gii: Ta phi nh ngha cc hng v t iu khin nh ngha cu hnh: PA l vo, PB l vo v PC H l ra. Khi U1>U2 th ta c c PB7=1 (cn khi U 1 U 2 th PB7=0). Lc ny ta phi c trng thi cng tc K iu khin n LED, nu K ng th ta c c PB7=0 v ta phi a ra PC4=) tt n. nh ngha cc hng PA PB PC CWR CW EQU EQU EQU EQU EQU 30H 31H 32H 33H 92H

; t iu khin cho yu ; cu trn 92H=10010010

on chng trnh cn li l: MOV AL, CW ; t iu khin trong AL OUT CWR, AL ; a CW vo CWR DocPB: IN AL, PB ; c cng PB AND AL, 80H; PB7=1? JZ DocPB ; c li IN AL, PA ; c cng PA And AL, 01H ; kho K ng (PA1=0)? JZ Tat ; ng, tt n MOV CL, 4 ROL AL, CL ; i bit0 ln bit4 OUT PC, AL ; a tn hiu thp n Tat: OUT PC, AL ; a tn hiu tt n Ra:...

[Type text] Trang

151

[Type the document title]


CHNG 6 : VO RA D LIU BNG CCH THM D 1. Gii thiu chung v cc phng php iu kin vo/ra d liu

Sau khi trnh by v cc mch thng dng cho vic phi ghp CPU vi thit ngoi vi ta s tin hnh nghin cu cc phng thc iu khin vic trao i d liu. Cc mch phi ghp vo / ra trnh by trc y c th c ng dng phc v cho mch ch ny. Ni chung ngi ta phn bit ra 3 phng php iu khin vo/ra d liu: vo/ra d liu iu khin bng cch thm d trng thi sn sng ca thit b ngoi vi. vo/ra d liu iu khin bng cch ngt b vi x l. vo/ra d liu iu khin bng phn cng ph thm nhp trc tip vo b nh. Mi phng php iu khin vo/ra d liu ni trn c nhng c im khc nhau v s c ng dng trong cc hon cnh khc nhau. Mt trong nhng cch iu khin n gin nht m chng ta xem xt trong chng ny l phng php thm d (polling) trng thi sn sng lm vic ca thit b ngoi vi trc khi thc hin vo/ra d liu. Cc phng php iu khin vo ra d liu khc s c gii thiu trong cc chng sau.
2. Vo/ra d liu bng phng php thm d.

Vn iu khin vo/ra d liu s tr thnh rt n gin nu thit b ngoi v lc no cng sn sng ch 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 sng 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 phi c dnh ring cho vic trao i d liu v n phi lin tc kim tra trng thi sn sng ca thit b ngoi vi thng qua cc tn hiu mc ni (handshake signal). Cc tn hiu ny c ly t cc mch phi, do ngi thit k to ra, cho chng trnh thm d hot ng trn . Sau y l th d mt cch to ra tn hiu mc ni v lu thut ton ca chng trnh dng cho vic trao i d liu gia CPU v thit b ngoi vi (hnh 6.1) Trong th d ny cho vn n gin, ta gi thuyt CPU ch lm vic vi 1 thit b vo v 1 thit b ra. Vic t chc phi ghp c thc hin trn cc mch IC c va ta theo gii cc tn hiu. Mt cng vo s 0 (c a ch 00) c dng c trng thi sn sng ca 2 thit b ngoi vi ni trn. Tn hiu sn sng ca thit b ngoi vi s 1 (cng vo 01) c t vo bit D0, tn hiu sn sng ca thit b ngoi vi s 2 (cng ra 02) c t vo bit D1. Cc bit ny s c gi tr 1 khi thit b ngoi vi tng ng trng thi sn sng lm vic vi CPU v chng s c a vo bus
[Type text] Trang

152

[Type the document title]


d liu khi CPU c n bng lnh c cng vo s 0. Chng trnh trao i d liu s kim tra cc bit bo sn sng ny v s c cc p ng ph hp. M t hot ng ca phn mch vo d liu Khi thit b vo s 1 c byte s liu cn trao i, n a ra xung STB cho php mch cht 8 bit ly byte d liu ng thi kch cho mch lt D (mch to tn hiu sn sng ) lm vic. CPU s thm d trng thi sn sng ca thit b vo s 1 qua bit DO khi n c cng 00. n khi CPU c 1 byte d liu vo th ng thi n xa lun mch to trng thi sn sng chun b cho ln lm vic ti vi 1 byte d liu khc. Tng t ta cng c th d dng thy c cch hot ng ca phn mch th hai ca hnh 6.1 vi chc nng a d liu ra thit b s 2. Lu thut ton cho chng trnh vo/ra d liu ca cng s 01/02 theo s mc ni trn hnh 6.2 c th hin hnh 6.2 a) v b) ng lin nt. V d Lp chng trnh theo lu trn hnh 6.2 thc hin vic c vo d liu mi khi cng 01 bo sn sng ri s l s liu . C 100 s liu phi c nh vy (gi thuyt c sn chng trnh con x l d liu c tn Xuly) Gii C mi ln nhn c tn hiu bo sn sng ca cng 01 ta gi chng trnh con Xuly. Thn ca chng trnh hon thnh cng vic ni trn (theo lu trn hnh 6.2a ng lin nt) c th c cu trc sau : MOV CX, 100 ; s d liu phi c trong cx Lap : IN AL, 0 ; c cng 00 kim tra c sn sng TEST AL, 1 ; thit b s 01 sn sng? JZ Lap ; cha, quay li thm d tip IN AL, 1 ; sn sng, c cng 01 CALL xuly ; x l d liu LOOP Lap ; cha ht, quay li thm d tip Ra:........ Trong trng hp thit b vo/ra hot ng theo cch khc : c sn sng bo cho CPU c/ghi nhiu byte d liu cng 1 lc th ta c nhnh chng trnh i theo ng t qung. Lc ny ta phi sa i i cht c trong phn mch to ra tn hiu mc ni ln trong phn chng trnh cho ton h thng lm vic ng. Trong th d trn, nu thay v cc mch IC c va (cc mch cng 3 trng thi v cht 8 bit) ta dng mch 8255A phi ghp CPU vi thit b ngoi vi. Vic c (thm d) trng thi ca cc tn hiu mc ni ch n gin l c cc bt tng ng ca cng PC. Trn hnh 6.3 l th d mt ng dng ca 8255A phi ghp vi CPU 8088 trong vic vo/ra d liu theo kiu thm d trng thi sn sng ca thit b ngoi vi. Trong th d ny ta cha s dng n chc nng ca cc tn hiu mc ni INTR ny c ni vo chn INTR ca 8088 th ta c kh nng thc hin mt kiu phi ghp khc vo/ra d liu. l iu khin vo/ra d liu bng cch ngt CPU. Cch iu khin vo/ra d liu kiu ny s c trnh by chng sau.
[Type text] Trang

153

[Type the document title]


CHNG 7 : NGT V X L NGT TRONG H 8088 1. S cn thit phi ngt CPU Trong cch t chc trao i d liu thng qua vic thm d trng thi sn sng ca thit b ngoi vi nh c trnh by chng trc, trc khi tin hnh bt k mt cuc trao i d liu no CPU phi ton b thi gian vo vic xc nh trng thi sn sng lm vic ca thit b ngoi vi. Trong h thng vi x l vi cch lm vic nh vy, thng thng CPU c thit k ch yu ch l phc v cho vic vo/ra d liu v thc hin cc x l lin quan. Trong thc t ngi ta rt mun tn dng kh nng ca CPU lm thm c nhiu cng vic khc na, ch khi no c yu cu trao i d liu th mi yu ci CPU tm dng cng vic hin ti phc v vic trao i d liu. Sau khi hon thnh vic trao i dliu th CPU li phi quay v lm tip cng vic hin ang b gin on. Cch lm vic theo kiu ny gi l ngt CPU (gin on hot ng ca CPU) trao i d liu. Mt h thng vi cch hot ng theo kiu ny c th p ng rt nhanh vi cc yu cu trao i d liu trong khi vn c th lm c cc cng vic khc. Mun t c iu ny ta phi c cch t chc h thng ao cho c th tn dng c kh nng thc hin cc chng trnh phc v ngt ti cc a ch xc nh ca CPU. Khi nghin cu cc tn hiu ca CPU 8088, chng ta thy vi mch ny c cc chn tn hiu cho cc yu cu ngt che c INTR v khng che c NMI, chnh cc chn ny s c s dng vo vic a cc yu cu ngt t bn ngoi n CPU. 2. Ngt trong h vi x l 8088 2.1. Cc loi ngt trong h 8088 Trong h vi x l 8088 c th xp cc nguyn nhn gy ra ngt CPU vo 3 nhm nh sau: + Nhm cc ngt cng : l cc yu cu ngt CPU do cc tn hiu n t cc chn INTR v NMI. Ngt cng INTR l yu cu ngt che c. Cc lnh CLI v STI c nh hng trc tip ti trng thi ca c IF trong b vi x l, tc l nh hng ti vic CPU c nhn bit yu cu ngt ti chn ny hay khng. Yu cu ngt ti chn INTR c th c kiu ngt N nm trong khong 0-FFH. Kiu ngt ny phi c a vo bus d liu CPU c th c c khi c xung INTA trong chu k tr li chp nhn ngt. Biu thi gian ca cc xung lin quan n qu trnh trn c m t trn hnh 7.1. + Nhm cc ngt mm: khi CPU thc hin cc lnh ngt dng INT N, trong N l s hiu (kiu) ngt nm trong khong 00-FFH (0-255). + Nhm cc hin tng ngoi l: l cc ngt do cc li ny sinh trong qu trnh hot ng ca CPU nh php chia cho 0, xy ra trn khi tnh ton. Yu cu ngt s c CPU kim tra thng xuyn ti chu k ng h cui cng ca mi lnh. Trn hnh 7.2 trnh by mt cch n gin a c s hiu ngt N vo bus d liu trong khi cng to ra yu cu ngt a vo chn INTR ca b vi x l 8088. Gi thit trong mt thi im nht nh ch c mt yu cu ngt IRi c tc ng v khi u ra ca mch NAND s c xung yu cu ngt n CPU. Tn hiu IRi c ng thi a qua mch khuch i m to ra s hiu ngt tng ng, s hiu ngt ny s c CPU c vo khi n a ra tn hiu tr li INTA .

AD7 [Type text] Trang

Bng 7.1. Cho ta quan h gia IRi v s hiu ngt N tng ng. IR6 IR5 IR4 IR3 IR2 IR1 IR0 N

154

[Type the document title]


1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 FEH (254) FDH (253) FBH (251) F7H (247) EFH (239) DFH (223) BFH (191)

Ta s cn cp n vic x l trng hp c 2 yu cu ngt IRi cng mt lc v cch a cc gi tr N ca INTN vo bus d liu mt cch t ng bng mch iu khin ngt PIC phn sau. 2.2. p ng ca CPU khi c yu cu ngt Khi c yu cu ngt kiu N n chn CPU v nu yu cu c php, CPU thc hin cc cng vic sau: 1. SP SP-2, {SP} FR, trong {SP} l nh do SP ch ra. (ch ra nh mi ca ngn xp, ct thanh ghi c vo nh ngn xp) 2. IF 0, TF 0. (cm cc ngt khc tc ng vo CPU, cho CPU chy ch bnh thng) 3. SP SP-2, {SP} CS. (ch ra nh mi ca ngn xp, ct phn a ch on ca a ch tr v vo nh ngn xp) 4. SP SP-2, {SP} IP (ch ra nh mi ca ngn xp, ct phn a ch lch ca a ch tr v vo nh ngn xp) 5. {N*4} IP, {N*4+2} CS (ly lnh ti a ch mi ca chng trnh con phc v ngt kiu N tng ng trong bng vect ngt) 6. Ti cui chng trnh phc v ngt, khi gp lnh IRET {SP} IP, SP SP+2 {SP} CS, SP SP+2 {SP} FR, SP SP+2 (b vi x l quay li chng trnh chnh ti a ch tr v v vi gi tr c ca thanh ghi c c ly ra t ngn xp). V mt cu trc chng trnh, khi c ngt xy ra th chng trnh chnh (CTC) lin h vi chng trnh con phc v ngt (CTCPVN) nh m t trn hnh 7.3. Trong thc t cc ngt mm INT N bao trm cc loi khc bi v Intel quy nh mt s kiu ngt c bit c xp vo u dy ngt mm INY N nh sau: + INT 0 : Ngt mm do php chia cho s 0 gy ra, + IN T1 : Ngt mm chy tng lnh ng vi trng hp c TF=1, + IN T2 : Ngt cng do tn hiu tch cc ti chn NM1 gy ra, + IN T3 : Ngt mm t im dng ca chng trnh ti mt c ch no + IN T4 : (Hoc lnh INTO) : ngt mm ng vi trng hp c trn OF=1. Cc kiu ngt khc cn li th c dnh cho Intel v cho ngi s dng (IBM khng hon ton tun th cc quy nh ny khi ch to cc my PC/XT v PC/AT0: + INT 5-INT 1FH; dnh ring cho Intel trong cc b vi x l cao cp khc, [Type text] Trang

155

[Type the document title]


+ INT 20H-INT FFH: dnh cho ngi s dng. Cc kiu ngt N trong INT N u tng ng vi cc a ch xc nh ca CTCPVN m ta c th tra c trong bng cc vect ngt. Intel quy nh bng ny nm trong RAM bt u t ic h 00000H v di 1 KB (v 8088 c tt c 256 kiu ngt, mi kiu ngt ng vi 1 vect ngt, 1 vect ngt cn 4 byte cha a ch y cho CS:IP ca CTCPVN). Bng 7.2. Bng vect ngt ca 8088 ti 1KB RAM u tin 03FEH-03FFH CS ca CTPVN INT FFH 03FCH-03FDH IP ca CTPVN INT FFH 0082H-0083H 0080H-0081H 000AH-000BH 0008H-0009H 0006H-0007H 0004H-0005H 0002H-0003H 0000H-0001H CS ca CTPVN INT 20H IP ca CTPVN INT 20H CS ca CTCPVN INT 2 IP ca CTCPVN INT 2 CS ca CTCPVN INT 1 IP ca CTCPVN INT 1 CS ca CTCPVN INT 0 IP ca CTCPVN INT 0

Trn bng 7.2. gii thiu mt phn ca bng vect ngt ca CPU 8088 2.3. X l u tin khi ngt: C mt vn rt thc t t ra l nu ti cng mt thi im c nhiu yu cu ngt thuc cc loi ngt khc nhau cng i hi CPU phc v th CPU x l cc yu cu ngt nh th no? Cu tr li l CPU x l cc yu cu ngt theo th t u tin vi nguyn tc ngt no c mc u tin v phc v trc. Ngay t khi c ch to (thng gi l ngm nh) CPU 8088 c kh nng phn bit cc mc u tin khc nhau cho cc loi ngt (theo th t t cao xung thp) nh sau: + ngt ni b : INT 0 (php chia cho 0), INT N, INTO ... cao nht + ngt khng che c NMI + ngt che c INTR + ngt chy tng lng INT 1 ... thp nht thy r hot ng ca CPU trong c ch ngt u tin ny ta c th ly mt v d c th nh sau. Gi thit ti mt thi im no , trong khi CPU ( trng thi cho php ngt vi co IF=1) ang thc hin php chia v c li xy ra do s b chia bng 0, ng vo lc CPU cng nhn c yu cu t u vo INTR. CPU s x l ra sao trong trng hp ny? Theo th t u tin ngm nh trong vic x l ngt ca CPU 8088 th INT 0 c mc u tin cao hn INTR, v vy u tin CPU s thc hin chng trnh phc v ngt INT 0 p ng vi li c bit cho php chua cho 0 gy ra v c IF b xa v 0. Yu cu ngt INTR s t ng b cm cho ti khi chng trnh phc v ngt INT 0 c hon tt v tr v nh IRET, c IF c c tr li. Tip theo CPU s p ng yu cu ngt INTR bng cch thc hin chng trnh phc v ngt dnh cho INTR. 2.4. Mch iu khin ngt u tin 8259A Trong trng hp c nhiu yu cu ngt che c t bn ngoi phi phc v t thng dng vi mch c sn 8259A gii quyt vn u tin. mch 8259A c gi l mch iu khin ngt u tin (priority interrupt controller, PIC). l mt vi mch c ln lp trnh c, c th x l trc c 8 yu [Type text] Trang 156

[Type the document title]


cu ngt vi 8 mc u tin khc nhau to ra mt yu cu ngt a n u vo INTR (yu cu ngt che c ca CPU 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. Cc khi chc nng chnh ca 8259A + 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 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 bus d liu. + m bus d liu: dng phi ghp 8259A vi bus 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. 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 8080. Ta c th thy r v hiu c ngha ca chng ngay trn hnh 7.4. Ngoi cc tn hiu ny ra, cn c mt s tn hiu c bit khc ca 8259A cn phi gii thiu thm gm: + Cas0-Cas2 [I,O]: l cc u vo i vi cc mch 8259A th hoc cc u ra ca mch 8259A ch dng khi cn ni tng tng thm cc yu cu ngt cn x l. P N + S / E [I,O]: khi 8259A lm vic ch khng c m bus d liu th y l tn hiu vo dng lp trnh bin mch 8259A thnh mch th ( SP = 0) hoc ch ( SP =1); khi 8259A lm vic trong h vi x l ch c m bus d liu th chn ny l tn hiu ra E dng m m bus d liu N 8088 v 8259A thng vo bus 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 8088. + INTA [I]: ni vi tn hiu bo chp nhn ngt INTA ca CPU. PIC 8259A ch ( ch khng m ni vi CPU 8088 ch MIN Trn hnh 7.5 l s ni mch PIC 8259A lm vic c lp (mch ch) vi bus CPU 8088 lm vic ch MIN. PIC 8259A ch ni vi PCU 8088 ch MAX. Nu h vi x l 8088 lm vic ch MAX thng ta phi dng mch iu khin bus 8288 v cc m bus cung cp cc tn hiu thch hp cho bus h thng. Mch 8259A phi lm vic ch c m ni c vi bus h thng ny. Trn hnh 7.6 l v d mt s CPU 8088 ch MAX ni vi PIC 8259A. Trong mch ny ta nhn thy tn hiu a ch cho 8259A c ly ra t bus h thng trong khi tn hiu d liu ca n c ni vi bus d liu ca vi x l vatf c thng qua cc m ni vo bus h thng. Hnh 7.6. Ni CPU 8088 ch MAX vi PIC8259A 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 n cc t iu khin khi u (ICW) v tip sau l cc t iu khin hot ng (OCW).

[Type text] Trang

157

[Type the document title]


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 trogn cc mc sau. 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 (xem hnh 7.7 thy r th t ghi v iu kin ghi cc iu khin ICW vo 8259A). Dng thc ca cc thanh ghi iu khin khi u ICW c biu din trn hnh 7.8. Trn hnh ny ta thy bn cnh cc bit d liu ca t iu khin khi u ICW ta cn ghi r thm c gi tr c th ca A0 tng ng cho mi ICW . u vo a ch A0 v th t ghi s gip ta phn bit ra cc thanh ghi khc nhau bn trong PIC ghi d liu cho cc t iu khin. V d A0 = 0 l du hiu nhn bit rng ICW1 c a vo thanh ghi c a ch chn trong PIC, cn khi A0 = 1 th cc t iu khin khi u ICW2, ICW3, ICW4 s c a vo cc thanh ghi c a ch l trong mch PIC. o ICW1 Bit D0 ca ICW1 quyt nh 8259A s c ni vi h vi x l no. lm vic vi h 16-32bit (8088 hoc h 80 86) th ICW nht thit phi c IC4 = 0 (v nh vy cc bit ca ICW4 s b xa v 0). Cc bit 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. Cc bit c nh du x l khng quan trng v thng c ly gi tr 0 lp trnh cho cc ng dng sau ny. o ICW2 T iu khin khi u ny cho php chn kiu ngt (s hiu ngt) ng vi cc bit T3-T7 cho cc u vo yu cu ngt. Cc bit 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 bit 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 bit 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 mch th cho ni vo. Mch th s so snh m s ny vi m s nhn c Cas2-Cas0. Nu bng nhau th s hiu ngt s c a ra b 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 gia 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. [Type text] Trang

158

[Type the document title]


ICW4 T iu khin khi u ny ch dng n khi trong t iu khin ICW1 c IC4 = 1 (cn thm ICW4) Bit MPM cho ta kh nng chn loi vi x l lm vic vi 8259A. Bit MPM = 1 cho php cc b vi x l t 8086/88 hoc cao hon lm vic vi 8259A. Bit 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 bit 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 (bit 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 . Bit BUF cho php nh ngha mch 8259A lm vic vi CPU trong trng hp c m hoc khng c m ni vi b h thng. Khi lm vic ch c m (BUF = 1). Bit 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 b h thng. Bit 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. Cc t iu khin hot ng OCW Cc t u 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 hot ng s wowcj ghi vo cc thanh ghi trong PIC khi A0 = 0,tr OCW1 c ghi khi A0 = 1. Dng thc ca OCW wocj trinh by trn hnh 7.9 OCW1 OCW1 dng ghi gi tr ca cc bit mt n vo thanh ghi mt n ngt IMR. Khi mt bit 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) OCW2 Cc bit 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 bit L2,L1,L0 Trc khi ni v cc cch kt thc yu cu ngt cho cc ch ta cn m du ngoc y gii thiu cc ch lm vic ca 8259A. a. 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. [Type text] Trang

159

[Type the document title]


Trong ch u tin c nh tai 1 thi im ch c 1 yu cu ngt i c phc v (bit 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. A0 D7 OCW1 D6 D5 D4 D3 D2 D1 D0 I M7 M6 M5 M4 M3 M2 M1 M0 Mt n ngt ti cc yu cu ngt 1: C mt n 0: Khng c mt n A0 D7 OCW2 D6 D5 D4 D3 0 R SL 0 1 0 0 0 1 1 1 D2 EO I D1 D0 0 0

L2

L1

L0

Kt thc

Ngt (EOI i mc u tin t ng i m..t ch danh

0 0 1 1 0 1 1 0

M ha mc u 1 Lnh EOI thng 1 Lnh EOI ch ch danh (*) tin ngt b 1 i mc u tin khi c EOI thng.tc ng 0 Lp ch quay khi c EOI t ng 000.mc 0 Xa ch quay khi c EOI t ng 0 1 0 i mc u tin khi c EOI ch 111 ...mc 7 danh (*) 0 Lnh lp tc u tin (*)
Khng lm g

(*) dng t hp L2 L1 L0 OCW3 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0

ERIS RIS

10: dc IRR ln c sau 11: c ISR ln c sau Thm d hin trng ca yu cu ngt 1: c m mc u tin cao nht ln c sau Ch mt n c bit 10: Xa ch mt n c bit 11: Lp ch mt n c bit Hnh 7.9. Dng thc ca cc t iu khin hot ng OCW b.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 bit 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 thi c c phc v . [Type text] Trang 160

[Type the document title]


c. ch quay (i) mc u tin ch ch danh : ch ny ta cn ch r (ch danh) u vo IRi no ,vi i=L 2L1L0,c gn mc u tin thp nht ,u vo IRi+1 s uc t ng gn mc u tin cao nht . By gi ta ng du ngoc c ra m trn v tr li cc vn lin quan n OC WC.ta s ni r vic cc bit R,Slv SOI 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 (xem thm hinh 7.9) . 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 .mch 8259 A s xc nh yu cu ngt Iri va c phc v v xo bit 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 cn phc v ngt phi co lnh EOI ch ch danh t trc lnh tr v IRET cho 8259A . mch 8259A xo ch danh bit ISRi ,vi i=L2L1L0 to iu kin cho chnh yu cu ngt ny hoc cc ngt khc c mc u tin thp hn c th c tc ng. 3. Quay (i) mc u tin khi kt thc yu cu ngt thng: chng trnh con phc v ngt phi c lnh EOI t trc lnh tr v IRET cho 8259A. Mch 8259A s xc nh yu cu ngt th i va c phc v. Xa bit ISRi tng ng v gn lun mc u tin thp nht cho u vo IR, ny cn u vo IRi+1 s wocj gn mc u tin cao nht. Thanh ghi ISR trc khi IR4 c chp nhn (0: mc u tin cao nht, : Mc u tin thp nht) IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 Trng thi ca ISR 0 1 0 1 0 0 0 0 Mc u tin 7 6 5 4 3 2 1 0 Thanh ghi ISR sau khi IR4 c chp nhn v sau khi c lnh quay: (o: mc u tincao nht,7: mc u tin thp nht) Trng thi ca ISR Mc u tin IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0 0 1 0 0 0 0 0 0 2 1 0 7 6 5 4 3

Hnh 7.10.ISR v mc u tin vi lnh quay khi kt thc ngt thng . 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 7.10 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 bit ISRi ca yu cu ngt tng ng v gn lun mc u tin thp nht cho u vo Iri, vi i = L2 L1 L0. Yu cu ngt IRi+1 s c gn mc u tin cao nht. OCW3 [Type text] Trang 161

[Type the document title]


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 . D7 D6 D5 D4 D3 D2 D1 D0 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0

a) IRR Isi = 0: yu cu ngt i khng c phc v ISi = 1: u vo i c yu cu ngt D7 b) ISR D6 D5 D4 D3 D2 D1 D0 IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0

Isi = 0: yu cu ngt i khng c phc v Isi = 1: yu cu ngt i ang c phc v

Hnh 7.11. Dng thc ca thanh ghi yu cu ngt v thanh ghi phc v. Cc thanh ghi IRR v ISR c th c c sau khi np vo 8259A t iu khin OCW3 vi bit ERIS = 1: bit RIS = 0 s cho php c IRR. Bit RIS = 1 s cho php c ISR. Dng thc ca cc thanh ghi ny wocj biu din trn hnh 7.11a v 6.11b Bng vic a vo 8259A t iu khin OCW3 vi bit P = 1 ta c th c c trn bus 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 hnh 7.12. D7 D6 D5 D4 D3 I D2 D1 D0 X X X X W2 W1 W0

1: ang c yu cu ngt m s ha ca yu cu ngt 0: KHng c yu cu ngt (X: khng ) Hnh 7.12 Dng thc ca t thm d trng thi yu cu ngt C th gi y l ch thm d yu cu ngt v ch ny thng wocj 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. Tm li, mun dng ch thm d ca 8259A xc nh yu cu ngthin ti ta cn lm cc thao tc ln lt nh sau: - Cm cc yu cu ngt bng lnh CLI - Ghi t lnh OCW3 vi bit P = 1 - c t thm d trng thi yu cu ngt trn bus d liu . [Type text] Trang

162

[Type the document title]


Bit ESMM = 1 cho php 8259A thao tc vi ch mt n c bit. Bit 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 bit SMM = 0. Mt n c bit khng nh hng ti cc yu cu ngt vi mc u tin cao hn.) Cui cng c ci nhn mt cch c h thng v hot ng ca h vi x l vi CPU 8088 v PIC 8259A khi cso 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 8088. 2. 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. 8088 a ra xung INTA th hai n 8259A 5. Xung INTA th hai khin 8259A a ra bus d liu 1 byte cha thng tin v s hiu ngt ca yu cu ngt va c nhn bit. 6. 8088 dng s hiu ngt tnh ra a ch ngt ca vect ngt tng ng . 7. 8088 ct FR, xa cc c v TF v ct a ch tr v CS:IP vo ngn xp. 8. 8088 ly a ch CS:IP ca chng trnh phc v ngt t bng vect ngt v thc hin chng trnh . Mt s v d lp trnh vi 8259A V d 1: Lp trnh cho 8259A lm vic voi CPU 8088 ch c (n l), trong h c m Bus, ch u tin c nh v vi EOI thng, IR kch theo mc, tn hiu IR0 c gn s hiu ngt l 50H. Gii T hnh 7.8 v cn c theo cc yu cu ca bi ton ta c th t iu khin khi u nh sau : ICW1 = 00011011 = 1BH D0 = 1 Cn thm ICW4 D1 = 1 Lm vic n l, khng cn ICW3 D2 = 0 Lm vic vi h 8086/88 D3 = 1 u vo IR n theo mc D4 = 1 Bt buc vi ICW1 D5 = D6 = D7 =0 gn bng 0 cho h 8086/88 ICW2 = 01010000 = 50H V cc bit T1 - T3 ca ICW2 phi m ha tr s 50H IR0 - IR7 c m ha tip bi cc Bit T2 T0 = 000 ICW3 khng cn m ICW4 = 00001101 = 0DH D0 = 1 lm vic vi h s 8086/88 D1 = 0 EOI thng (phi c EOI trc IRET) D3 D2 = 11 Lm vic ch ch trong h c m Bus [Type text] Trang

163

[Type the document title]


D4 = 0 Ch u tin c nh D5 = D6 = D7 = 0 Lun bng 0 cho ICW4 V d 2 : Vit chng trnh khi u cho mch 8259A v d trn nu n c ni vi 8088 theo s trn hnh 7.6 vi a ch F0H v F1H Gii on chng trnh khi u cho mch ny c th l: MOV AL,1BH ;ICW1 OUT OFOH, AL ;ICW1 a ra cng FOH MOV Al,50H;ICW2 OUT OF1H,AL ;ICW2 a ra cng F1H MOV AL, ODH ;ICW4 OUT OF1H, AL ;ICW4 a ra cng F1H V d 3: Gi thit ti chn IR3 ca mch 8259A trn c tn hiu yu cu ngt .Ti chng trnh con phc v cho yu cu ngt ny c cn phi c lnh kt thc ngt (EOI) khng ? nu c th hy vit ra cc lnh . Gii: Gi thit ti IR3 c tn hiu yu cu ngt v CPU tr li chp nhn ngt. 8259A s lp Bit ISR3 = 1 ghi nh l yu cu ngt IR3 ang c phc v. V trc ta nh ngha ch kt thc ngt bnh thng cho 8259A, nn trong chng trnh con phc v ngt ca yu cu ngt ny ta phi c lnh kt thc ngt EOI a n 8259A xa Bit ISR3 pc lp trc , to iu kin cho cc yu cu ngt khc vi mc u tin thp hn hoc cho chnh yu cu ngt mi ti chn IR3 c thi c c phc v. Dng thng thy ca 1 chng trnh con phc v ngt kiu ny c th nh sau (ta ch ch nhn mnh n cc lnh cui lin quan n EOI): Phuc vu IR3 Proc ; thn ca chng trnh con phc v ngt . MOV AL20 ;OCW2 vi EOI kt thc OUT OFOH, AL ; a OCW2 n 8259A . IRET ; tr v chng trnh chnh phuc vu IR3Endp V d 4: Gi thit vn s dng s trn hnh 7.6 v cc s liu nh cc v d trc. H ny bnh thng lm mt cng vic g , nhng khi c yu cu ngt IR3 ta phi c 100 d liu cng 70H, nhn i mi d liu c c ri a ra cng 71H ( cho n gin ta coi d liu khi c v c khi nhn i vn cha c trong 1 Byte) Gii Hnh 7.13 biu din lu ca chng trnh thc hin cng vic ni trn. chun b cho cng vic trn chng trnh chnh phi c bt u bng cc lnh khi u cho 8259A nh trong cc v d trc, tip theo l cng vic c th t ra cho chng trnh chnh. Trong chng trnh con phc v ngt

[Type text] Trang

164

[Type the document title]


ta phi c cc gi tr vo v nhn i ri a ra cng. Trc khi kt thc chng trnh con tr li chng trnh chnh ta phi c cc lnh kt thc yu cu ngt (EOI) cho 8259A nh v d 3. Gi thit rng chng trnh con phc v ngt xong sau khi dch ra m my s c np vo ROM v li a ch C0000H. Khi mun cho chy chng trnh ta phi vo a ch ng vi Vect ngt 53H v thay i ni dung ca Vect ny sao cho 2 0014CH, 0014DH cha 0000H v 2 tip theo 0014EH, 0014FH cha C000H (a ch chng trnh con phc v ngt) . Nh vy mi khi c yu cu ngt ti chn IR3 ca 8259A th chng trnh con phc v ngt c kch hot. Thn ca chng trnh cha s cha cc lnh nh sau: CLI ;cm cc ngt MOV AL, 1BH ; ICW1 OUT OFOH,AL ; ICW1 a ra cng FOH MOV AL, 50H ; ICW2 OUT OF1H, AL ; ICW2 a ra cng F1H MOV AL, ODH ;ICW4 OUT OF1H,Al ; ICW4 a ra cng F1H MOV AL, 0 ; tho mt n cho cc IR OUT OF1H, Al ;OCW1 a n 8259A STI ; cho php ngt ; Cc cng vic ca chng trnh chnh y Chng trnh con phc v ngt IR3 c dng sau : Phucvu IR3 Proc PUSH AX PUSH BX PUSH CX IN AL,OF1H MOV BL, AL MOV AL,0F7H OUT OF1H, AL MOV CL,100 TIEP: IN AL, 70H SHL AL, 1 OUT 71H,AL LOOP TIEP MOV AL, BL OUT 0F1H,AL MOV AL, 20 OUT OFOH, AL POP CX POP BX POP AX [Type text] Trang ; Ct cc thanh ghi ; c mt n ngt ; Ct mt n ; Ch cho php yu cu IR3 ; c tc ng ; 100 s liu phi thao Tc ; c vo mt s liu ; nhn i ri ; a ra cng ; Ly li mt n c ; a mt n c n 8259A ; OCW2 vi EOI kt thc ; a OCW2 n 8259A ; ly li cc thanh ghi

165

[Type the document title]


STI IRET Phucvu IR3 ; cho php ngt tr li ; tr v chng trnh chnh Endp

Trong chng trnh con trn ta x l mt n ngt kh cn thn. V trong chng trnh chnh, sau khi khi u cho mch 8259A ta cho php tt c cc ngt c th tc ng v v chng trnh chnh khi hot ng c th thay i cc mt n khc ca 8259A (tr mt n ca IR3), nn ti chng trnh con trong khi phc v yu cu ngt IR3 ta ct gi tr ca cc mt n ngt hin thi rid ng lnh che cc yu cu ngt khc i v ch yu cu ngt IR3 c nhn bit. Khi x l xong cc cng vic ta phi tr li gi tr mt n ngt c cho 8259A ri mi tr v chng trnh chnh. 3. Ngt trong my IBM PC V cc my IBM PC c s dng rt rng ri nn ti cui chng ny ta s trnh by s lc cu trc ngt trong cc my . 3.1 Ngt trong my IBM PC/XT Bng 7.3 Cc ngt chnh ca IBM PC/XT INT N? 0 1 2 3 4 5 6.7 8 9 A B C D E F ... 60 - 66 a ch 00E3 : 3072 0600 : 08ED F000 : E2C3 0600 : 08E6 0700 : 0174 F000 : FF34 F000 : FEA5 F000 : E987 Dnh cho Php chia cho 0 Chy tng lnh NMI im dng Trn khi lm vic vi s c du In mn hnh (BIOS) dnh IRQ0 ca 8259A (ngt BIOS ca ng h) IRQ1 ca 8259A (ngt BIOS ca bn phm) IRQ2 ca 8259A ( dnh) IRQ3 ca 8259A ( dnh cho COM 2) IRQ4 ca 8259A ( dnh cho COM 1) IRQ5 ca 8259A ( dnh cho a cng) IRQ6 ca 8259A (cho a mm) IRQ7 ca 8259A (cho my in LPT1) ... Dnh cho ngi s dng

F000 : EF57 0070 : 0147 ...

Trong my IBM PC/XT cc t chc ngt c th tm lt nh trn bng 7.3 . My IBM PC/XT c s dng 1 mch PIC 8259A. Cc u vo IRi ca mch ny c s dng ht gn cho cc thit b ngoi vi c th nh bn phm, mch ng h thi gian thc ... khi khi ng, mch PIC 8259A ca my IBM PC/XT c ghi vi cc t iu khin khi u sau (ghi vo cng 20H v 21 H) + ICW1 = 13H ; Kch sn, n l, cn 1 ICW4 + ICW2 = 08H ; Kiu ngt 8 [Type text] Trang 166

[Type the document title]


+ ICW3 khng cn + ICW4 = 09H ; C m, 8086, EOI trc IRET

Cc ngt dnh cho ngi s dng vi INT 60H INT66H.Nu s dng cc ngt ny cho cc cng vic ca mnh, ngi s dng phi c thm cc mch ph a yu cu ngt n CPU v a s hiu ngt N vo BUS d liu cho CP c khi c tr li chp nhn yu cu ngt INTA . 3.2 Ngt trong my IBM PC/AT Trong cc my IBM PC/AT (vi cc CPU t 80286 tr i) Cu trc ca h thng c mt s thay i so vi my XT. L do chnh l cc my th h sau ngi ta s dng 2 mch PIC 8259A (so vi 1 PIC vi cc my XT) m rng kh nng qun l 1 s ln hn cc yu cu ngt thng qua PIC. S ni ca cc mch PIC 8259A ch v th nh trn hnh 7.14 Vic gn ct yu cu ngt IRQ cho cc ngt INT N c th hin trn abngr 7.4 . Cc ngt INT N cn li cng ging nh my IBM PC/XT . Bng 7.4. Cc IRQ ca cc my PC/AT IRQ IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ015 INT N? INT08H INT09H INT0AH INT0BH INT0CH INT0DH INT0EH INT0FH INT70H INT71H INT72H INT73H INT74H INT75H INT76H INT77H Dnh cho B m 8254 t TC Bn phm Yu cu ngt t 8259A th COM 2 COM 1 Cng my in song song LPT2 iu khin a mm Cng my in song song LPT1 CMOS ca ng h thi gian thc nh hng li bng chng trnh v INT0AH Dnh cho ngi s dng Dnh cho ngi s dng Chut ca PS/2 ng x l ton hc a cng Dnh cho ngi s dng

Sau khi khi ng CPU ghi cc t iu khin vo PIC nh sau: * PIC ch (cng 20H v 21H) + ICW1 = 11H ; kch sn,ch , cn ICW4 + ICW2 = 8 ; Kiu ngt 8 + ICW3 = 04H ; Ch c th mc 2 + ICW4 = 01H ; ch khng c m, 80 x 86,EOI trc IRET. * PIC th (cng A0H v A1H) + ICW1 = 11H ; Kch sn,th , cn ICW4 + ICW2 = 70H ; Kiu ngt 70H [Type text] Trang 167

[Type the document title]


; Th c ch mc 2 ; Th khng c m 80 x 86, EOI trc IRET. Vic s dng kh nng ngt trn my vi tnh IBM PC vo/ra d liu khi c yu cu theo kiu nh v d trc cng c th thc hin c nhng phi c cc thay i trong chng trnh cho ph hp vi cu trc ngt c th trong mi loi my. V ni dung cc vect ngt ca cc my c th khc nhau cht t do c s khc nhau gia cc phin bn DOS v BIOS do ta phi tham kho ti liu c th ca tng my thc hin c tt vic t chc chng trnh. Hn na v phn cng cc my AT v XT c cu trc ngt hi khc nhau nn vic t chc vo/ ra d liu bng ngt li cng phi c xem xt cn thn. V mt chng trnh th chng trnh chnh v chng trnh con phc v ngt u phi c ti vo b nh RAM ca my di s kim sot ca DOS nn ta phi vit chng di dng thch hp sao cho trong khi chng trnh chnh lm vic m c yu cu ngt th chng trnh con phc v ngt c th c gi hot ng. * V d 5 : Gi thit ta vn phi thc hin cng vic nh v d trc nng phn cng by gi l my IBM PC/XT. H ny bnh thng lm 1 cng vic g , nhng khi c yu cu ngt ta phi c 100 d liu cng 70H, nhn i mi d liu c c ri a ra cng 71H ( cho n gin ta coi d liu khi c v c khi nhn i ch c trong 1 Byte) Gii Nh ni phn trc, vo ra d liu bng cch ngt CPU trong my IBM PC/XT . M khng phi lo vic a s hiu ngt N vo Bus d liu trong chu k INTA ta c th tn dng tn hiu IRQ2 khe cm m rng v dng cc mch cng d a d liu vo Bus d liu. Trong cc my IBM PC/XT, mch 8259A c khi u khi my bt u lm vic, do vy trong chng trnh chnh ta ch cn a vo cc vect ngt (bt u ti a ch 0000 : (0AH x 4)) tng ng vi IRQ2 a ch ca chng trnh con phc v ngt. Trong chng trnh con phc v ngt ta phi c cc gi tr vo ri nhn i v a ra cng . Trc khi kt thc chng trnh con tr li chng trnh chnh ta phi c cc lnh kt thc yu cu ngt (EOI) cho 8259A nh v d trc. Chng trnh chnh v chng trnh con c dng nh sau: * Model small * Stack 100 * Code Main Proc MOV AX, 0 ; khi to ES MOV ES, AX CLI ; cm ngt a a ch MOV WORD PTR ES:002AH,SEG phucvu IRQ2 MOV WORD PTR ES:0028H,Offset phucvu IRQ2 STI ; cho php ngt tr li; cng vic ca chng trnh chnh bt u y MOV AH,4CH ; tr v DOS INT 21H Main Endp PhucvuIRQ2 Proc PUSH AX ; ct li thanh ghi PUSH CX [Type text] Trang + ICW3 = 02H + ICW4 = 01H

168

[Type the document title]


MOV CL,100 TIEP: IN, AL, 70H SHL AL,1 OUT 71H, AL LOOP TIEP MOV AL, 20 OUT 20H,AL POP CX POP AX STI IRET PhucvuIRQ2 Endp END Main ; 100 s liu phi thao tc ; c vo 1 s liu ; nhn i ri ; a ra cng ; OCW2 vi EOI kt thc ; a OCW2 n 8259A ; Ly li cc thanh ghi ; cho php ngt tr li ; tr v chng trnh chnh

[Type text] Trang

169

[Type the document title]

CHNG 8: VO /RA D LIU BNG DMA 1. Nguyn tc ca vic trao i d liu vi thit b ngoi vi bng cch thm nhp trc tip vo b nh (DMA) .

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 c ni n 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 . 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 (diret memory acces .DMAthm nhp vo b nh trc tip khng thng qua CPU) 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 thm nhp trc tip vo b nh ( dircet memory access con troller.DMAC) C th ly mt v d c th minh ho ii 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 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 thm nhp trc tip vo b nh ,ti mi vi mch CPU thng tn ti chn yu cu treo HOLD thit b ngoi vi , mi khi c yu cu dng b 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 bit vo trng thi tr khng cao )v a xung HLDA ra ngoi thng bo CPU cho php s dng b . S khi ca mt h vi x l c kh nng trao i d liu theo kiu DMA c th hin trn hnh 8.1

[Type text] Trang

170

[Type the document title]


Ta nhn thy trong h thng ny , khi CPU t tch ra khi h thng bng t treo (ng vi v tr hin thi ca cc cng tc chuyn mch ) trao quyn s dng bus cho DMAC phi chu trch nhim iu khin ton b hot ng trao i d liu ca h thng . lm c iu DMAC phi c kh nng to ra c cc tn hiu ii khin cn thit ging nh cc tn hiu ca CPU v bn thn n phi l mt thit b lp trnh c ( CPU dn d n bng cch a vo cc t iu khin trc khi n c th hot ng c lp ). Qua trinh 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 DRQ=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 bus 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. Trong thc t tn ti 3 kiu trao i d liu bng cch thm 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 bus trao i d liu . ta s ln lut gii thiu qua cc kiu trao i d liu ny . 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 th tc 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 co yu cu trao i d liu , n a DRQ =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 bus hin ti , sau d n treo c bus ca mnh v a ra tn hiu HLDA bo cho DMAC c ton quyn s dng bus. 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 bus a ch v a ra tn hiu MEMR=O c mt byte t b nh ra bus 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 . 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 mt mt s chu k ng h ). Do b ly i mt s chu k ng h nh vy ln tc thc
[Type text] Trang 171

[Type the document title]


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 Tn dng thi gian CPU khng dng bus 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 bus 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 bus v vic thm nhp trc tip b nh kiu ny khng nh hng g ti hot ng bnh thng ca CPU.
2.DMAC 8237A -5 trong h vi x l 8088. 2.1.tn hiu HOLD v HLDA trong CPU 8088.

Hai tn hiu dng yu cu treo v tr li chp nhn yu cu treo trong ch MIN ca CPU 8088 l HLDA.quan h gia hai tn hiu c th hin trn hnh 8.2.

Tn hiu yu cu treo HOLD c ly mu ti sn ln ca .xung ng h trc chu k T4 hoc T1. Khi nhn c yu cu treo .CPU kt thc chu k bus hin ti , a ra tn hiu HLDA v treo cc tn hiu ca bus .busd v bus c (tr tn hiu ALE=O) nhng quyn s dng cc bus ny choDMAC . Cn lu rng u vo HOLD c mc u tin cao hn cc u vo yu cu ngt INTR v MNI nhng li thp hn so vi u vo RESET. m bo vic ng b tn hiu yu cu treo ca thit b ngoi vi vi tn hiu ng h ca h thng trc khi a vo chn HOLD ca 8088 ngi ta thng dng mch trn hnh 8.3.

2.2. Mch DMAC 8237A -5ca Inter

Trc khi trnh by k v mch DMAC 8237A ca Inter ta ni qua v cc thay i cn c trong nhm tn hiu iu khin ghi/c ca h vi x l vi CPU 8088 ch MIN s dng c mch 8237A lm DMAC Nh trn hnh 8.1 th hin tng i r , th hin c chc nng DMA trong h ,bus iu ca h vi x l 8088 phi c thay i cht t c c cc tn hiu cn thit cho DMAC v cc b phn lkhc hot ng . chinhd l vic cc tn hiu RD.WD v IO/M c s dng ta cc tn hiu iu khin mi IOR.IOW .MEMR.MEMW.tng thch vi cc tn hiu ca DMAC 8237A -5.
[Type text] Trang

172

[Type the document title]


Hnh 8.4 trnh by mt kh nng to ra cc tn hiu iu khin nh vy dng mch dn knh 74LS257 . trong 74LS 257 gm 4 mch dn knh 2 ng . cc tn hiu RD.WD v IO/M c b tr sao cho khi u vo ca mch 74LS 257 l B=1 th ta lm vic vi thit b ngoi nhp vi cc xung IORv IOW ,ngc li khi B=0 th ta lm vic vi b nh vi cc xung MEMR.MEMW. Trn hnh 8.4 ta cn thy tn hiu AEN ca DMAC cng c dng kho cc tn hiu iu khin mi do CPU to ra khi DMAC nm quyn iu khin bus.

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 -5 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 8237 A-5 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 8.5 Mch DMAC 8237A -5 cha 4 knh trao i d liu DMA vi mc u tin lp trnh c .MAC 8237A -5 c tc truyn 1 MB/s cho mi knh , mt knh co th truyn mt mng c di 64KB . Gii thiu cc chn tn hiu ca 8237A -5 +CLK[I]:tn hiu ng h ca mch . mch c th lm vic tt vi h 8088 th tn hiu CLK ca h thng thng c o trc khi a vo CLK ca 8237A-5 +CS {I}:TN HIU CHN V CA 8237a-5 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 -5 C KHI NG RING THANH GHI MT L C LP CN CC B PHN SAU AY B XO :
[Type text] Trang 173

[Type the document title]


thanhghi lnh thanh ghi trng thi thanh ghi yu cu DMA thanh ghi tm thi mch lt byte u /byte cui (Firsst/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 +-DRQ3{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 khpi ng cc tn hiuny c nh ngh a l cc tn hiu kch hot mc cao . +DBO-BD7{I,O}:tn hiu hai chiu ni n bus a ch v bus 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 bit a ch cao A8-A15 ca mng nh d liu lch 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 .KHI L U VO N C DNG BT BUC 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 nay n thng dng nh mt yu cu ngt CPU x l vic kt thc qu trinh DMA +A0-A3{I,O}:l cc tn hiu hai chiu dng chn cc thanh ghi trong 8237A 5 khi lp trnh v khi c(u vo), hoc chuq 4 bit a ch thp nht ca a ch mng nh cn chuyn (u ra) A4-A7[0]:cc chn cha 4 bt a ch phn cao trong byte a ch thp ca a ch mng nh cn chuyn HRQ[0]: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 8088. DACK0 DACK3[0]: l cc tn hiu tr li cc yu cu DMA cho cc knh. Cc tn hiu ny c th c lp trnh hot ng theo mc thp hoc mc cao.sau khi khi ng, cc t hiu ny c nh ngha l cc xung tch cc thp. AEN[0]: tn hiu cho php mch ni vo DB0-DB7 cht ly a ch ca vng nh cn trao i theo kiu DMA. Tn hiu ny cng cho php cm cc mch m b a ch v d liu hoc mch to tn hiu iu khin ca CPU ni vo cc b tn ng khi DMAC hot ng. ADSTB[0]: xung cho php cht cc bit a ch phn cao A8-A15 c mt trn DB0-DB7. MM[0] v MEM[0]: l cc chn tn hiu do DMAC to ra v dng khi c/ghi b nh trong khi hot ng. Cc thanh ghi bn trong ca DMAC 8237A-5 Cc thanh ghi bn trong DMAC 8237A-5 c CPU 8088 chn lm vic nh cc bit a ch thp A0-A3. Bng 8.1 ch ra cch thc chn ra cc thanh ghi .
[Type text] Trang

174

[Type the document title]


Cc thanh ghi trong bn trn c th c ghi.cj hoc ch ghi vo v chng cha cc thng tin khc nhau lin quan n cch thc lm vic v cc thng s ca mi knh DMA. Trong bng 8.2 v 8.3 lit k 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-5 Bng 8.1. a ch cc thanh ghi bn trong ca 8237A5 Bng8.2. a ch cc thanh ghi trong ghi/ c a ch v ss t cn chuyn. Bng 8.3.a ch cc thanh ghi cho iu khin v trng thi. Ta s gii thiu qua cc c im ca mt s trong cc thanh ghi k trn. 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 y cha a ch .Khi 1 byte c truyn i. Cc thanh ghi ny t dng tng hay gim tu theo trc n c lp trnh nh th no. Thanh ghi s m hin thi: Thanh ghi 16 bt ny dng ch 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. Thanh ghi a ch c s v thanh ghi s m c s: Cc thanh ghi ny c dng cha a ch v s eems 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 d t khi u c c s dng hay khng. 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 c biu din trn hnh 8.6. Cc bt ca thanh ghi ny quyt nh cc phng thc lm vic khc nhau ca 8237A-5. Ta s gii thch sau y ngha ca cc bit. Bit 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 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). Bit 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. Bit D2 cho php DMAC hot ng hay khng. Bit D3 quyt nh byte cn chuyn c truyn vi 4hay 2 chu k ng h. Bit 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...) Bit D5 cho php chn thi gian ghibnh thng hay ko di cho tit b ngoi vi chm.
[Type text] Trang

175

[Type the document title]


Cc bit D6 v D7 cho php chn cc tnh tch cc ca cc xung DRQ0-DRQ4 v DACK0DACK4. + 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 trn hnh 8.7. 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(DRQ tr nn khng tch cc) Trong ch DMA chuyn tng byte, chng no vn cn yu cu DMA(DRQ vn l tch cc.) th DMAC a ra HRQ=0 trong thi gian 1 chu k bus sau mi ln chuyn sang 1 byte. Sau n li a ra HRQ=1. C nh vy DMAC v CPU lun phin nhau x dng bus 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 1 lc. Chn yu cu chuyn d liu DRQ khng cn phi gi c mc tch cc sut trong qu trnh chuyn. Ch ni tn c dng khi c nhiu b DMAC.c dng trong h thng m rng s knh c th yu cu DMA. + Thanh ghi yu cu: 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 c biu din trn hnh 8.8 7 6 5 4 X X X X 1.Thit lp yu cu 0: xa theo yu cu 3 X 2 1 0

00: chn knh 0 01: chn knh 1 10: chn knh 2 11: chn knh 3 Hnh 8.8 dng thc ca thanh ghi yu cu + Thanh ghi mt n ring cho tng knh: bng thanh ghi ny ta c th lp trnh cm (cho Bit mt n tng ng = 1) thay cho php hot ng (cho Bit mt n tng ng = 0) i vi tng knh mt . Dng thc ca thanh ghi mt n ring l cho tng knh c biu din trn hnh 8.9 . + Thanh ghi mt n tng hp: vi thanh ghi ny ta c th lp trnh cm (cho Bit mt n tng ng = 1) thay cho php hot ng (cho Bit mt n tng ng = 0) i vi tng knh ch bng mt lnh . Dng thc ca thanh ghi mt n tng hp c biu din trn hnh 8.10 7 6 5 4 3 2 1 0 X X X X X 1.Thit lp mt n 00: chn knh 0 0: xa theo mt n 01: chn knh 1
[Type text] Trang 176

[Type the document title]


10: chn knh 2 11: chn knh 3 (X: khng quan tm) Hnh 8.9. Dng thc ca thanh ghi mt n ring cho mi knh 7 6 5 4 3 X X X X 1.Lp mt n cho knh 3 0: xa mt n cho knh 3 1:Lp mt n cho knh 2 0: Xa mt n cho knh 2 2 1 0

1: Lp mt n cho knh 0 0 Xa mt n cho knh 0 1: lp mt n cho knh 1 0: xa mt n cho knh 1

Hnh 8.10. Dng thc ca thanh ghi mt n tng hp. - Thanh ghi trng thi : Thanh ghi ny cho php xc nh trng thi ca cc knh trong DMAC. Knh no trn 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 Dng thc ca thanh ghi trng thi c biu din trn hnh 8.11. Cc lnh c bit cho DMAC 8237A - 5 C 3 lnh c bit iu khin hot ng ca DMAC 8237A - 5 . 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 . 7 1. Knh 0 c yu cu 1: Knh 1 c yu cu 1: Knh 2 c yu cu 1: Knh 3 c yu cu 6 5 4 3 2 1 0

1: Knh 0 t s m 1: Knh 1 t s m 1: Knh 2 t s m 1: Knh 3 t s m

Hnh 8.11. Dng thc ca thanh ghi trng thi. + Lnh xa mch lt byte u/byte cui (First/Lt, F/L) : F/L l mt mch lt bn trong DMAC ch ra byte no trong cc thanh ghi 16 bit ch ra byte no trong cc thanh ghi 16bit (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 lnh xo ton b cc thanh ghi : lnh ny c tc ng nh thao tc khi ng . tt c cc thanh ghji u b xo ring thanh ghi mt n tng hp th c lp cm cc yu cu trao i d liu .
[Type text] Trang

177

[Type the document title]


lnh xo thanh ghi mt n tng hp :lnh ny cho php cc knh ca DMAC bt u yu cu trao i d liu . 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 -5: + 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 . Ni DMAC 8237A -5 vi CPU 8088 ch MIN Vic phi ghp mch 8237A-5 vi 8088 c th hin trn hnh 8.12 Tn hiu ca 8237A AEN-=O khi CPU kim sot hot ng ca ton h . cc bit a ch A 16 -A 19 v AO-A7 s c cht bi U1 v U3 a ra bit a ch . cc tn hiu iu khin dn xut t CPU cng c a ra bus iu khin bi mch dn knh U5 (74LS257). KHI DMAC nm quyn ch huy h thng th AEN =1 s cm cc cht U3 vU4 m thng t CPU ra bus . nhng li cho php cht U2 v m cht U4 ca DMAC cung cp cc bit a ch A16-A19 v A8-A15.cc bit a ch khc l A0-A7 v cc tn hiu MEMR.MEMR.IOR.IOW s c ly trc tip t DMAC. Xung ADSSTB s cho php m mch cht U4 a cc bit a ch A8-A15 . c cht t bit D ca 8237A -5. V DMAC 8237A -5 ch c kh nng cung cp cc bit a ch A16-A19 c ghi vo cht U2 (74LS373) nh lnh OUT vi a ch cng c gii m nh mch gii m a ch U6 , mch gii m a ch ny ng thi cng cung cp xung chn v cho 8237A -5 .trn hnh 8.12 cho vic gii thch tr nn n gin mi ch biu din cc cch to ta a ch cao nht cho mt knh ta c th dng vi mch chuyn dng 74LS 670 lm thanh ghi trang DMA cho c 4 knh ca DMAC . tat nhin ta phi ni li cc tn hiu cho ng . Mt v d truyn d liu gia hai vng nh Vic dng ch DMA chuyn d liu gia cc vng klhc nhau ca b cho php t c tc truyn cao hn so vi vic dng cc lnh chuyn d liu REP MOV SB ca CPU nu ly v d vi trng hp DMAC 8237A -5 v CPU 8088 5MHZth tc truyn ca DMAC cao hn c 2 ln . Sau y l mt v d s dng 8237A -5 chuyn d liu gia 2 vng nh . Gi thit ta phi chuyn s mt s byte s liu t vng nh c a ch l 10000H sang vng nh khc c ch u l 14000H trong mt h thng c s phnDMAC v CPU da trn hnh 8.12. Ta c th dng chng trnh Mem Trans.asm gii quyt cng vic ny .

[Type text] Trang

178

[Type the document title]

Trong chng trnh ny , u tin ta gi 4 bit a ch cao cht U1 , sau ta xo mch lt F/L ri gi a ch ca vng gc v vng ch ra cc thanh ghi tng ng ca knh o v knh 1.tip theo ta chn ch cho mi knh . ta phi a ra t iu khin cho DMAC lm vic oqr ch chuyn c mng .Knh 0 sau c cho php hot ng v kch hot ng bng chng trnh . trong qu trnh chuyn d liu ta kim tra thanh ghi trng thi dng chng trnh khi t s m (TC). CHNG TRNH Mem Trans.asm m

[Type text] Trang

179

[Type the document title]

[Type text] Trang

180

You might also like