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)..............................................................6 2. Cc php ton s hc i vi s h hai................................................................6 2.1. Php cng.......................................................................................................6 2.2. Php tr v s b hai.....................................................................................7 2.3 Php nhn.......................................................................................................9 2.4 Php chia.......................................................................................................10 3. M ASCII - m tiu chun cho trao i thng tin................................................12 4. Quan h gia m ASCII vi s BCD.....................................................................14 CHNG 2 : MY VI TNH V H THNG VI X L...................................................................16 1. T my tnh ln n my vi tnh.........................................................................16 1.1.My tnh ln...................................................................................................16 1.2. My tnh con.................................................................................................16 1.3.My vi tnh.....................................................................................................16 2. S pht trin ca cc b vi x l........................................................................17 2.1.Th h 1 (1971-1973)....................................................................................17 2.2.Th h 2 (1974-1977)....................................................................................17 2.3.Th h 3 (1978-1982)....................................................................................17 2.4.Th h 4 (1983-1999)....................................................................................18 3.Gii thiu s lc cu trc v hot ng ca h vi x l.....................................19 CHNG 3: B VI X L INTEL 8088...............................................................................................22 1.Gii thiu cu trc bn trong vhot ng ca b vi x l 8088.........................22 1.1.BIU V EU......................................................................................................22 2.Cch m ho lnh cab vi x l 8088................................................................30 3.Cc ch a ch ca b vi x l 8088..............................................................32 CHNG 4 : LP TRNH BNG HP NG VI 8088......................................................................83 1. Gii thiu chung ca chng trnh hp ng........................................................84 1.1. C php ca chng trnh hp ng..............................................................84 1.2. D liu cho chng trnh..............................................................................86 [Type text] Trang
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
Ly s cn i nhn vi 2, tch nhn c s gm phn nguyn v phn l nh phn, ly phn l nh phn ca tch thu c nhn tip vi 2. Lm nh vy cho ti khi c tch chn bng 1. Chn ring cc phn nguyn (phn trc du phy) ca cc tch thu c v sp xp li s c cc ch s sau du phy ca s h hai cn tm. V d: s 0.125 ra s h hai. Ta thc hin php nhn ln lt theo cc bc trn: 0,125 * 2 = 0 ,250 0,250 * 2 = 0 ,500 0,500 * 2 = 1 ,000 v thu c kt qu l 0,125 = 0,001B (phn c ng trong khung). Kt hp cc v d trn li, nu phi i s 34,125 ra h hai ta thu c kt qu cui cng l 34,125 = 100010,001 B. 1.2. S BCD (s h mi m ha bng h hai) Gia h mi v h hai cn tn ti mt h lai: h BCD cho cc s h mi m habng h hai (Binary Coded Decimal number), rt thch hp cho cc thit b do c thm phn hin th s u ra dng cc loi n hin s khc nhau. y ta dng 4 s h hai m ha mt s h mi c gi tr nm trong khong 0 ..9. Nh vy, y ta khng dng ht cc t hp c th c ca 4 bit. V tm quan trng ca cc s BCD nn cc b vi x l thng c cc lnh thao tc vi chng.
[Type text] Trang
Bng 1.1. Quy tc php cng y=a+b a b y C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 C: nh (Carry) V d: Cng h mi 11 099 095 194
[Type text] Trang
Cng h hai 1111 1110 0110 0011 0101 1111 1100 0010
6
s h mi theo
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.
[Type text] Trang 8
Trn c s quy tc va nu v cho n gin ta thc hin v d mt php nhn 2 s h hai vi di 4 bit lm sng t thut ton nhn. 1001 0110 0000 1001 1001 0000 0110110 S b nhn (9) S nhn (6) Thnh phn 1 ca tng tch lu Thnh phn 2 ca tng tch lu Thnh phn 3 ca tng tch lu Thnh phn 4 ca tng tch lu Tng tch lu (54)
di cc i ca kt qu trong trng hp ny l 8 bit. Nu ta c cc ton hng 8 (hoc 16) bit th di cc i ca kt qu l 16 (hoc 32) bit. Mi ln nhn 1 bit khc 0 ca s nhn vi s b nhn ta thu c chnh s b nhn. Nu dch tri n mt s ln tng ng vi v tr ca bit khc 0 trong s nhn, ta to ra 1 thnh phn ca tng tch lu. Tng ca cc thnh phn nh trn l kt qu ca php nhn. Phn tch k qu trnh trn ta thy php nhn c th thc hin theo thut ton cng v dch (trn c s cc b cng v dch) nh sau: Thnh phn u tin ca tng tch lu thu c l tch ca s LSB trong s nhn vi s b nhn. Nu LSB = 0 th thnh phn ny cng bng 0, cn nu LSB = 1 th thnh phn ny chnh bng s b nhn. Mi thnh phn th i tip theo ca tng tch lu s tnh c bng cch tng t, nhng phi dch tri i bit (c th b qua cc thnh phn bng 0). Tng ca cc tng thnh phn l tch cn tm. minh ho cho thut ton trn, ta dng lun n rt gn v d lm trc y nh sau: 1001 S b nhn (9) 0110 S nhn (6) 1001 S b nhn dch tri 1 ln 1001 S b nhn dch tri 2 ln 0110110 Tng tch lu (54) 2.4 Php chia
[Type text] Trang 10
11
Bit du T y ta rt ra 36/5 = 7 v d 1. 3. M ASCII - m tiu chun cho trao i thng tin Hexa- 0 decimal 0 <NUL> <DLE> <SP> 0 1 2 3 0 16 <SOH> <DC1> 1 1 7 <STX> <DC2> 2 18 <ETX> <DC3> 3
[Type text] Trang
6 ` 96 a 97 b 98 c 99
7 P 1 12 q 1 13 r 1 14 s 1 15
12
32 ! 33 34 # 35
48 1 49 2 50 3 51
19
13
a:
14
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.
15
18
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 vi d liu. Ngoi ra y cn c cc h thng mch in t rt phc tp gii m lnh v t to ra cc xung iu khin cho ton h.
[Type text] Trang 19
21
22
23
F1 D1 E1 F1 D1 E1 F1 D1 E1 (F : c lnh , D :Gii m lnh, E : Thc hin lnh) Hnh 3.2 : Dng lnh thng v dng lnh xen k lin tc
Trong b vi x l 8088 ta cn thy c cc thanh ghi 16 bit nm trong c hai khi BIU v EU, ngoi ra cng c mt s thanh ghi 8 hoc 16 bit ti EU. Ta s ln lt gii thiu cc thanh ghi ni trn cng chc nng chnh ca chng. *Cc thanh ghi on Khi BIU a ra trn bus a ch 20 bit a ch, nh vy 8088 c kh nng phn bit ra c 220 = 1.048.576 = 1M nh hay 1Mbyte, v cc b nh ni chung t chc theo byte. Ni cch khc: khng gian a ch ca 8088 l 1Mbyte. Trong khng gian 1Mbyte b nh cn c chia thnh cc vng khc nhau ( iu ny rt c li khi lm vic ch nhiu ngi s dng hoc a nhim ) dnh ring : Cha m chng trnh. Cha d liu v kt qu khng gian ca chng trnh. To ra mt vng nh c bit gi l ngn xp ( stack ) dng vo vic qun l cc thng s ca b vi x l khi gi chng trnh con hoc tr v t chng trnh con. Trong thc t b vi x l 8088 c cc thanh ghi 16 bit lin quan n a ch u ca cc vng ( cc on ) k trn v chng c gi l cc thanh ghi on ( Segment Registers ). l thanh ghi on m CS ( Code-Segment ), thanh ghi on d liu DS ( Data sement ). Thanh ghi on ngn xp SS ( Stack segment ) v thanh ghi on d liu ph ES ( Extra segment ). Cc thanh ghi on 16 bit ny ch ra a ch u ca bn on trong b nh, dung lng ln nht ca mi on nh ny l 64 Kbyte v ti mt thi im nht nh b vi x l ch lm vic c vi bn on nh 64 Kbyte ny. Vic thay i gi tr ca cc thanh ghi on lm cho cc on c th dch chuyn linh hot trong phm vi khng gian 1 Mbyte, v vy cc on ny c th nm cch nhau khi thng tin cn lu trong chng i hi dung lng 64 Kbyte hoc cng c th nm trm nhau do c nhng on khng cn dng ht on di 64 Kbyte v v vy nhng on khc c th bt u ni tip ngay sau . iu ny cng cho php ta truy nhp vo bt k on nh ( 64 Kbyte ) no nm trong ton b khng gian 1 Kbyte. Ni dung cc thanh ghi on s xc nh a ch ca nh nm u on. a ch ny cn gi l a ch c s. a ch ca cc nh khc nm trong on tnh c bng cch cng thm vo a ch c s mt gi tr gi l a ch lch hay lch ( Offset ), gi nh th v n ng vi khong lch ca to mt nh c th no so vi u on.
[Type text] Trang 24
X : Khng c nh ngha
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. A hoc AF ( auxilialyry carry flag ): c nh ph rt c ngha khi ta lm vic vi cc s BCD.AF = 1 khi c nh hoc mun t mt s BCD thp ( 4 bit thp ) sang mt s BCD cao ( 4 bit cao ). Z hoc ZF ( zero flag ): c rng. ZF =1 khi kt qu = 0. S hoc SF ( sign flag ): c du. SF = 1 khi kt qu m. O hoc OF ( over flow flag ): c trn. OF = 1 khi kt qu l mt s b 2 vt qua ngoi gii hn biu din dnh cho n. Trn y l 6 bit c trng thi phn nh cc trng thi khc nhau ca kt sau mt thao tc no , trong 5 bit c u thuc byte thp ca thanh c l cc c ging nh ca b vi x l 8 bit 8085 ca Intel. Chng c lp hoc xo tu theo cc iu kin c th sau cc thao tc ca ALU. Ngoi ra, b vi x l 8088 cn c cc c iu khin sau y ( cc c ny c lp hoc xo bng cc lnh ring ): T hoc TF ( trap flag ): c by. TF = 1 th CPU lm vic ch chy tng lnh ( ch ny dng khi cn tm li trong mt chng trnh ). I hoc IF ( interrupt enable flag ): c cho php ngt. IF = 1 th CPU cho php cc yu cu ngt ( che c ) c tc ng. D hoc DF ( direction flag ): c hng. DF = 1 khi CPU lm vic vi chui k t theo th t t phi sang tri ( v vy D chnh l c li ) ngha ca cc c kh r rng. Ring c trn cn phi lm r hn ta hiu c bn cht v c ch lm vic ca n. C trn thng c dng n khi ta lm vic vi s b 2 c du. cho vic gii thch c n gin, u tin gi thit ta lm vic vi s b 2 di 8 bit, kt qu AL ( xem hnh 3.4 ). Gi C67 l c nh t bit 6 ( B6 ) ln bit
[Type text] Trang
27
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 [8086] 31 MN/MN AD6 10 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
28
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 cc h thng vi gi phi chng v n d phi ghp vi cc thit b ngoi vi 8 bit ang thnh hnh lc . iu khc nhau na tt yu phi xy ra l s khc nhau trong vic b tr cc chn hai vi mch nh trn hnh 3.5 ( xem thm phn gii thiu c th cc tn hiu ti cc chn chng V ).
[Type text] Trang
29
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
30
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:
Thanh ghi W=1W=0 AX AL PX BL CX CL DX DL AH SP DI BH BP CH SI DH M 000 011 001 010 100 111 101 110 Thanh ghi on CS DS ES SS M 01 11 00 10
Bit D dng ch hng i ca d liu. D = 1 th d liu i n thanh ghi cho bi b bit ca REG. 2 bit MOD ( ch ) cng vi 3 bit R/M ( thanh ghi/b nh ) to ra 5 bit dng ch ra ch a ch cho cc ton hng ca lnh ( c th hiu ch a ch l cch tm ra a ch ca ton hng, xem thm phn sau ca chng ny r hn v ch a ch. Bng 3.1 cho ta thy cch m ho cc ch a ch ( cch tm ra cc ton hng bng cc bit ny ). M OD R/M 000 001 010 011 [BX]+[8] [BX]+[DI] [BP]+[SI] [BP]+[DI] W=0 W=1 [BX]+[SI] [BX]+[SI] AL +d8 +d16 AX [BX]+[DI]+d8 [BX]+[DI]+d16 CL CX [BP]+[SI]+d8 [BP]+[SI]+d16 DL DX [BP]+[DI]+d8 [BP]+[DI]+d16 BL BX 00 01 10 11
31
thanh ghi disp , 8bit ,d16: disp , 16bit - Cc gi tr cho trong cc ct 2,3,4 (ng vi MOD =00,01,10) l cc a ch hiu dng (EA) s c cng vi DS to ra a ch vt l (ring BP phi c cng vi SP ) Trong cc v d sau y ta s dng cc kin thc nu trn m ho mt vi lnh MOV.
MOV CL ,[BX] 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 Opcode m ho CL [ BX]
Ghi ch :
Chuyn ti thanh ghi Chuyn 1 byte MOV OF3H [SI] , CL 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 CL [SI] 1 Byte
dS = F3H
3. Cc ch a ch ca b vi x l 8088 Ch a ch (addressing mode ) l cch CPU tm thy ton hng cho cc lnh ca n khi hot ng. Mt b vi x l c th c nhiu ch a ch. Cc ch a ch
[Type text] Trang
32
33
34
Thanh ghi Reg Tc th Data Trc tip [offset] DS Gin tip qua thanh [BX] DS ghi [SI] DS [DI] DS Tng i c s [BX]+disp DS [BP] +DISP SS Tng i ch s [DI]+Disp DS [SI]+ DISP DS Tng i ch s c s [BX]+[DI]+DISP DS [BX]+[SI]+DISP DS [BP]+[DI]+DISP SS [BP]+[SI]+DISP SS (Ghi ch : Reg : thanh ghi ; Data : d liu tc th ; disp : dch chuyn ) Bng 3.3 : Cc cp thanh ghi on v thanh ghi lch ngm nh Thanh ghi CS DS ES SS on Thanh ghi lch IP SI,DI,BX DI SP,BP V d: Trong lnh chuyn d liu th a ch vt l ca ton hng chuyn vo thanh ghi AL, tng ng vi DS:BX, v DS s on ngm nh cuarvng nh chaton hng do BX ch ra.Nu ta mun thay i,khng ly ton hng trong on d liu DS ,m li ly ton hng traong on d liu ph ES d a vo AL,th ta phi vit li lnh trn thnh MOV AL.ES:[BX] Trong ta dng cm tip u ES : loi b thanh ghi on ngm nh DS v ch r thanh ghi on mi dng trong lnh nayf by gi l ES .
36
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
[Type text] Trang 37
CLD
46
M t IP IP Dchchuyn Hai lnh trn iu khin cng mt thao tc Nhy c iu kin vi nhn nu CF+ZF = 0 .Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . Vi d :Nu 1 khung thanh AL cao hn 10H th nhy ln nhn TH01 CMP AL , 10H ; so snh Al vi 10H UA THOI ; nhy ln TH01 nu Al cao hn 4AE/JNB/4NC 4jump if Above or Equal /jump if not below /jump if nocarry(nhy nu cao hn hoc bng / nhy nu thp hn / nhy nu khng c nh ) Vit lnh : JAE NHAN JNB NHAN JNC NHAN M t : IP IP Dchchuyn Ba lnh trn u thc hin cng mt thao tc : nhy c iu kin ti NHAN nu CF = 0 . Quan h trn (above), cao hn v quan h di , thp hn (below) l cc quan h dnh cho vic so snh (do lnh CMP thc hin ) ln ca hai s khng du .Nhn NHAN phi nm cch xa (dch chuyn mt khong )-128. . +127byte so vi lnh tip theo sau lnh A:/INBE .Chng trnh s cn c vo gi tr chuyn xc nh cc gi tr chuyn Lnh ny khng tc ng n cc c . V d : Nu ni dung thanh AL cao hn hoc bng 10H th nhy n nhn THOI CMP AL ,10H ; So snh AL vi 10H JAE .THOI ; nhy n THOI nu Al cao hn hoc bng 10H JB/JC/JNAE - jump if Below/ Jump if Carry /Jump Not Above or Equal ( Nhy thp hn / nhy nu c / nhy nu khng cao hn hoc bng ) Vit lnh JB NHAN JC NHAN
[Type text] Trang 47
49
Vit lnh : M t :
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
[Type text] Trang 50
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 : M t : JG NHAN JNGE NHAN IP IP + Dchchuyn.
Hai lnh trn biu din cng mt thao tc : nhy (c iu kin) ti NHAN nu (SFOF)=1. Quan h ln hn (greater than) v b hn (less than) l cc quan h dnh cho vic so snh (do lnh CMP thc hin) ca 2 s c du. Ln hn c ngha l dng hn. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JL/JNGE. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c : V d : Nu ni dung thanh AL nh hn 10 H th nhy n nhn THOI : CMP AL, 10H ; so snh AL vi 10H JL THOI ; nhy n THOI nu AL nh hn 10H.
JLE/JNG - Jump if Less than or Equal/Jump if Not Greater than (Nhy nu b hn hoc bng/Nhy nu khng ln hn) Vit lnh :
[Type text] Trang
JLE NHAN
51
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 kiu nhy gn v 2 kiu nhy xa vi di lnh khc nhau (hnh 3.8). Mi trn cc lnh tng ng mt byte dng ghi lnh. Nh vy lnh nhy c di t 2 n 5 byte. Vit lnh : sau y l cc dng lnh nhy khng iu kin : JMP NHAN Lnh mi bt u ti a ch ng vi nhn NHAN. Chng trnh dch s cn c vo khong dch gia nhn v lnh nhy xc nh xem l : + nhy ngn (short jump) ng vi trng hp a) hnh 3.8. Trong trng hp ny nhn NHAN phi nm cch xa (dch i mt khong nhiu nht l -128 .. + 127 byte so vi lnh tip theosau lnh JMP. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn m rng du cho n. Sau
[Type text] Trang
52
53
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 ; tnh tng 2 s c du trong AL v AH JNO THOI ; 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 : IN AL, 99H ; c k t t cng,
[Type text] Trang 55
JNS - Jump if Not Signed (Jump if Positive) (nhy nu kt qu dng) Vit lnh : JNS NHAN M t : IP IP + Dchchuyn. y l lnh nhy (c iu kin) ti NHAN nu SF=0, tc kt qu l dng sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) - 128 .. + 127 byte so vi lnh tip theo sau lnh JNS. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m kt qu dng th nhy n nhn THOI : ADD AL, AH ; tnh tng 2 s c du trong AL v AH JNS THOI ; nhy n THOI nu kt qu dng. JNZ - Xem JNE JO - Jump if Overflow (nhy nu trn) Vit lnh : M t : JO NHAN IP IP + Dchchuyn.
y l lnh nhy (c iu kin) ti NHAN nu OF=1, tc sy ra trn sau khi thc hin cc php ton vi cc s c du. Nhn NHAN phi nm cch xa (dch i mt khong) 128 .. + 127 byte so vi lnh tip theo sau lnh JO. Chng trnh dch s cn c vo v tr NHAN xc nh gi tr dch chuyn. Lnh ny khng tc ng n cc c. V d : Nu sau php cng m c trn th nhy n nhn THOI : ADD AL, AH ; tnh tng 2 s c du trong AL v AH JO THOI ; nhy n THOI nu c trn. JP/JPE - Jump if Parity/jump if Parity Even (nhy nu parity chn)
[Type text] Trang
56
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
[Type text] Trang 57
Dng lnh ny phi hp vi lnh PUSH AX th c th m phng lnh PUSH PSW ca b vi x l 8085 trn 8088 (lnh PUSH PSW ca vi x l 8085 ct thanh ghi c v Acc ca n vo ngn xp). Lnh ny khng tc ng n cc c. LDS - Load Register and DS with Words from Memory (Np mt t (t b nh) vo thanh ghi cho trong lnh v mt t tip theo vo DS) Vit lnh : LDS ch,Gc
Trong : + ch l mt trong cc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. + Gc l nh trong on DS c ch r trong lnh. M t : ch Gc, DS Gc + 2.
y l lnh np vo thanh ghi chn v vo DS t 4 nh lin tip Mt trong nhng ng dng ca lnh ny l lm sao cho SP v DS ch vo a ch u ca vng nh cha chui gc trc khi dng n lnh thao tc chui. Lnh ny khng tc ng n cc c. V d : LDS SI,STR_PTR Th d trn np vo SI ni dung 2 nh STR_PTR v STR_PTR+1 v np vp DS ni dung 2 nh STR_PTR+2 v STR_PTR+3. Cc nh ny u nm trong on d liu DS v cha a ch ca chui gc. Do vy sau DS:SI ch vo u chui gc cn thao tc. LEA - Load Effective Address (Np a ch hiu dng vo thanh ghi) Vit lnh :
[Type text] Trang
LEA ch,Gc
58
y l lnh tnh a ch lch ca bin hoc a ch ca nh chn lm gc ri np vo thanh ghi chn. Lnh ny khng tc ng n cc c. V d : LEA DX, MSG ; ; LEA CX, [BX] [DI] ; ; np a ch lch ca bn tin MSG vo DX. np vo CX a ch hiu dng do BX v DI ch ra : EA =BX+DI
LES - Load Register and ES with Words from Memory (Np mt t (t b nh) vo thanh ghi cho trong lnh v mt t tip theo vo ES) Vit lnh : LES ch,Gc
Trong : + ch l mt trong cc thanh ghi : AX, BX, CX, DX, SP, BP, SI, DI. + Gc l nh trong on DS c ch r trong lnh. M t : ch Gc, ES Gc + 2.
y l lnh np vo thanh ghi chn v vo ES t 4 nh lin tip Mt trong nhng ng dng ca lnh ny l lm sao cho DI v ES ch vo a ch u ca vng nh cha chui gc trc khi dng n lnh thao tc chui. Lnh ny khng tc ng n cc c. V d : LES DI,[BX]
59
Lnh XCHG cn 2 ln thm nhp bus hon tt vic thc hin lnh, do cn t sau LOCK trnh nguy c tranh chp bus c th xy ra trong h thng a x l. LODS/LODSB/LODSW - Load string Byte/Word into AL/AX (Np vo AL/AX 1 phn t ca chuoi byte/t) Vit lnh : M t : AL phnthinthi, SI Si 1 tu theo DF, nu l chui byte. AL phnthinthi, SI Si 2 tu theo DF, nu l chui t. (phnthinthi ca chui l do DS:SI hin thi ch ra) Lnh LODS np vo AL/AX 1 byte/t (1 phn t ca chuuo c nh ngha trc l chui gm cc byte hoc t ) do SI ch ra trogn on DS, sau SI t ng tng/gim ch vo phn t tip theo tu theo c hng. Khi phi dch lnh LODS Chuigc, chng trnh dch dng tn Chuigc xc nh xem lc khai bo th Chuigc c cc phn t l byte hay t. Mun ch r cho chng trnh dch hp ng rng ta lm vic vi chui cc byte hoc cc t, ta cng c th dng lnh LODSB hoc LODSW. Lnh ny khng tc ng n cc c. V d :
[Type text] Trang
60
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. Lnh ny khng tc ng n cc c. V d : XOR AL, AL MOV CX,16 LAP: INC AL LOOP LAP ; xo AL ; s ln lp ti CX ; tng AL thm 1 ; lp li 16 ln, AL = 16
LOOPE/LOOPZ - Loop While CX 0 and ZF=1 (Lp li on chng trnh do nhn ch ra cho n khi CX=0 hoc ZF=0) Vit lnh : LOOPE NHAN LOOPZ NHAN
M t : Lnh ny dng lp li on chng trnh (gm cc lnh nm trong khong t nhn NHAN n ht lnh LOOPE NHAN hoc LOOPZ NHAN) cho n khi s ln lp CX=0 hoc ZF=0. iu ny c ngha l trc khi vo vng lp ta phi a s ln lp mong mun vo thanh ghi CX v sau mi ln thc hin lnh LOOP NHAN th ng thi CX t ng gim i 1 (CX CX-1). Nhn NHAN phi nm cch xa (dch i mt khong) -128 byte so vi lnh tip theo sau lnh LOOPE/ LOOPZ.
[Type text] Trang
61
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). Nhn NHAN phi nm cch xa (dch i mt khong) -128 byte so vi lnh tip theo sau lnh LOOPNE/ LOOPNZ. Lnh ny khng tc ng n cc c. V d : MOV AL, AH MOV CX,100 LAP: INC AL CMP AL,16 LOOP LAP LOOPNZ - Xem LOOPNE LOOPZ - Xem LOOPE
[Type text] Trang
62
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 MOV CL,BL ; CL BL MOV DL,[SI] ; DL {DS:SI} MOV AL,Table [BX]; AL {DS:(Table+BX)}
; AL 74
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, trong : + DS:SI l a ch ca phn t trong chui gc. + ES:DI l a ch ca phn t trong chui ch. + Sau mi ln chuyn SI SI 1, DI DI 1 hoc SI SI 2, DI DI 2 mt cch t ng tu thuc c hng DF l 0/1 v chui l chui byte hoc chui t. C hai cch ch ra chui l chui byte hay l chui t. Cch u tin l ta khai r bng tn chui ngun v chui ch l loi g ngay t u chng trnh. Cch th hai l ta thm vo lnh MOVS ui B cho chui byte hoc ui W cho chui t. (xem m t cch s dng ti lnh COMPS). Lnh MOVS/MOVSB/MOVSW c th dng km vi lnh REPE hoc REPNE so snh tt c cc phn t trong chui.
[Type text] Trang 63
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, s b nhn phi l s 16 bit trong AX. sau khi nhn : DXAX tch. Nu byte cao (hoc 16 bit cao) ca 16 (hoc 32) bit kt qu cha 0 th CF=OF=0 Nh vy cc c CF v OF s bo cho ta bit c th b i bao nhiu s 0 trong kt qu. V d : Nu ta cn nhn mt s 8 bit vi mt s 16 bit , ta s 16 bit ti Gc v s 8 bit AL. S 8 bit ny AL cn phi c m rng sang AH bng cch gn AH=0 lm cho
[Type text] Trang 64
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. NOT - Invert Each Bit of an Operand (Form its 1s complement) (ly b ca mt ton hng, o bit ca mt ton hng). Vit lnh :
[Type text] Trang
NOT ch
65
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
66
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)
67
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}.
68
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
[Type text] Trang
; ; ; ;
quay tri thanh ghi BX thng qua CF s ln quay trong CL, quay tri thanh ghi AL 8 ln
69
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.
70
REPE/REPZ - Repeat String Instruction until CX=0 or ZF=0 (lp li lnh vit sau cho ti khi CX=0 hoc ZF=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. Khi dng REPE/REPZ vi lnh so snh chui, qu trnh s kt thc khi m ht (CX=0) hoc khi hai phn t so snh khc nhau (ZF=0). V d : REPE CMPSB ; lp li lnh so snh cc ; byte ca 2 chui ti khi CX=0 ; hoc ZF=0.
REPNE/REPNZ - Repeat String Instruction until CX=0 or ZF=1 (lp li lnh vit sau cho ti khi CX=0 hoc ZF=1). y l tip u ng dng vit trc cc lnh thao tc vi chui d liu m ta mun lp li mt s ln. S ln lp phi trc trong CX. Khi cc lnh ny c lp li th CX t ng gim i mt sau mi ln lp. Khi dng REPNE/REPNZ vi lnh qut chui, qu trnh s kt thc khi m ht (CX=0) hoc khi Acc bng phn t ca chui (ZF=1). V d : REPNE CMPSB
[Type text] Trang
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
72
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
[Type text] Trang
73
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). Vit lnh : SAL ch,CL SHL ch,CL
74
Hnh 3.13. Lnh SAL/SHL. Hai lnh ny c cng tc dng dch tri s hc ton hng (cn gi l dch tri logic c lnh i ngu vi lnh dch phi logic s ni phn sau). Mi ln dch MSB s c a qua c CF v 0 a vo LSB. Thao tc kiu ny c gi l dch logic. CL phi c cha sn s ln quay mong mun. Trong trng hp quay mt ln c th vit trc tip : SAL ch,1 (t cc b vi x l th h sau nh 80186, 80286 ... th c th vit trc tip kiu ny vi s ln quay ln nht l 32). Ta nhn thy mt ln dch tri kiu ny tng ng vi mt ln lm php nhn vi 2 ca s khng du. V vy ta c th lm php nhn mt s vi s nhn khng du tng ng vi 2 bng cch dch tri s hc s b nhn i ln. Chnh v vy thao tc ny cn c gi l dch tri s hc. Trong chng mc nht nh ln ny chy nhanh hoen MUL. Tc ng vo c : Sau lnh SAL hoc SHL c CF mang gi tr c ca MSB (v vy lnh ny cn dng to c CF t gi tr ca MSB lm iu kin cho cc lnh nhy c iu kin), cn c OF 1 nu sau khi dch mt ln m bit MSB b thay i so vi trc khi quay. C OFe khng c xc nh sau nhiu ln dch. Cp nht : SF, ZF, PF.PF ch c ngha khi kt qu l 8 bit. Khng xc nh : AF. V d : SAL BX,1 MOV CL,4 SLH AL, CL ; ; ; ; ; 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 tr bng 1/16 thanh ghi AL ban u.
SBB ch,Gc ch ch - Gc - CF
75
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 : CLD BX,1 MOV AL,13
[Type text] Trang
; ; ; ; ; ;
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 77
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)
[Type text] Trang
78
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. MOV DI,OFFSET STR1
[Type text] Trang
; DI ch vo u chui
79
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 TEXT AH,01H ; bit 0 ca AH bng 0 TEXT BP, [BX] [DI] ; v BP vi nh do
[Type text] Trang
; AH AL to c
80
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 ; tro ni dung AH v AL XCHG AX,BX ; tro ni dung ca AX v BX XCHG AL, Table[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}
[Type text] Trang
81
23H
FFH
AL 0000H
FF
0123H 0124H BX
0100
0123H 0124H
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.
82
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
[Type text] Trang
83
85
86
87
88
89
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 M t thc Tiny M lnh v d liu gi gn trong mt on (Hp) Small M lnh gi gn trong mt on , d liu (Nh) nm trong mt on. Medium M lnh khng gi gn trong mt on , (Trung bnh) d liu nm trong mt on. Compact M lnh khng gi gn trong mt on , (Gn) d liu khng gi gn trong mt on.
[Type text] Trang
90
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
91
92
93
; khi u thanh ghi DS MOV AX,@Data MOV DS, AX ; v u dng mi dng hm 9 ca INT 21H MOV AH, 9 LEA DX, CRLF INT 21H ; hin th li cho dng hm 9 ca INT 21H MOV AH, 9 LEA DX, MSG INT 21H ; v u dng mi dng hm 9 ca INT 21H MOV AH, 9 LEA DX, CFLF INT 21H ; tr v DOS dng hm 9 ca INT 21H MOV AH, 4CH INT 21H MAIN Endp END MAIN Trong v d trn chng ta s dng cc dch v c sn (cc hm 9 v 4CH) ca ngt INT 21H ca DOS trn my IBM PC hin th xu k t v tr v DOS mt cch thun li. Chng ta s ni k hn v cc ngt ny ch khc. Khung ca chng trnh hp ng dch ra chng trnh. COM Nhn vo khung chng trnh hp ng dch ra tp chng trnh ui .EXE ta thy c mt y cc on. Trn my tnh IBM PC ngoi tp chng trnh vi ui .EXE. Chng ta cn c kh nng dch chng trnh hp ng c kt cu thch hp ra mt loi tp chng trnh chy c kiu khc vi ui .COM. y l mt chng trnh ngn gn v n gin hn nhiu so vi tp chng trnh ui .EXE, trong cc on m, on d liu v on ngn xp c gp li trong mt on duy nht l on m. Nh vy nu ta c cc ng dng m d liu v m chng
[Type text] Trang 94
95
FFFE H
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.
[Type text] Trang 96
SS CS DS ES
97
98
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
99
100
101
102
103
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 Ta c th thc hin cng vic trn bng mu chng trnh sau: XOR AX, AX ADD AX, BX ADD AX, CX
[Type text] Trang
; ; ;
105
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
106
Gitr1 Cngvic1
GitrN CngvicN
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
[Type text] Trang
107
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.
108
iu kin
s a i
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 MOV AH, 1
[Type text] Trang
; tng s k t c c lc u l 0 ; hm c k t t bn phm.
109
110
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
[Type text] Trang
DB DB
112
113
114
116
117
118
119
120
(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 Str1 DB 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
[Type text] Trang
121
122
123
124
125
; cch 1 dng v hin Tbao2 ; chun b hin th k t ; ly k t ra t ngn xp ; hin dng k t xp ngc ; v DOS
V d 10 Ta phi c vo 1 dng k t t bn phm, kt thc bng Enter. Sau ta phi m s nguyn m v s ph m c trong dy k t ri hin th cc s . Gii Trong bi ton ny cng vic c vo mt dy k t t bn phm l rt n gin. Ch cn phi ni qua v thut ton tm cc nguyn m v ph m: ta phi t chc d liu thnh nhm cc nguyn m v nhm cc ph m v s so snh cc k t c c vi cc thnh phn ca mi nhm ny. Mi khi tm c k t cc phn t ngi ta thng dng lnh kiu REPNE SCASB. Sau y l chng trnh NAMPAMASM thc hin cng vic trn. ; tnh s nguyn m v ph m trong mt dng k t .Model Small .Stack 100 .Data Str DB 80 dup (0) NAM DB 'AaEeIiOoUuYy'
[Type text] Trang
126
127
128
LAP:
129
; 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
[Type text] Trang 130
132
133
134
135
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 d so snh cc cch truyn tham s vi nhau, ta minh ha cch truyn tham s ny bng cch gi nguyn bi ton ca v d trwosc Cc thanh ghi SI, DI v BX c s dng cha a ch lch ca cc tham s cn truyn (cn thanh ghi on d liu ngm nh l DS) Sau y l vn bn chng trnh thc hin cng vic trn. .Model Small .Stack 100 .Data Tbao1 Tbao2 So1 So2 SUM
DB 'G vo 2 s c tng <10: S' DB 13, 10, 'Tng ca ' DB ? DB ' v ' DB ? DB ' l ' DB -30H, '$'
136
;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
ADD2SO Proc ;tnh tng 2 s ;Vo: SI: a ch ca s hng 1 DI: a ch ca s hng 2 BX: a ch ca kt qu ;Ra: {DS:BX} cha kt qu MOV AL, {SI} ;ly m ca s1 ADD AL, {DI} ;cng vi m ca s2 ADD {BX}, AL ;i ra ASCII v ct i RET ;v CTC ADD2SO Endp END MAIN
[Type text] Trang
137
138
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.
139
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
[Type text] Trang
140
READY RESET
141
Hnh 5.2. S chn ca CPU 8088. + INTR [I] : Tn hiu yu cu ngt che c. Khi c yu cu ngt m c cho php ngt IF = 1 th CPU kt thc lnh ang lm d, sau n i vo chu k chp nhn ngt v a ra bn ngoi tn hiu INTA = 0. + TEST [I] : Tn hiu ti chn ny c kim tra bi lnh WAIT. Khi CPU thc hin lnh WAIT m lc tn hiu TEST =1, n s ch cho n khi tn hiu TEST = 0 th mi thc hin lnh tip theo. + NMI [I] : Tn hiu yu cu ngt khng che c. Tn hiu ny khng b khng ch bi c IF v n s c CPU nhn bit bng cc tc ng ca sn ln ca xung yu cu ngt. Nhn c yu cu ny CPU kt thc lnh ang lm d, sau n chuyn sang thc hin chng trnh phc v ngt kiu INT2. + RESET [I] : tn hiu khi ng li 8088. khi RESET = 1 ko di t nht trong thi gian 4 chu k ng h th 8088 b buc phi khi ng li : n xo cc thanh ghi DS, ES, SS, IP v FR v 0 v bt u thc hin chng trnh ti a ch CS:IP = FFFF:0000H (ch c IF 0 cm cc yu cu ngt khc tc ng vo CPU v c TF 0 b vi x l khng -b t trong ch chy tng lnh). + CLK [I] : Tn hiu ng h (xung nhp). Xung nhp c rng l 77% v cung cp nhp lm vic cho CPU. + Vcc [I] : Chn ngun. Ti y CPU c cung cp +5V 10%.340mA + GND [O] : Hai chn ngun ni vi im OV ca ngun nui. + MN/MX [I] : Chn iu khin hot ng ca CPU theo ch MIN/MAX. Do 8088 c th lm vic 2 ch khc nhau nn c mt s chn tn hiu ph thuc vo cc ch . Ch MIN (Chn MN/MX cn c ni thng vo +5V m khng qua in tr !)
[Type text] Trang 142
, IO/ M , DT/ R
DT/ R 0 0 1 1 0
S0 S
0 1 0 1 0
Chu k iu khin ca bus c m lnh c b nh Ghi b nh Bus r (ngh) Chp nhn yu cu ngt
143
+ 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 SO trong ch MAX v c dng kt hp vi IO/M v DT/ R gii m cc chu k hot ng ca bus (xem bng 5.2). Ch MAX (Chn MN/MX ni t) Trong ch MAX mt s tn hiu iu khin cn thit c to ra trn c s cc tn hiu trng thi nh dng thm bn ngoi mt mch iu khin bus 8288. Ch MAX c s dng khi trong h thng c mt b ng x l ton hc 8087 + S 2, S1 v S 0 [O] : Cc chn trng thi dng trong ch MAX ghp vi mch iu khin bus 8288. Cc tn hiu ny c 8288 dng to ra cc tn hiu iu khin trong cc chu k hot ng ca bus. Cc tn hiu iu khin c ch ra trong bng 5.3.
Bng 5.3. Cc tn hiu iu khin ca 8288. Chu k iu khin ca bus Chp nhn yu cu ngt c thit b ngoi vi Ghi thit b ngoi vi Dng (halt) c m lnh
S2
S1
S0
0 0 0 0 1
[Type text] Trang
0 0 1 1 0
0 1 0 1 0
Khng MRDC
144
Khng
Q Q T T + R / G 0 v R / G 1 [I/O] : Cc tn hiu yu cu dng bus ca cc b x l Q khc hoc thng bo chp nhn treo ca CPU cho cc b vi x l khc dng bus. R / Q G 0 c mc u tin hn R / G 1 . T T + LOCK [O] : Tn hiu do CPU a ra cm cc b x l khc trong h thng dng bus 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 QS Trng thi lnh m 0 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
[Type text] Trang
145
146
IO/
LS244
Bus iu khin
LS373 G/
OC1,2 LS244
ALE
Bus a ch
A7 A6 A5 A4 A3 A2 A1 A0
LS373 G OC
LS245
Bus D liu
DIR
147
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
E + A N 1 , AEN 2 : Tn hiu cho php chn u vo tng ng RDY1, RDY2 lm tn hiu bo tnh trng sn sng ca b nh hoc thit b ngoi vi. E + RDY1, RDY2 : cng vi A N 1 , AEN 2 dng gy ra cc chu k i CPU. + ASYNC : Chn ng b hai tng hoc ng b mt tng cho tn hiu RDY1, RDY2. Trong ch ng b mt tng ( ASYNC = 1) tn hiu RDY c nh hng n tn hiu READY ti tn sn xung ca xung ng h tip theo. Cn trong ch ng b hai tng ( ASYNC = 0) tn hiu RDY ch c nh hng n tn hiu READY khi c sn xung ca xung ng h tip theo. + READY : Ni n u READY ca CPU. Tn hiu ny c ng b vi cc tn hiu RDY1, RDY2. + X1, X2 : Ni vi hai chn ca thch anh vi tn s f x, thch anh ny l mt b phn ca mt mch dao ng bn trong 8284 c nhim v to xung chun dng lm tn hiu ng h cho ton h thng. + F/ C : Dng chn ngun tn hiu chun cho 8284. Khi chn ny mc cao th xung ng h bn ngoi s c dng lm xung nhp cho 8284, ngc li th xung ng h ca mch dao ng bn trong dng thch anh s c chn lm xung nhp. + EFI : li vo cho xung t b dao ng ngoi. + CLK : Xung nhp fCLK=fx/3vi rng 77% ni n chn ca CLK ca 8088.
148
CLK 8088
8284
+5V 10k K
X2
RESET
+RES
RESET F/ C
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 :
IOB CLK
S1
DT/ R ALE
AN E A W M C M T WC GD N
1 2 3 4 8288 5 6 7 8 9 10
20 19 18 17 16 15 14 13 12 11
Vcc
S0 S2
: address enable CEN : command enable IOB : input/output bus mode MD R C : memory read comm : memory write comm M T WC A W M C : advanced M T 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
AN E
149
MCE/PDEN : master cascade enable/peripheral data enable Hnh 5.7. Mch to xung iu khin 8288. + S 2 , S 1 , S [I, I, I] : l cc tn hiu trng thi ly thng t CPU. Tu theo cc tn hiu ny m mch 8288 s to ra cc tn hiu iu khin khc nhau ti cc chn ra ca n iu khin hot ng ca cc thit b ni vi CPU. Bng 5.3 m t cc tn hiu vo v ra . + CLK [I] : y l u vo ni vi xung ng h h thng (t mch 8284) v dng ng b ton b cc xung iu khin i ra t mch 8288. + CEN [I] : L tn hiu u vo cho php a ra tn hiu DEN v cc tn hiu iu khin khc ca 8288. + IOB [I] : tn hiu iu khin mch 8288 lm vic cc ch 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). R C + M D [O] : tn hiu iu khin c b nh. N kch hot b nh a d liu ra bus. W W + M TC [O] AM C [O] : l cc tn hiu iu khin ghi b nh hoc ghi b nh ko di. E W W thc cht l cc tn hiu ging nh M M , nhng AM 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.
0
R + IO C [O] : tn hiu iu khin c thit b ngoi vi. N kch hot cc thit b c chn cc thit b ny a d liu ra bus. W W + IO C [O] AIO C [O] : l cc tn hiu iu khin c thit b ngoi vi hoc c thit b ngoi vi ko di. W W thc cht l cc tn hiu ging nh IO , nhng AIO C (advanced I/O write command) hot ng sm ln mt cht to ra kh nng cho cc b nh chm c thm c thi gian ghi. T + IN A [O] : l u ra thng nbaos l CPU chp nhn yu cu ngt ca thit b ngoi vi v lc ny cc thit b ngoi vi phi a ra s hiu ngt ra 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).
150
+ ALE [O] : y l tn hiu cho php cht a ch ti cc chn dn knh a ch d liu AD0 - AD7, tn hiu ny thng c ni vi chn G ca mch 74LS373 iu khin mch ny cht ly a ch. 1.5. Biu thi gian ca cc lnh ghi/c Trn hnh 5.8 v 5.9 l cc biu thi gian c n gin ho ca cc tn hiu c bn trong CPU 8088 cho cc lnh ghi/c b nh hoc thit b ngoi vi. Trong trng hp bnh thng mt chu k ghi/c (cn gi l chu k bus) ca CPU ko di 4 chu k ng h. Cc chu k ng h c nh du l T1, T2, T3 v T4. Nu CPU lm vic vi tn s ng h 5MHz th mt chu k ng h ko di T=200ns v mt chu k bus ko di 4*T=800ns.
151
T1
CLK
T2
T3 Tw
T4
ALE
A/S A16/S3 A19/S6 A (A8-A15) A/D (AD0-AD7
a ch
a ch
D liu ghi
tgi W TWr
W R
DN E
Hnh 5.8. Cc tn hiu ca CPU 8088 trong chu k ghi n gin ho.
Mt chu k ca bus
T1
CLK
T2
T3 Tw
T4
ALE ttrach
ADRS A16/S3 A19/S6 ADR (A8-A15) ADRD (AD0-AD7
a ch
a ch
D liu c
152
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. + Chu k T2 : R E Trong chu ny CPU a ra cc tn hiu iu khin R hoc W . D N v tn D E hiu d liu trn D0 - D7 nu l lnh ghi. D N thng dng m cc b m ca bus d liu nu nh chng c dng trong h. Ti cui k T2 (v gia mi chu k T ca Tw , nu c) CPU ly mu tn hiu READY x l trong chu k tip theo khi n phi lm vic vi b nh hoc thit b ngoi vi chm. + Chu k T3 : Trong chu k ny CPU dnh thi gi cho b nh hay thit b ngoi vi khi nhp d liu. Nu l chu k c d liu th ti cui T3 CPU s ly mu tn hiu ca bus d liu. Nu ti cui chu k ng h T2 (hoc gia mi chu k T ca Tw) m CPU pht hin ra tn hiu READY=0 (do b nh hay thit b ngoi vi a n) th CPU t xen vo sau T3 mt vi chu k T to chu k i Tw = n*T nhm ko di thi gian thc hin lnh, to iu kin cho b nh hoc thit b ngoi vi. c thi gian hon tt vic ghi/c d liu. + Chu k T4 : Trong chu k ny cc tn hiu trn bus c gii hot (a v trng thi khng R tch cc) chun b cho chu k bus mi. Tn hiu W trong khi chuyn trng thi t 0 ln 1 s kch hot ng qu trnh a vo b nh hay thit b ngoi vi.
153
D0 D1 D2
Tn hiu d liu
CS
OE
R D Chn v Hnh 5.11. s khi 1 vi mch nh. 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 2m t nh. V d, vi m = 10 ta c dung lng mch nh l 1K nh (1 kil = 210 = 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) :
S E Cc tn hiu chn v l C (chip select) hoc C (Chip enable) thng c dng to ra vi mch nh c th ghi/c. Tn hiu chn v cc mch RAM thng S E la C , cn mch ROM thng l C . Cc tn hiu chn v thng c ni vi u ra
155
Vcc [V] +5
/PG M
O E
D0 D7 Dout
[V] +5
Ch c
Vpp
C E
156 /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 E : Cho php ghi C Hnh 5.13. B nh S : Chn v RAM tnh TMS 4016 (2Kx8).
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
[Type text] Trang 157
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
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 inline 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 : D liu vo D0 : D liu ra C S : xung cho php cht a ch ct A R S : xung cho php cht a ch A hng W E : cho php ghi W E : Cho php ghi
158
Hnh 5.15. B nh RAM ng TMX 4C1024 (1Mx1) Mi mch nh ni ghp vi CPU cn phi c CPU qui chiu ti mt cch chnh xc khi thc hin cc thao tc ghi/c. iu c ngha l mi mch nh phi c gn cho mt vng ring bit c a ch xc nh nm trong khng gian a ch tng th ca b nh. Vic gn a ch c th cho mch nh c thc hin nh mt xung chn 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.
C 1hiu S Tn
C 2 hiu S Tn C n S
a ch /khin
Mch gii m a ch
Cc tn hiu chn v
Hnh 5.16. Mch gii m a ch tng qut. u vo ca b gii m l cc tn hiu a ch v tn hiu iu khin. Cc tn hiu a ch gm cc bit a ch c quan h nht nh vi cc tn hiu chn v u ra. Tn hiu iu khin thng l tn hiu IO/ M dng phn bit i tng m CPU chn lm vic l b nh hay thit b vo/ra. Mch gii m l mt trong nhng khu gy ra vic tr thi gian ca tn hiu t CPU ti b nh hoc thit b ngoi vi m trong khi chn mch nh/ngoi vi ta phi tnh n. Tu theo quy m ca mch gii m m ta c th c u ra mt hay nhiu tn hiu chn v. Gii m y cho mt mch nh i hi ta phi a n u vo ca mch gii m cc tn hiu a ch sao cho tn hiu u ra ca n ch chn ring mch nh nh. Trong trng hp ny ta phi dng t hp u ca cc u vo a ch tng ng
[Type text] Trang 159
A0 - A9 276415 D0 - D7
O E
C E
F0000-F1FFF
G2 A G2 B G1
Y5 Y6 Y7
160
FE000-FFFFF
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 Y7
Bus A Bus D
[Type text] Trang
A0 - A12 276415 D0 - D7
O E
C E
162
A0 O0 A1 A2 A3 A4 A5 A6 A7 A8
F0000-F1FFF O1 O2 O3 O4 O5 O6 O7 O8
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
[Type text] Trang 163
Bus D
F0000F1FFF
Ti RYD1 Ca 8284
CS
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
[Type text] Trang
164
165
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.
[Type text] Trang
166
CAS
c.hag n
c.hag n
167
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 A0-A7. S + ALE [I]: Cho php cht cc tn hiu a ch hng, a ch ct REN1 v C .
S + C .[I]: Xung chn mch bt u vic ghi/c DRAM, c ni qua b iu khin trong thi im sn xung ca xung ALE. + REN1 [I] : Chn 1 trong 2 khi nh DRAM ni vi b iu khin (REN=1) th S chn RASO , REN1=0 th chon RA 1 + ACR [I]: Sn ln ca xung ny kt thc vic c. Thng c ni vi RD trong ch MN. C + A W [I]: Sn ln ca xung ny kt thc vic ghi. Thng c ni vi WR trong ch MN. + CLK [I]: u vo cho xung ng h (ni vi CLK ca PCU).
168
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
169
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
170
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.
171
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
[Type text] Trang 172
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
173
W R
y0 y1 IS P 7C y2 y 3 IS P 7F y4 G 2 Ay 5 O S P 7 C G 1 y6 G 2 By 7 O S P 7 S A B C
Hnh 5.31. Mt b gii m cho cng vo v cng ra vi a ch 7CH-7FH 3.3. Cc mch cng n gin Trong thc t c rt nhiu vi mch t hp c va c th c dng lm cng phi ghp vi b vi x l vo/ra d liu. Cc mch ny thng c cu to nn t cc mch cht 8 bit c u ra 3 trng h (74LS373: kch theo mc; 74LS374: kch theo sn), cc mch khuch i m 2 chiu 8 bit u ra 3 trng thi (74LS245). Chng c dng trong cc phi ghp n gin lm cho CPU v thit b ngoi vi hot ng tng thch vi nhau, v d nh m bus hoc cc mch cng to ra cc tn hiu mc ni... Trn hnh 5.32 l v d mt mch phi ghp n gin dng mch 74LS373 a tn hiu ra iu khin cc n LED bng lnh OUT 7CH, AL.
DO
D Q G
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.
174
DO
TU THIET BI VAO
Q7
Hnh 5.33. Mt mch phi ghp ra n gin dng 74LS244 Ngoi cc mch phi ghp n gin trn, trong thc t cn c cc mch phi ghp lp trnh c dng cho cc cng vic t chc vo/ra d liu phc tp hn. 3.4. Mch phi ghp vo/ra song song lp trnh c 8255A Mch 8255A thng c gi l mch phi ghp vo/ra lp trnh c (program mable peripheral interface, PPI). Do kh nng mm do trong cc ng dng thc t n l mch phi ghp c dng rt ph bin cho cc h vi x l 8-16 bit. S khi m t chc nng bn trong ca 8255A c th hin trn hnh 5.34. Cc chn tn hiu ca 8255A c ngha kh r rng. Chn Reset phi c ni vi tn hiu reset chung ca ton h (khi reset th cc cng c nh ngha l cng vo khng gy ra s c cho cc mch iu khin). CS c ni vi mch to xung chn thit b t mch 8255A vo mt a ch c s no . cc tn hiu a ch A0, A1 s chn ra 4 thanh ghi bn trong 8255A 1 thanh ghi ghi t iu khin cho hot ng ca 8255A (vit tt l CWR, control word register) v 3 thanh ghi khc ng vi cc cng (port) l PA, PB, PC ghi/c d liu (xem bng 5.7). Theo bng ny ta nhn thy a ch cho PA cng chnh l a ch c s ca 8255A. C 2 loi t iu khin cho 8255A: + T iu khin nh ngha cu hnh cho cc cng PA, PB, PC + T iu khin lp/xa tng bit u ra ca PC
175
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
1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
T iu khin nh ngha cu hnh Dng thc ca t iu khin nh cu hnh c th hin trn hnh 5.35. T iu khin lp/xo bit ra PCi: Dng thc ca t iu khin lp/xo PCi c th hin trn hnh 5.36.
[Type text] Trang
176
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. Ch 1: "Vo/ra c xung cho php"
177
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 STB ca thit b nhn. + ACKA (Tr li nhn c d liu). y l tn hiu ca thit b ngoi vi cho bit l n nhn c d liu t PA ca 8255A. + INTRA (Yu cu ngt t PA). y l kt qu thu c t quan h gia cc tn hiu khc ca 8255A trong qu trnh i thoi vi thit b ngoi vi, n c dng phn nh yu cu ngt ca PA ti CPU (xem biu quan h gia cc tn hiu trong hnh 5.38). + INTEA l tn hiu ca mt mch lt bn trong 8255A cho php/cm yu cu ngt INTRA ca PA. INTEA c lp/xo thng qua bit PC6 ca PC.
[Type text] Trang
178
179
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
[Type text] Trang
Lp trnh nh ngha ch 0 cho 8255A vi cu hnh cc cng nh sau: PA: Ra PB: Vo PCH: Ra PCL: Vo Sau c cc gi tr d liu c ti PB ri a ra PA v PCL ri a ra PCH. Gii: C th nh ngha cc hng cho cng, thanh ghi t iu khin v cho t iu khin nh lnh gi EQU: PA EQU 7CH PB EQU 7DH PC EQU 7EH CWR EQU 7FH CW EQU 83H ; t iu khin cho yu ; cu trn 83H=10000011 v sau dng hng vo vic nh ngha cu hnh cho 8255A: MOV AL, CW ; t iu khin trong AL OUT CWR, AL ; a CW vo CWR IN AL, PB ; c cng PB OUT PA, AL ; a d liu c c ra cng PA IN AL, PC ; c cng PCL MOV CL, 4 ; s ln quay AL ROL AL, CL ; chuyn 4 bit thp thnh 4 bit cao OUT PC, AL ; a d liu c c ra cng PCH V d 2: Lp trnh bit PC4 ca 8255A v d trn to ra 256 xung vi T=50ms, rng 50%. Gi thit c sn chng trnh con tr 25ms l TRE25MS. Gii: S dng cc k hiu v d trn v cc nh ngha mi PC4ON
[Type text] Trang
ta c mu chng trnh sau: ; s xung phi to ra ; cm ngt yn tm m ; to xung Lap: MOV AL, PC4ON ; t iu khin cho PC4=1. OUT PC, AL ; PC4=1 CALL TRE25MS ; ko di 25ms. MOV AL,PC4OFF ; PC4=0 CALL TRE25MS ; Lp cho s xung STI ; cho php ngt tr li ... Trong v d trn ta ch lnh CLI ( cm ngt) v lnh STI ( cho php ngt) u v cui on chng trnh tnh thi gian to ra dy xung. iu ny l cn thit v ta dng chng trnh to ra cc khong thi gian v v th ta mun cc yu cu ngt (nu c) khng nh hng ti vic to ra cc khong thi gian . V d 3: c mch 8255A vi a ch c s l 30H ni vi cc phn t ngoi vi n gin (hnh 5.42). Lp trnh c U1>U2 th c trng thi cng tc K, nu K ng th cho n LED tt, K m th cho n LED sng. Gii: Ta phi nh ngha cc hng v t iu khin nh ngha cu hnh: PA l vo, PB l vo v PCH l ra. Khi U1>U2 th ta c c PB7=1 (cn khi U1 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 30H 31H 32H 33H 92H ; t iu khin cho yu ; cu trn 92H=10010010 on chng trnh cn li l:
[Type text] Trang 182
PA PB PC CWR CW
CHNG 6 : VO RA D LIU BNG CCH THM D 1. Gii thiu chung v cc phng php iu kin vo/ra d liu Sau khi trnh by v cc mch thng dng cho vic phi ghp CPU vi thit ngoi vi ta s tin hnh nghin cu cc phng thc iu khin vic trao i d liu. Cc mch phi ghp vo / ra trnh by trc y c th c ng dng phc v cho mch ch ny. Ni chung ngi ta phn bit ra 3 phng php iu khin vo/ra d liu: vo/ra d liu iu khin bng cch thm d trng thi sn sng ca thit b ngoi vi. vo/ra d liu iu khin bng cch ngt b vi x l. vo/ra d liu iu khin bng phn cng ph thm nhp trc tip vo b nh. Mi phng php iu khin vo/ra d liu ni trn c nhng c im khc nhau v s c ng dng trong cc hon cnh khc nhau. Mt trong nhng cch iu khin n gin nht m chng ta xem xt trong chng ny l phng php thm d (polling) trng thi sn sng lm vic ca thit b ngoi vi trc khi thc hin vo/ra d liu. Cc phng php iu khin vo ra d liu khc s c gii thiu trong cc chng sau. 2. Vo/ra d liu bng phng php thm d. Vn iu khin vo/ra d liu s tr thnh rt n gin nu thit b ngoi v lc no cng sn sng ch lm vic vi CPU. V d, b phn do nhit s (nh l mt thit b vo) lp sn trong mt h thng iu khin lc no cng c th cung cp s o v nhit ca i tng cn iu chnh, cn mt b n LED 7 nt (nh l mt thit b ra) dng ch th mt gi tr no ca mt i lng vt l nht nh trong h thng ni
[Type text] Trang 183
Bng 7.1. Cho ta quan h gia IRi v s hiu ngt N tng ng. AD 7
[Type text] Trang
IR6
IR5
IR4
IR3
IR2
IR1
IR0
N
186
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:
[Type text] Trang 187
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
188
189
191
OCW2 D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0
Lnh EOI thng Lnh EOI ch ch danh (*)
M ha 0 0 1i mc u tin khi c EOI thng. mc u tin 0 1 1Lp ch quay khi c EOI t ng ngt b tc ng 1 0 1Xa ch quay khi c EOI t ng 000.mc
i mc u tin khi c EOI ch danh (*) Lnh lp tc u tin (*) Khng lm g
193
111 ...mc 7
D1 D0 0 1 P
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 . c. ch quay (i) mc u tin ch ch danh : ch ny ta cn ch r (ch danh) u vo IRi no ,vi i=L 2L1L0,c gn mc u tin thp nht ,u vo IRi+1 s uc t ng gn mc u tin cao nht . By gi ta ng du ngoc c ra m trn v tr li cc vn lin quan n OC WC.ta s ni r vic cc bit R,Slv SOI phi hp vi nhau nh th no to ra cc lnh quy nh cc cch thc kt thc yu cu ngt cho cc ch lm vic khc nhau ni n phn trn (xem thm hinh 7.9) . 1. kt thc yu cu ngt thng : chng trnh cn phc v ngt phi c lnh EOI t trc lnh tr v IRET cho 8259A .mch 8259 A s xc nh yu cu ngt Iri va c phc v v xo bit ISRi tng ng ca n to iu kin cho chnh yu cu ngt ny hoc cc ngt khc c mc u tin thp hn c th c tc ng . 2.kt thc yu cu ngt thng : chng trnh cn phc v ngt phi co lnh EOI ch ch danh t trc lnh tr v IRET cho 8259A . mch 8259A xo ch danh bit ISRi ,vi
[Type text] Trang
194
195
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 D2 D1 D0 I 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
[Type text] Trang 196
199
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
[Type text] Trang 200
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 201
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
202
204
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 .
[Type text] Trang
205
Ta nhn thy trong h thng ny , khi CPU t tch ra khi h thng bng t treo (ng vi v tr hin thi ca cc cng tc chuyn mch ) trao quyn s dng bus cho DMAC phi chu trch nhim iu khin ton b hot ng trao i d liu ca h thng . lm c iu DMAC phi c kh nng to ra c cc tn hiu ii khin cn thit ging nh cc tn hiu ca CPU v bn thn n phi l mt thit b lp trnh c ( CPU dn d n bng cch a vo cc t iu khin trc khi n c th hot ng c lp ). Qua trinh hot ng ca h thng trn c th c tm tt nh sau: Khi thit b ngoi vi c yu cu trao i d liu kiu DMA vi b nh , n a yu cu DRQ=1 n DMAC, DMAC s a yu cu treo HRQ=1 n chn HOLD ca CPU . nhn
[Type text] Trang 206
207
Tn hiu yu cu treo HOLD c ly mu ti sn ln ca .xung ng h trc chu k T4 hoc T1. Khi nhn c yu cu treo .CPU kt thc chu k bus hin ti , a ra tn hiu HLDA v treo cc tn hiu ca bus .busd v bus c (tr tn hiu ALE=O) nhng quyn s dng cc bus ny choDMAC . Cn lu rng u vo HOLD c mc u tin cao hn cc u vo yu cu ngt INTR v MNI nhng li thp hn so vi u vo RESET. m bo vic ng b tn hiu yu cu treo ca thit b ngoi vi vi tn hiu ng h ca h thng trc khi a vo chn HOLD ca 8088 ngi ta thng dng mch trn hnh 8.3.
2.2. Mch DMAC 8237A -5ca Inter Trc khi trnh by k v mch DMAC 8237A ca Inter ta ni qua v cc thay i cn c trong nhm tn hiu iu khin ghi/c ca h vi x l vi CPU 8088 ch MIN s dng c mch 8237A lm DMAC Nh trn hnh 8.1 th hin tng i r , th hin c chc nng DMA trong h ,bus iu ca h vi x l 8088 phi c thay i cht t c c cc tn hiu cn thit cho DMAC v cc b phn lkhc hot ng . chinhd l vic cc tn hiu RD.WD v IO/M c s dng ta cc tn hiu iu khin mi IOR.IOW .MEMR.MEMW.tng thch vi cc tn hiu ca DMAC 8237A -5.
[Type text] Trang
208
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
209
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 10: chn knh 2 11: chn knh 3 (X: khng quan tm) Hnh 8.9. Dng thc ca thanh ghi mt n ring cho mi knh 7 6 5 4 3 X X X X 1.Lp mt n cho knh 3 0: xa mt n cho knh 3 1:Lp mt n cho knh 2 0: Xa mt n cho knh 2 2 1 0
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.
[Type text] Trang
213
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 . lnh xo thanh ghi mt n tng hp :lnh ny cho php cc knh ca DMAC bt u yu cu trao i d liu . lp trnh cho cc thanh ghi a ch v thanh ghi s m: vic lp trnh cho cc thanh ghi a ch v thanh ghi s m c thc hin ring cho mi knh . cn phi nh trc gi tr logic ca F/L thao tc chnh xc c vi LSB v MSB ca cc thanh ghi trn . ngoi ra cn phi cm cc yu cu DMA ca cc knh trong khi lp trnh cho chng. C th tun theo cc bc sau y lp trnh cho DMAC 8237A -5: + xo mt lt F/L +cm cc yu cu ca cc knh +ghi LSB ri MSB ca thanh ghi a ch +ghi LSB ri MSB ca thanh ghi s m . Ni DMAC 8237A -5 vi CPU 8088 ch MIN Vic phi ghp mch 8237A-5 vi 8088 c th hin trn hnh 8.12 Tn hiu ca 8237A AEN-=O khi CPU kim sot hot ng ca ton h . cc bit a ch A 16 -A 19 v AO-A7 s c cht bi U1 v U3 a ra bit a ch . cc tn hiu iu
[Type text] Trang 214
215
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
216