Professional Documents
Culture Documents
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
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
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
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
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:
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
7 P
96 112
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
(
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
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.
12
13
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
16
17
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
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
21
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
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
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
24
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
26
27
28
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
30
31
32
33
34
35
36
37
38
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
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
40
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
42
43
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
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
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
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
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
48
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.
49
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
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
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
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
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
54
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
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
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
57
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
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
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
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
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.
; ; ; ;
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
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
; ; ; ; ; ; ; ;
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
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.
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.
65
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
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
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
68
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).
69
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
71
73
74
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
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
77
78
79
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
SS CS DS ES
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
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
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
84
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
87
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
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.
89
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
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.
91
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
93
94
95
96
97
98
99
(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
101
102
; 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
104
105
; 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
107
; 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.
108
109
110
111
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
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
112
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
;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
114
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.
115
ng h V ngun
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
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
117
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.
S2
S1
S0
Tn hiu
119
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
Bus a ch
A7 A6 A5 A4 A3 A2 A1 A0
LS373 G OC
LS245
Bus D liu
DIR
121
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
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
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
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
T1 CLK
Mt chu k ca bus T2 T3 Tw
T4
125
a ch
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
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
127
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
Vpp /PG M
O E
Vcc [V] +5 +5 +2 5 +5
D0 - D7
[V] +5 +5 +2 5 +2
0 1 0ms 0
0 X 5 1 0
/PG
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
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
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.
131
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
A0 - A9 276415 D0 - D7
O E
C E
A Y Y1 B Y2 C LS138 Y3
Y4
F0000-F1FFF
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
Cc u ra ca mch gii m
G2 A G2 B G1
Y5 Y6 Y
133
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
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
FE000FFFFF
135
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.
136
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
8 x 2016
( 2016 la K B ) 2
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
CAS
c.hag n
c.hag n
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
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
CLK
[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
140
A0-A7
RAS CAS
CAS
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.
141
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
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
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
143
DO
D Q G
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
Q7
144
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
145
1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
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.
146
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
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
148
PC3
INTRA
PC3
INTRA
OBFA ACKA
OBFA ACKA
IBFA STBA
IBFA STBA
WR RD
PB-PB I/O
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
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.
150
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
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:...
151
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
153
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
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
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
157
158
159
L2
L1
L0
Kt thc
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
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
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
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
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
163
164
165
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
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
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
168
169
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
170
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.
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
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
+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
175
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
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
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
178
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
179
180