Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
759,59 KB
Nội dung
Ti liu vi x lý T chc h thng vi x lý CHNG 2: T CHC H THNG VI X Lí Gii thiu Tt c cỏc mỏy vi tớnh IBM h PC hoc cỏc mỏy vi tớnh tng thớch IBM u s dng àP Intel h iAPX Bng 2.1 lit kờ cỏc c tớnh c bn ca mt s àP ca Intel ú 80486 cha mt b iu khin cache tớch hp v KB RAM tnh, Pentium cha cache 16 KB RAM tnh Bng 2.1: Kin trỳc cỏc àP ca Intel bit, 16 bit v 32 bit C TNH Bus a ch (s bit) ng d liu ni (s bit) Tc (MHz) Thanh ghi n ghi (às/word) ỏp ng interrupt (às) a ch b nh Cỏch nh a ch Coprocessor S ghi a dng S ghi on iu khin interrupt Timer counter 8080 8086 16 8088 80186 16 80188 80286 16 16 16 16 16 16 2,2.6, 6.3 1.3 5,8,10 5,8 0.3 0.38 8,10, 12.5 0.2 8,10, 12.5 0.3 7.3 6.1 8.6 3.36 6.2 2.52 64K 1M 24 1M 24 1M 24 1M 24 8087 8087 8087 8 8259A 8253 8259 -A 8253 /54 80386 32 386SX 16 486/Pentium 32 32 32/64 16 25-66 0.125 0.04 3.5 2.52 3.5 16M 24 4G 28 4G 28 4G 28 8087 80287 8 80287/ 80387 On chip 80287/ 80387 4 4 6 8259A 8253/ 54 On chip On chip On chip On chip 8259A 8253/ 54 8259-A 82335 àPLD 8253/5 8253/5 On chip 32 6,8,10, 16,20,25, 12.5,20 33 0.125 0.125 àP 8086/8088 2.1 Mụ t 2.1.1 nh thỡ chu k bus Mi chu k bus bt u bng vic xut a ch b nh hoc I/O port (chu k xung nhp T1) Vi 8086 thỡ a ch ny cú th l a ch b nh 20 bit, a ch I/O giỏn tip 16 bit (thanh ghi DX) hay a ch I/O trc tip bit Bus iu khin cú tớn hiu tỏc ng mc thp l MEMR , MEMW , IOR v IOW Phm Hựng Kim Khỏnh Trang 22 Ti liu vi x lý T chc h thng vi x lý Cỏc chui s kin xy mt chu k bus c b nh: T1: àP xut a ch b nh 20 bit Cỏc ng d liu khụng hot ng v cỏc ng iu khin b cm T2: ng iu khin MEMR xung mc thp n v b nh ghi nhn chu k bus ny l quỏ trỡnh c b nh v t byte hay word cú a ch ú lờn data bus T3: àP t cu hỡnh cỏc ng data bus l nhp Trng thỏi ny ch yu b nh cú thi gian tỡm kim byte hay word d liu T4: àP i d liu trờn data bus Do ú, nú thc hin cht data bus v gii phúng cỏc ng iu khin c b nh Quỏ trỡnh ny s kt thỳc chu k bus T1 T2 T3 T4 Clk Address bus a ch c b nh hay I/O IOR hay MEMR Data bus Address bus D liu a ch vo Ghi b nh hay I/O IOW hay MEMW Data bus D liu vo Hỡnh 2.1 nh thỡ chu k bus Trong mt chu k bus, àP cú th thc hin c I/O, ghi I/O, c b nh hay ghi b nh Cỏc ng address bus v control bus dựng xỏc nh a ch b nh hay I/O v hng truyn d liu trờn data bus Chỳ ý rng àP iu khin tt c cỏc quỏ trỡnh trờn nờn b nh bt buc phi cung cp c d liu vo lỳc MEMR lờn mc cao trng thỏi T4 Nu khụng, àP s c d liu ngu nhiờn khụng mong mun trờn data bus gii quyt ny, ta cú th dựng thờm cỏc trng thỏi ch (wait state) Phm Hựng Kim Khỏnh Trang 23 Ti liu vi x lý T chc h thng vi x lý 2.1.2 Mụ t chõn 10 11 12 13 14 15 16 17 18 19 20 GND VCC AD14 AD15 AD13 A16/S3 AD12 A17/S4 AD11 A18/S5 A19/S6 AD10 BHE/S7 AD9 MN/MX AD8 RD AD7 AD6 HOLD (RQ/GT0) AD5 HLDA (RQ/GT1) WR (LOCK) AD4 IO/M (S2) AD3 DT/R (S1) AD2 DEN (S0) AD1 ALE (QS0) AD0 INTA (QS1) NMI INTR TEST CLK READY GND RESET 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 8086 Hỡnh 2.2 S chõn ca 8086 8086 cú bus a ch 20 bit, bus d liu 16 bit, chõn ngun v 17 chõn dựng cho cỏc chc nng iu khin Tuy nhiờn, ta cú th dựng k thut ghộp kờnh thi gian (time multiplexing) cho phộp mt chõn cú nhiu chc nng nờn cỏc chõn s c phõn ra: - 16 chõn d liu v a ch (AD0 ữ AD15): cỏc chõn ny s l cỏc ng a ch trng thỏi T1 v d liu cỏc trng thỏi T2 T4 chõn a ch v trng thỏi chõn ngun 17 chõn nh thỡ v iu khin 8086 cú th hot ng ch ti thiu (minimum mode) hay ch ti a (maximum mode) Ch ti thiu ch dựng cho cỏc h thng àP n gin cũn ch ti a dựng cho cỏc h thng phỳc hn giao tip vi cỏc b nh v I/O riờng Phm Hựng Kim Khỏnh Trang 24 Ti liu vi x lý T chc h thng vi x lý Cỏc tớn hiu chung cho c hai ch ti a v ti thiu: Bng 2.2: Chõn Chc nng Bus d liu / a ch AD15 ữ AD0 A19/S6 ữ A16/S3 a ch / trng thỏi iu khin ch MX iu khin c RD Ch kim tra iu khin TEST READY Ch trng thỏi iu khin RESET Reset h thng NMI Yờu cu ngt khụng th che INTR Yờu cu ngt CLK Xung nhp h thng VCC +5V GND GND Loi chiu, trng thỏi Ngừ trng thỏi Ngừ vo Ngừ trng thỏi Ngừ vo Ngừ vo Ngừ vo Ngừ vo Ngừ vo Ngừ vo Ngừ vo Ngừ vo Cỏc tớn hiu ch dựng ch ti thiu: Bng 2.3: Chõn HOLD HLDA WR IO/ M DT/ R DEN BHE /S7 ALE INTA Chc nng Yờu cu gi Ghi nhn gi iu khin ghi iu khin I/O v b nh Truyn / nhn d liu Cho phộp d liu ng trng thỏi Cho phộp cht a ch Ghi nhn ngt Loi Ngừ vo Ngừ vo Ngừ trng thỏi Ngừ trng thỏi Ngừ trng thỏi Ngừ trng thỏi Ngừ trng thỏi Ngừ Ngừ Cỏc tớn hiu ch dựng ch ti a: Bng 2.4: Chõn RQ / GT1,0 LOCK S2 ữ S0 QS1, QS2 Phm Hựng Kim Khỏnh Chc nng Yờu cu / cp bus iu khin khúa u tiờn bus Trng thỏi chu k bus Trng thỏi hng lnh Loi chiu Ngừ trng thỏi Ngừ trng thỏi Ngừ Trang 25 Ti liu vi x lý T chc h thng vi x lý Trng thỏi bus: Bng 2.5: Ngừ vo trng thỏi S2 S1 S0 0 0 1 0 1 0 1 1 1 Chu k CPU Ghi nhn ngt c I/O port Ghi I/O port Ngng Nhn lnh c b nh Ghi b nh Th ng Trng thỏi hng lnh: Bng 2.6: QS1 0 1 QS0 1 Trng thỏi hng lnh Khụng hot ng Ly byte u tiờn ca lnh Hng rng Ly byte k tip Ngun cung cp v xung nhp (VCC, GND v CLK): - 8086 s dng ngun cp in +5V v cú chõn t Dũng in cc i l 340 mA (10 mA cho loi CMOS) Xung nhp dựng dng xung ch nht cú chu k vi thi gian cnh lờn v xung nh hn 10 ns Tiờu hao cụng sut v tn s xung nhp cc i: Cỏc chõn trng thỏi ch ti a (S0, S1 v S2 - status): Cỏc chõn ny s dng bi b iu khin bus 8288 to cỏc tớn hiu iu khin nh bng 2.5 Cỏc chõn iu khin bus (HOLD, HLDA, RQ / GT0 , RQ / GT1 , LOCK ): Ch ti thiu: - HOLD (gi): ngừ vo tỏc ng mc cao lm cho àP h mch tt c cỏc bus ca nú, tỏch àP b nh ca nú v I/O cho phộp thit b khỏc x lý Phm Hựng Kim Khỏnh Trang 26 Ti liu vi x lý - T chc h thng vi x lý bus h thng Quỏ trỡnh ny gi l truy xut b nh trc tip (DMA Direct Memory Access) HLDA (Hold acknowledge): ghi nhn yờu cu DMA i vi b iu khin DMA Ch ti a: - RQ / GT0 , RQ / GT1 (Request / Grant): cỏc chõn ny dựng c hai chc nng vo (nhn yờu cu) v (chp nhn yờu cu) Khi mt thit b mun ly iu khin ca bus cc b, nú s phỏt yờu cu bng cỏch a tớn hiu mc thp vo chõn yờu cu Sau nhn yờu cu, 8086 s trng thỏi HOLD v gi tớn hiu chp nhn chõn ny õy, chõn RQ / GT0 cú u tiờn cao hn chõn RQ / GT1 - LOCK : bỏo cho cỏc thit b khỏc bit khụng th ly iu khin ca bus cc b Cỏc chõn ngt (NMI, INTR v INTA ): INTR v NMI l cỏc yờu cu ngt ng bng phn cng, lm vic chớnh xỏc nh cỏc ngt mm NMI (Non-Maskable Interrupt) l ngừ vo tỏc ng cnh lờn NMI l ngt khụng th che c v luụn c phc v, thng dựng cho cỏc s kin nh h ngun hay cỏc li b nh INTR tỏc ng mc cao v cú th b che bng cỏch xoỏ c IF ghi c (xem 2.3.4) bng lnh CLI Khi NMI tớch cc, iu khin s c chuyn n a ch cha cỏc v trớ 00008h ữ 0000Bh Khi INTR tớch cc, chu k ghi nhn ngt (interrupt acknowledge cycle) c thc hin Quỏ trỡnh ny ging nh chu k c b nh ngoi tr INTA tớch cc thay vỡ RD Thit b to ngt s t mt giỏ tr bit vo data bus v chuyn iu khin n v trớ giỏ tr ì n giỏ tr ì + Chõn RESET: hot ng cú xung tỏc ng mc cao, dựng ng li (P Sau khi ng, (P s c lnh ti a ch FFFF0h RESET c s dng h thng cú s c Cỏc chõn iu khin bus (READY, RD , ALE, DEN , DT/ R , WR v IO/ M ): Trong cỏc chõn iu khin ny, ch cú hai chõn READY v RD lm vic ch ti a - Chõn READY: ngừ vo READY c ly mu cnh lờn ca xung nhp T2 Nu chõn ny mc thp (khụng sn sng) thỡ s thờm vo mt chu k T3 na Chu trỡnh ny s tip tc cho n no chõn READY lờn mc cao Ngừ vo ny thng c iu khin bi thit b b nh chm, khụng th cung cp d liu kp thi cho àP - Chõn IO/ M (IO/Memory Xut nhp /B nh): xỏc nh chu k bus hin hnh lm vic vi b nh (mc thp) hay I/O (mc cao) Phm Hựng Kim Khỏnh Trang 27 Ti liu vi x lý - - T chc h thng vi x lý Chõn RD (Read): tớn hiu tỏc ng mc thp ch chiu truyn d liu t b nh hay I/O n àP Ta cú th kt hp vi tớn hiu ny vi IO/ M to cỏc tớn hiu MEMR v IOR Nú c xut trng thỏi T2 v ly i trng thỏi T4 Thit b b nh hay I/O gi s l ó t byte hay word vo cỏc ng d liu RD tr v mc cao Chõn WR (Write): tớn hiu ny ngc vi RD , nú xỏc nh chiu truyn d liu t àP n I/O hay b nh RD 2 IO/ M 2 WR 2 3 3 MEMR IOR IOW MEMW Hỡnh 2.3 To tớn hiu iu khin b nh v I/O - Chõn ALE (Address Latch Enable - cho phộp cht a ch): tớn hiu trờn chõn ny cú th dựng phõn kờnh cỏc ng a ch, d liu v trng thỏi trờn AD0 ữ AD15, A16/S3 ữ A19/S6 v BHE /S7 Mi chu k bt u vi xung ALE trng thỏi T1 a ch 20 bit c bo m s hp l ALE chuyn t mc cao xung mc thp - Chõn DEN (Data Enable cho phộp d liu): tớn hiu ny c dựng vi DT/ R cho phộp ni cỏc b m hai chiu vo data bus Nú ngn nga s tranh chp bus bng cỏch cm cỏc b m d liu cho n trng thỏi T2 cỏc ng d liu / a ch khụng cũn lu tr a ch ca b nh hay I/O - Chõn DT/ R (Data transmit/receive truyn/nhn d liu): dựng iu khin chiu ca lung d liu qua cỏc b m (nu cú) vo bus d liu ca h thng Khi mc thp, nú ch thc hin tỏc v c v mc cao nú ch thc hin tỏc v ghi Phm Hựng Kim Khỏnh Trang 28 Ti liu vi x lý T chc h thng vi x lý T1 T2 T3 T4 Clk ALE IO/ M a ch / trng thỏi AD0 ữ AD15 S3 ữ S7 A16 ữ A19, BHE D liu vo D0 ữ D15 A0 ữ A15 Chu k c RD DT/ R DEN AD0 ữ AD15 Dửừ lieọu D0 ữ D15 A0 ữ A15 Chu k ghi RD DT/ R DEN Hỡnh 2.4 Cỏc chu k c v ghi ca 8086 Cỏc chõn trng thỏi (AD16/S3 ữ AD19/S6 v BHE /S7): tớn hiu trng thỏi ny c xut cỏc trng thỏi T2 ữ T4, dựng cho cỏc mc ớch kim tra Bit S7 l bit trng thỏi d (khụng dựng), bit S6 luụn bng 0, S5 mụ t trng thỏi ca c ngt IF cũn S3, S4 dựng xỏc nh on ang s dng: Bng 2.7: S4 0 1 Phm Hựng Kim Khỏnh S3 1 on Thờm Stack Mó (hay khụng) D liu Trang 29 Ti liu vi x lý T chc h thng vi x lý Tớn hiu BHE /S7 (Bus High Enable) ch c xut trng thỏi T1 Khi chõn ny mc thp, nú s ch AD8 ữ AD15 liờn quan n vic truyn d liu Quỏ trỡnh ny cú th xy i vi cỏc truy xut b nh, I/O hay truy xut byte d liu t a ch l Bus d liu (AD0 ữ AD15): 16 chõn ny to thnh bus d liu hai chiu Cỏc ng ny ch hp l cỏc trng thỏi T2 ữ T4 Trong trng thỏi T1, chỳng gi 16 bit thp ca a ch b nh hoc I/O Bus a ch (AD0 ữ AD15 v AD16/S3 ữ AD19/S6): 20 chõn ny tng ng vi bus a ch 20 bit v cho phộp àP truy xut MB v trớ b nh Cỏc ng ny ch hp l trng thỏi T1, chuyn thnh cỏc ng d liu v trng thỏi trng thỏi T2 ữ T4 Chn ch MX : Chõn ny dựng chn ch hot ng cho 8086, nu mc cao thỡ s hot ng ch ti thiu cũn mc thp thỡ s hot ng ch ti a 2.2 Kin trỳc ni àP cú kh nng thc hin cỏc tỏc v d liu theo lnh bờn Mt lnh c ghi nhn bng mó ó c nh ngha trc, gi l mó lnh (opcode) Trc thc thi mt lnh, àP phi nhn c mó lnh t b nh chng trỡnh ca nú Quỏ trỡnh x lý ny gi l chu k nhn lnh (fetch cycle) Mt cỏc mó c nhn v c gii mó thỡ mch bờn àP cú th tin hnh thc thi (execute) mó lnh EU Hng lnh BIU Bus h thng Hỡnh 2.5 Kin trỳc ni ca àP 8086 BIU (Bus Interface Unit n v giao tip bus) nhn cỏc mó lnh t b nh v t chỳng vo hng ch lnh EU (Execute Unit n v thc thi) s gii mó v thc hin cỏc lnh hng Chỳ ý rng cỏc n v EU v BIU lm vic c lp vi nờn BIU cú kh nng ang nhn mt lnh mi EU dang thc thi lnh trc ú Khi EU ó thc hin xong lnh, nú s ly mó lnh k tip hng i lnh (instruction queue) Phm Hựng Kim Khỏnh Trang 30 Ti liu vi x lý T chc h thng vi x lý Kin trỳc ni ca àP 8086 hỡnh 2.2 Nú cú b x lý riờng: BIU v EU BIU cung cp cỏc chc nng phn cng, bao gm to cỏc a ch b nh v I/O chuyn d liu gia EU v bờn ngoi àP BIU EU iu khin bus v sinh a ch AH AL BH BL CH CL DH DL CS BP ES DI SS SI DS SP IP Internal bus Thanh ghi c ALU Hỡnh 2.6 Kin trỳc ni ca 8086 EU nhn cỏc mó lnh chng trỡnh v d liu t BIU, thc thi cỏc lnh ny v cha cỏc kt qu cỏc ghi Ngoi ra, d liu cng cú th cha mt v trớ b nh hay c ghi vo thit b xut Chỳ ý rng EU khụng cú bus h thng nờn phi thc hin nhn v xut tt c cỏc d liu ca nú thụng qua BIU S khỏc bit gia àP 8086 v 8088 l BIU Trong 8088, ng bus d liu l bit ca 8086 l 16 bit Ngoi hng lnh ca 8088 di byte ca 8086 l byte Phm Hựng Kim Khỏnh Trang 31 Ti liu vi x lý T chc h thng vi x lý Tuy nhiờn EU gia hai loi àP ny ging nờn cỏc chng trỡnh vit cho 8086 cú th chy c trờn 8088 m khụng cn thay i gỡ c Quỏ trỡnh nhn lnh v thc thi lnh: 1/ BIU xut ni dung ca ghi tr lnh IP (Instruction Pointer) bus a ch chn byte hay word c vo BIU 2/ Thanh ghi IP c tng thờm chun b nhn lnh k 3/ Khi lnh BIU, nú c a sang hng lnh (queue) õy l mt ghi lu tr dng FIFO (First In First Out Vo trc trc), dựng c ch x lý xen k liờn tc cỏc dũng mó lnh (k thut ng ng pipelining) 4/ Gi s ban u hng lnh trng, EU s khụng lm gỡ c cho n bt u xut hin mt lnh hng, EU s ly lnh hng v bt u thc thi lnh ú 5/ Trong EU ang thc thi lnh, BIU tin hnh nhn lnh mi Tu theo thi gian thc thi lnh m BIU cú th a vo hng lnh nhiu lnh mi trc EU thc hin lnh xong v tip tc ly lnh mi BIU c lp trỡnh cú th nhn mt lnh mi bt k lỳc no hng lnh cú ch cho byte (8088) hay byte (8086) Li ớch ca phng phỏp x lý theo c ch pipeline l EU cú th thc thi cỏc lnh gn nh liờn tc thay vỡ phi i BIU nhn thờm lnh mi Nhn Thc thi Nhn Thc thi Nhn Thc thi (a) Nhn (1) Ch Nhn (2) Thc thi Nhn (3) c Ch Thc thi Nhn (4) Thc thi Nhn (4) Thc thi Nhn Ch Nhn (b) (1): lnh thc thi khụng cn d liu hng (2): lnh thc thi cn d liu hng (3): lnh nhy (4): cỏc lnh b b qua lnh nhy Hỡnh 2.7 (a) àP thụng thng dựng chu k nhn v thc thi lnh tun t (b) kin trỳc dng pipeline ca 8086/8088 cho phộp thc thi cỏc lnh m khụng b tr quỏ trỡnh nhn lnh Cú iu kin lm cho EU ch ch: - iu kin th nht xy lnh cn truy xut n mt v trớ b nh khụng hng BIU phi treo quỏ trỡnh nhn lnh v xut a ch ca ụ nh ny Sau truy xut b nh, EU cú th tip tc quỏ trỡnh thc thi lnh t hng lnh v BIU cú th tip tc a cỏc lnh vo hng Phm Hựng Kim Khỏnh Trang 32 Ti liu vi x lý T chc h thng vi x lý - iu kin th hai xy lnh c thc thi l lnh nhy (jump) Trong trng hp ny, thay vỡ dựng a ch lnh k tip, ta phi chuyn n a ch mi (khụng tun t) Tuy nhiờn, BIU luụn t cỏc lnh theo tun t v ú s lu cỏc lnh khụng s dng Trong nhn lnh k tip ti a ch lnh jump ch n, EU phi i v tt c cỏc byte hng phi b - iu kin th ba cú th lm BIU treo quỏ trỡnh nhn lnh ú l thc thi cỏc lnh cú thi gian thc thi ln Gi s nh lnh AAM (ASCII Adjust for Multiplication) cn 83 chu k xung nhp hon tt ú vi chu k xung nhp cho quỏ trỡnh nhn lnh thỡ hng s b y Nh vy BIU phi i cho n lnh c thc hin xong v EU nhn mó lnh t hng thỡ mi cú th tip tc quỏ trỡnh nhn lnh 2.3 Cỏc ghi àP 8086/8088 cú tt c 14 ghi ni Cỏc ghi ny cú th phõn loi nh sau: - Thanh ghi d liu (data register) - Thanh ghi ch s v tr (index & pointer register) - Thanh ghi on (segment register) - Thanh ghi trng thỏi v iu khin (status & control register) 2.3.1 Cỏc ghi d liu Cỏc ghi d liu gm cú cỏc ghi 16 bit AX, BX, CX v DX ú na cao v na thp ca mi ghi cú th nh a ch mt cỏch c lp Cỏc na ghi ny (8 bit) cú tờn l AH v AL, BH v BL, CH v CL, DH v DL Cỏc ghi ny c s dng cỏc phộp toỏn s hc v logic hay quỏ trỡnh chuyn d liu Bng 2.8: Thanh ghi S dng AX MUL, IMUL (toỏn hng ngun kớch thc word) DIV, IDIV (toỏn hng ngun kớch thc word) IN (nhp word) OUT (xut word) CWD Cỏc phộp toỏn x lý chui (string) AL MUL, IMUL (toỏn hng ngun kớch thc byte) DIV, IDIV (toỏn hng ngun kớch thc byte) IN (nhp byte) OUT (xut byte) XLAT AAA, AAD, AAM, AAS (cỏc phộp toỏn ASCII) CBW (i sang word) DAA, DAS (s thp phõn) Cỏc phộp toỏn x lý chui (string) Phm Hựng Kim Khỏnh Trang 33 Ti liu vi x lý AH BX CX CL DX T chc h thng vi x lý MUL, IMUL (toỏn hng ngun kớch thc byte) DIV, IDIV (toỏn hng ngun kớch thc byte) CBW (i sang word) XLAT LOOP, LOOPE, LOOPNE Cỏc phộp toỏn string vi tip du ng REP RCR, RCL, ROR, ROL (quay vi s m byte) SHR, SAR, SAL (dch vi s m byte) MUL, IMUL (toỏn hng ngun kớch thc word) DIV, IDIV (toỏn hng ngun kớch thc word) AX (ACC Accumulator): ghi tớch lu BX (Base): ghi c s CX (Count): m DX (Data): ghi d liu 2.3.2 Cỏc ghi ch s v tr Bao gm cỏc ghi 16 bit SP, BP, SI v DI, thng cha cỏc giỏ tr offset ( lch) cho cỏc phn t nh a ch mt phõn on (segment) Chỳng cú th c s dng cỏc phộp toỏn s hc v logic Hai ghi tr (SP Stack Pointer v BP Base Pointer) cho phộp truy xut d dng n cỏc phn t ang ngn xp (stack) hin hnh Cỏc ghi ch s (SI Source Index v DI Destination Index) c dựng truy xut cỏc phn t cỏc on d liu v don thờm (extra segment) Thụng thng, cỏc ghi tr liờn h n on stack hin hnh v cỏc ghi ch s liờn h n don d liu hin hnh SI v DI dựng cỏc phộp toỏn chui 2.3.3 Cỏc ghi on Bao gm cỏc ghi 16 bit CS (Code segment), DS (Data segment), SS (stack segment) v ES (extra segment), dựng nh a ch vựng nh MB bng cỏch chia thnh 16 on 64 KB Tt c cỏc lnh phi on mó hin hnh, c nh a ch thụng qua ghi CS Offset ( lch) ca mó c xỏc nh bng ghi IP D liu chng trỡnh thng c t on d liu, nh v thụng qua ghi DS Stack nh v thụng qua ghi SS Thanh ghi on thờm cú th s dng nh a ch cỏc toỏn hng, d liu, b nh v cỏc phn t khỏc ngoi on d liu v stack hin hnh 2.3.4 Cỏc ghi iu khin v trng thỏi Thanh ghi tr lnh IP (Instruction Pointer) ging nh b m chng trỡnh (Program Counter) Thanh ghi iu khin ny BIU qun lý nhm lu tr offset t bt u on mó n lnh thc thi k tip Ta khụng th x lý trc tip trờn ghi IP Thanh ghi c (Flag register) hay t trng thỏi 16 bit cha bit iu khin (TF, IF v DF) v bit trng thỏi (OF, SF, ZF, AF, PF v CF) cũn cỏc bit cũn li m 8086/8088 khụng s dng thỡ khụng th truy xut c Phm Hựng Kim Khỏnh Trang 34 Ti liu vi x lý 15 X 14 X 2.4 13 X T chc h thng vi x lý 12 X 11 10 OF DF IF TF SF ZF X AF X PF X CF OF (Overflow - trn): OF = xỏc nh trn s hc, xy kt qu vt ngoi phm vi biu din DF (Direction- hng): xỏc nh hng chuyn string, DF = àP lm vic vi string theo th t t phi sang trỏi IF (Interrupt - ngt): cho phộp hay cm cỏc interrupt cú mt n TF (Trap - by): t àP vo ch tng bc, dựng cho cỏc chng trỡnh g ri (debugger) SF (Sign - du): dựng ch cỏc kt qu s hc l s dng (SF = 0) hay õm (SF = 1) ZF (Zero): = nu kt qu ca phộp toỏn trc l AF (Auxiliary nh ph): dựng cỏc s thp phõn ch nh t na byte thp hay mn t na byte cao PF (Parity): PF = nu kt qu ca phộp toỏn l cú tng s bit l chn (dựng kim tra li truyn d liu) CF (Carry): CF = nu cú nh hay mn t bit cao nht ca kt qu C ny cng dựng cho cỏc lnh quay Phõn on b nh Ta bit rng dự 8086 l àP 16 bit (cú bus d liu 16 bit) nhng dựng b nh theo cỏc byte iu ny cho phộp àP lm vic vi byte cng nh word, nú rt quan trng giao tip vi cỏc thit b I/O nh mỏy in, thit b u cui v modem (chỳng c thit k chuyn d liu mó hoỏ ASCII hay bit) Ngoi ra, nhiu mó lnh ca 8086/8088 cú chiu di byte nờn cn phi truy xut c cỏc byte riờng bit cú th x lý cỏc lnh ny 8086/8088 cú bus a ch 20 bit nờn cú th cho phộp truy xut 220 = 1048576 a ch b nh khỏc Byte 1048575 Word 524287 Byte 1048574 Byte Word Byte Hỡnh 2.8 Vựng nh ca 8086/8088 cú 1048576 byte hay 524288 word thc hin c 16 bit t b nh, 8086 s thc hin c ng thi byte cú a ch l v byte cú a ch chn Do ú, 8086 t chc b nh thnh cỏc bank chn v l Theo hỡnh 2.8, ta cú th thy rng cỏc word luụn bt u ti a ch chn nhng ta Phm Hựng Kim Khỏnh Trang 35 Ti liu vi x lý T chc h thng vi x lý cú th c word cú a ch l bng cỏch thc hin chu k c b nh: mt chu k c byte thp v mt chu k c byte cao iu ny s lm chm tc x lý i vi 8088 thỡ bus d liu bit nờn dự word cú a ch chn hay l, nú cng cn phi thc hin chu k c hay ghi b nh v giao tip vi b nh nh mt bank Byte 1048574 Byte 1048575 Byte 1048575 Byte 1048572 Byte 1048573 Byte 1048574 Byte Byte Byte Byte Byte c ln c ln Byte Byte Byte Word d liu 16 bit Hỡnh 2.9 c word a ch chn v a ch l Ngoi b nh cng chia thnh 16 khi, mi cú kớch thc 64 KB, bt u a ch 00000h v kt thỳc FFFFFh a ch bt u mi s tng lờn s hex cú ý ngha nhiu nht thay i t ny sang Vớ d nh 00000h 10000h 20000h FFFFFh F0000h FFFFFh D tr FFFFBh Dnh riờng FFFF0h 20000h 10000h 0007Fh D tr 00013h Dnh riờng 00000h 00000h Hỡnh 2.10 Bng b nh cho 8086/8088 Phm Hựng Kim Khỏnh Trang 36 Ti liu vi x lý T chc h thng vi x lý Cỏc ghi phõn on: 8086/8088 nh ngha b nh 64KB: on mó (code segment) gi cỏc mó lnh chng trỡnh, on ngn xp (stack segment) lu cỏc a ch s tr v t cỏc chng trỡnh (subroutine) hay trỡnh phc v ngt (interrupt subroutine), on d liu (data segment) lu tr d liu cho chng trỡnh v on thờm (extra segment) thng dựng cho cỏc d liu dựng chung Cỏc ghi on (CS, DS, SS v ES) dựng ch v trớ nn ca mi on Cỏc ghi ny cú 16 bit a ch b nh l 20 bit nờn xỏc dnh v trớ b nh, ta s thờm bit vo cỏc bit thp ca ghi on Gi s nh ghi CS cha giỏ tr 1111h thỡ nú s ch ti a ch nn l 11110h Chỳ ý rng a ch bt u mt on khụng th tu ý m phi bt u ti mt a ch chia ht cho 16 Ngha l bit thp phi l Ta cng chỳ ý rng on cú th khụng tỏch ri m chng lp lờn v ta cng cú th cho giỏ tr ca cỏc ghi on bng ngha l on ny trựng VD: Thanh ghi DS cú giỏ tr l 1000h thỡ a ch nn l 10000h a ch kt thỳc tỡm c bng cỏch cng a ch nn vi giỏ tr FFFFh (64K) a ch kt thỳc l 10000h + FFFFh = 1FFFFh Nh vy on d liu cú a ch t 10000h = 1FFFFh Cỏc v trớ b nh khụng c nh ngha cỏc on hin hnh khụng th truy xut c Mun truy xut n cỏc v trớ ú, ta phi nh ngha li mt cỏc ghi on sau cho on phi cha v trớ ú Nh vy, ti mt thi im bt k ta ch cú th truy xut ti a ì 64 KB = 256 KB b nh Ni dung ca cỏc ghi on ch cú th xỏc nh thụng qua phn mm VD: Gi s cỏc ghi on cú cỏc giỏ tr CS = 2800h, DS = E000h, SS = 2900h v ES = 1000h Ta cú v trớ cỏc on bng b nh nh sau: EFFFFh on d liu E0000h 38FFFh 37FFFh 29000h 28000h on stack 29000h ữ 38FFFh on mó 28000h ữ 37FFFh 1FFFFh on thờm 10000h Hỡnh 2.11 V trớ cỏc phõn on theo giỏ tr cỏc ghi on Phm Hựng Kim Khỏnh Trang 37 Ti liu vi x lý T chc h thng vi x lý a ch logic v a ch vt lý: Cỏc a ch mt on thay i t 0000h ữ FFFFh, tng ng vi chiu di on l 64 KB Mt a ch mt on c gi l a ch logic hay offset Vớ d nh a ch logic 0010h ca on mó hỡnh 2.11 s cú a ch tht s l 28000h + 0010h = 28010h a ch ny gi l a ch vt lý Nh vy, a ch vt lý chớnh l a ch tht s xut hin bus a ch, nú cú chiu di 20 bit cũn a ch logic l lch (offset) t v trớ ca mt on cho trc VD: Gi s xột cỏc on nh hỡnh 2.11 a ch vt lý tng ng vi a ch logic 1000h on stack l: 29000h + 1000h = 2A000h a ch vt lý tng ng vi a ch logic 2000h on mó l: 28000h + 2000h = 2A000h Ta thy rng cú th a ch vt lý trựng a ch logic khỏc ngha l mt a ch vt lý cú th cú nhiu a ch logic khỏc ch a ch logic 1000h on mó, ta dựng ký hiu CS:1000h Tng t nh vy cho cỏc on khỏc, ngha l a ch logic 1111h on d liu s l DS:1111h Mi lnh tham chiu b nh s cú mt ghi on mc nhiờn Thanh ghi IP cung cp a ch offset truy xut n on mó v BP cho on stack Vớ d nh IP = 1000h v CS = 2000h thỡ BIU s truy xut n a ch 20000h + 1000h = 21000h v nhn byte ti v trớ ny Bng 2.9: Tham chiu b nh Nhn lnh Tỏc v stack D liu tng quỏt Ngun ca string ớch ca string BX dựng lm tr BP dựng lm tr on mc nhiờn CS SS DS DS ES DS SS on khỏc Khụng Khụng CS,ES,SS CS,ES,SS Khụng CS,ES,SS CS,ES,SS Offset IP SP a ch hiu dng SI DI a ch hiu dng a ch hiu dng VD: Ta s dng lnh MOV [BP],AL vi BP = 2C00h õy BP dựng lm tr nờn dựng on stack Gi s cỏc phõn on nh hỡnh 2.11 thỡ a ch vt lý s l 29000h + 2C00h = 2BC00h nh ngha cỏc v trớ b nh: Thụng thng ớt no ta cn bit n a ch vt lý ca mt v trớ b nh m ta ch quan tõm n a ch logic ca nú m thụi Lý l vỡ a ch vt lý cũn phi ph thuc vo ni dung ca cỏc ghi on c a ch logic gi khụng i nh ó xột trờn Phm Hựng Kim Khỏnh Trang 38 Ti liu vi x lý T chc h thng vi x lý Khi vit cỏc chng trỡnh hp ng, thng gỏn cho cỏc a ch logic bng cỏc nhón (label) hay cỏc tờn (name) Vớ d: DATA SEGMENT SAMPLEB DB ? DATA ENDS s gỏn nhón SAMPLE cho byte a ch logic on d liu Cỏc phỏt biu ny khụng phi l cỏc lnh àP m ch l cỏc lnh gi (pseudo instruction) dựng cho cỏc chng trỡnh dch Toỏn t DATA SEGMENT bỏo cho chng trỡnh dch bit cỏc lnh theo sau s nm on d liu Toỏn t DB (Define Byte) gỏn cho nhón SAMPLEB byte on d liu Ký hiu ? xỏc nh rng khụng cn nh ngha ni dung ca byte ú Do SAMPLEB l dũng u tiờn nờn nú s cú a ch logic l Phỏt biu DATA ENDS kt thỳc on d liu ( õy ch dnh ngha byte) Trong trng hp mun nh ngha word, ta dựng toỏn t DW (Define Word) VD: SAMPLEW DW 1000h Phỏt biu ny nh ngha nhón SAMPLEW ng vi v trớ word v ni dung ca v trớ ny l 1000h Ngoi ra, ta cú th dựng cỏc toỏn t DD nh ngha t kộp (double word), DQ nh ngha t b bn (8 byte) v DT nh ngha 10 byte Cỏch mó hoỏ lnh Lnh ca b vi x lý s biu din bng cỏc ký t di dng gi nh (mnemonic) cú th d dng s dng i vi vi x lý thỡ cỏc lnh c biu din bng cỏc mó lnh (opcode) nờn sau nhn lnh vi x lý phi thc hin gii mó lnh ri mi thc thi nú Mt lnh vi x lý cú th di byte hay nhiu byte Nu ta dựng byte mó hoỏ thỡ s mó hoỏ c 256 lnh khỏc Tuy nhiờn mt lnh khụng phi ch cú mt cỏch thc hin nờn ta khụng th thc hin n gin nh trờn tỡm hiu cỏch mó hoỏ lnh, ta xột lnh MOV des,src dựng chuyn d liu gia hai ghi hay mt ụ nh v mt ghi Lnh MOV mó hoỏ nh sau: Byte 1 0 Byte Byte Byte Opcode D W Mod reg M/R mó húa lnh MOV, ta cn dựng ớt nht l byte ú bit dựng cho mó lnh Bit D xỏc nh hng truyn ca d liu, D = xỏc nh d liu s i t ghi cho bi bit Reg, D = xỏc nh d liu s i n ghi cho bi bit Reg Bit W xỏc nh s truyn byte (W = 0) hay word (W = 1) bit Reg dựng chn ghi s dng: Phm Hựng Kim Khỏnh Trang 39 Ti liu vi x lý T chc h thng vi x lý Bng 2.10: Thanh ghi W=1 W=0 AX AL CX CL DX DL BX BL SP AH DI CH BP DH SI BH Mó 000 001 010 011 100 101 110 111 bit mod v bit R/M (Register / Memory) dựng xỏc nh ch a ch cho cỏc toỏn hng ca lnh Bng 2.11: MOD R/M 000 001 010 011 100 101 110 111 00 01 10 [BX]+[SI] [BX]+[DI] [BP]+[SI] [BP]+[DI] [SI] [DI] addr16 [BX] [BX]+[SI]+addr8 [BX]+[DI]+addr8 [BP]+[SI] +addr8 [BP]+[DI] +addr8 [SI] +addr8 [DI] +addr8 [BP] +addr8 [BX] +addr8 [BX]+[SI]+addr16 [BX]+[DI]+addr16 [BP]+[SI] +addr16 [BP]+[DI] +addr16 [SI] +addr16 [DI] +addr16 [BP] +addr16 [BX] +addr16 W=1 AX CX DX BX SP BP SI DI 11 W=0 AL CL DL BL AH CH DH BH Tng quỏt, 8086/8088 cú khong 300 tỏc v cú th cú lnh ca nú Mi lnh kộo di t n byte T vớ d trờn, ta thy mó lnh cú cỏc vựng: - Vựng mó lnh (opcode): cha mó lnh ca lnh s thc thi Vựng ghi (reg): cha cỏc ghi s thc hin (bng 2.10) Vựng ch (mod): (bng 2.11) 00: toỏn hng b nh trc tip nu R/M = 110, ngc li l toỏn hng giỏn tip 01: toỏn hng giỏn tip, di bit 10: toỏn hng giỏn tip, di 16 bit 11: s dng ghi, vựng R/M s l vựng Reg - Vựng ghi / b nh R/M (Reg/Mem): (bng 2.11) Phm Hựng Kim Khỏnh Trang 40 Ti liu vi x lý T chc h thng vi x lý Cỏc cỏch nh a ch Bng 2.12: Cỏch nh a ch Mó i tng Vớ d on Hot ng truy xut Tc thi B80010 MOV AX,1000h Mó AH 10h AL 00h Thanh ghi 8BD1 MOV DX,CX Trong àP DX CX Trc tip 8A260010 MOV AH,[1000h] Dửừ AH [1000h] lieọu D liu Giỏn tip 8B04 MOV AX,[SI] AL [SI]; AH [SI+1] D liu ghi FF25 JMP [DI] IP[DI+1:DI] Stack FE4600 INC BYTE PTR [BP] [BP][BP]+1 D liu FF0F DEC WORD PTR [BX] [BX+1:BX] [BX+1:BX]-1 Cú ch s 8B4406 MOV AX,[SI+6] D liu AL [SI+6]; AH [SI+7] FF6506 JMP [DI+6] D liu IP[DI+7:DI+6] Cú nn 8B4602 MOV AX,[BP+2] Stack AL[BP+2]; AH [BP+3] FF6702 JMP [BP+2] D liu IP[BX+3:BX+6] AL[BX+SI];AH[BX+SI+1] Cú nn v 8B00 MOV AX,[BX+SI] D liu IP[BX+DI+1:BX+DI] cú ch s FF21 JMP [BX+DI] D liu FE02 INC BYTE PTR [BP+SI] Stack [BP+SI][BP+SI]+1 DEC WORD PTR [BP+DI] Stack FF0B [BP+DI+1:BP+DI] [BP+DI+1:BP+DI]-1 MOV AX,[BX+SI+5] Cú nn v 8B4005 D liu AL[BX+SI+5] cú ch s FF6105 AH[BX+SI+1] JMP [BX+DI+5] vi di FE4205 D liu IP[BX+DI+6:BX+DI+5] INC BYTE PTR [BP+SI+5] Stack FF4B05 [BP+SI+5][BP+SI+5]+1 DEC WORD PTR [BP+DI+5] Stack [BP+DI+6:BP+DI+5] [BP+DI+6:BP+DI+5]-1 String A4 MOVSB Thờm, [ES:DI] [DS:DI] d liu Nu DF = thỡ SI SI + 1; DI DI + Nu DF = thỡ SI SI - 1; DI DI - - T gi nh Mụ t (1) (2) (3) (4) (5) (6) (7) (8) (9) BYTE PTR v WORD PTR trỏnh lm gia truy xut byte v word di c cng vo ghi tr hay nn l s nh phõn dng bự (1): ngun d liu lnh (2): ớch v ngun l cỏc ghi ca àP (3): a ch b nh cung cp lnh (4): a ch b nh cung cp ghi tr hay ch s (5): a ch b nh l tng ca ghi ch s cng vi di lnh (6): a ch b nh l tng ca ghi BX hay BP cng vi di lnh (7): a ch b nh l tng ca ghi ch s v ghi nn Phm Hựng Kim Khỏnh Trang 41 Ti liu vi x lý - T chc h thng vi x lý (8): a ch b nh l tng ca ghi ch s, ghi nn v di lnh (9): a ch ngun b nh l ghi SI on d liu v a ch ớch b nh l ghi DI on thờm 4.1 nh a ch tc thi Cỏc lnh dựng cỏch nh a ch tc thi ly d liu lnh lm mt phn ca lnh Trong cỏch ny, d liu s c cha on mó thay vỡ on d liu D liu cho lnh MOV AX,1000h c cung cp tc thi sau mó lnh B8 Chỳ ý rng mó i tng byte d liu cao i sau byte d liu thp Cỏch nh a ch tc thi thng dựng np mt ghi hay v trớ b nh vi cỏc d liu ban u Sau ú, cỏc lnh k tip s lm vic vi cỏc d liu ny Tuy nhiờn, cỏch nh a ch ny khụng s dng c cho cỏc ghi on 4.2 nh a ch ghi Mt s lnh ch lm cụng vic chuyn d liu gia cỏc ghi ca àP Vớ d nh MOV DX,CX s chuyn d liu t ghi CX vo ghi DX õy ta khụng cn thc hin tham chiu b nh Ta cú th kt hp cỏch nh a ch tc thi v nh a ch ghi np d liu cho cỏc ghi on VD: MOV AX, 1000h MOV CS,AX Sau thc hin lnh ny, giỏ tr ca ghi CS s l 1000h 4.3 nh a ch trc tip Ngoi cỏch nh a ch trờn, tt c cỏc cỏch nh a ch cũn li cho bng 2.6 u cn phi truy xut n b nh vi ớt nht mt toỏn hng Trong cỏch nh a ch trc tip, a ch b nh c cung cp trc tip nh l mt phn ca lnh Vớ d nh lnh MOV AH,[1000h] s a ni dung cha ụ nh DS:1000h vo ghi AH hay lnh MOV [2000h],AX s a ni dung cha AX vo ụ nh liờn tip DS:2000h v DS:2001h 4.4 nh a ch truy xut b nh giỏn tip Cỏc cỏch nh a ch trc tip s thun li cho cỏc truy xut b nh khụng thng xuyờn Tuy nhiờn, nu mt ụ nh cn phi truy xut nhiu ln mt chng trỡnh thỡ quỏ trỡnh nhn a ch (2 byte) s phi thc hin nhiu ln iu ny s khụng hiu qu gii quyt ny, ta thc hin lu tr a ch ca ụ nh cn truy xut mt ghi tr, ch s hay ghi c s (BX, BP, SI hay DI) Ngoi ra, ta cú th s dng di bự bng cỏch cng vo cỏc ghi di i so vi v trớ c cỏc ghi ch n Phm Hựng Kim Khỏnh Trang 42 Ti liu vi x lý T chc h thng vi x lý Bng 2.13: Cỏch nh a ch Giỏn tip ghi Cú ch s Cú nn Cú nn v ch s Cú nn v ch s vi di a ch hiu dng (EA Effective Address) di Thanh ghi nn Thanh ghi ch s Khụng BX hay BP Khụng Khụng Khụng SI hay DI Khụng SI hay DI -128 ữ 127 BX hay BP Khụng -128 ữ 127 BX hay BP SI hay DI Khụng BX hay BP SI hay DI -128 ữ 127 Nh vy, mt di cú th c cng vo ghi nn v kt qu ny c cng tip vo ghi ch s a ch thu c gi l a ch hiu dng EA Ngoi ta cng cú th vit cỏch nh a ch giỏn tip nh sau: MOV AX,table[SI] Trong ú table l nhón gỏn cho mt v trớ ụ nh no ú Lnh ny s truy xut phn t th SI dóy table (gi s SI = thỡ s truy xut phn t th 2) Ta cng cú th vit lnh trờn nh sau: MOV AX,[table + SI] Chỳ ý rng cỏc on mc nh cho cỏc cỏch nh a ch giỏn tip l on stack dựng BP, l on d liu dựng BX, SI hay DI VD: Lnh: MOV AH,10h MOV AX,[BP + 10] MOV AH,[BP + SI] 4.5 thc hin nh a ch tc thi thc hin nh a ch cú nn thc hin nh a ch cú nn v cú ch s nh a ch chui Chui l mt dóy liờn tc cỏc byte hay word lu tr b nh di dng cỏc ký t ASCII 8086/8088 cú cỏc lnh dựng x lý chui, cỏc lnh ny s dng cp ghi DS:SI ch ngun chui ký t v ES:DI ch ớch chui Lnh MOVSB s chuyn byte d liu ngun n v trớ ớch ú SI v DI s tng hay gim tu theo giỏ tr ca DF (xem 2.3.4 v bng 2.13) 4.6 Thay i ghi on mc nh Nh ó núi phn trờn, s dng cỏc lnh nh a ch ghi, ta ch cn dựng cỏc ghi xỏc nh lch cũn cỏc ghi on thỡ c hiu mc nh Vớ d nh ta dựng lnh MOV AH,[BP] thỡ s a d liu ti ụ nh SS:BP vo ghi AH Trong trng hp khụng mun dựng ghi on mc nh, ta cú th thay i bng cỏch thờm tờn ghi on vo loi b ghi on mc nh Vớ d lnh MOV AH,CS:[BP] s a d liu ti CS:[BP] vo AH Phm Hựng Kim Khỏnh Trang 43 [...]... ng vi v trớ word v ni dung ca v trớ ny l 1000h Ngoi ra, ta cú th dựng cỏc toỏn t DD nh ngha t kộp (double word), DQ nh ngha t b bn (8 byte) v DT nh ngha 10 byte 3 Cỏch mó hoỏ lnh Lnh ca b vi x lý s biu din bng cỏc ký t di dng gi nh (mnemonic) cú th d dng s dng i vi vi x lý thỡ cỏc lnh c biu din bng cỏc mó lnh (opcode) nờn sau khi nhn lnh vi x lý phi thc hin gii mó lnh ri mi thc thi nú Mt lnh vi x lý. .. thanh ghi on Phm Hựng Kim Khỏnh Trang 37 Ti liu vi x lý T chc h thng vi x lý a ch logic v a ch vt lý: Cỏc a ch trong mt on thay i t 0000h ữ FFFFh, tng ng vi chiu di on l 64 KB Mt a ch trong mt on c gi l a ch logic hay offset Vớ d nh a ch logic 0010h ca on mó trong hỡnh 2.11 s cú a ch tht s l 28000h + 0010h = 28010h a ch ny gi l a ch vt lý Nh vy, a ch vt lý chớnh l a ch tht s xut hin bus a ch, nú cú... luụn bt u ti a ch chn nhng ta vn Phm Hựng Kim Khỏnh Trang 35 Ti liu vi x lý T chc h thng vi x lý cú th c word cú a ch l bng cỏch thc hin 2 chu k c b nh: mt chu k c byte thp v mt chu k c byte cao iu ny s lm chm tc x lý i vi 8088 thỡ do bus d liu 8 bit nờn dự word cú a ch chn hay l, nú cng cn phi thc hin 2 chu k c hay ghi b nh v giao tip vi b nh nh mt bank Byte 1048574 Byte 1048575 Byte 1048575 Byte 1048572... khin ny do BIU qun lý nhm lu tr offset t bt u on mó n lnh thc thi k tip Ta khụng th x lý trc tip trờn thanh ghi IP Thanh ghi c (Flag register) hay t trng thỏi 16 bit cha 3 bit iu khin (TF, IF v DF) v 6 bit trng thỏi (OF, SF, ZF, AF, PF v CF) cũn cỏc bit cũn li m 8086/8088 khụng s dng thỡ khụng th truy xut c Phm Hựng Kim Khỏnh Trang 34 Ti liu vi x lý 15 X 14 X 2.4 13 X T chc h thng vi x lý 12 X 11 10 9... logic l lch (offset) t v trớ 0 ca mt on cho trc VD: Gi s xột cỏc on nh hỡnh 2.11 a ch vt lý tng ng vi a ch logic 1000h trong on stack l: 29000h + 1000h = 2A000h a ch vt lý tng ng vi a ch logic 2000h trong on mó l: 28000h + 2000h = 2A000h Ta thy rng cú th a ch vt lý trựng nhau khi a ch logic khỏc nhau ngha l mt a ch vt lý cú th cú nhiu a ch logic khỏc nhau ch a ch logic 1000h trong on mó, ta dựng ký hiu... word) OUT (xut word) CWD Cỏc phộp toỏn x lý chui (string) AL MUL, IMUL (toỏn hng ngun kớch thc byte) DIV, IDIV (toỏn hng ngun kớch thc byte) IN (nhp byte) OUT (xut byte) XLAT AAA, AAD, AAM, AAS (cỏc phộp toỏn ASCII) CBW (i sang word) DAA, DAS (s thp phõn) Cỏc phộp toỏn x lý chui (string) Phm Hựng Kim Khỏnh Trang 33 Ti liu vi x lý AH BX CX CL DX T chc h thng vi x lý MUL, IMUL (toỏn hng ngun kớch thc byte)... lnh (4): a ch b nh cung cp trong thanh ghi con tr hay ch s (5): a ch b nh l tng ca thanh ghi ch s cng vi di trong lnh (6): a ch b nh l tng ca thanh ghi BX hay BP cng vi di trong lnh (7): a ch b nh l tng ca thanh ghi ch s v thanh ghi nn Phm Hựng Kim Khỏnh Trang 41 Ti liu vi x lý - T chc h thng vi x lý (8): a ch b nh l tng ca thanh ghi ch s, thanh ghi nn v di trong lnh (9): a ch ngun b nh l thanh ghi... s hay thanh ghi c s (BX, BP, SI hay DI) Ngoi ra, ta cú th s dng di bự 2 bng cỏch cng vo cỏc thanh ghi di i so vi v trớ c cỏc thanh ghi ch n Phm Hựng Kim Khỏnh Trang 42 Ti liu vi x lý T chc h thng vi x lý Bng 2.13: Cỏch nh a ch Giỏn tip thanh ghi Cú ch s Cú nn Cú nn v ch s Cú nn v ch s vi di a ch hiu dng (EA Effective Address) di Thanh ghi nn Thanh ghi ch s Khụng BX hay BP Khụng Khụng Khụng SI...Ti liu vi x lý T chc h thng vi x lý Tuy nhiờn do EU gia hai loi àP ny ging nhau nờn cỏc chng trỡnh vit cho 8086 cú th chy c trờn 8088 m khụng cn thay i gỡ c Quỏ trỡnh nhn lnh v thc thi lnh: 1/ BIU xut ni dung ca thanh ghi con tr lnh IP (Instruction Pointer)... dng SI DI a ch hiu dng a ch hiu dng VD: Ta s dng lnh MOV [BP],AL vi BP = 2C00h õy BP dựng lm con tr nờn dựng on stack Gi s cỏc phõn on nh hỡnh 2.11 thỡ a ch vt lý s l 29000h + 2C00h = 2BC00h nh ngha cỏc v trớ b nh: Thụng thng ớt khi no ta cn bit n a ch vt lý ca mt v trớ b nh m ta ch quan tõm n a ch logic ca nú m thụi Lý do l vỡ a ch vt lý cũn phi ph thuc vo ni dung ca cỏc thanh ghi on ngay c khi a ... ca nú m thụi Lý l vỡ a ch vt lý cũn phi ph thuc vo ni dung ca cỏc ghi on c a ch logic gi khụng i nh ó xột trờn Phm Hựng Kim Khỏnh Trang 38 Ti liu vi x lý T chc h thng vi x lý Khi vit cỏc chng... (mnemonic) cú th d dng s dng i vi vi x lý thỡ cỏc lnh c biu din bng cỏc mó lnh (opcode) nờn sau nhn lnh vi x lý phi thc hin gii mó lnh ri mi thc thi nú Mt lnh vi x lý cú th di byte hay nhiu byte... Khỏnh Trang 35 Ti liu vi x lý T chc h thng vi x lý cú th c word cú a ch l bng cỏch thc hin chu k c b nh: mt chu k c byte thp v mt chu k c byte cao iu ny s lm chm tc x lý i vi 8088 thỡ bus d liu