Bài giảng Cấu trúc máy tính - Chương 1: Cấu trúc tổng quát của HTMT

pdf 570 trang huongle 3310
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính - Chương 1: Cấu trúc tổng quát của HTMT", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cau_truc_may_tinh_chuong_1_cau_truc_tong_quat_cua.pdf

Nội dung text: Bài giảng Cấu trúc máy tính - Chương 1: Cấu trúc tổng quát của HTMT

  1. CCUU TRTR ÚÚCC LP TRÌNH H P NG MMÁÁYY LP TRÌNH H P NG TTÍÍNHNH Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 1
  2. CCuu trtr úúcc MM ááyy tt íínhnh && MUMU ÏÏCC TIEÂUTIEÂU : LLpp trtr ììnhnh AssemblyAssembly 1. Khaùm phaù bí maät beân trong maùy tính. 2.Trang b nhöõng kieán thöùc cô baûn veà caáu truùc toång quaùt cuûa maùy tính cuõng nhö caùc thaønh phaàn caáu taïo neân maùy 3. Naémtính. ñöôïc caùch hoaït ñoäng,caùch giao ti p cuûa caùc thaønh phaàn caáu taïo neân maùy tính. 4. Bieát vieát 1 chöông trình baèng Assembly – dòch lieân keát vaø thöïc thi chöông trình naøy. 5. Bieát laäp trình xöû lyù ñơ n gi n phaàn cöùng, laäp trình heä thoáng 6. Cáckháinimcơbnv. virusTH nghiên cucáck thutlâylancavirustinhc Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 2
  3. Tàili uthamkh o StructuredComputerOrganization– Andrew Tanenbaum AssemblyLanguageFortheIBMPC– KipRIrvine AssemblyProgrammingLanguage&IBMPCYthayu– CharlesMarut GiáotrìnhCutrúcmáytính TngVănOn LptrìnhHpng Nguyeãn Ngoïc Taán Vũ ThanhHin CutrúcMáytính ði hcBáchkhoa Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 3
  4. Tàili uthamkh o ComputerVirusHandbook VirusWritingguideBillyBelceb Themacroviruswritingguide Thelittleblackbookofcomputerviruses Mts muchươngtrìnhvirus(virusfile,virusmacro) Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 4
  5. Giaùo vieân : Ngoâ Phöôùc Nguyeân Email : nguyenktcn@yahoo.com Mobile: 091-8-380-926 Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 5
  6. ðcươngmônhc Chương1:T chctngquátcah thngMT Chương2 : T chc CPU Chương3:Mclogics Chương4:T chcb nh Chương5:Xutnhp Chương6:LptrìnhAssembly– Tplnh Chương7:Cutrúcñiukhin&Vònglp Chương8:Macro&Procedure– nhúngCTAssemblyvào ngônng cpcaonhưC Chương9:Lptrìnhx lýmànhìnhbànphímmouse. Chương10:Lptrìnhx lýFile Chương11:Cáckháinimcơbnv Virustinhc– phântíchcáck thutlâylanchungcaVRtinhcvà lâylantrênmng. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 6
  7. Ch ươ ng 1 :C U TRÚC T NG QUÁT C A M T H TH NG MÁY TÍNH Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 7
  8. Mc tiêu : Nm ñưc t ng quan v cu trúc máy tính. Hi u v Máy Turing & Nguyên lý Von Neumann Bi t sơñ kh i chi ti t c a máy tính Naém nguyên lý ho t ñng máy tính Bi t các component ca máy tính : Processors,Memory,Input/Output devices,Bus Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 8
  9. Chöông 1 Toång quan veà caáu truùc maùy tính. Moâ hình maùy Turing Nguyeân lyù Von Neumann. Sô ñoà toång quaùt cuûa moät maùy tính. Nguyeân lyù hoaït ñoäng cuûa maùy tính Caâu hoûi oân taäp Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 9
  10. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 10
  11. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 11
  12. Maùy tính & Söï tính toaùn B x lý Memory:cha 2+3/4*3-5=? các ch th &d . liu . Input device : thi t b nh p Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 12
  13. Thesystembus(showninyellow)connectsthevariouscomponents of acomputer. TheCPUistheheartofthecomputer,mostofcomputationsoccur insidetheCPU. RAMisaplacetowheretheprogramsareloadedinordertobe executed. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 13
  14. Tng quan v cu trúc máy tính Máy tính hi n ñi ngày nay ñưc thi t k da trên mô hình Turing Church và mô hình Von Neumann. Mô hình Turing : Mô hình này r t ñơ n gi n nh ưng nó có tt c các ñc tr ưng c a 1 h th ng máy tính sau này. Nguyên lý c u t o máy Turing : ñu ñc ghi kh i x lý ch a t p h u h n các tr ng thái Băng d li u vô h n, d li u k t thúc là b Si b Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 14
  15. Nguyênlýxâyd ngMT MT ñin t làm vi c theo hai nguyên lý c ơ b n : nguyên lý s vànguyênlýtươngt. Nguyên lý s s dng các tr ng thái r I r c c a 1 ñI l ưng v t lý ñ bi u di n s li u nguyênlý ñm. Nguyên lý t ươ ng t s dng 1 ñI l ưng v t lý bi n ñI liên t c ñ bi u di n s li u nguyênlýño Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 15
  16. Mchñi ntrongMT Trong MT có nh ng lo I m ch ñin nào ? Mch t hp : là mch ñin có tr ng thái ngõ ra ph thu c t c th I vào t hp c a tr ng thái ngõ vào. Ex : M ch gi I mã ña ch Mch tu n t : là mch ñin th c hi n 1 m c ñích mà tr ng thái ngõ ra ph thu c vào t hp c a tr ng thái ngõ vào và tr ng thái c a quá kh ngõ vào. Ex : m ch c ng, tr , nhân , chia Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 16
  17. NguyênlýTuring kh i x lý ch a t p h u h n các tr ng thái ñu ñc ghi Băng d li u vô h n, d li u k t thúc là b Si Sj b Máy làm vi c theo t ng b ưc r i r c. Mt l nh ca máy nh ư sau : qiSiSjXq j. Ngh ĩa là : ñu ñc ghi ñang ô Si thì sghiñ è Sj vào ô hi n t i và dch chuy n ho c ñng yên theo ch th là X và tr ng thái hi n hành c a máy là qj Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 17
  18. Nguyên lý hoat ñng máy Turing D li u c a bài toán là 1 chu i các ký hi u thu c t p các ký hi u ca máy không k ký hi u r ng b, ñưc c t vô b ăng. Tr ng thái trong ban ñu c a máy là q0 . ðu ñc/ghi ô ch a ký hi u ñu tiên c a chu i ký hi u nh p. Trong quá trình ho t ñng, s thayñi d li u trên băng, s dch chuy n ñu ñc ghi và s bi n ñi tr ng thái trong c a máy s di n ra tuân theo các l nh thu c t p l nh c a máy tùy theo tr ng thái hi n t i và ký hi u ô hi n t i. Quá trình s dng l i khi tr ng thái trong c a máy là tr ng thái kt thúc qf. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 18
  19. Thí dụ máy Turing Xét thí d máy Turing th c hi n phép toán NOT trên chu i các bit 0/1.Chu i d li u nh p ban ñaàu là 10 tp các ký hi u c a máy {0,1} tp các tr ng thái trong {q 0, q 1} tp l nh g m 3 lnh : q001Rq 0 , q 010Rq 0 , q 0bbNq 1 q0 Ban ñu q0 1 0 b 0 0 b Dng q1 q0 Chuong 1 C U TRÚC T NG 0 1 b 4/4/20060 1 b QUÁT C A HTMT Ktqu 01 19
  20. NguyênlýVonNeumann Máy Von Neumann là mô hình c a các máy tính hi n ñi. Nguyên lý c a nónhưsau : V mt logic (ch c n ăng) , máy g m 3 kh i c ơ b n : ñơ n v x lý, b nh và h th ng xu t nh p. ðơðơ n v x lý BBnhnh n v x lý Trao ñi thông tin ðiu khi n H xu t nh p data ch ươ ng trình Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 20
  21. NguyênlýNguyênlýVonNeumann(contVonNeumann(cont ))) Chươngtr ình ñiu khi n x lý d li u c ũng ñưc xem là data vàñưclưu tr trong b nh gi làchươngtr ình l ưu tr . B nh chia làm nhi u ô, m i ô có1ña ch (ñánh s th t) ñ có th ch n l a ô nh trong quá trình ñc ghi d li u. (nguyên lý ñnh ña ch ) Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 21
  22. NguyênlýNguyênlýVonNeumann(contVonNeumann(cont ))) Các l nh ñưc th c hi n tu n t nh 1 b ñm ch ươ ng trình (thanh ghi l nh) n m bên trong ñơ n v x lý. Ch ươ ng tr ình MT c ó th bi u di n d ưI d ng s vàñ t vào trong b nh ca MT bên c nh d li u. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 22
  23. Typical Von Neumann Machine A L U Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 23
  24. Nguyênlýho tñ ngMT CPUCPU BBnhnh chínhchính ððcc l lnhnh LưuLưu trtr thôngthông tintin PhânPhân tích tích l lnhnh NơiNơi chch aa chch ươươ ngng trìnhtrình ThTh cc thi thi l lnhnh ññCPUCPU ññcc vàvà th th cc thithi KhKh ii xuxu tt nhnh pp GiaoGiao titipp v v ii môi môi trtr ưưngng bênbên ngoàingoài xuxu tt nhnh pp d d liliu,u, bbnhnh phph Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 24
  25. T ch c Máy tính 1 CPU & 2 I/O device CPU ControlControl UnitUnit ALUALU I/O Devices Registers Main Memory Disk Printer . . Bus Bus Bus Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 25
  26. Sơ ñ kh i chi ti t ñc, phân tích, ra l nh cho các ñơ n MainMain Memory Memory v ch c ControlControl UnitUnit năng th c CóCó 2 2 tác tác v v :: ñ ñcc /Ghi /Ghi hi n ALUALU 22 lo lo ii d d liliu:u: 1)1) Data Data : : s sliliuu ñ ñuu vào, vào, kktt qu qu ,d,dliliuu trung trung gian gian RegistersRegisters 2)2)ChươngtrChươngtr ìnhình Phép toán: s hc, lu n lý, so sánh, dch, ðơðơ nn v v giaogiao titipp –– IO IO CardCard quay,x lý bit. MI phép toán cho Chuong 1 C U TRÚCIOIO T DevicesDevicesNG 4/4/2006 2 k t qu QUÁT C A HTMT 26
  27. Tngk tch ươ ng Máy tính ñưc thi t k trênýtưng c a Máy Turing và nguyên lý Von Neumann. V mt ch c n ăng máy tính g m 3 ph n : ñơ n v x lý, b nh chính và các thi t b xu t nh p. Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 27
  28. Câuh i Câu 1: Trình bày nguyên lý Von Neumann. Câu 2: Cho bi t s khác nhau gi a mô hình Turing và mô hình VonNeumann. Câu 3: Trình bày nguyên lý ho t ñng c a Máy Turing. Câu 4: Tru c khi cónguyênlýVonNeumann , ch ươ ng trình ñ máy tính th c hi n ñưc ñ ñâu? Câu 5 : Cho bi t k t qu ca 2+3 ? Chuong 1 C U TRÚC T NG 4/4/2006 QUÁT C A HTMT 28
  29. Chương2:T chcCPU Mctiêu : NmñưcchcnăngcaCPU Hiuñưccácthànhphnbên trong CPU. NmñưccáchCPUgiaotipvithitb ngoi vi. BitñưccácñctínhcaCPUh Intel Chuong2:T chcCPU 1
  30. 2.1Giithiuh thngs 2.2B x lýtrungtâmCPU 2.3H thngBus 2.4B thanhghi 2.5Cơchñnhvñach 2.6 Cácñctínhthitkliênquanñnhiusut CPU h Intel 2.7Cácñctrưngca CPU h Intel 2.8Câuhiôntp Chuong2:T chcCPU 2
  31. 2.1H thngs Cơ s dng kýs và kýt biudins H ñm s ký s nh phân 2 2 01Ex:1010 b bátphân 8 8 01234567Ex: 24 o thpphân 10 10 0123456789 Ex: 12 d thplc 16 16 0123456789ABCDEF phân Ex:3F8 h Chuong2:T chcCPU 3
  32. H thngs H thngs là gì ? VàothIñimñó,vicdùngcácqueññmlà1ýtưngvĩñi!! Cònvicdùngcáckýhiuthaychocácqueñmcònvĩñihơn!!!! Mttrongcáccáchñ biudin1s hinnaylà s dngh thng sñmdecimal. Có nhiucáchñ biudin1giá tr s.Ngàyxưa,conngưidùng cácqueñ ñmsauñóñãhcv cáchìnhtrênmtñtvà trêngiy. thí d s 5lnñuñưcbiudinbng| | | | | (bng5 que). Sauñó ch s LaMãbtñudùngcáckýhiukhácnhauñ biu dinnhius gnhơn. Thí d s 3vnbiudinbI3que|||nhưngs 5thìñưcthay bngVcòns 10thì thaybngX. Chuong2:T chcCPU 4
  33. H thngs S dngqueññmlà 1ýnghĩavĩñI thiñim này.Và vicdùngcáckýhiuñ thaychocácque ñmcàngvĩñihơn!!!. Mttrongnhngcáchttnhthinnaylà dùngh thng s thpphân( decimal system). Chuong2:T chcCPU 5
  34. DecimalSystem Conngưingàynaydùngh10ññm.Trongh 10có 10digits 0,1,2,3,4,5,6,7,8,9 Nhngkýs nàycó th biudinbtkỳ 1giá tr nào,thí d : 754 Chuong2:T chcCPU 6
  35. V trí catngkýs rtquantrng,thí d nutañt"7" cuithì: 547 nó s là 1giá tr khác: Chuong2:T chcCPU 7
  36. Binary System MTkhôngthôngminhnhưconngưI,nó dùngtrngtháicañint : onandoff,or1and0. MTdùngbinarysystem,binarysystemcó2digits: 0,1 Nhưvycơs (base)là 2. Mikýs (digit)tronghbinarynumberñưcgilà BIT,4bitsnhóm thành1NIBBLE,8bitstothành1BYTE,2bytestothành 1WORD,2wordstothành1DOUBLEWORD(ítdùng): Chuong2:T chcCPU 8
  37. HexadecimalSystem HexadecimalSystem HexadecimalSystemdùng16digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F doñócơs (base) là 16 . Hexadecimalnumbersarecompactandeasytoread. Tad dàngbinñIcács t binarysystemsanghexadecimalsystemand vàngưcli,minibble(4bits)có th binthành1hexadecimaldigit: Ex: 1234 h =4660 d Chuong2:T chcCPU 9
  38. Cácphéptoántrongh nh phân cng: 0+0=0 0+1=1 1+0=1 1 +1=0 nh 1 tr :0 0=00 1=1mưn11 – 0=11 1=0 Nhân:có th coilà phépcngliêntip Chia:có th coilà phéptr liêntip Chuong2:T chcCPU 10
  39. Cácphéptoántrongh nh phân BngphéptínhLogicchocács nh phân A B Aand Aor Axor NotA B B B 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 Chuong2:T chcCPU 11
  40. Chuy ển hệ töø 10 heä 2 Ñoåi töø heä 10 heä 2 : Ex : 12d = 1100b Caùch ñoåi : laáy soá caàn ñoåi chia lieân tieáp cho 2, döøng khi soá bò chia baèng 0. Keát quaû laø caùc soá dö laáy theo chieàu ngöôïc laïi. 12 : 2 = 6 0 6 : 2 = 3 0 3 : 2 = 1 1 1 : 2 = 0 döøng 1 Chuong2:T chcCPU 12
  41. Chuy ển hệ töø heä 2 heä 10 Ñoåi töø heä 2 heä 10 : Ex : 1100 b = ? d ΣΣΣ i ∈∈∈ Caùch ñoåi : ai*2 vôùi i 0 n a laø kyù soá cuûa soá caàn ñoåi. 3 2 1 0 1*2 +1*2 +0*2 +0*2 = 12 d a Chuong2:T chcCPU 13
  42. Chuy ển hệ töø heä 10 heä 16 Ñoåi töø heä 10 heä 16 : Ex : 253 d = ? h Caùch ñoåi : laáy soá caàn ñoåi chia lieân tieáp cho 16, döøng khi soá bò chia = 0. Keát quaû laø chuoåi soá dö laáy theo chieàu ngöôïc laïi. 253 d = FD h Chuong2:T chcCPU 14
  43. Chuy ển hệ töø heä 2 heä 16 Ñoåi töø heä 2 heä 16 : Ex : 101011010 b = ? h Caùch ñoåi : nhoùm 4 chöõ soá nhò phaân thaønh töøng nhoùm, roài chuyeån ñoåi töøng nhoùm sang soá heä thaäp luïc phaân. 0001 0101 1010 d = 15A h 1 5 A Chuong2:T chcCPU 15
  44. 2.2B x lýtrungtâmCPU Chuong2:T chcCPU 16
  45. 2.2B x lýtrungtâmCPU CPU (Central Processing Unit) B x lý trung tâm – Ch c n ăng : th c hi n ch ươ ng trình l ưu trong b nh chính b ng caùch ly l nh ra - kh o saùt - th c hi n l n l ưt caùc lnh. Moãi CPU coù 1 taäp leänh rieâng. Chöông trình ñöôïc thöïc thi ôû CPU naøo seõ chæ goàm caùc leänh trong taäp leänh cuûa CPU ñoù. CPU gm 1 s b ph n tách bi t : Bñiu khi n l y l nh ra t b nh và xác ñnh ki u lnh. B lu n lý và s hc (ALU) th c hi n phép toán nh ư cng, and. Các thanh ghi (Registers) : lưu k t qu tm th i và các thông tin ñiu khi n.CPU giao ti p v i các b ph n khác trong máy tính thông qua các tuy n g i là Bus Chuong2:T chcCPU 17
  46. CPU(cont) Caùc nhaø cheá taïo CPU qui ñònh toác ñoä thöïc hieän cuûa töøng chip phuø hôïp vôùi nhòp tim cuûa chip ñoù (clock speed) toác ñoä ñoàng hoà, nhòp ñoàng hoà. Ñôn vò ño toác ñoä cuûa chip CPU laø Mhz cho bieát chip ñaäp bao nhieâu nhòp trong 1 s. Ex : CPU 500Mhz. Chuong2:T chcCPU 18
  47. Sơñ khi ñc,phân tíchlnh, CPU ralnhcho cácñơnv MainMain MemoryMemory chcnăng ControlControl UnitUnit thchin CóCó 2 2 tác tác v v : :ð ðcc /Ghi /Ghi 22 lo lo i id d liliu:u: ALUALU 1)1) Data Data : :s sliliuu ñ ñuu vào, vào, kkt tqu qu ,, ddliliuu trung trung gian gian 2)2)ChươngtrChươngtrìnhình RegistersRegisters Phép toán: s hc, lu n lý, so sánh, dch, ðơðơ nn v v giaogiao titipp –– IO IO CardCard quay,x lý bit IOIO DeviceDevice Chuong2:T chcCPU 19
  48. Chu kyø leänh Moät chu kyø thöïc hieän leänh maùy goàm 3 giai ñoaïn chính sau : 1. Laáy leänh : leänh caát ôû oâ nhôù seõ ñöôïc laáy vaøo thanh ghi leänh. 2. Giaûi maõ vaø thöïc hieän leänh : leänh trong thanh ghi leänh seõ ñöôïc giaûi maõ vaø thöïc hieän theo moâ taû cuûa leänh trong taäp leänh. 3. Xaùc ñònh ñòa chæ cuûa leänh tieáp theo : trong khi leänh ñöôïc thöïc hieän, giaù trò cuûa boä ñeám chöông trình seõ töï ñoäng taêng leân chæ ñeán oâ nhôù chöùa leänh seõ ñöôïc thöïc hieän tieáp theo. Chu kyø leänh ñöôïc xaây döïng töø nhöõng ñôn vò cô baûn laø chu kyø maùy. Chuong2:T chcCPU 20
  49. Chu kyø maùy Chu kyø maùy laø chu kyø cuûa 1 hoaït ñoäng cô baûn cuûa maùy tính nhö : Chu kyø ñoïc boä nhôù Chu kyø ghi boä nhôù Chu kyø ñoïc toaùn haïng Chu kyø ghi keát quaû Clock : xung laøm nhieäm vuï ñònh thì cho maïch tuaàn töï. Chuong2:T chcCPU 21
  50. Thöïc hieän leänh CPU thöïc hieän leänh tuaàn töï theo chuoåi caùc böôùc : Laáy leänh keá töø boä nhôù. thanh ghi leänh. Thay ñoåi PC ñeå chæ ñeán leänh keá tieáp. Xaùc ñònh kieåu leänh vöøa laáy ra. Xaùc ñònh kieåu döõ lieäu vöøa yeâu caàu vaø xaùc ñònh vò trí döõ lieäu trong boä nhôù. Neáu leänh caàn döõ lieäu trong boä nhôù, naïp noù vaøo thanh ghi cuûa CPU Chuong2:T chcCPU 22
  51. Thöïc hieän leänh (cont ) Thöïc hieän leänh Löu keát quaû ôû nôi thích hôïp. . Trôû về böôùc 1 ñeå thöïc hieän leänh keá. Chuong2:T chcCPU 23
  52. S phânphithigiancho2quá trìnhlylnhvà thihànhlnhcaCPUthưngvàCPUñưngng Ly lnh LNH1 LNH2 LNH3 Thi hành LNH1 LNH2 LNH3 lnh CPUthưng Ly lnh LNH1 LNH2 LNH3 Thigiantitkimñưc Thi LNH1 LNH2 LNH3 hành lnh CPUdùngcơcuñưngng (pipleline) Chuong2:T chcCPU 24
  53. Heä ña boä xöû lyù (MultiProccessor) Shared CPUCPU CPUCPU CPUCPU CPUCPU memory Bus Heä MultiProccessor söû duïng 1 ñöôøng Bus Chuong2:T chcCPU 25
  54. Heä ña boä xöû lyù (MultiProccessor) LocalMemory Shared CPUCPU CPUCPU CPUCPU CPUCPU memory Bus Heä MultiProccessor söû duïng nhieàu boä nhôù cuïc boä Chuong2:T chcCPU 26
  55. Bus Bus là các ñưng truyn. Thông tin s ñưc chuyn qua li gia các thành phn linh kin thông qua mng lưi gilà cácBus. Chuong2:T chcCPU 27
  56. 2.3H thng Bus Cácthitb ngoiviktnivih thngnh cáckhecmm rng (expansionslot). Bush thng(Bussystem)s ktni ttc cácthànhphnlivinhau. Có 3loibus:busd liu(databus), busñach (addressbus)vàbusñiu khin(controlbus). Chuong2:T chcCPU 28
  57. Cácloi Bus Address Bus : nhóm ñưng truy n nh n di n v trí truy xu t trong thi t b ñ ích : thông tin ñưc ñc t ñâuhoc ghi vào ñâu. Data Bus : nhóm ñưng truy n ñ ti data th c s gi a các thi t b h th ng do ña ch trên address bus ñã xác ñnh. ð rng c a data bus (s ñưng dây d n) xác ñnh data trong m i l n truy n là bao nhiêu. Control Bus : nhóm ñưng truy n cho các tín hi u ñiu khi n nh ư : tác v làñc hay ghi, tác v th c thi trên b nh hay trên thi t b ngo i vi, nh n d ng chu k ỳ bus và khi nào thì hoàn t t tác v Chuong2:T chcCPU 29
  58. Minhhah thngBus Address bus CPU MemoryMemory CPUCPU Data bus Control bus IOIOIO devices devicesdevices Chuong2:T chcCPU 30
  59. ATypicalOutputPort Chuong2:T chcCPU 31
  60. AnInputandanOutputDeviceThatShare theSameAddress(aDualI/OPort) Chuong2:T chcCPU 32
  61. ConnectionofthePCIandISA BussesinaTypicalPC Industry Standard Architecture Peripheral Component Interconnect Chuong2:T chcCPU 33
  62. PCI local bus n. Short for Peripheral Component Interconnect local bus. A specification introduced by Intel Corporation that defines a local bus system that allows up to 10 PCI-compliant expansion cards to be installed in the computer. A PCI local bus system requires the presence of a PCI controller card, which must be installed in one of the PCI-compliant slots. Optionally, an expansion bus controller for the system’s ISA, EISA, or Micro Channel Architecture slots can be installed as well, providing increased synchronization over all the system’s bus-installed resources. The PCI controller can exchange data with the system’s CPU either 32 bits or 64 bits at a time, depending on the implementation, and it allows intelligent, PCI-compliant adapters to perform tasks concurrently with the CPU using a technique called bus mastering. The PCI specification allows for multiplexing, a technique that permits more than one electrical signal to be present on the bus at one time. Chuong2:T chcCPU 34
  63. BusPCI PCIchunnIghépcácthitb ngaivivib VXLtcñ caocaIntelnhư486/Pentium •Tcñ tiña33MHz •Databus32bitsvà 64bits •H tr cho10thitb ngoivi •PlugandPlay Chuong2:T chcCPU 35
  64. PlugandPlay 1.C BIOStrênmainboardvà Cardb sungñukhôngphIlà PlugandPlay. 2.BIOStrênmainboardPlugandPlay nhưngCardb sungthì không phn mmcàiñts giúpspxpñach I/O,IRQvà cáckênhDMA. 3.BIOStrênmainboardvà Cardb sunglà PlugandPlay cuhìnhtñngthc hinmicôngvic. Chuong2:T chcCPU 36
  65. AGPBusInterface Accelerated Graphic Port Chuong2:T chcCPU 37
  66. AGP( Accelerated Graphics Port ) Acronym for Accelerated Graphics Port. A high-performance bus specification designed for fast, high-quality display of 3-D and video images. Developed by Intel Corporation, AGP uses a dedicated point-to-point connection between the graphics controller and main system memory. This connection enables AGP-capable display adapters and compatible chip sets to transfer video data directly between system memory and adapter memory, to display images more quickly and smoothly than they can be displayed when the information must be transferred over the system’s primary (PCI) bus. AGP also allows for storing complex image elements such as texture maps in system memory and thus reduces the need for large amounts of memory on the adapter itself. AGP runs at 66 MHz— twice as fast as the PCI bus—and can support data transfer speeds of up to 533 Mbps Chuong2:T chcCPU 38
  67. ð rngBus ð rng bus chính là sñưng dây d n h p thành bus. Vi address bus : trên m i ñưng dây ch có th có 1 trong 2 tr ng thái 0 ho c 1 nên bus cóñ rng n thì có th nh n bi t ñưc 2n ña ch . Vi data bus :ñưc thi t k theo nguyên t c là bi c a 8 (8,16,32,64 bit) nh ư th mi l n truy n 1 byte/2 bytes/4 bytes tùy theo máy. B rng Data bus càng l n thì data truy n càng nhanh. Chuong2:T chcCPU 39
  68. BusPC/XTcó khecm62chânbaogm: DatabusD0D7 AdrressBusA0A19 Cáctínhiuñiukhin . BusPC/AT:busXT+36chânnañ làmvic vIdatabus16bit,busñach 24bit. 36chânbsungñưcdùnglàmcácñưngd liuD8D15,cácñưngñach A21A23, D0D7:là busd liu8bit,2chiunigia b VXLvib nh,I/O. Chuong2:T chcCPU 40
  69. NhưcñimcaBusISA Databusb hnch 16bits khôngth phI hpvIdatabus32bitscab VXL 386/486/Pentum. Addressbusñach 24bitsgiihnkhnăng truycpb nh ccñiquakhecmm rng 16MB khôngth phihpñưcvibusña ch 32bitca386/486/Pentium. Chuong2:T chcCPU 41
  70. Chukỳ Bus Mi chu k ỳ bus là 1 tác v xãy ra trên bus ñ truy n t i data. Mi l n CPU c n l nh (ho c data) t b nh ho c I/O, chúng ph i th c thi 1 chu k ỳbusñ cóñưc thông tin ho c ghi thông tin ra b nh ho c ra I/O. Mi chu k ỳ bus g m 2 bưc : bưc 1 : g i ña ch bưc 2 : truy n data t ña ch ñãñưc ñnh v . Chuong2:T chcCPU 42
  71. 4 chu k ỳbuscơbn : ñc b nh (memory Read) ghi b nh ( memory Write) ñc I/O (I/O Read) ghi I/O (I/O Write). Các tín hi u c n thi t ñ th c hi n các chu k ỳbus ñưc sinh ra b i CPU ho c DMA Controller ho c b làm t ươ i b nh . Chuong2:T chcCPU 43
  72. Chukỳ Bus Mi chu k ỳ Bus ñòi h i ti thi u tr n v n 2 xung ñng h h th ng. ðâyl à mc tham chi u theo th i gian ññng b hoá tt c các tác v bên trong máy tính. Xung ñu tiên g i là Address time , ña ch truy xu t s ñưc g i ñi cùng vi tín hi u xác ñnh lo i tác v s ñưc th c thi (ñc/ghi/ñn mem/ñn I/O). Chuong2:T chcCPU 44
  73. Chukỳ Bus Cu i xung th 2, CPU s ki m tra ñưng tín hi u Ready . N u thi t b cn truy xu t s n sàng ñáp ng tác v, thi t b này s kích 1 tín hi u lên ñưng Ready ñ báo cho CPU bi t và chu k ỳ bus hoàn t t. Khi 1 thi t b không s n sàng, không có tín hi u trên ñưng Ready, CPU ph i ch , có th ph i tiêu t n thêm 1 hay nhi u xung clock. Chuong2:T chcCPU 45
  74. Chukỳ Bus(cont) Data2 Add1 Data1 Add2 Ready Chu k ỳ bus Chu kyø Bus khi khoâng coù traïng thaùi chôø Add2 Data2 Add1 Data1 Chu kyø Bus khi coù traïng thaùi chôø InactiveReady Chu k ỳ bus Chuong2:T chcCPU 46
  75. Chukỳ Bus(cont) Chú ý : Trong 1 s h th ng, cho phép ta Setup mt s wait states trong ph n Extend Setup ca Bios. Nu ta cho giá tr này nh thì có th ngo i vi không theo k p CPU và h th ng b treo. Còn n u cho giá tr này l n thì tc ñ chung ca h th ng b ch m l i. Wait states m c ñnh là 4 cho các v mch 8 bit và là 1 cho các v ĩ mch 16 bit. tc ñ truy n t i t i ña : tc ñ truy n t i = t c ñ bus (MHz) x s bytes trong 1 ln truy n /s chu k ỳ xung clock cho m i l n truy n Chuong2:T chcCPU 47
  76. 2.4H thngthanhghi Là các ph n t có kh nănglưutr thông tin vi dung lưng 8, 16 , 32, 64 bit . ðưc xây dng t các FlipFlop nên có tc ñ truy xu t r t nhanh. Phân lo i thanh ghi : Thanh ghi t ng quát : ch yu dùng ñlưutr d li u trong quá trình th c thi CT, nh ưng m i thanh ghi còn có 1 s ch c n ăng riêng. Thanh ghi ñiu khi n : các bit ca nó qui ñnh tác v ca các ñơ n v ch c n ăng c a MT. Thanh ghi tr ng thái : lưu tr thông tin mô t tr ng thái. Chuong2:T chcCPU 48
  77. AXRegister 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AH AL Thanh ghi AX (Accumulator register) : thanh ghi tích lu , dài 16 bit nh ưng nó cũng có th chia làm 2 thanh ghi 8 bit AH và AL AX ngoài ch c n ăng l ưu tr d li u, nó còn ñưc CPU dùng trong phép toán s hc nh ư nhân, chia. Chuong2:T chcCPU 49
  78. AXRegister 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 AH AL Thanh ghi AH là na cao c a thanh ghi AX Thanh ghi AL là na th p c a thanh ghi AX Thí d nu AX=1234h thì AH=12H AL=34h Chuong2:T chcCPU 50
  79. BXRegister 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 BH BL Thanh ghi BX (Base register) : dài 16 bit nh ưng nó cũng có th chia làm 2 thanh ghi 8 bit BH và BL BX lưu gi ña ch ca 1 th tc hay bi n, nó cũng ñưc dùng th c hi n các phép d i chuy n s hc và d li u. Chuong2:T chcCPU 51
  80. DXRegister 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DX DH DL Thanh ghi DX (Data register) : dài 16 bit nh ưng nó cũng có th chia làm 2 thanh ghi 8 bit DH và DL Thanh ghi DX : cóvaitròñc bi t trong phép nhân và phép chia ngoài ch c n ăng l ưu tr d li u. Ex : khi nhân DX slưugi 16 bit cao c a tích. Chuong2:T chcCPU 52
  81. CXRegister 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CX CH CL CX (Counter register) : thanh ghi này dùng làm b ñm trong các vòng l p. Các l nh t ñng l p l i và sau m i l n l p giá tr ca CX tñng gi m ñi 1. CL th ưng ch a s ln d ch, quay trong các l nh d ch, quay thanh ghi CX dài 16 bit, nó cũng có th chia làm 2 thanh ghi 8 bit là CH và CL Chuong2:T chcCPU 53
  82. CácthanhghiSegment CPU có 4 thanh ghi segment dài 16 bit, các thanh ghi này không th chia làm 2 thanh ghi 8 bit nh ư 4 thanh ghi AX,BX,CX và DX. Các thanh ghi ñon ñưc s dng nh ư làña ch cơs ca các l nh trong ch ươ ng trình, stack và d li u. 4 thanh ghi ñon : CS (Code Segment), DS (Data Segment) , SS (Stack Segment) và ES (Extra Segment). CS : ch a ña ch bt ñu c a code trong ch ươ ng trình. DS : ch a ña ch ca các bi n khai báo trong ch ươ ng trình. SS : ch a ña ch ca b nh Stack dùng trong ch ươ ng trình ES : ch a ña ch cơs b sung cho các bi n b nh . Chuong2:T chcCPU 54
  83. Thanhghi32bit Ñoái vôùi moät soá CPU ñôøi môùi, coù caùc thanh ghi daøi 32, 64 bit. Ta ghi theâm E ñöùng tröôùc teân caùc thanh ghi 16 bit EAX, EBX, ECX, EDX Chuong2:T chcCPU 55
  84. 2.5 Thanhghiñonvà s hìnhthànhñach 8088 s dng 20 bit ññ ánh ña ch b nh qu n lý trên 1Mb b nh . Nh ưng 8088 li không có thanh ghi nào 20 bit, tt c là 16 bit do ñó 1 thanh ghi ch có th ñánh ña ch ti ña là 64 kB b nh . Nh ư v y ph i k t h p 2 thanh ghi m i ña ch hoá toàn b b nh . 8088 s 1 trong các thanh ghi dùng chung và 1 trong các thanh ghi ñon (CS,DS,SS,ES) ñ to thành 1 ña ch 20 bit. Chuong2:T chcCPU 56
  85. SPHÂNðONB NH CPU8086dùngphươngphápphânñanb nh ñ qunlýb nh 1MBcanó. ðach 20bitcab nh 1MBkhôngth chañ trongcácthanhghi16bitcaCPU 8086 b nh1MBñưcchiarathànhcác ñon(segment)64KB. ðach trongcácñan64KBch có 16 bitnênCPU8086d dàngx lýbng cácthanhghicanó. PHÂNðONB NH :là cáchdùngcác thanhghi16bitñ biudinchoñach 20 bit. Chuong2:T chcCPU 57
  86. 2.5ðach vtlý&ñach lunlý ðach20bitsñưcgilàñach vtlý. ðach vtlýdùngnhưth nào? Dùngtrongthitk cácmchgiimãña ch chob nh và xutnhp. Còntronglptrình,ñach vtlýkhông th dùngñưcmà nóñưcthayth bng ñach lunlý(logic). Chuong2:T chcCPU 58
  87. ðach lunlý ðach ca1ônhñưcxácñnhbi2phn: Segment:offset ðachtrong ñon(ñ di) ðachñon Ex:B001:1234 Miñach thànhphnlà 1s 16bitvàñưcvit theocáchsau: Segment:offset Chuong2:T chcCPU 59
  88. S hìnhthànhñach Hãng Intel ñ xu t 1 ph ươ ng pháp ñ hình thành ña ch . Mi ña ch ô nh ñưc hình thành t 1 phép tính t ng 1 ña ch cơs và 1 ña ch offset. ða ch cơslưutrong 1 thanh ghi segemnt, còn ña ch offset nm trong 1 thanh ghi ch s hay thanh ghi con tr . Phép cng này s to 1 ña ch 20 bit gi làña ch vt lý. Chuong2:T chcCPU 60
  89. Thí d minhho hìnhthànhñach 15 0 ððaa chch OffsetOffset 15 0 ððaa chch segmentsegment 0 0 0 0 19 cng 0 ððaa chch vvtt lý lý 2020 bitbit Chuong2:T chcCPU 61
  90. S hìnhthànhñach tuytñi ña ch segment ña ch Offset Ga s ta có ña ch 08F1 : 0100 ña ch tươngñi CPU tñng l y ña ch segment x 10 (h 16) thành 08F10 Sau ñó nó cng v i ña ch Offset 0100 ña ch tuy t ñi : 09010 Chuong2:T chcCPU 62
  91. Cáchtínhñach vtlýtñach lunlý ðach vtlý=(segment*16)+offset Segment0 + offset ðach vtlý Ex:tínhñach vtlýtươngngñach lun lýB001:1234 ðach vtlý=B0010h+1234h=B1244h Chuong2:T chcCPU 63
  92. S chngchtcácñon ðach segmenthaycòngilàñach nnca ñon.Nó chobitñimbtñucañontrong b nh. ðach offsetth hinkhongcáchk tñu ñancaônh cnthamkho. Dooffsetdài16bitnênchiudàitiña camiñanlà 64K. Chuong2:T chcCPU 64
  93. S chngchtcácñon Trongmiñon,ônhñutiêncó offsetlà 0000hvà ônh cuicùnglà FFFFh. B nh segment 0000 offset Ônh có 64KB ñach segment: offset FFFF Chuong2:T chcCPU 65
  94. Miônh ch cóñach vtlýnhưngcó th có nhiuñach lunlý. Ex:1234:1234 ðucóchungñach 1334:0234 vtlý13574h 1304:0534 Tisao? Chuong2:T chcCPU 66
  95. ð hiurõtisaotahãyxétmiquanh giaña ch vtlývisegmentvà offset 0000: 00000h 0001: 00010h 0002: 00020h Phnchng chpca3 segment 0000,0001,0002 0FFFFh 1000Fh 1001Fh Chuong2:T chcCPU 67
  96. Giithích 0000:0000 00000h Gi nguyênphnsegment,tăngphnoffset lên1thànhrañach lunlýlà 0000:0001 ðach vtlýtươngnglà 00001h Tươngt vIñach lunlýlà 0000:0002tacó ñach vtlýlà 00002h Khioffsettăng1ñơnv thìñach vtlý tăng1ñach hoclàtăng1byte. Nhưvycó thxemñơnv caoffsetlà byte Chuong2:T chcCPU 68
  97. Làmliquá trìnhtrênnhưnggi nguyênphn offsetchtăngphnsegment. 0001:0000 00010h 0002:0000 00020h Khisegmenttăng1ñơnv thìñach vtlý tăng10hñach hoclàtăng16bytes ðơnv casegemntlà paragraph Chuong2:T chcCPU 69
  98. Tathysegment0000nmñu vùngnhnhưngsegment0001bt ñucáchñuvùngnh ch có 16 bytes,segment0002btñucách ñuvùngnh 32bytes Phnchngchp3segment 0000,0001,0002trênhìnhv là vùngb nh mà btkỳ ônh nàonmtrongñó (ñach vtlýt00020hñn0FFFFh)ñu có th cóñach lunlýtươngngtrong c 3segment. Chuong2:T chcCPU 70
  99. Ex:ônh cóñach 0002Dhs cóñach logictrongsegment0000là 0000:002D Trongsegment0001là 0001:001D Trongsegment0002là 0002:000D nuvùngb nh nàocàngcó nhiu segmentchngchplênnhauthì cácô nhtrongñó càngcó nhiuñach lunlý. Chuong2:T chcCPU 71
  100. Mtônh cóbaonhiêu ñach lunlý Mtônh có ítnht1ñach lunlývà nhiunhtlà 65536/16=4096ñach lunlý Chuong2:T chcCPU 72
  101. Caùc thanh ghi ñoaïn CS, DS, SS, ES 3 trong 4 thanh ghi ñoaïn ñöôïc duøng trong caùc muïc ñích ñaëc bieät sau CS : xaùc ñònh ñoaïn leänh – nôi chöùa chöông trình ñöôïc thi haønh. DS : xaùc ñònh ñoaïn döõ lieäu – nôi chöùa chöông trình ñöôïc thi haønh. SS : xaùc ñònh ñoaïn stack – vuøng laøm vieäc taïm thôøi duøng ñeå theo doõi caùc tham soá vaø caùc ñòa chæ ñang ñöôïc chöông trình hieän haønh söû duïng. Coøn thanh ghi ES : troû ñeán ñoaïn theâm, thöôøng ñöôïc duøng ñeå boå sung cho ñoaïn döõ lieäu coù vuøng nhôù >64k cho ñoaïn döõ lieäu. Chuong2:T chcCPU 73
  102. Caùc thanh ghi ñoaïn CS, DS, SS, ES 3 trong 4 thanh ghi ñoaïn ñöôïc duøng trong caùc muïc ñích ñaëc bieät sau CS : xaùc ñònh ñoaïn leänh – nôi chöùa chöông trình ñöôïc thi haønh. DS : xaùc ñònh ñoaïn döõ lieäu – nôi chöùa chöông trình ñöôïc thi haønh. SS : xaùc ñònh ñoaïn stack – vuøng laøm vieäc taïm thôøi duøng ñeå theo doõi caùc tham soá vaø caùc ñòa chæ ñang ñöôïc chöông trình hieän haønh söû duïng. Coøn thanh ghi ES : troû ñeán ñoaïn theâm, thöôøng ñöôïc duøng ñeå boå sung cho ñoaïn döõ lieäu coù vuøng nhôù >64k cho ñoaïn döõ lieäu. Chuong2:T chcCPU 74
  103. Thanh ghi traïng thaùi (thanh ghi côø) Thanh ghi côø laø thanh ghi 16 bit naèm beân trong EU (Excution Unit). Tuy nhieân chæ coù 9 trong 16 bit ñöôïc söû duïng.7 bit coøn laïi khoâng duøng. 15141312111098765432 10 O D I T S Z A P C OOverFlowflag D:Directionflag I:Interruptflag T:Trapflag S:Signflag Z:Zeroflag A:AuxiliaryflagP:Parityflag C:Carryflag Chuong2:T chcCPU 75
  104. Thanh ghi traïng thaùi (thanh ghi côø) Giaûi thích : Côø CF : chæ thò coäng coù nhôù, tröø coù möôïn. Côø PF : On khi keát quaû cuûa taùc vuï coù soá bit 1 laø soá chaún. Neáu soá bit 1 laø soá leû thì PF laø Off. Côø AF : coù nhôù trong pheùp coäng hoaëc coù möôïn trong pheùp tröø vôùi 4 bit thaáp sang 4 bit cao. Côø ZF : On khi taùc vuï luaän lyù cho keát quaû laø 0. Côø SF : bit cao nhaát cuûa keát quaû seõ ñöôïc copy sang SF. SF =1 keát quaû laø soá aâm. SF = 0 khi keát quaû laø soá döong. Chuong2:T chcCPU 76
  105. Thanh ghi traïng thaùi (thanh ghi côø) Giaûi thích : Côø OF : OF=1 khi keát quaû bò traøn soá (vöôït quaù khaû naêng löu tröõ ). Neáu keát quaû khoâng bò traøn thì OF=0. 3 bit coøn laïi laø 3 bit ñieàu khieån : Côø TF : baùo CPU thi haønh töøng böôùc. Cung caáp coâng cuï debug chöông trình. Côø IF : IF=1 giuùp 8086 nhaän bieát coù yeâu caàu ngaét quaõng coù che. Côø DF : xaùc ñònh höôùng theo chieàu taêng/giaûm trong xöû lyù chuoåi. 8086 cho pheùp User laäp trình baät taét caùc côø CF,DF,IF,TF Chuong2:T chcCPU 77
  106. Thanh ghi chæ soá (Index) 5 thanh ghi offset duøng ñeå xaùc ñònh chích xaùc 1 byte hay 1 word trong 1 ñoaïn 64K.Ñoù laø : IP : thanh ghi con troû leänh, cho bieát vò trí cuûa leänh hieän haønh trong ñoaïn leänh. Con troû leänh IP coøn ñöôïc goïi laø boä ñeám chöông trình. Thöôøng ñöôïc duøng keát hôïp vôùi CS ñeå theo doõi vò trí chính xaùc cuûa leänh seõ ñöôïc thöïc hieän keá tieáp. Chuong2:T chcCPU 78
  107. Thanh ghi chæ soá (Index) Caùc thanh ghi con troû Stack : SP vaø BP, moãi thanh ghi daøi 16 bit. SP (Stack pointer) cho bieát vò trí hieän haønh cuûa ñænh Stack. BP (Basic Pointer) duøng ñeå truy caäp döõ lieäu trong Stack. SI (source index) : troû ñeán oâ nhôù trong ñoaïn döõ lieäu ñöôïc ñònh ñòa chæ bôûi thanh ghi DS. DI (destination) : chöùc naêng töông töï SI. Hai thanh ghi naøy thöôøng duøng trong xöû lyù chuoåi. Chuong2:T chcCPU 79
  108. ðACH LUNLÝVÀ THANHGHI ð thamkhoñnb nhtrongchương trình,VXL8086chophéps dngcácña ch lunlý1cáchtrctiphocthôngqua cácthanhghicanó. Thanhghiñondùngñ chasegment Thanhghitngquátdùngñ chañach trongñonoffset ð thamkhoñnñach lunlýcó segmenttrongthanhghiDS,offset trongthanhghiBX,tavit DS:BX Chuong2:T chcCPU 80
  109. Ex:nulúcthamkho DS=2000hBX=12A9hthìñach lunlý DS:BXchínhlà thamkhoñnônh 2000:12A9 Chuong2:T chcCPU 81
  110. Trongcáchs dngñach lunlýthôngquacác thanhghicó 1s cpthanhghiluônphidùng chungvinhau1cáchbtbuc: CS:IPlylnh(ñach lnhspthihành) SS:SPñachñnhStack SS:BPthôngs trongStack (dùngtrongchươngtrìnhcon) DS:SIñach chuingun ES:DIñach chuiñích Chuong2:T chcCPU 82
  111. Chươngtrìnhmà VXL8086thihànhthưng có3ñan: ðanchươngtrìnhcóñach trongthanhghiCS. ðand liucóñach trongthanhghiDS. ðanstackcóñach trongthanhghiSS. Chuong2:T chcCPU 83
  112. Caùc ñaëc tính cuûa CPU Intel Hieäu quaû cuûa CPU thuoäc hoï Intel khi xöû lyù vaø chuyeån giao thoâng tin ñöôïc xaùc ñònh bôûi caùc yeáu toá sau : Taàn soá maïch xung ñoàng hoà cuûa CPU. Ñoä roäng cuûa Data bus Ñoä roäng cuûa Address bus Chuong2:T chcCPU 84
  113. Caùc ñaëc tính cuûa CPU Intel Taàn soá maïch xung ñoàng hoà cuûa CPU.caøng nhanh thì toác ñoä xöû lyù caøng nhanh. Ñoä roäng cuûa Data bus caøng roäng thì caøng nhieàu data ñöôïc chuyeån giao trong 1 laàn giao dòch. Ñoä roäng cuûa Address bus caøng roäng thì khaû naêng quaûn lyù boä nhôù caøng lôùn. Chuong2:T chcCPU 85
  114. Caùc ñaëc tính cuûa CPU Intel Data Bus Address bus Khaû naêng Loaïi CPU (bit) (bit) quaûn lyù boä nhôù 8088 8 20 1MB 8086 16 20 1MB 80286 16 24 16Mb 80386 32 32 4GB 80486 32 32 4GB Pentium 64 32 4GB Chuong2:T chcCPU 86
  115. Toùm taét CPU hoï Intel CPU 80286 : Data bus 16 bit neân moãi laàn chuyeån giao 2 bytes quaûn lyù 16MB boä nhôù. Chæ coù khaû naêng thöïc hieän caùc pheùp toaùn ñoái vôùi caùc soá nguyeân, coù theå duøng taäp leänh 80286 ñeå moâ phoûng caùc pheùp toaùn soá hoïc daáu chaám ñoäng nhöng ñieàu naøy seõ laøm giaûm hieäu suaát heä thoáng. Neáu muoán coù khaû naêng thöïc hieän caùc pheùp toaùn daáu chaám ñoäng phaûi gaén CoProccessor 8087. 80286 laøm vieäc theo 2 cheá ñoä : cheá ñoä thöïc vaø cheá ñoä baûo veä. Chuong2:T chcCPU 87
  116. Toùm taét CPU hoï Intel CPU 80386 : Data bus 32 bit neân coù theå quaûn lyù 4GB boä nhôù. Caùc thanh ghi daøi 32 bit taêng ñoä chính xaùc cuûa caùc pheùp toaùn. Ñoä roäng Bus taêng toác ñoä thöïc thi. CPU 80386 hoaøn toaøn töông thích vôùi caùc CPU tröôùc noù. Chuong2:T chcCPU 88
  117. Toùm taét CPU hoï Intel CPU 80486 : coù bus 32 bit . 1 Coprocessor 387, boä phaän ñieàu khieån Cache, 1 Cache 8K, duøng phoái hôïp taäp leänh ruùt goïn RISC vaø taäp leänh phöùc taïp CISC. CPU 80486 phaàn lôùn caùc leänh chæ duøng 1 soá ít xung. Söû duïng cô cheá ñöôøng oáng coù khaû naêng xöû lyù 5 leänh ñoàng thôøi : Laáy leänh tröôùc PreFetch Giaûi maõ laàn 1 Decode 1 Giaûi maõ laàn 2 Decode 2 Thöïc thi leänh Execution Ghi laïi traïng thaùi. WriteBack Chuong2:T chcCPU 89
  118. RISC&CISC Nguyeân lyù CISC : Complex Intruction Set Computer Taäp leänh khaù lôùn >300 leänh Khaû naêng ñònh vò phöùc taïp Moät soá leänh caàn phaûi vi leänh hoaù quaù nhieàu leänh naïp laâu laøm chaäm heä thoáng leänh phöùc taïp neân time giaûi maõ leänh nhieàu khi lôùn hôn time thöïc thi. Chæ coù hôn 20% leänh thöôøng duøng tôùi Chuong2:T chcCPU 90
  119. RISC&CISC Nguyeân lyù RISC : taäp leänh thu goïn Reduce Intruction Set Computer taäp leänh nhoû thi haønh ngay khoâng caàn giaûi maõ. leänh laøm vieäc theo cô cheá ñöôøng oáng (pipeline). Chuong2:T chcCPU 91
  120. CPUPentium 3 thaønh phaàn goùp söùc taêng toác ñoä xöû lyù cuûa Pentium : Ñôn vò tính toaùn soá nguyeân supercallar Boä nhôù Cache caáp 1 ôû beân trong CPU. Ñôn vò tính toaùn soá chaám ñoäng supercallar Chuong2:T chcCPU 92
  121. SÔ ÑOÀ KHOÁI PENTIUM Boä xöû lyù daáu chaám ñoäng Registers Vuøng ñeäm ñích Reõ nhaùnh U Pipeline cuûa ALU Cache Haøng nhaët sôùm Data Cache leänh registers 8K 8K V Pipeline cuûa ALU BIU Quaûn lyù Bus Chuong2:T chcCPU 93
  122. Caâu hoûi oân taäp Bus laø gì? Trong caùc loaïi Bus, Bus naøo laø Bus 2 chieàu. Cho 1 oâ nhôù coù ñòa chæ vaät lyù laø 1256H, cho bieát ñòa chæ daïng segment:offset vôùi caùc ñoaïn 1256H vaø 1240H. OÂ nhôù coù ñòa chæ vaät lyù 80FD2H, ôû trong ñoaïn naøo thì noù coù offset = BFD2H? Xaùc ñònh ñòa chæ vaät lyù cuûa oâ nhôù coù ñòa chæ logic 0A51H:CD90H Chuong2:T chcCPU 94
  123. Caâu hoûi oân taäp Theá naøo laø bieân giôùi ñoaïn? Söï khaùc nhau cô baûn giöõa boä vi xöû lyù 8086 vaø 80286? Thuyeát minh trình töï CPU thöïc hieän caâu leänh Mem(b)  Not Mem(a) Chu kyø leänh, chu kyø maùy. Cho bieát quan heä giöõa chu kyø clock, chu kyø maùy vaø chu kyø leänh. Quan heä giöõa taäp leänh vaø kieán truùc cuûa CPU Chuong2:T chcCPU 95
  124. Caâu hoûi oân taäp Giaûi thích taïi sao khi taêng taàn soá xung clock, giaûm chu kyø wait state cuûa boä nhôù, theâm cache cho CPU laïi laøm cho heä thoáng chaïy vôùi hieäu suaát cao hôn. ? Trình baøy chieán löôïc chính löu tröõ thoâng tin trong Cache? Tính toác ñoä chuyeån giao döõ lieäu cuûa maùy tính coù CPU 486DX-66MHz vaø maùy Pentium 100MHz. Phaân bieät RISC vaø CISC. Trình baøy cô cheá ñöôøng oáng trong thöïc thi cuûa CPU Chuong2:T chcCPU 96
  125. BusISA8bits: a. chy tcññngh là 8MHztruyntid liu tiña8MB/s. b. chy tcññngh là 4.77MHztruyntid liutiña6MB/s. c. chy tcññngh là 4.77MHztruyntid liutiña1MB/s. d. chy tcññngh là 4.77MHztruyntid liutiña12MB/s. Chuong2:T chcCPU 97
  126. BusISA16bits: a. chy tcññngh là 812 MHztruyntid liutiña8MB/s. b. chy tcññngh là 32MHztruyntid liutiña12MB/s. c. chy tcññngh là 4.77MHztruyntid liutiña12MB/s. d. chy tcññngh là 16MHztruyntid liu tiña12MB/s. Chuong2:T chcCPU 98
  127. BusPCI: a. truyntid liutiña528MB/s. b. truyntid liutiña128MB/s. c. truyntid liutiña512MB/s. d. truyntid liutiña64MB/s. Chuong2:T chcCPU 99
  128. Dnñuv Chipsethincó trênthtrưnglà : a.AMD b.ALI c.Intel d.Mac Chuong2:T chcCPU 100
  129. H thngBuslà h thngxal thôngtinbêntrong PCgiúptraoñi: a.thôngtingiacácmáytính b.d liugiacácthitb ngaivi c.d liugiab VXLvà cácthitb khác d.ttcñuñúng Chuong2:T chcCPU 101
  130. MihatñngcamáytínhtCPUñnb nh RAMvà nhngthitbI/OñuphIthôngquas nIktñưcgichunglà : a.Chungiaotip b.Bus c.BIOS d.CMOS Chuong2:T chcCPU 102
  131. BÀITP Bài1:Chobitgiá tr chui‘XY’ñưclưutr trongMTdưIdngs hexvà dngs bin? Bài2:Chobitgiá tr h 10cacács nguyên có dusau: a.10000000 b b.01111111 b Bài3:Choñoncodesau: MOVAH,7F INT20H MOVAX,1234 Hãychobitgiá tr ca MOVBH,AL cácthanhghiAX,BX? MOVBL,AH Chuong2:T chcCPU 103
  132. BÀITP Bài4:Choñoncodesau: MOVAL,81 ADDAL,0FE INT20H Gi s cácsñulà s có du.Giithíchktqu chatrongthanhghiALkhiñoncodetrênñưc thcthi.S dnggiá tr h10ñ giithích. Chuong2:T chcCPU 104
  133. BÀITP Bài5:Gi s thanhghitrongMTcabndài 24bits,chobitgiá tr casdươnglnnht mà thanhghinàycó th cha 2h 2và h 16? Bài6:BinñIñach sauthànhñach tuytñi a. 0950:0100 b. 08F1:0200 Chuong2:T chcCPU 105
  134. MAINBOARD Chuong2:T chcCPU 106
  135. MAINBOARD Chuong2:T chcCPU 107
  136. MAINBOARD Chuong2:T chcCPU 108
  137. Chuong2:T chcCPU 109
  138. Chuong2:T chcCPU 110
  139. MAINBOARD Chuong2:T chcCPU 111
  140. Chuong2:T chcCPU 112
  141. CHCHÖÖ ÔNG TRÌNH GÔÕ RO ÔNG TRÌNH GÔÕ ROÁÁII DEBUGDEBUG Muïc tieâu DòchDòch ñöñöô ôïïcc 11 chchööôngông trtrììnhnh ngangaéénn XemXem caca ùùcc thanhthanh ghighi vavaøø côcôø ø cucuû ûa a CPUCPU XemXem ssöïöï thaythay ññooåi no åi noääii dungdung cucuûûaa cacaù ùc c biebieáánn DDooøø ttììmm ttrròò ôôûû ddaaïïnngg nnhhòò pphhaaâânn hhooaaëëcc AASSCCIIII ttrroonngg bbooää nnhhôôùù bly ình baèng Assem vieát chöông tr HHooãã trôï luyeän taäp 4/4/2006 Chuong 3 Debug 1
  142. DaDa ïïngng lele äänhnh cucu ûûaa DebugDebug > á> Trong ñoù maõ leänh laø 1 trong caùc chöõ A,B,C,D,E, coøn thoâng soá thì thay ñoåi tuøy theo leänh. Caùc thoâng soá coù theå laø : Ñòa chæ : laø 1 boä ñòa chæ ñaày ñuû segment : offset hay chæ caàn offset laø ñuû. Segment coù theå duøng teân thanh ghi. Ex : F000:0100 DS: 200 0AF5 4/4/2006 Chuong 3 Debug 2
  143. DaDa ïïngng lele äänhnh cucu ûûaa DebugDebug Taäp tin : laø 1 tham khaûo teân taäp tin ñaày ñuû, ít nhaát phaûi coù teân taäp tin. Danh saùch : Laø 1 hay nhieàu trò byte hoaëc chuoåi caùch nhau baèng daáu phaåy. Khoaûng : laø 1 tham khaûo ñeán vuøng boä nhôù Trò : laø 1 soá heä 16 coù toái ña coù 4 chöõ soá 4/4/2006 Chuong 3 Debug 3
  144. TaTa ääpp lele änhänh cucu ûûaa DebugDebug AA :: chocho phephe ùùpp vievie áátt tt öøöø baba øønn phph íímm caca ùùcc lele äänhnh maõmaõ mama ùùyy ddööôôùùii dada ïïngng gôgô ïïii nhônhô ùù AA [[ ]>] ExEx :: AA 100100 dòchdòch ôô ûû ññòaòa chch ææ CS:100hCS:100h AA dòchdòch ôô ûû ññòaòa chch ææ hiehie äänn tata ïïii (Debug la ááy ñòa ch æ ñoa ïïn CS) AA DS:2000hDS:2000h dòchdòch ôô ûû ññòaòa chch ææ DS:2000hDS:2000h 4/4/2006 Chuong 3 Debug 4
  145. TThhíí dudu ïï minhminh hoho ïïaa lele änhänh AA PhaPha ûûii nhanha ääpp lele äänhnh vava øøoo theotheo tt öøöøngng dodo øøngng momo äätt vava øø keke áátt thuthu ùùcc baba èèngng Enter.Enter. KeKe áátt thuthu ùùcc nhanha ääpp nhanha áánn EnterEnter ôô ûû dodo øøngng trotro ááng.ng. ExEx :: AA 100100 5514:01005514:0100 MOVMOV AH,AH, 22 User goû vaøo 5514:01025514:0102 MOVMOV DL,DL, 4141 5514:01045514:0104 INTINT 21H21H SEGMENT OFFSET 4/4/2006 Chuong 3 Debug 5
  146. CC (Compare)(Compare) SoSo sasa ùùnhnh 22 vuvu øøngng bobo ää nhônhô ùù vava øø lielie äätt keâkeâ caca ùùcc oâoâ nhônhô ùù coco ùù nono ääii dungdung khakha ùùcc nhau.nhau. Cuù phaùp : C , Ex : - C 100, 200, 3000 : 1000 So saùnh oâ nhôù DS:100h vôùi oâ nhôù 3000:1000h, oâ nhôù DS:101h vôùi oâ nhôù 3000:1001h Cho ñeán oâ nhôù DS :200h vôùi oâ nhôù 3000:1100h.  So saùnh 101 bytes 4/4/2006 Chuong 3 Debug 6
  147. DD (Dump)(Dump) HieHie äänn nono ääii dungdung bobo ää nhônhô ùù theotheo dada ïïngng hehe ää 1616 vava øø ASCIIASCII Caùch goïi : D Ex : - D F000 : 0 - D ES : 100 - D 100 4/4/2006 Chuong 3 Debug 7
  148. LeLe äänhnh FF (( Fill)Fill) CuCu ùù phapha ùùpp :: FF ng> ch> CoângCoâng dudu ïïngng :: lala áápp ññaaààyy tròtrò vava øøoo vuvu øøngng nhônhô ùù ngayngay tata ïïii ññòaòa chch ææ mongmong muomuo áán.n. Trò nhaäp vaøo töøng byte moät theo heä 16 Daáu tröø (-) duøng ñeå luøi laïi 1 ñòa chæ. SPACE BAR duøng ñeå tôùi 1 ñòa chæ. ENTER ñeå keát thuùc. 4/4/2006 Chuong 3 Debug 8
  149. MinhMinh hoho ïïaa lele änhänh FF LaLa éépp ññaaààyy vuvu øøngng nhônhô ùù tata ïïii ññòaòa chch ææ offsetoffset 100h100h chuochuo ååii ““ ToiToi duadua emem sangsang songsong ”” F 100 “TOI DUA EM SANG SONG” OFFSET 100H 4/4/2006 Chuong 3 Debug 9
  150. KEKE ÁÁTT QUAQUA ÛÛ -F 100 "TOI DUA EM SANG SONG" -D 100 0ADD:0100 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0110 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0120 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA 0ADD:0130 45 4D 20 53 41 4E 47 20-53 4F 4E 47 54 4F 49 20 EM SANG SONGTOI 0ADD:0140 44 55 41 20 45 4D 20 53-41 4E 47 20 53 4F 4E 47 DUA EM SANG SONG 0ADD:0150 54 4F 49 20 44 55 41 20-45 4D 20 53 41 4E 47 20 TOI DUA EM SANG 0ADD:0160 53 4F 4E 47 54 4F 49 20-44 55 41 20 45 4D 20 53 SONGTOI DUA EM S 0ADD:0170 41 4E 47 20 53 4F 4E 47-54 4F 49 20 44 55 41 20 ANG SONGTOI DUA 4/4/2006 Chuong 3 Debug 10
  151. DD (DUMP)(DUMP) Muïc ñích : in noäi dung boä nhôù trong MT ra maøn hình döôùi daïng soá hex. Cuù phaùp : D [ address] D [range] Ex : in noäi dung vuøng nhôù ñaõ laép ñaày ôû ví duï tröôùc ôû ñòa chæ 100h Ex2 : xem noäi dung vuøng nhôù 16 bytes baét ñaàu ôû ñòa chæ F000:100 - D F000:100 L10 4/4/2006 Chuong 3 Debug 11
  152. ThTh íí dudu ïï minhminh hoho ïïaa lele änhänh DD ññaaùùnhnh vava øøoo lele äänhnh DD ññeeåå xemxem nono ääii dungdung vuvu øøngng nhônhô ùù cucu ûûaa 30h 30h bytes bytes bo bo ää nhônhô ùù ttöøöø ññòaòa ch ch ææ 0000:00400000:0040 ññeeáánn 0000:006F0000:006F - D 0000:0040 006F Ñòa chæ baét ñaàu - D 0000:0040 L 30 Soá bytes 4/4/2006 Chuong 3 Debug 12
  153. EE (ENTER)(ENTER) DuDu øøngng ññeeåå ñöñö aa dd ööõõ lielie ääuu bytebyte vava øøoo bobo ää nhônhô ùù ngayngay tata ïïii ññòaòa chch ææ mongmong muomuo áán.n. Caùch goïi : - E Trò nhaäp vaøo theo daïng soá 16 töøng byte moät Daáu - duøng ñeå luøi laïi 1 ñòa chæ Space Bar duøng ñeå tôùi 1 ñòa chæ Enter duøng ñeå keát thuùc 4/4/2006 Chuong 3 Debug 13
  154. änhänh EE MinhMinh hohoïaïa lele ää nhônhôù.ù. ññooåiåi nonoäiäi dungdung bobo MuMuïcïc ddííchch :: thaythay Cuù phaùp : - E [address] [ list] h “ABCDE” Ex : thay ñoåi 6 bytes baét ñaàu ôû ñòa chæ 100 thaøn - E 100 “ABCDE” Debug la áy ñ oa ïn chæ bôû i DS Neá u ta khoâng qui ñ ònh ñòa ch æ ñoa ïn 14 Chuong 3 Debug 4/4/2006
  155. LeLe äänhnh UU (Unassemble)(Unassemble) coângcoâng du du ïïngng : : in in ra ra 32 32 bytes bytes maõ maõ ma ma ùùyy cu cu ûûaa chch ööôngông trtr ììnhnh trongtrong bobo ää nhônhô ùù rara mama øønn hh ììnhnh dd ööôôùùii lele äänhnh gôgô ïïii nhônhô ùù cucu ùù phapha ùùpp :: UU [address][address] UU [range][range] Ex : U 100 119 In ra m aøn hì nh caùc leän h chæ CS maõ maùy :100 ñ eán tö ø ñòa CS:119 4/4/2006 Chuong 3 Debug 15
  156. LeLe äänhnh RR (Register)(Register) CoângCoâng dudu ïngïng :: xemxem vava øø ssöûöûaa nono ääii dungdung thanhthanh ghi.ghi. CuCu ùù phapha ùùpp :: RR enterenter (xem(xem tata áátt caca ûû thanhthanh ghi)ghi) xemxem thanhthanh ghighi AXAX :: RR AXAX xemxem thanhthanh ghighi côcô øø :: RR FF ExEx :: muomuo áánn baba äätt thanhthanh ghighi côcô øø CFCF vava øø ZFZF tata nhanha ääpp CYCY vava øø ZR.ZR. 4/4/2006 Chuong 3 Debug 16
  157. LeLe äänhnh NN (Name)(Name) CoângCoâng dudu ïïngng :: tata ïïoo tata ääpp tintin caca ànàn ññooïïcc hayhay ghighi trtr ööôôùùcc khikhi dudu øøngng lele äänhnh LL hayhay W.W. CuCu ùù phapha ùùpp :: NN file> [[ thoângthoâng soso áá]] LL [[ ññòaòa chch ææ]] 4/4/2006 Chuong 3 Debug 17
  158. ThTh íí dudu ïï minhminh hoho ïïaa lele äänhnh NN Ex : taïo taäp tin Love.txt . Duøng leänh R ñeå xaùc ñònh vuøng ñòa chæ daønh cho User. Duøng leänh ñeå ñöa caâu thoâng baùo “ I love you more than I can say’ ôû ñòa chæ 2000:100. Duøng leänh D ñeå kieåm tra vuøng nhôù taïi ñòa chæ 2000:100. Duøng leänh N ñeå ñaët teân taäp tin treân ñóa. - N Love.txt Duøng leänh R ñeå ñònh soá byte caàn thieát ghi leân ñóa trong 2 thanh ghi BX vaø CX. Cuï theå trong tröôøng hôïp naøy soá byte caàn ghi laø 1Eh byte. BX = 0000 CX = 1E Duøng leänh W 2000:100 ñeå ghi döõ lieäu ñaõ nhaäp vaøo taäp tin ôû ñòa chæ boä nhôù 2000:100. 4/4/2006 Chuong 3 Debug 18
  159. ThoaThoa ùùtt khokho ûûii DebugDebug vava øø gogo ïïii lala ïïii tata ääpp tintin theotheo caca ùùchch sausau :: CC :: \\>> DebugDebug Love.txtLove.txt ttììmm xemxem DebugDebug ññaõaõ nana ïïpp tata ääpp tintin Love.txtLove.txt vava øøoo choãchoã nana øøoo trongtrong bobo ää nhônhô ùù 4/4/2006 Chuong 3 Debug 19
  160. LeLe äänhnh WW (Write)(Write) CuCu ùù phapha ùùpp :: WW [address][address] Thöôøng ñöôïc söû duïng chung vôùi leänh N Ex : taïo taäp tin coù teân Love.txt Böôùc 1 : duøng leänh E ñeå ñöa caâu ‘I love you more than I can say” vaøo oâ nhôù ôû ñòa chæ 100. Böôùc 2 : duøng leänh D ñeå kieåm tra laïi ñòa chæ 100 Böôùc 3 : duøng leänh N ñeå ñaët teân taäp tin : - N Love.txt Böôùc 4 : duøng leänh R ñeå ñònh soá byte caàn ghi leân ñóa trong 2 thanh ghi BX vaø CX. (BX chöùa 16 bit cao, CX chöùa 16 bit thaáp). Ôû ñaây soá byte caàn ghi laø 1Eh. Böôùc 5 : duøng leänh W ñeå ghi caâu treân ñaõ nhaäp vaøo vuøng nhôù coù ñòa chæ baét ñaàu laø 100. 4/4/2006 Chuong 3 Debug 20
  161. LeLe äänhnh TT (Trace)va(Trace)va øø PP cucu ùù phapha ùùpp :: TT [=[= ][so>][so áá lala ààn]n] Muïc ñích : duøng ñeå chaïy 1 hay nhieàu laàn caùc leänh trong boä nhôù Ex : - T = 3000:1000 Ex : - T = 3000:1000 4/4/2006 Chuong 3 Debug 21
  162. LeLe äänhnh LL (Load)(Load) nana ïïpp tata ääpp tintin hoahoa ëëcc nana ïïpp sectorsector lualua äänn lyly ùù ttöøöø ñóñó aa vava øøoo bobo ää nhônhô ùù Cuù phaùp : - L [ ] Daïng 1 : neáu chæ coù ñòa chæ duøng ñeå naïp taäp tin. Teân taäp tin phaûi ñöôïc gaùn tröôùc baèng leänh N. Taäp tin luoân luoân ñöôïc gaùn ôû ñòa chæ offset 100h Daïng 2 : neáu coù ñaày ñuû caùc thoâng soá , duøng ñeå ñoïc sector luaän lyù treân ñóa vaøo boä nhôù. Ñóa : = 0 oå ñóa A, =1 oå ñóa B, =2 oå ñóa C . 4/4/2006 Chuong 3 Debug 22
  163. LeLe äänhnh HH (Hex(Hex Arithmethic)Arithmethic) thth öïöï cc hiehie äänn phephe ùùpp coco äängng vava øø trtr öøöø hehe ää 1616 Cuù phaùp : - H Keát quaû : hieän ra toång vaø hieäu cuûa trò 1 vaø trò 2 4/4/2006 Chuong 3 Debug 23
  164. LeLe äänhnh SS (Search)(Search) CoângCoâng dudu ïïngng :: tt ììmm kiekie ámám tròtrò trongtrong 11 vuvu øøngng bobo ää nhônhô ùù CuCu ùù phapha ùùpp :: SS ng> ch> GiaGia ûûii thth ííchch :: tt ììmm kiekie áámm tròtrò coco ùù hiehie äänn diedie äänn trongtrong vuvu øøngng bobo ää nhônhô ùù ññaõaõ chch ææ ññònhònh hayhay khoâng?khoâng? NeNe ááuu coco ùù DebugDebug hiehie äänn caca ùcùc ññòaòa chch ææ ññaaààuu cucu ûûaa nhnh ööõngõng nôinôi coco ùù chch öùöùaa danhdanh sasa ùùch.ch. ExEx :: SS 100100 LL 10001000 ‘‘DOSDOS ’’ 18AF18AF :: 01540154 18AF18AF :: 08230823 Ex2Ex2 :: SS 20002000 22002200 13,15,8A,13,15,8A, 88 4/4/2006 Chuong 3 Debug 24
  165. LeLe äänhnh MM (Move)(Move) CoângCoâng dudu ïïngng :: cheche ùùpp nono ääii dungdung vuvu øøngng nhônhô ùù ññeeáánn 11 ññòaòa chch ææ khakha ùùc.c. CuCu ùù phapha ùùpp :: MM ng> ExEx :: MM 100100 105105 200200 CheChe ùùpp 55 bytesbytes tt öøöø DS:100DS:100 ññeeáánn DS:200DS:200 Ex2Ex2 :: MM CS:100CS:100 LL 5050 ES:300ES:300 CheChe ùùpp 5050 bytesbytes tt öøöø CS:100CS:100 ññeeáánn ES:300ES:300 4/4/2006 Chuong 3 Debug 25
  166. LeLe äänhnh II (Input)(Input) CoângCoâng dudu ïïngng :: nhanha ääpp 11 bytebyte tt öøöø coco åångng xuaxua áátt nhanha ääpp vava øø hiehie äänn rara mama øønn hh ìình.nh. CuCu ùù phapha ùùpp : : II ng> ññòaòa chch ææ coco åångng lala øø soso áá hehe ää 1616 toto ááii ññaa 44 chch ööõõ soso áá ExEx :: II 37E37E ECEC 4/4/2006 Chuong 3 Debug 26
  167. LeLe äänhnh OO (Output)(Output) CoângCoâng dudu ïïngng :: xuaxua áátt 11 bytebyte rara coco åångng xuaxua áátt nhanha ääp.p. CuCu ùù phapha ùùpp :: O ng> ññòaòa chch ææ coco åångng lala øø soso áá hehe ää 1616 toto ááii ññaa 44 chch ööõõ soso áá ExEx :: OO 378378 5E5E 4/4/2006 Chuong 3 Debug 27
  168. SummarySummary DuDu øøngng lele äänhnh DD ññeeåå xemxem nono ääii dungdung vuvu øøngng nhônhô ùù tata ïïii ññòaòa chch ææ cucu ûûaa ROMROM BIOSBIOS F000:0000.F000:0000. TTööôngông tt öïöï xemxem nono ääii dungdung vuvu øøngng nhônhô ùù RAMRAM mama øønn hh ììnhnh ôô ûû ññòaòa chch ææ B800:0000;B800:0000; baba ûûngng vectorvector nganga éétt quaõngquaõng 0000:00000000:0000 GoGo ûû vava øøoo mama ùùyy baba èèngng lele äänhnh A,A, ññoaoa ïnïn chch ööôngông trtr ììnhnh sausau ôô ûû ññòaòa chch ææ 2000:01002000:0100 4/4/2006 Chuong 3 Debug 28
  169. SummarySummary 2000:0100 MOV AL,32 2000:0102 MOV AH, 4F 2000:0104 MOV CX, [200] 2000:0108 MOV WORD PTR [1800], 1 2000:010E MOV BYTE PTR [1800], 1 2000:0113 Xem la ïïi ñoa ïïn ch öông tr ình v öøa ñaùùnh treân ba èèng le äänh U. Chu ùù yùù quan sa ùùt pha ààn maõ ma ùùy. T ìm xem ca ùùc toa ùùn ha ïïng t öùc thô øøi va øø ca ùùc ñòa ch æ xua áát hie ään ô ûû ñaâu trong pha ààn maõ ma ùùy cu ûûa le äänh. Pha ààn maõ ma ùùy cu ûûa 2 caâu le äänh cuo áái co ùù gì kha ùùc nhaukhi du øøng ca ùùc toa ùùn t öû WORD PTR va øø BYTE PTR. 4/4/2006 Chuong 3 Debug 29
  170. SummarySummary Du øøng le äänh E nha ääp va øøo ñoa ïïn vaên ba ûûn sau va øøo bo ää nhô ùù ta ïïi ñòa ch æ DS:0100 8086/8088/80286 Assembly language. Copyright 1988, 1886 by Brady Books, a division of Simon, Inc. All right reserved, including the of reproduction in whole or in part, in any form. (chu ùù yùù ky ùù töï ñaààu do øøng xuo ááng do øøng co ùù maõ ASCCI la øø 0D va øø 0A). 4/4/2006 Chuong 3 Debug 30
  171. B NH (Memory) Muïc tieâu : 1. Hieåu ñöôïc caáu taïo cuûa boä nhôù, chöùc naêng vaø hoaït ñoäng cuûa boä nhôù. 2. Naém ñöôïc quaù trình ñoïc boä nhôù & ghi boä nhôù. 3. Vai troø cuûa boä nhôù Cache trong maùy tính. Chương3:T chcMemory 1
  172. Boä nhôù (Memory) Noäi dung : 1. Toå chöùc boä nhôù cuûa maùy tính IBM PC 2. Phaân loaïi boä nhôù : Primary Memory vaø Secondary Memory. 3. Quaù trình CPU ñoïc boä nhôù. 4. Quaù trình CPU ghi boä nhôù. 5. Boä nhôù Cache. Chương3:T chcMemory 2
  173. Memory B nh (Memory) laø nôi chöùa chöông trình vaø döõ lieäu. Ñôn vò ño boä nhôù : Bit : ñôn vò boä nhôù nhoû nhaát laø bit. Moãi bit coù theå löu tröõ 1 trong 2 traïng thaùi laø 0 vaø 1. Byte = 8 bits, ñöôïc ñaùnh chæ soá töø 0 ñeán 7 baét ñaàu töø phaûi sang traùi. Kbyte = 1024bytes = 2 10 bytes. Mbyte = 1024Kbytes = 2 10 Kbytes. Gbyte = 1024Mbytes = 2 10 Mbytes. Chương3:T chcMemory 3
  174. PrimaryMemory Còn ñưc g i là b nh chính hay b nh trung tâm. Chia làm 2 lo i : RAM và ROM Chương3:T chcMemory 4
  175. RAM RAM (Random Access Memory) b nh truy xu t ng u nh iên .L à n ơi l ưu gi caùc ch ươ ng trình vaø d li u khi ch y ch ươ ng trình. ðc >i m c a RAM : • Cho pheùp > c/ ghi d li u. • D li u b mt khi m t ngu n. Khi maùy tính khôûi ñoäng, Ram roãng. Ngöôøi laäp trình chuû yeáu laø laøm vieäc vôùi Ram – vuøng nhôù taïm ñeå döõ lieäu vaø chöông trình. Chương3:T chcMemory 5
  176. RAM Ram laø vuøng nhôù laøm vieäc  neáu vuøng nhôù naøy trôû neân nhoû so vôùi nhu caàu söû duïng thì ta taêng theâm Ram (gaén theâm Ram). RAMcó th chialàm2loi:Dynamicvà Static RAM •DynamicRAM:phiñưclàmtươitrongvòng dưi1msnukhôngs b mtnidung. •StaticRAM:giñưcgiá tr khôngcnphi làmtươi. •RAMtĩnhcó tcñ cao,có tênlà b nh CACHEnmtrongCPU. Chương3:T chcMemory 6
  177. RAM Chương3:T chcMemory 7
  178. ROMROM ROM ( Read Only Memory) : b nh ch ñc. ROM BIOS ch a ph n m m c u hình và ch n ñoán h th ng, các ch ươ ng trình con nh p/xu t c p th p mà DOS s dng. Các ch ươ ng trình này ñưc mã hoá trong ROM vàñưc g i là ph n d o (firmware). MttínhnăngquantrngcaROMBIOSlà khnăng pháthins hindincaphncngmitrongMT và cuhìnhlihñiuhànhtheoDriverthitb. Chương3:T chcMemory 8
  179. ROM(cont) ðc ñim c a ROM: Ch cho phép ñc không cho phép ghi. D li u v n t n t i khi không có ngu n. Chương3:T chcMemory 9
  180. Caùc loaïi Rom PROM (Programmable Read Only Memory) : Cho phép user có th lp trình và ghi vào ROM bng cách ñt. EPROM (Erasable Programmable Read Only Memmory) Cho phép user vi t ghi ch ươ ng trình và xóa ghi l i. Vi c xóa bng cách dùng tia c c tím. EEPROM (Electrically Erasable Programmable Read Only Memory) b nh có th lp trình b ng xung ñin ñc bi t Chương3:T chcMemory 10
  181. SecondaryMemory Là b nh ph nm ngoài h p CPU. Floppy disk, Tapes, Compact discs là secondary Memory. Chương3:T chcMemory 11
  182. Sơ lưc v Cache Cache cp 1 (Level 1-cache) : nm trong CPU, tc ñ truy xu t rt nhanh, theo t c ñ ca CPU. Cachecp2(Level2cache) :thưngcódunglưng128K,256K là cache nm gia CPU và Ram, thưng cu to bng Ram tĩnh (StaticRam),tcñ truyxutnhanhvì không cnthigian làm tươid liu. Cachecp3(Level3cache) :chínhlà vùngnh DRAMdùnglàm vùngñmtruyxutchoñĩacngvà cácthitb ngoivi. Tcñ truyxutcachecp3chínhlà tcñ truyxutDRAM. Chương3:T chcMemory 12
  183. Cache(cont) T ch c c a Cache :liên quan ñn chi n l ưc tr ñm và cách th c l ưu thông tin trong Cache. Lo i l nh ph i thi hành : Cache ch a c chươngtr ình và d li u, khi CPU truy xu t mà chúng có sn thì truy xu t nhanh. Khi CPU cn truy xu t b nh , cache s ki m tra xem cái mà CPU cn ñã có trong cache ch ưa. Dung lưng cache : nh ư v y n u 1 tp l nh n m g n trong cache (vòng l p ch ng h n) thì th c thi r t nhanh. Chương3:T chcMemory 13
  184. Cu trúc Cache Cache ñưc c u t o thành t ng hàng (cache lines) , 32 bit/hàng cho 386, 128 bit/hàng cho 486, 256 bit/hàng cho Pentium. Mi hàng có kèm theo 1 tag ñlưutrña ch bt ñu c a ñon b nh mà thông tin ñưc ñư a vào cache. Nu là cache cp 2 (SRAM), ña ch bt ñu c a ñon b nh ñãchuyn data vào cache còn ñưc l ưu trong 1 vùng nh riêng. Mt b ñiu khi n cache (cache controller) sñiu khi n ho t ñng c a cache vi CPU và data vào/ra cache. Chính Cache controller ph n ánh chi n l ưc tr ñm c a cache. Vi cache cp 1, cache controller là 1 thành ph n c a CPU. Vi cache cp 2, cache controller nm trên Mainboard. Chương3:T chcMemory 14
  185. Hiu su t c a Cache Cache dùng làm vùng ñm truy xu t nên n u CPU truy xu t data mà có sn trong cache thì th i gian truy xu t nhanh h ơn nhi u. Hi u qu ca cache ngoài vi c cho t c ñ truy xu t nhanh còn ph thu c vào Cache hit ho c Cache miss. Cache Hit : tc data có sn trong Cache. Cache Miss : tc data ch ưa có sn trong cache. t l cache hit và cache miss ph thu c vào 3 yu t : t ch c cache , lo i l nh ph i thi hành và dung lưng c a cache. Chương3:T chcMemory 15
  186. Hiu su t c a Cache Tính toaùn hieäu suaát thöïc thi cuûa Cache : Goïi c thôøi gian truy xuaát cuûa Cache M laø thôøi gian truy xuaát boä nhôù h laø tæ leä thaønh coâng (hit ratio), laø tæ soá giöõa soá laàn tham chieáu cache vôùi toång soá laàn tham chieáu. h =(k-1)/k Tæ leä thaát baïi (miss ratio) (1-h) Thôøi gian truy xuaát trung bình = c+(1-h)m Khi h  1, taát caû truy xuaát ñeàu tham chieáu tôùi Cache, thôøi gian truy xuaát trung bình  c. Khi h  0, caàn phaûi tham chieáu boä nhôù chính moïi luùc, thôøi gian truy xuaát trung bình  c+m. Chương3:T chcMemory 16
  187. Hieäu suaát cuûa Cache (cont) CPU TrongRegisters? TrongCache L1? Trong Cache L2 treân chip ? Trong Cache L2 thöù caáp? Trong RAM ? Treân Ñóa? Chương3:T chcMemory 17
  188. ATwoLevelCachingSystem Chương3:T chcMemory 18
  189. Các chi n lưc tr ñm trong Cache Các chi n l ưc tr ñm liên quan ñn tác v ñc ghi t CPU. Có 2 lo i : Writethrough Cache (WTC) và Writeback cache (WBC). • Khi CPU ñc t b nh qui ưc thì WTC và WBC ñu nh ư nhau : sñc 1 ñon n i dung trong b nh vào cache. • Khi CPU ghi ra b nh qui ưc : WTC : CPU ghi data ra vùng ñm ghi (write buffer) ri b ñ ó ti p t c vi c khác, cache s ly n i dung trong buffer ri ch u trách nhi m ghi ra b nh qui ưc khi bus rãnh. WBC : CPU ghi data vào cache, khi cache ñy thìñy thông tin ra b ñm (ñm castoff) ri t castoof, data chuy n sang b nh qui ưc. Chương3:T chcMemory 19
  190. 00000 InterrupVectorTable MM 00400 BIOSandDOSdata EE 00600 ResidentportionofDOS MM OO UserRAM RR A0000 EGAColorVideo YY B0000 MonochromeVideo B8000 MM ColorVideo C0000 ReservedROM(notused) AA F0000 ReservedROM PP F6000 ROMBASIC FE000 Chương3:TROMBIOS chcMemory 20
  191. MemoryMap 1024 bytes thaáp nhaát chöùa baûng vector interrupt Dos data Area chöùa caùc bieán ñöôïc DOS söû duïng nhö : Keyboard buffer : caùc phím nhaán ñöôïc löu cho ñeán khi ñöôïc xöû lyù. Côø chæ tình traïng keyboard : cho bieát phím naøo ñang ñöôïc nhaán. Ñòa chæ coång printer. Ñòa chæ coång tuaàn töï Moâ taû caùc thieát bò ñang coù trong heä thoáng : toång dung löôïng boä nhôù, soá oå ñóa, kieåu maøn hình Chương3:T chcMemory 21
  192. MemoryMap User Ram : vò trí thöôøng truù cuûa DOS ôû ñòa chæ 0600H. Vuøng nhôù troáng naèm ngay döôùi vuøng nhôù Dos. Rom Area : töø C000H – FFFFHñöôïc IBM daønh rieâng cho Rom söû duïng chöùa hard disk controller, Rom Basic. Rom BIOS : töø F000H – FFFFH vuøng nhôù cao nhaát cuûa boä nhôù chöùa caùc chöông trình con caáp thaáp cuûa Dos duøng cho vieäc xuaát nhaäp vaø caùc chöùc naêng khaùc Chương3:T chcMemory 22
  193. Quaù trình Boot maùy  Xaõy ra khi ta power on hay nhaán nuùt Reset. Boä VXL xoùa taát caû oâ nhôù cuûa boä nhôù trôû veà 0, kieåm tra chaún leû boä nhôù, thieát laäp thanh ghi CS troû ñeán segment FFFFh vaø con troû leänh IP troû tôùi ñòa chæ offset baèng 0.  Chæ thò ñaàu tieân ñöôïc MT thöïc thi ôû ñòa chæ aán ñònh bôûi noäi dung caëp thanh ghi CS:IP, ñoù chính laø FFFF0H , ñieåm nhaäp tôùi BIOS trong ROM. Chương3:T chcMemory 23
  194. Trình töï taùc vuï ñoïc oâ nhôù  CPU ñöa ñòa chæ oâ nhôù caàn ñoïc vaøo thanh ghi ñòa chæ.  Maïch giaûi maõ xaùc ñònh ñòa chæ oâ nhôù.  CPU göûi tín hieäu ñieàu khieån ñoïc  boä nhôù. Noäi dung oâ nhôù caàn ñoïc ñöôïc ñöa ra thanh ghi döõ lieäu.  CPU ñoïc noäi dung cuûa thanh ghi döõ lieäu. Chương3:T chcMemory 24
  195. Maïch giaûi maõ ñòa chæ oâ nhôù Maïch ñieän coù nhieäm vuï xaùc ñònh ñuùng oâ nhôù caàn truy xuaát ñang coù ñòa chæ löu trong thanh ghi ñòa chæ. Boä nhôù laøm vieäc ñöôïc chia thaønh nhieàu oâ nhôù. Kích thöôùc moãi oâ nhôù thay ñoåi tuøy theo maùy, thöôøng laø 8 hay 16 bit töùc 1 byte hay 1 word. Neáu kích thöôùc moãi oâ nhôù laø 1 byte thì seõ coù 8 ñöôøng döõ lieäu song song noái boä nhôù laøm vieäc vôùi boä VXL. Moãi ñöôøng 1 bit , taát caû 8 ñöôøng taïo thaønh moät tuyeán döõ lieäu (data bus) Chương3:T chcMemory 25
  196. Truy xuaát boä nhôù OÂ NHÔÙ (cont) S BU TA DA BBOOÄ NÄÄ NHHÔÔÙ ÙÙ Ñoïc / ghi döõ lieäu D7 D6 D5 D4 Chương3:T 26 chcMemory D3 ÑÔN VÒ XÖÛ LYÙ D2 D1 D0
  197. Trình töï taùc vuï ghi oâ nhôù CPU ñöa ñòa chæ oâ nhôù caàn ghi vaøo thanh ghi ñòa chæ cuûa boä nhôù. Maïch giaûi maõ xaùc ñònh ñòa chæ oâ nhôù. CPU ñöa döõ lieäu caàn ghi vaøo thanh ghi döõ lieäu cuûa boä nhôù. CPU göûi tín hieäu ñieàu khieån ghi  boä nhôù. Noäi dung trong thanh ghi döõ lieäu ñöôïc ghi vaøo oâ nhôù coù ñòa chæ xaùc ñònh. Chương3:T chcMemory 27
  198. Truy xuaát boä nhôù : ghi oâ nhôù OÂâ nhôù ñöôïc choïn 00000 00001 00010 A0 A1 ò A2 v Boä giaûi maõ n ù 00011 A3 ô ly Ñ û Ñòa chæ A4 ö Bo ää nhô ùù X . . . . . . . . 11110 11111 Chương3:T chcMemory 28
  199. Stack  Stack laø vuøng nhôù ñaëc bieät duøng ñeå löu tröõ ñòa chæ vaø döõ lieäu. Stack thöôøng truù trong stack segment.Moãi vuøng 16 bit treân stack ñöôïc troû ñeán bôûi thanh ghi SP, goïi laø stack pointer. Stack pointer löu tröõ ñòa chæ cuûa phaàn töû döõ lieäu cuoái môùi ñöôïc theâm vaøo (pushed leân stack.) Chương3:T chcMemory 29
  200. Stack phaàn töû döõ lieäu cuoái môùi ñöôïc theâm vaøo naøy laïi laø phaàn töû seõ ñöôïc laáy ra (popped tröôùc tieân).  Stack laøm vieäc theo cô cheá LIFO (Last In First Out). Xeùt ví duï sau : giaû söû stack ñang chöùa 1 giaù trò 0006 Sauñótañưa00A5vàostack Chương3:T chcMemory 30
  201. Stack BEFORE HIGHMEM AFTER HIGHMEM 0006 SP 0006 00A5 SP SP giaûm 1 LOWMEM Chương3:T chcMemory 31
  202. Coâng duïng cuûa Stack Duøng ñeå löu tröõ döõ lieäu taïm cho thanh ghi neáu ta caàn söû duïng caùc döõ lieäu naøy. Khi 1 chöông trình con ñöôïc goïi, stack seõ löu tröõ ñòa chæ trôû veà ngay sau khi chöông trình con thöïc hieän xong. Caùc ngoân ngöõ caáp cao thöôøng taïo ra 1 vuøng nhôù beân trong chöông trình con goïi laø stack frame ñeå chöùa caùc bieán cuïc boä. Chương3:T chcMemory 32
  203. SummarySlide  Côø naøo ñöôïc thieát laäp khi 1 pheùp tính soá hoïc khoâng daáu quaù roäng khoâng vöøa vôùi ñích? Hai thanh ghi naøo ñöôïc toå hôïp thaønh ñòa chæ cuûa leänh seõ ñöôïc thöïc keá tieáp? Neâu quaù trình ñoïc boä nhôù. Taïi sao quaù trình ñoïc boä nhôù laïi chieám nhieàu chu kyø maùy hôn so vôùi truy caäp thanh ghi? Thanh ghi AH bò söûa ñoåi, taïi sao thanh ghi AX cuõng thay ñoåi theo. Noäi dung naøo chieám 1024 bytes thaáp nhaát cuûa boä nhôù? Chương3:T chcMemory 33
  204. Caâu hoûi oân taäp  Vai troø cuûa Cache trong maùy tính.  Trình baøy chieán löôïc tröõ ñeäm cuûa Cache.  Phaân bieät boä nhôù RAM vaø ROM.  Neâu trình töï quaù trình thöïc hieän khi khôûi ñoäng maùy tính. Chương3:T chcMemory 34
  205. Caâu hoûi oân taäp  Moät boä nhôù coù dung löôïng 4Kx8. a) Coù bao nhieâu ñaàu vaøo döõ lieäu, ñaàu ra döõ lieäu. b) Coù bao nhieâu ñöôøng ñòa chæ. c) Dung löôïng cuûa noù tính theo byte. Chương3:T chcMemory 35
  206. Caâu hoûi oân taäp B nh Cachenmgia: a) Mainboardvà CPU b) ROMvà CPU c) CPUvà b nh chính . d) B nh chínhvà b nh ngoài Chương3:T chcMemory 36
  207. Caâu hoûi oân taäp Theo quy ưc, ngưI ta chia b nh thành tng vùng có nhng ña ch ñưcmôt bng: a) s thpphân b) s thplcphân c) s nh phân d) s bátphân Chương3:T chcMemory 37
  208. h1h2 ChCh ööôngông 55 :: NhaNha ääpp moânmoân AssemblyAssembly Muïc tieâu HieHie ååuu ngoânngoân ngng ööõõ mama ùùyy vava øø ngoânngoân ngng ööõõ Assembly.Assembly. TrTr ììnhnh hôhô ïïpp dòchdòch Assembler.Assembler. LyLy ùù dodo nghieânnghieân cc öùöùuu Assembly.Assembly. HieHie ååuu caca ùùcc thatha øønhnh phapha àànn côcô baba ûûnn cucu ûûaa AssemblyAssembly NaNa éémm ñöñö ôôïïcc caca ááuu trutru ùùcc cucu ûûaa 11 CTCT Assembly.Assembly. BieBie áátt vievie áátt 11 chch ööôngông trtr ììnhnh Assembly.Assembly. BieBie áátt caca ùùchch dòch,dòch, lieânlieân keke áátt vava øø thth öïöïcc thithi 11 chch ööôngông trtr ììnhnh Assembly.Assembly. 4/4/2006 Chuong 5 Nhap mon ASM 1
  209. Slide 1 h1 shjsahjsa huh, 13/10/2004 h2 ssasasasas huh, 13/10/2004
  210. GiôGiô ùùii thiethie ääuu ngoânngoân ngng ööõ õ AssemblyAssembly  GiuGiu ùùpp khakha ùùmm phapha ùù bbíí mama äätt phapha àànn cc öùöùngng cuõngcuõng nhnh öö phapha àànn meme ààmm mama ùùyy tt íính.nh.  NaNa éémm ñöñö ôôïïcc caca ùùchch phapha àànn cc öùöùngng MTMT lala øømm vievie ääcc vôvô ùùii hehe ää ññieie ààuu haha øønhnh vava øø hiehie ååuu ñöñö ôôïïcc baba èèngng caca ùùchch nana øøoo 11 trtr ììnhnh öùöùngng dudu ïïngng giaogiao tietie áápp vôvô ùùii hehe ää ññieie ààuu haha øønh.nh.  MoMo äätt MTMT hayhay momo äätt hoho ïï MTMT ss öûöû dudu ïïngng 11 tata ääpp lele äänhnh maõmaõ mama ùùyy rieângrieâng cuõngcuõng nhnh öö 11 ngoânngoân ngng ööõõ AssemblyAssembly rieâng.rieâng. 4/4/2006 Chuong 5 Nhap mon ASM 2
  211. AssemblerAssembler  MoMo äätt chch ööôngông trtr ììnhnh vievie áátt baba èèngng ngoânngoân ngng ööõõ AssemblyAssembly muomuo áánn MTMT thth öïöïcc hiehie äänn ñöñö ôôïïcc tata phapha ûûii chuyechuye åånn thatha øønhnh ngoânngoân ngng ööõõ mama ùùy.y.  ChCh ööôngông trtr ììnhnh dudu øøngng ññeeåå dòchdòch 11 filefile vievie áátt baba èèngng AssemblyAssembly  ngoânngoân ngng ööõõ mama ùùyy ,, gogo ïïii lala øø AssemblerAssembler Coù 2 chöông trình dòch: MASM vaø TASM 4/4/2006 Chuong 5 Nhap mon ASM 3
  212. LyLy ùù dodo nghieânnghieân cc öùöùuu AssemblyAssembly  ÑÑooùù lala øø caca ùùchch toto áátt nhanha áátt ññeeåå hoho ïïcc phapha ànàn cc öùöùngng MTMT vava øø hehe ää ññieie ààuu haha ønh.ønh.  VVìì caca ùùcc tietie äänn ííchch cucu ûûaa nono ùù  CoCo ùù thethe åå nhunhu ùngùng caca ùcùc chch ööôngông trtr ììnhnh concon vievie áátt baba èèngng ASMASM vava øøoo trongtrong caca ùùcchcch ööôngông trtr ììnhnh vievie áátt baba èèngng ngoânngoân ngng ööõõ caca áápp caocao 4/4/2006 Chuong 5 Nhap mon ASM 4
  213. LeLe änhänh mama ùùyy  LaLa øø 11 chuochuo ååii nhònhò phaânphaân coco ùù yyùù nghngh óóaa ññaaëcëc biebie äätt –– nono ùù rara lele äänhnh chocho CPUCPU thth öïöïcc hiehie änän tata ùùcc vuvu ïï  TaTa ùùcc vuvu ïï ññooùù coco ùù thethe åå lala øø :: didi chuyechuye åånn 11 soso áá ttöøöø vòvò trtr íí nhônhô ùù nana øøyy sangsang vòvò trtr íí nhônhô ùù khakha ùùc.c. CoCo äängng 22 soso áá hayhay soso sasa ùùnhnh 22 soso áá 0 0 0 0 0 1 0 0 Add a number to the AL register 1 0 0 0 0 1 0 1 Add a number to a variable 1 0 1 0 0 0 1 1 Move the AX reg to another reg 4/4/2006 Chuong 5 Nhap mon ASM 5
  214. LeLe änhänh mama ùùyy (cont)(cont)  TaTa ääpp lele äänhnh mama ùùyy ñöñö ôôïïcc ññònhònh nghngh óóaa trtr ööôôùùc,c, khikhi CPUCPU ñöñö ôôïïcc sasa ûûnn xuaxua áátt vava øø nono ùù ññaaëëcc trtr ööngng chocho kiekie ååuu CPUCPU  ExEx :: B5B5 0505 lala øø 11 lele äänhnh mama ùùyy vievie áátt dada ïïngng soso áá hex,hex, dada øøii 22 byte.byte.  ByteByte ññaaààuu B5B5 gogo ïïii lala øø OpcodeOpcode  ByteByte sausau 0505 gogo ïïii lala øø toatoa ùùnn haha ïïngng OperandOperand YÙùYÙù nghóa nghóa cuûa cuûa leänh leänh B5 B5 05 05 : : cheùp cheùp giaù giaù trò trò 5 5 vaøo vaøo r regeg AL AL 4/4/2006 Chuong 5 Nhap mon ASM 6
  215. CaCa ùùchch vievie áátt 11 chch ööôngông trtr ììnhnh AssemblyAssembly Soaïn CT Duøng 1 phaàn meàm soaïn thaûo VB baát kyø ñeå soan TenCT.ASM CT Assembly nhö : NotePad, NC, maøn hình C, Pascal CT coù phaàn môû roäng laø .ASM Dòch CT duøng MASM ñeå dòch chöông trình nguoàn .ASM  File Object. Lieân keát CT duøng LINK ñeå lieân keát Object taïo taäp tin thöïc hieän .EXE Chaïy CT Goû teân taäp tin thöïc hieän .EXE töø daáu nhaéc DOS ñeå chaïy 4/4/2006 Chuong 5 Nhap mon ASM 7
  216. DòchDòch vava øø nono ááii keke áátt chch ööôngông trtr ììnhnh MASM.EXEMASM.EXE TenCT .ASM TenCT .OBJ LINK.EXELINK.EXE TenCT .MAP TenCT .LIST TenCT .CRF TenCTTenCT .EXE .EXE 4/4/2006 Chuong 5 Nhap mon ASM 8
  217. MoMo äätt chch ööôngông trtr ììnhnh minhminh hoahoa ïï DOSSEG MOV DX, OFFSET MES .MODEL SMALL MOV AH, 9 .STACK 100h .DATA INT 21 MES DB “HELLO WORD ”,’$’ MOV AH,4CH .CODE INT 21 MAIN PROC MOV AX, @DATA MAIN ENDP MOV DS, AX END MAIN 4/4/2006 Chuong 5 Nhap mon ASM 9
  218. CaCa ùùcc filefile ñöñö ôôïïcc tata ïïoo  SauSau khikhi dòchdòch thatha øønhnh coângcoâng filefile nguonguo ààn.ASM,n.ASM, tata coco ùù caca ùùcc filefile ::  FileFile listinglisting :: filefile VBVB ,, caca ùùcc dodo øøngng coco ùù ññaaùùnhnh soso áá thth öùöù ttöïöï maõ.maõ.  FileFile CrossCross referencereference  FileFile MapMap  FileFile ObjObj  FileFile EXEEXE 4/4/2006 Chuong 5 Nhap mon ASM 10
  219. FileFile ListingListing  Microsoft (R) Macro Assembler Version 5.10 10/1 1/4  Pag e 1 -1  1 DOSSEG  2 .MODEL SMALL  3 .STACK 100H  4 .DATA  5 0000 48 45 4C 4C 4F 20 MES DB "HELLO WORD$"  6 57 4F 52 44 24  7 .CODE  8 0000 MAIN PROC  9 0000 B8 R MOV AX,@DATA  10 0003 8E D8 MOV DS, AX  11 0005 B4 09 MOV AH,9  12 0007 BA 0000 R MOV DX, OFFSET MES  13 000A CD 21 INT 21H  14 000C B4 4C MOV AH,4CH  15 000E CD 21 INT 21H  16 0010 MAIN ENDP  17 END MAIN  ♀◘Microsoft (R) Macro Assembler Version 5.10 10/1 1/4 4/4/2006 Chuong 5 Nhap mon ASM 11
  220. MapMap FileFile  Start Stop Length Name Class  00000H 0001FH 00020H _TEXT CODE  00020H 0002AH 0000BH _DATA DATA  00030H 0012FH 00100H STACK STACK  Origin Group  0002:0 DGROUP  Program entry point at 0000:0010 4/4/2006 Chuong 5 Nhap mon ASM 12
  221. GiaGia ûûii thth ííchch  .model.model smallsmall :: dudu øøngng kiekie ååuu caca ááuu trutru ùùcc <=<= 6464 KK bobo ää nhônhô ùù chocho maõmaõ ,, 64K64K chocho dd ööõõ lielie ääu.u.  .Stack.Stack 100h100h :: dada øønhnh 256256 bytesbytes chocho stackstack cucu ûûaa chch ööôngông trtr ììnhnh  .Data.Data :: ññaaùùnhnh dada ááuu phaânphaân ññoaoa ïïnn dd ööõõ lielie ääuu ôô ûû ññooùù caca ùùcc biebie áánn ñöñö ôôïïcc ll ööuu trtr ööõ.õ.  .Code.Code :: ññaaùùnhnh dada ááuu phaânphaân ññoaoa ïïnn maõmaõ chch öùöùaa caca ùùcc lele äänhnh phapha ûûii thithi haha øønh.nh.  ProcProc :: khaikhai baba ùùoo ññaaààuu 11 thuthu ûû tutu ïïc,c, trongtrong ExEx nana øøyy tata chch ææ coco ùù 11 thuthu ûû tutu ïïcc Main.Main. 4/4/2006 Chuong 5 Nhap mon ASM 13
  222. GiaGia ûûii thth ííchch (cont)(cont)  CheChe ùùpp ññòaòa chch ææ ññoaoa ïïnn dd ööõ õ lielie ääuu vava øøoo thanhthanh ghighi AX.AX.  SauSau ññooùù cheche ùùpp vava øøoo thanhthanh ghighi DSDS  GoGo ïïii haha øømm soso áá 99 cucu ûûaa IntInt 21h21h cucu ûûaa DosDos ññeeåå xuaxua áátt chuochuo ååii kyky ùù ttöïöï rara mama øønn hh ìình.nh.  ThoaThoa ùùtt khokho ûûii CTCT  MainMain endpendp :: ññaaùnhùnh dada ááuu keke átát thuthu ùùcc thuthu ûû tutu ïïcc  EndEnd mainmain :: chacha ámám dd öùöùtt chch ööôngông trtr ììnhnh 4/4/2006 Chuong 5 Nhap mon ASM 14
  223. 4/4/2006 Chuong 5 Nhap mon ASM 15
  224. CaCa ùùcc cheche áá ññooää bobo ää nhônhô ùù Kie ååu Moâ ta ûû SMALL Maõ le äänh trong 1 ñoa ïïn.D öõõ lielie ääu trong 1 ñoa ïïn MEDIUM Maõ le äänh nhie ààu hôn 1 ñoa ïïn.D öõõ lielie ääu trong 1 ñoa ïïn COMPACT Maõ le äänh trong 1 ñoa ïïn. D öõõ lielie ääu nhie ààu hôn 1 ñoa ïïn LARGE Maõ le äänh nhie ààu hôn 1 ñoa ïïn Döõõ lielie ääu nhie ààu hôn 1 ñoa ïïn,khoâng co ùù ma ûûng na øøo > 64K HUGE Maõ le äänh nhie ààu hôn 1 ñoa ïïn Döõõ lielie ääu nhie ààu hôn 1 ñoa ïïn, ma ûûng co ùù the åå > 64K 4/4/2006 Chuong 5 Nhap mon ASM 16
  225. DaDa ïïngng lele äänhnh ChuùChuù thích thích  [name][name] [operator][operator] [[ operand]operand] [comment][comment] MaõMaõ leänh leänh daïng daïng Register, oâ nhôù Nhaõn,Nhaõn, teân teân bieán bieán Register, oâ nhôù gôïigôïi nhôù nhôù Trò, haèng TeânTeân thuû thuû tuïc tuïc Trò, haèng Ex : MOV CX , 0 Moãi doøng chæ chöùa 1 leänh vaø moãi leänh LAP : MOV CX, 4 phaûi naèm treân 1 doøng LIST DB 1,2,3,4 4/4/2006 Chuong 5 Nhap mon ASM 17
  226. INTINT 21H21H  LeLe äänhnh INT INT so so áá hiehie ääuu nga nga éétt ñöñö ôôïïcc du du øøngng ññeeåå gogo ïïii chch ööôngông trtr ììnhnh nganga éétt cucu ûûaa DOSDOS vava øø BIOS.BIOS. Ngaét 21h Muoán söû duïng haøm naøo cuûa INT 21h ta ñaët function_number vaøo thanh ghi AH, sau ñoù goïi INT 21h Function_number chöùc naêng 1 nhaäp 1 kyù töï töø baøn phím 2 Xuaát 1 kyù töï ra maø hình. 9 Xuaát 1 chuoåi kyù töï ra maøn hình 4/4/2006 Chuong 5 Nhap mon ASM 18
  227. INTINT 21h21h (cont)(cont) Haøm 1 : Nhaäp 1 kyù töï Input : AH =1 Output : AL = maõ ASCCI cuûa phím aán = 0 neáu 1 phím ñieàu khieåân ñöôïc aán Haøm 2 : Hieån thò 1 kyù töï ra maøn hình Input : AH =2 DL = Maõ ASCII cuûa kyù töï hieån thò hay kyù töï ñieàu khieån 4/4/2006 Chuong 5 Nhap mon ASM 19
  228. ThTh íí dudu ïï minhminh hoho ïaïa DOSSEG MOV AH,2 .MODEL SMALL MOV DL, 0DH .STACK 100H INT 21H .CODE MOV DL , 0AH MAIN PROC INT 21H MOV AH , 2 MOV DL , BL MOV DL , ‘?’ INT 21H INT 21H MOV AX , 4C00H MOV AH ,1 INT 21H INT 21H MAIN ENDP MOV BL,AL END MAIN ? N KEÁT QUAÛ N 4/4/2006 Chuong 5 Nhap mon ASM 20
  229. ThTh íí dudu ïï minhminh hoho ïïaa caca ùùcc haha øømm cucu ûûaa INTINT 2121  InIn dada ááuu ?? rara mama øønn hh ììnhnh :: MOVMOV AH,AH, 22 MOVMOV DL,DL, ‘‘??’’ INTINT 21H21H  NhaNha ääpp 11 kyky ùù ttöïöï ttöøöø baba øønn phph íímm :: MOVMOV AH,AH, 11 INTINT 21H21H 4/4/2006 Chuong 5 Nhap mon ASM 21
  230. BieBie áánn  CuCu ùù phapha ùùpp :: [teân[teân biebie áán]n] DBDB || DWDW | | [trò[trò khôkhô ûûii tata ïïo]o]  LaLa øø momo äätt teânteân kyky ùù hiehie ääuu dada øønhnh rieângrieâng chocho 11 vòvò trtr íí trongtrong bobo ää nhônhô ùù nôinôi ll ööuu trtr ööõõ dd ööõõ lielie ääu.u.  OffsetOffset cucu ûûaa biebie áánn lala øø khoakhoa ûûngng caca ùùchch tt öøöø ññaaààuu phaânphaân ññoaoa ïïnn ññeeáánn biebie áánn ññooùù  ExEx :: khaikhai baba ùùoo 11 danhdanh sasa ùùchch aListaList ôô ûû ññòaòa chch ææ 100100 vôvô ùùii nono ääii dungdung sausau :: .data.data aListaList dbdb ““ABCDABCD ”” 4/4/2006 Chuong 5 Nhap mon ASM 22
  231. BieBie áánn (cont)(cont) LuLu ùùcc ññooùù :: OffsetOffset BieBie áánn 00000000 AA 00010001 BB 00020002 CC 00030003 DD 4/4/2006 Chuong 5 Nhap mon ASM 23
  232. KhaiKhai baba ùùoo biebie ánán TTöøöø gôgô ïïii nhônhô ùù MoâMoâ tata ûû SoSo áá bytebyte ThuoThuo ääcc tt íínhnh DBDB ÑÑònhònh nghngh óóaa 11 ByteByte bytebyte DWDW TTöøöø 22 WordWord DDDD TTöøöø keke ùùpp 44 DoublewordDoubleword DQDQ TTöøöø ttöùöù 88 QuardwordQuardword DTDT 1010 bytesbytes 1010 tenbytetenbyte 4/4/2006 Chuong 5 Nhap mon ASM 24
  233. MinhMinh hoho ïïaa khaikhai baba ùùoo biebie áánn KIEÅU BYTE  CharChar dbdb ‘‘AA’’  NumNum dbdb 41h41h  MesMes dbdb ““HelloHello WordWord ””,,’’$$’’  Array_1Array_1 dbdb 10,10, 32,32, 41h,41h, 00100101b00100101b  Array_2Array_2 dbdb 2,3,4,6,92,3,4,6,9  MyvarMyvar dbdb ?? ;; biebie áánn khoângkhoâng khôkhô ûûii tata ïïoo  BtableBtable dbdb 1,2,3,4,51,2,3,4,5 dbdb 6,7,8,9,106,7,8,9,10 4/4/2006 Chuong 5 Nhap mon ASM 25
  234. MinhMinh hoho ïïaa khaikhai baba ùùoo biebie áánn KIEÅU WORD DWDW 33 DUPDUP (?)(?) DWDW 1000h,1000h, ‘‘ABAB ’’,, 10241024 DWDW ?? DWDW 55 DUPDUP (1000h)(1000h) DWDW 256*2256*2 DAÏNG LÖU TRÖÕ DÖÕ LIEÄU KIEÅU WORD : Trình hôïp dòch ñaûo ngöôïc caùc byte trong 1 giaù trò kieåu WORD khi löu tröõ trong boä nhôù : Byte thaáp löu ôû ñòa chæ thaáp Byte cao löu ôû ñòa chæ cao 4/4/2006 Chuong 5 Nhap mon ASM 26
  235. MinhMinh hoho ïïaa khaikhai baba ùùoo biebie áánn KIEÅU WORD Ex : 1234h ñöôïc löu tröõ trong boä nhôù nhö sau : ÑÒA CHÆ 1000h 1001h BOÄ NHÔÙ 34 12 DÖÕ LIEÄU 1234H 4/4/2006 Chuong 5 Nhap mon ASM 27
  236. ToaToa ùùnn tt öûöû DUPDUP  LaLa ëëpp lala ïïii 11 hayhay nhienhie ààuu giagia ùù tròtrò khôkhô ûiûi tata ïïo.o.  ExEx :: BmemBmem DBDB 5050 Dup(?)Dup(?) ;; khaikhai baba ùùoo vuvu øøngng nhônhô ùù gogo ààmm 5050 bytes.bytes. dbdb 44 dupdup (( ““ABCABC ””)) ;12;12 bytesbytes ““ABCABCABCABCABCABCABCABC ”” dbdb 40964096 dupdup (0)(0) ;; VuVu øøngng ññeeäämm 40964096 bytesbytes tata áátt caca ûû baba èèngng 00 4/4/2006 Chuong 5 Nhap mon ASM 28
  237. KhôKhô ûûii tata ïïoo biebie ánán  LLööuu yy ùù :: KhiKhi khô khô ûûii ta ta ïïoo trò trò la la øø 11 so so áá hexhex th th ìì giagia ùù tròtrò so so áá luoânluoân luoânluoân baba éétt ññaaààuu baba èèngng 11 kyky ùù soso áá ttöøöø 00 ññeeáánn 9.9. NeNe ááuu kyky ùù soso áá baba éétt ññaaààuu lala øø A A FF thth ìì phapha ûûii theâmtheâm soso áá 00 ôô ûû ññaaààu.u.  ExEx :: DbDb A6HA6H ;; saisai DbDb 0A6h0A6h ;; ññuuùùngng 4/4/2006 Chuong 5 Nhap mon ASM 29
  238. ToaToaùùn n ttöûöû DUPDUP (cont)(cont) AmtrixAmtrix dwdw 33 dupdup (4(4 dupdup (0)(0) )) Taïo 1 ma traän 3x4 Atable db 4 dup (3 dup (0), 2 dup (‘X’)) Taïo 1 vuøng nhôù chöùa 000XX 000XX 000XX 000XX 4/4/2006 Chuong 5 Nhap mon ASM 30
  239. ToaToa ùùnn tt öûöû DUPDUP  ChCh ææ xuaxua átát hiehie änän sausau 11 chch ææ thòthò DBDB hayhay DWDW  VôVô ùùii DUPDUP tata coco ùù thethe åå lala ëëpp lala ïiïi 11 hayhay nhienhie ààuu tròtrò chocho vuvu øngøng nhônhô ùù  RaRa áátt coco ùù ííchch khikhi lala ømøm vievie ääcc vôvô ùùii mama ûngûng hayhay chuochuo ååi.i. 4/4/2006 Chuong 5 Nhap mon ASM 31
  240. ToaToa ùùnn tt öûöû ??  MuoMuo áánn khaikhai baba ùùoo 11 biebie áánn hayhay 11 mama ûûngng mama øø khoângkhoâng caca àànn khôkhô ûûii tata ïïoo tròtrò tata dudu øøngng toatoa ùùnn tt öûöû ?? Ex : MEM8 DB ? ; khai baùo 1 byte troáng trong boä nhôù MEM16 DW ? ; khai baùo 2 byte troáng trong boä nhôù BMEM DB 50 DUP(?) ; khai baùo 50 byte troáng trong boä nhôù 4/4/2006 Chuong 5 Nhap mon ASM 32
  241. ChCh ööôngông trtr ììnhnh dada ïïngng .COM.COM CODE SEGMENT ASSUME CS:CODE , DS:CODE, SS:CODE ; toa øøn bo ää ch öông tr ình ch æ na èèm trong 1 segment Org 100h ;; ch æ thò na ïïp thanh ghi le äänh IP=100h khi CT ñö ôïïc na ïïp Main proc mov ax,bx . Main endp Count db 10 Code ends End main 4/4/2006 Chuong 5 Nhap mon ASM 33
  242. SUMMARYSUMMARY  chch ööôngông trtr ììnhnh AssemblyAssembly gogo ààmm nhienhie ààuu dodo øøngng lele äänh.nh.  MoãiMoãi lele änhänh phapha ûûii vievie áátt treântreân 11 dodo øøngng  LeLe äänhnh coco ùù thethe åå gogo ààmm [teân][teân] [toa[toa ùùnn tt öûöû]] [toa[toa ùùnn haha ïïng]ng]  CaCa ùùcc kyky ùù ttöïöï phapha ûûii ññaaëëtt trongtrong dada ááuu ‘‘ ‘‘ hayhay ““ ““  DBDB dudu øøngng ññeeåå ññònhònh nghngh óóaa biebie áánn kiekie ååuu BYTEBYTE  DWDW dudu øøngng ññeeåå ññònhònh nghngh óóaa biebie áánn kiekie ååuu WORD.WORD.  CoCo ùù 22 caca ùùchch xuaxua áátt nhanha ääpp dd ööõõ lielie ääuu :: lieânlieân lala ïïcc trtr öïöïcc tietie áápp quaqua coco åångng hayhay dudu øøngng caca ùùcc phuphu ïïcc vuvu ïï nganga éétt cucu ûûaa DOSDOS vava øø BIOS.BIOS. 4/4/2006 Chuong 5 Nhap mon ASM 34
  243. CaâuCaâu hoho ûûii oânoân tata ääpp  TrongTrong maõmaõ mama ùùyy dd ööôôùùii ññaâyaây ñöñö ôôïïcc lala ááyy tt öøöø tata ääpp tintin lielie äätt keâ,keâ, haõyhaõy neâuneâu yy ùù nghngh óóaa cucu ûûaa RR 5B5B 00210021 RR ADDADD BX,BX, VAL1VAL1  NeâuNeâu yy ùù nghngh óóaa cucu ûûaa kyky ùù hiehie ääuu ññòaòa chch ææ cucu ûûaa biebie áánn dd ööôôùùii ññaâyaây trongtrong 11 tata ääpp tintin lielie äätt keâ.keâ. 5B5B 00210021 RR ADDADD BX,BX, VAL1VAL1 4/4/2006 Chuong 5 Nhap mon ASM 35
  244. CaâuCaâu hoho ûûii oânoân tata ääpp  Ch öông tr ình sau co ùù loãi. Haõy t ìm caâu le äänh na øøo gaây ra loãi, gia ûûi th ích va øø söûa la ïïi cho ñuùùng. MODEL SMALL .STACK 100H .DATA MOV AX, VALUE1 MOV BX, VALUE2 INC BX, 1 INT 21H MOV 4C00H, AX MAIN ENDP VALUE1 0AH VALUE2 1000H END MAIN 4/4/2006 Chuong 5 Nhap mon ASM 36
  245.  Ch öông tr ình sau co ùù loãi. Haõy t ìm caâu le äänh na øøo gaây ra loãi, gia ûûi th ích va øø söûa la ïïi cho ñuùùng. MODEL SMALL CaâuCaâu hoho ûûii oânoân tata ääpp .STACK 100H .CODE MAIN PROC MOV AX, @DATA MOV DS , AX MOV AX, VALUE1 MOV AX, VALUE2 MOV AX, 4C00H INT 21H MAIN ENDP VALUE1 DB 0AH VALUE2 DB 1000H END4/4/2006 MAIN Chuong 5 Nhap mon ASM 37
  246. BaBa øøii tata äpäp lala äpäp trtr ììnhnh BaBa øøii 11 :: VieVie áátt chch ööôngông trtr ììnhnh nhanha ääpp 11 kyky ùù ttöïöï thth ööôôøøngng ,, inin rara kyky ùù ttöïöï hoahoa tt ööôngông öùöùng.ng. BaBa øøii 22 :: VieVie áátt chch ööôngông trtr ììnhnh hoahoa ùùnn vòvò 22 biebie áánn kiekie ååuu bytebyte ñöñö ôôïïcc gaga ùùnn sasa ünün trò.trò. BaBa øøii 33 :: VieVie áátt chch ööôngông trtr ììnhnh tata ïïoo 11 arrayarray coco ùù caca ùùcc phapha àànn ttöûöû 31h,32h,33h,34h.31h,32h,33h,34h. NaNa ïïpp tt öøöøngng phapha àànn tt öûöû vava øøoo thanhthanh ghighi DLDL vava øø xuaxua áátt nono ùù rara mama øønn hh ìình.nh. GiaGia ûûii thth ííchch tata ïïii saosao keke áátt xuaxua áátt treântreân mama øønn hhììnhnh lala øø 1234.1234. 4/4/2006 Chuong 5 Nhap mon ASM 38
  247. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 1
  248. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 2
  249. ToaToa ùùnn tt öûöû soso áá hoho ïïcc Toa ùùn t öû Cu ùù pha ùùp Coâng du ïïng + + expression Döông - - expression Aâm * exp1*exp2 Nhaân / exp1/exp2 Chia MOD exp1 mod exp2 Pha ààn d ö + exp1 + exp2 Co ääng - exp1 - exp2 Tr öø SHL exp shl n Dòch exp sang tra ùùi n bit SHR exp shr n Dòch exp sang pha ûûi n bit 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 3
  250. ToaToa ùùnn tt öûöû logiclogic NotNot NotNot expressionexpression AndAnd Exp1Exp1 andand exp2exp2 OrOr Exp1Exp1 oror exp2exp2 XorXor Exp1Exp1 xorxor exp2exp2 Ex : MOV AH , 8 OR 4 AND 2 MOV AL, NOT (20 XOR 0011100B) 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 4
  251. ToaToa ùùnn TT öûöû QuanQuan HeHe ää SoSo sa sa ùùnhnh 2 2 bie bie ååuu th th öùöùcc va va øø chocho trò trò la la øø truetrue ( ( 1)1) ne ne ááuu ññieie ààuu kiekie äänn cucu ûûaa toatoa ùùnn tt öûöû thotho ûûa,a, ngng ööôôïïcc lala ïïii lala øø false.false. EQEQ Exp1Exp1 EQEQ exp2exp2 TrueTrue nene ááuu Exp1Exp1 == exp2exp2 NENE Exp1Exp1 NENE exp2exp2 TrueTrue nene ááuu Exp1Exp1 exp2exp2 LTLT Exp1Exp1 LTLT exp2exp2 TrueTrue nn eeááuu Exp1Exp1 > exp2exp2 GEGE Exp1Exp1 GEGE exp2exp2 TrueTrue nene ááuu Exp1Exp1 >=>= exp2exp2 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 5
  252. ÑÑOOÄÄ ÖÖUU TIEÂNTIEÂN TOATOA ÙÙNN TTÖÛÖÛ TOATOA ÙÙNN TT ÖÛÖÛ MOÂMOÂ TATA ÛÛ (( )) DaDa ááuu ngoangoa ëcëc Ñoä öu tieân ++ ,, DaDa ááuu dd ööôngông ,, aâmaâm giaûm daàn // MODMOD NhaânNhaân ,, chia,chia, ModulusModulus ++ ,, CoCo ääng,ng, trtr öøöø 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 6
  253. ToaToa ùùnn tt öûöû SEGSEG CuCu ùù phapha ùùpp :: SEGSEG expressionexpression ChoCho ññòaòa chch ææ ññoaoa ïïnn cucu ûûaa biebie ååuu thth öùöùcc expression.expression. ExpressionExpression coco ùù thethe åå lala øø biebie áánn || nhaõnnhaõn || teânteân segmentsegment hayhay toatoa ùùnn haha ïïngng bobo ää nhônhô ùù khakha ùùc.c. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 7
  254. ToaToa ùùnn tt öûöû OFFSETOFFSET CuCu ùù phapha ùùpp :: OFFSETOFFSET expressionexpression ChoCho ññòaòa chch ææ OFFSETOFFSET cucu ûûaa biebie ååuu thth öùöùcc expression.expression. ExpressionExpression coco ùù thethe åå lala øø biebie áánn || nhaõnnhaõn || teânteân segmentsegment hayhay toatoa ùùnn haha ïïngng trtr öïöïcc tietie áápp bobo ää nhônhô ùù khakha ùùc.c. Ex : naïp ñòa chæ segment vaø offset cuûa bieán table vaøo DS :AX TABLE DB ? MOV AX, SEG TABLE MOV DS, AX MOV DX, OFFSET Table 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 8
  255. TOATOA ÙÙNN TT ÖÛÖÛ $$ ChoCho ññòaòa ch ch ææ cucu ûûaa OFFSET OFFSET cu cu ûûaa pha pha ùùtt biebie ååuu chch öùöùaa toatoa ùùnn tt öûöû $.$. ThTh ööôôøøngng ñöñö ôôïïcc du du øøngng ññeeåå ttíínhnh chie chie ààuu da da øøii chuochuo ååi.i. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 9
  256. TOATOA ÙÙNN TT ÖÛÖÛ PTRPTR CuCu ùù phapha ùùpp :: typetype PTRPTR expressionexpression ChoCho phephe ùùpp thaythay ññooååii dada ïïngng cucu ûûaa expressionexpression nene ááuu exprexpr lala øø 11 biebie áánn || toatoa ùùnn haha ïïngng bobo ää nhônhô ùù thth ìì typetype coco ùù thethe åå lala øø bytebyte ,, wordword hayhay dword.dword. NeNe ááuu exprexpr lala øø 11 nhaõnnhaõn thth ìì typetype coco ùù thethe åå lala øø nearnear hayhay far.far. Ex : mov ax, word ptr var1 ; var1 laø toaùn haïng kieåu Word mov bl , byte ptr var2 ; var2 laø toaùn haïng kieåu byte 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 10
  257. ToaToa ùùnn haha ïïngng (Operand)(Operand) Caùc toaùn haïng chæ ra nôi chöùa döõ lieäu cho 1 leänh , chæ thò. Haàu heát caùc leänh Assembly ñeàu coù ñoái soá laø 1 hoaëc 2 toaùn haïng Coù 1 soá leänh chæ coù 1 toaùn haïng nhö RET, CLC. Vôùi caùc leänh 2 toaùn haïng thì toaùn haïng thöù 2 laø toaùn haïng nguoàn (source) – chöùa döõ lieäu hoaëc ñòa chæ cuûa döõ lieäu. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 11
  258. ToaToa ùùnn haha ïïngng (Operand)(Operand) Toaùn haïng ñích giöõ keát quaû (neáu coù yeâu caàu) sau khi thi haønh leänh. Toaùn haïng ñích coù theå laø thanh ghi hay Boä nhôù. Toaùn haïng nguoàn coù theå laø thanh ghi, boä nhôù hay 1 giaù trò töùc thôøi . Toaùn haïng soá töùc thôøi coù theå laø soá trong caùc heä ñeám khaùc nhau vaø ñöôïc vieát theo qui ñònh sau : Soá heä 2 : xxxxxxxxB (x laø bit nhò phaân) Soá heä 10 : xxxxxD hay xxxxx (x laø 1 soá heä 10) Soá heä 16 : xxxxH vaø baét ñaàu baèng soá (x laø 1 soá heä 16) 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 12
  259. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 13
  260. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 14
  261. ððNHVNHV THANHGHITHANHGHI Giá tr ca toán h ng ñưc truy xu t n m ngay trong thanh ghi c a CPU. Ex : MOV AX,BX ; chuy n n i dung c a thanh ghi BX vào thanh ghi AX 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 15
  262. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 16
  263. ÑÑònhònh vòvò giagia ùùnn tietie áápp thanhthanh ghighi :: EX1 : MOV AX, [SI] Np n i dung c a ô nh màña ch OffsetlưutrongSIv à ña ch ñon l ưu trong DS vào AX. EX2 : MOV AX, [BP] Np n i dung c a ô nh màña ch OffsetlưutrongBP vàña ch ñon l ưu trong ES vào AX. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 17
  264. ðNH V TR C TI P ða ch Offset c a ô nh ch a d li u toán h ng n m tr c ti p trong câu l nh còn ña ch segment ng m ñnh ch a trong DS. Ex : MOV BX, [1234] Np n I dung ô nh cóña ch DS:1234  BX 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 18
  265. ððNHNH VV CƠSCƠS ða ch Offset c a toán h ng ñưc tính là tng c a n I dung thanh ghi BX ho c BP và1ñ dch. ð dch là 1 s nguyên âm ho c d ươ ng. ða ch ñan làñon hi n t i. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 19
  266. ÑÑÒAÒA CHCH ÆÆ HIEHIE ÄÄUU DUDU ÏÏNGNG Toaùn haïng boä nhôù duøng trong taäp leänh vi xöû lyù 86 söû duïng phöông phaùp ñònh ñòa chæ toång hôïp ñöôïc goïi laø ñòa chæ hieäu duïng. Ñòa chæ hieäu duïng laø toå hôïp cuûa 3 nhoùm sau ñaët trong daáu [ ]. Nhoùm thanh ghi chæ soá : SI , DI Nhoùm thanh ghi neàn : BX, BP Ñòa chæ tröïc tieáp : soá 16 bit CaùcCaùc thanh thanh ghi ghi trong trong cuøng cuøng 1 1 nhoùm nhoùm khoâng khoâng ñöôïc ñöôïc xua xuaátát hieän hieän trong trong cuøng cuøng 1 1 ñòañòa chæ chæ hieäu hieäu duïng. duïng. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 20
  267. ÑÑÒAÒA CHCH ÆÆ HIEHIE ÄÄUU DUDU ÏÏNGNG Moät soá thí duï Ñòa chæ hieäu duïng hôïp leä : [1000h] [SI], [DI] , [BX] , [BP] [SI+BX], [SI+BP] , [DI+BX] , [DI+BP] , [SI+1000h], [DI+100h] [SI] [BX] [1000h], [SI+BP+1000h] , [DI+BX][1000h], [DI+1000h]+[BP] Ñòa chæ hieäu duïng khoâng hôïp leä : [70000], [AX] , [SI+DI+1000h], [BX] [BP] 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 21
  268. 4/4/2006 Chuong 7 Cac phep dinh vi dia chi 22
  269. ÑÑòaòa chchææ hiehieäuäu duduïïngng (tt)(tt) giaûi thích leänh, ta qui öôùc Qui öôùc Ñeå thuaän tieän trong vaán ñeà sau : Döõ lieäu 8 bit boä nhôù : [ ñòa chæ ] Döõ lieäu 16 bit boä nhôù : [ ñòa chæ +1, ñòa chæ ] duøng Ñeå xaùc ñònh roõ hoaït ñoäng cuûa boä nhôù , ta phaûi theâm toaùn töû PTR nhö sau : Tham khaû o 1 byte boä nhôù ôû ñòa chæ 8 bit : BYTE PTR [1000H] 1000h Tham khaû o 2 byte boä nhôù lieân tie áp ôû 16 bit : WORD PTR [1000H] ñòa chæ 1000h vaø 1001h 23 Chuong 7 Cac phep dinh vi dia chi 4/4/2006