Ky.thuat.vi.xu.ly uds

1,746 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,746
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
88
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ky.thuat.vi.xu.ly uds

  1. 1. Kỹ ậ vi xửlý thu t MicroprocessorsGiả viên: Phạ Ngọ Nam ng m c
  2. 2. © DHBK 2005 2/Chapter1 Your instructor• Bộmôn kỹthuậ đ n tửtin họ t iệ c  Office: C9-401  Email: pnnam-fet@mail.hut.edu.vn• Research:  FPGA, PSoC, hệnhúng  Trí tuệnhân tạo• Education:  K37 đ n tử HBK Hà nộ (1997) iệ -Đ i  Master vềtrí tuệnhân tạ 1999, Đ i họ K.U. Leuven, o ạ c vư ng quố Bỉ ơ c  Đềtài: Nhậ dạ chữviế tay n ng t  Tiế sỹkỹthuậ chuyên ngành đ n tử n t iệ -tin họ 9/ 2004, Đ i c, ạ họ K.U. Leuven, Vư ng Quố Bỉ c ơ c  Đềtài: quả lý chấ lư ng dị vụtrong các ứ dụ đ n t ợ ch ng ng a phư ng tiệ tiên tiế ơ n n
  3. 3. © DHBK 2005 3/Chapter1 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  4. 4. © DHBK 2005 4/Chapter1 Tài liệ tham khả u o• Slides• Vă ThếMinh, Kỹthuậ vi xửlý, Nhà xuấ bả giáo n t t n dụ 1997. c,• Barry B. Brey, The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and Interfacing, Fourth Edition, Prentice Hall, 1997.• Quách Tuấ Ngọ và cộ sự Ngôn ngữlậ trình n c ng , p Assembly và máy vi tính IBM-PC, 2 tậ Nhà xuấ p, t bả giáo dụ 1995. n c,• Cả ơ giáo sưRudy Lauwereins đ cho phép sử m n ã dụ slides củ ông ng a
  5. 5. © DHBK 2005 5/Chapter1 Mụ đch củ môn họ c í a c• Nắ đ ợ cấ trúc, nguyên lý hoạ đ ng củ bộvi m ưc u t ộ a xửlý và hệvi xửlý• Có khảnă lậ trình bằ hợ ngữcho vi xửlý ng p ng p• Có khảnă lự chọ vi xửlý thích hợ cho các ng a n p ứ dụ cụthể ng ng• Nắ đ ợ các bộvi xửlý trên thự tế m ưc c
  6. 6. © DHBK 2005 6/Chapter1 Bài tậ lớ và thi p n• Bài tậ lớ thiế kếmộ ứ dụ trên vi đ u khiể p n: t t ng ng iề n: 20% tổ sốđ m ng iể Làm theo nhóm 2-6 sinh viên Nộ danh sách các nhóm vào 3/1 p Các nhóm trình bày ý tư ng 17/1 ở• Kiể tra: 10% m 3 bài kiể tra không báo trư c m ớ dựđ ủít nhấ 2 bài và kế quảcủ 2 bài > 5: 1 đ m t t a iể thiế 2 bài trởlên: không đ ợ thi lầ 1 u ưc n• Thi họ kỳ c : 1 câu lý thuyế 2 câu bài tậ (lậ trình và thiế kế t, p p t ) 70% tổ sốđ m ng iể
  7. 7. Chư ng 1© DHBK 2005 7/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  8. 8. Chư ng 1© DHBK 2005 8/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  9. 9. Chư ng 1© DHBK 2005 9/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  10. 10. Thếhệ-1: The early days (…-1642)© DHBK 2005 10/Chapter1• Bàn tính, abacus, đ đ ợ sửdụ đ ã ưc ng ểtính toán. Khái niệ vềgiá trị m theo vị đ đ ợ xửdụ trí ã ư c ng
  11. 11. Thếhệ-1: The early days (…-1642)© DHBK 2005 11/Chapter1 • Thếkỷ12: Muhammad ibn Musa AlKhowarizmi đ a ư ra khái niệ vềgiả m i thuậ algorithm t
  12. 12. Thếhệ-1: The early days (…-1642)© DHBK 2005 12/Chapter1• Codex Madrid - Leonardo Da Vinci (1500)  Vẽmộ cái máy tính cơkhí t
  13. 13. Chư ng 1© DHBK 2005 13/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  14. 14. © DHBK 2005 14/Chapter1 Thếhệ0: Mechanical (1642-1945)• Blaise Pascal, con trai củ mộ ngư i thu thuế đ a t ờ , ã chếtạ mộ máy cộ có nhớvào nă 1642 o t ng m
  15. 15. © DHBK 2005 15/Chapter1 Thếhệ0: Mechanical (1642-1945)• Nă 1801, Joseph-Marie Jacquard đ phát minh ra m ã máy dệ tựđ ng sửdụ bìa đ c lỗđ iề khiể hoạ t ộ ng ụ ểđ u n tiế dệ trên vả t t i• Bìa đ c lỗlư trữchư ng trình: máy đ nă đ u ụ u ơ a ng ầ tiên
  16. 16. © DHBK 2005 16/Chapter1 Thếhệ0: Mechanical (1642-1945) • 1822, Charles Babbage nhậ ra rằ các bả n ng ng tính dùng trong hàng hả có quá nhiề lỗ dẫ i u i n tớ việ rấ nhiêu tàu bị i c t mấ tích t • Ông đ xin chính phủ ã Anh hỗtrợđ ểnghiên cứ vềmáy tính u
  17. 17. © DHBK 2005 17/Chapter1 Thếhệ0: Mechanical (1642-1945)
  18. 18. © DHBK 2005 18/Chapter1 Thếhệ0: Mechanical (1642-1945)• Babbage đ thiế kếmộ cái máy vi phân Difference Engine đ ã t t ể thay thếtoàn bộbả tính: máy thự hiệ mộ ứ dụ cụthể ng c n t ng ng đ u tiên (application specific hard-coded machine) ầ
  19. 19. © DHBK 2005 19/Chapter1 Thếhệ0: Mechanical (1642-1945)• Ada Augusta King, trở thành lậ trình viên đ u p ầ tiên vào nă 1842 khi m cô viế chư ng trình cho t ơ Analytical Engine, thiết bị thứ2 củ Babbage a
  20. 20. © DHBK 2005 20/Chapter1 Thếhệ0: Mechanical (1642-1945)• Herman Hollerith, ngừ i Mỹ thiế kếmộ máy tính ờ , t t đểxửlý dữliệ vềdân sốMỹ1890 u• Ông thành lậ công ty, Hollerith Tabulating p Company, sau đ y là Calculating-Tabulating- ấ Recording (C-T-R) company vào nă 1914 và sau m này đ ợ đ i tên là IBM (International Business ưc ổ Machine) vào nă 1924. m
  21. 21. © DHBK 2005 21/Chapter1 Thếhệ0: Mechanical (1642-1945)• Konrad Zuse, Berlin, Đ c, phát triể vào nă 1935 máy ứ n m tính Z-1 sửdụ rơle và sốnhị ng phân• Chu kỳlệnh: 6 giây (0.17 Hz)
  22. 22. © DHBK 2005 22/Chapter1 Thếhệ0: Mechanical (1642-1945)• Máy tính cơđ n tựđ ng lớ đ nă iệ ộ n a ng đ u tiên là ầ máy Harvard Mark I ( IBM Automatic Sequence Control Calculator ), phát minh bở Howard Aiken vào cuố 1930 i i• ASCC không phả là máy tính có chư ng trình lư trữ i ơ u sằ mà các lệ đ ợ ghi vào các bă giấ n nh ư c ng y.
  23. 23. © DHBK 2005 23/Chapter1 Thếhệ0: Mechanical (1642-1945)• Grace Murray Hopper found the first computer bug beaten to death in the jaws of a relay. She glued it into the logbook of the computer and thereafter when the machine stops (frequently) she told Howard Aiken that they are "debugging" the computer. Numbered pages for USA patents Lab book!!
  24. 24. Chư ng 1© DHBK 2005 24/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  25. 25. © DHBK 2005 25/Chapter1 Thếhệ1: Vacuum tubes (1945-1955) • Nă 1943, John m Mauchly và J. Presper Eckert bắ đ u nghiên t ầ cứ vềENIAC u
  26. 26. © DHBK 2005 26/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• 18000 vacuum tubes, 1500 rơle, 30 tấ 140 kW, 20 thanh ghi n, 10 chữsốthậ phân, 100 nghìn phép tính/ giây p• “Trong tư ng lai máy tính sẽnặ tố đ là 1.5 tấ (Popular ơ ng i a n” Mechanics, 1949)
  27. 27. © DHBK 2005 27/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Lậ trình thông qua 6000 công tắ nhiề nấ và hàng tấ d ây p c u c n
  28. 28. © DHBK 2005 28/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1946, John von Neumann phát minh ra máy m tính có chư ng trình lư trong bộnhớ ơ u• Máy tính củ ông gồ có mộ đ n vị iề khiể mộ a m t ơ đ u n, t ALU, mộ bộnhớchư ng trình và dữliệ và sửdụ t ơ u ng sốnhị phân thay vì sốthậ phân. p• Máy tính ngày nay đ u có cấ trúc von Neumann ề u• ông đ t nề móng cho hiệ tư ng “von Neumann ặ n n ợ bottleneck”, sựkhông tư ng thích giữ tố đ ơ a c ộcủ a bộnhớvớ đ n vị i ơ xửlý
  29. 29. © DHBK 2005 29/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1948, máy tính có chư ng trình lư trữtrong bộnhớđ u m ơ u ầ tiên đ ợ vậ hành tạ trư ng đ i họ Manchester: ưc n i ờ ạ c Manchester Mark I
  30. 30. © DHBK 2005 30/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1951, máy tính Whirlwind lầ đ u tiên sửdụ m n ầ ng bộnhớlõi từ(magnetic core memories). Gầ đ n ây nguyên lý này đ đ ợ sửdụ lạ đ ã ưc ng i ểchếtạ MRAM o ởdạ tích hợ ng p.
  31. 31. © DHBK 2005 31/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Mộ magnetic core lư trữ256 bits t u
  32. 32. © DHBK 2005 32/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• John von Neumann nă 1952 vớ chiế máy tính mớ củ ông m i c i a
  33. 33. © DHBK 2005 33/Chapter1 Thếhệ1: Vacuum tubes (1945-1955)• Nă 1954, John Backus, IBM phát minh ra m FORTRAN
  34. 34. Chư ng 1© DHBK 2005 34/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  35. 35. 35/Chapter1 Th ếhệ2: Discrete transistors (1955-1965)© DHBK 2005• Nă 1947, William Shockley, John Bardeen, and m Walter Brattain phát minh ra transistor
  36. 36. 36/Chapter1 Th ếhệ2: Discrete transistors (1955-1965)© DHBK 2005• Nă 1955, IBM công bốIBM704, máy tính m mainframe sửdụ tranzistor ng• Đ là máy tính vớ phép toán dấ phấ đ ng đ u ây i u y ộ ầ tiên (5 kFlops, clock: 300 kHz)
  37. 37. Chư ng 1© DHBK 2005 37/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  38. 38. 38/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• Nă 1958, Jack St. Clair Kilby of Texas m Instruments (Nobel prize physics, 2000) đ a ra và ư chứ minh ý tư ng tích hợ 1 transistor vớ các ng ở p i đ n trởvà tụđ n trên mộ chip bán dẫ vớ kích iệ iệ t n i thư c 1 nử cái kẹ giấ Đ chính là IC. ớ a p y. ây
  39. 39. 39/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• 7/4/1964 IBM đ a ra System/360, họmáy tính tư ng ư ơ thích đ u tiên củ IBM ầ a
  40. 40. 40/Chapter1 Thếhệ3: Integrated circuits (1965-1980)© DHBK 2005• Nă 1965, Digital m Equipment Corporation, đ a ư ra chiế máy tính mini c đ u tiên DP-8 ầ
  41. 41. © DHBK 2005 41/Chapter1 Thếhệ3: Integrated circuits (1965-1980)• Nă 1971, Ted Hoff chếtạ Intel 4004 theo đ n đ t hàng củ mộ m o ơ ặ a t công ty Nhậ bả đ t n ểtạ chip sả xuấ calculator. Đ là vi xửlý đ u o n t ây ầ tiên vớ 2400 transistor (microprocessor, processor-on-a-chip). i• 4 bít dữliệ 12 bit đa chỉ u, ị
  42. 42. © DHBK 2005 42/Chapter1 Thếhệ3: Integrated circuits (1965-1980)• 1973-1974, Edward Roberts, William Yates and Jim Bybee chếtạ MITS Altair 8800, máy tính cá nhân đ u tiên o ầ• Giá $375, 256 bytes of memory, không keyboard, không màn hình và không bộnhớngoài• Sau đ , Bill Gate và Paul Allen viế chư ng trình dị ó t ơ ch BASIC cho Altair
  43. 43. Chư ng 1© DHBK 2005 43/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a Thếhệ-1: The early days (…-1642) Thếhệ0: Mechanical (1642-1945) Thếhệ1: Vacuum tubes (1945-1955) Thếhệ2: Discrete transistors (1955-1965) Thếhệ3: Integrated circuits (1965-1980) Thếhệ4: VLSI (1980-?)• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  44. 44. © DHBK 2005 44/Chapter1 Thếhệ4: VLSI (1980-?) • Nă 1981, IBM bắ đ u vớ IBM "PC" sử m t ầ i dụ hệđ u hành DOS. ng iề
  45. 45. © DHBK 2005 45/Chapter1 Thếhệ4: VLSI (1980-?)• Nă 1984, Xerox PARC (Palo Alto Research Center) đ a ra m ư máy tính đểbàn Alto vớ giao diệ ngư i và máy hoàn toàn i n ờ mớ windows, biể tư ng, mouse i: u ợ Con chuộ đ u tiên t ầ
  46. 46. © DHBK 2005 46/Chapter1 Thếhệ4: VLSI (1980-?)• Nă 1986, siêu máy tính Cray-XMP vớ 4 bộxửlý đ đ t m i ã ạ tố đ c ộtính toán là 840 MFlops. Nó đ ợ làm mát bằ nư c ưc ng ớ
  47. 47. © DHBK 2005 47/Chapter1 Thếhệ4: VLSI (1980-?)• Tố đ c ộtính toán này đ đ t đ ợ vớ máy tính cá ã ạ ưc i nhân 1 vi xửlý, Pentium III, vào quý 1 nă 2000 m
  48. 48. Chư ng 1© DHBK 2005 48/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  49. 49. © DHBK 2005 49/Chapter1 Phân loạ vi xửlý i
  50. 50. © DHBK 2005 50/Chapter1 Phân loạ vi xửlý i• BMW > 100 processors• Trung bình 1 công dân Mỹ~ 75 processors *Intelligent Transportation *Cabin Air System (ITS) Quality *Lighting *Safety Systems *Engine Performance and Emission Control (Traction Control) *Suspension *Digital *Steering Controls Entertainment Car and *Gear Box * Radio Braking Control
  51. 51. © DHBK 2005 51/Chapter1 Phân loạ vi xửlý iPhân loạ theo giá thành: i Type Giá (USD) Example application Disposable system 1 Greeting cards Embedded system 10 Watches, cars, appliances Game computer 100 Home video games Personal computer 1K Desktop computer Server 10K Network server Collection of 100K Departmental workstations supercomputer Mainframe 1M Batch processing in bank Supercomputer 10M Weather forecasting
  52. 52. © DHBK 2005 52/Chapter1 Phân loạ vi xửlý i• Phân loạ theo chứ nă i c ng:  Vi xửlý đ nă (General Purpose Microprocessor) a ng  DSP (Digital Signal Processor)  Vi đ u khiể (Microcontroller) iề n  ASIP (Application Specific Integrated Processor)• Phân loạ theo tậ lệ i p nh:  CISC (complex Instruction Set computer): máy tính có tậ lệ phứ tạ p nh c p  nhiề lệ u nh  cấ trúc phứ tạ u c p  mỗ lệ i nh: có độdài khác nhau và thự hiệ trong 1 đ n chụ chu kỳ c n ế c xung nhịp  RISC (reduced instruction Set computer): máy tính có tậ lệ rút p nh gọn  ít lệnh  mỗ lệ có đ i nh ộdài cốđnh và thự hiệ trong 1 đ n 2 chu ký xung nhị ị c n ế p  cấ trúc vi xửlý đ n giả có nhiề thanh ghi u ơ n, u  tố đ c ộxung nhị lớ và tiêu thụnă lư ng thấ p n ng ợ p
  53. 53. Chư ng 1© DHBK 2005 53/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  54. 54. Chư ng 1© DHBK 2005 54/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  55. 55. © DHBK 2005 55/Chapter1 Hệthậ phân p• 1234,56710=  1•1000+2•100+3•10+4•1+5•0.1+6•0.01+7•0.001  1•103+2•102+3•101+4•100+5•10-1+6•10-2+7•10-3  r = cơsố(r = 10), d=digit (0 d 9), m = sốchữsốtrư c dấ phẩ ớ u y, n = sốchữsốsau dấ phẩ u y m1 D  i  d r i i n 
  56. 56. © DHBK 2005 56/Chapter1 Hệnhịphân• 1011,0112=  1•8+0•4+1•2+1•1+0•0.5+1•0.25+1•0.125  1•23+0•22+1•21+1•20+0•2-1+1•2-2+1•2-3  r = cơsố(r = 2), d=digit (0 d 1), m = sốchữsốtrư c dấ phẩ n ớ u y, = sốchữsốsau dấ phẩu y m 1 B  i  d 2 i i n 
  57. 57. © DHBK 2005 57/Chapter1 Hệ8 (Octal)• 7654,328=  7•512+6•64+5•8+4•1+3•0.125+2•0.015625  7•83+6•82+5•81+4•80+3•8-1+2•8-2  r = cơsố(r = 8), d=digit (0 d 7), m = sốchữsốtrư c dấ phẩ n ớ u y, = sốchữsốsau dấ phẩu y m1 O  i  d 8 i i n 
  58. 58. © DHBK 2005 58/Chapter1 Hệ16 (Hexadecimal)• FEDC,7616=  15•4096+14•256+13•16+12•1+7•1/16+6•1/256  15•163+14•162+13•161+12•160+7•16-1+6•16-2  r = cơsố(r = 16), d=digit (0 d F), m = sốchữsốtrư c dấ phẩ ớ u y, n = sốchữsốsau dấ phẩ u y m 1 H  i  d 16 i i n 
  59. 59. © DHBK 2005 59/Chapter1 Chuyể đ i giữ các hệđ m n ổ a ế• Chuyể từhệthậ phân sang nhị n p phân Quy tắ lấ sốcầ đ i chia cho 2 và ghi nhớphầ dư lấ c: y n ổ n , y thư ng chia tiế cho 2 và ghi nhớphầ dư Lặ lạ khi ơ p n . p i thư ng bằ 0. Đ o ngư c thứtựdãy các sốdưsẽđ ợ chứ ơ ng ả ợ ưc sốcủ hệnhị a phân cầ tìm n Ví dụ Đ i 34 sang hệnhị : ổ phân: 100010• Chyể từhệnhị n phân sang hệ16 và ngư c lạ ợ i 1011 0111B = B7H
  60. 60. Chư ng 1© DHBK 2005 60/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  61. 61. © DHBK 2005 61/Chapter1 Cộ nhị ng phân• Cộ thậ phân ng p Nhớ 0 1 0 x 8273 y 562 Tổng 8835• Cộ nhị ng phân Nhớ 0 0 1 1 1 1 1 x 10011011 y 1010111 Tổng 11110010
  62. 62. © DHBK 2005 62/Chapter1 Trừnhịphân x 11101 y 1111 Mư n ợ 1110 Hiệu 01110
  63. 63. © DHBK 2005 63/Chapter1 Nhân nhịphân• Nguyên tắ cộ và dị c: ng ch 1110 1101 1110 0000 1110 1110 10110110
  64. 64. © DHBK 2005 64/Chapter1 Chia nhịphân 10111010 1110 1110 1101 1001010 1110 10010 0000 10010 1110 100• Nguyên tắ trừvà dị c: ch
  65. 65. Chư ng 1© DHBK 2005 65/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  66. 66. Biể diễ bằ dấ và đ lớ u n ng u ộ n© DHBK 2005 66/Chapter1 (Sign-Magnitude)• Mộ sốcó dấ bao gồ 2 phầ dấ và đ t u m n: u ộlớn• Ví dụhệ10: +12310 (thông thư ng ‘123’) và -12310 ờ• Hệnhị phân: bít dấ là bít MSB; ‘0’ = dư ng, ‘1’ = âm u ơ• Ví dụ 011002 = +1210 và 111002 = -1210 :• Các sốcó dấ 8 bít sẽcó giá trị u từ-127 đ n +127 vớ ế i 2 số0: 1000 0000 (-0) và 0000 0000 (+0)
  67. 67. © DHBK 2005 67/Chapter1 Sốbù 2• Sốbù 1 (bù lô gic): đ o bit ả 1001 => 0110 0100 => 1011• Sốbù 2 (bù sốhọ sốbù 1 +1 c):• Ví dụ Tìm sốbù 2 củ 13 : a 13 = 0000 1101Sốbù 1 củ 13 =1111 0010 aCộ thêm 1: ng 1Sốbù 2 củ 13= 1111 0011 (tứ là -13) a c
  68. 68. © DHBK 2005 68/Chapter1 Sốbù 2• Ví dụ Tìm sốbù 2 củ 0 : a 0 = 0000 0000Sốbù 1 củ 0 =1111 1111 aCộ thêm 1: ng 1Sốbù 2 củ 0= 0000 0000 (tứ là -0) a c• Nhưvậ vớ sốbù 2, số0 đ ợ biể diễ 1 cách duy y i ưc u n nhất• Sốcó dấ 8 bít sẽcó giá trị u từ-128 đ n 127 ế
  69. 69. © DHBK 2005 69/Chapter1 Sốbù 2 Decimal Sốbù 2 Sign-magnitude -8 1000 - -7 1001 1111 -6 1010 1110 -5 1011 1101 -4 1100 1100 -3 1101 1011 -2 1110 1010 -1 1111 1001 0 0000 1000 & 0000 1 0001 0001 2 0010 0010 3 0011 0011 4 0100 0100 5 0101 0101 6 0110 0110 7 0111 0111
  70. 70. Chư ng 1© DHBK 2005 70/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i) Thậ phân, Nhị p phân, Hệ8, Hệ16 Cộng, trừ nhân, chia , Các sốâm Sốnguyên, sốthự BCD, ASCII c,• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý
  71. 71. © DHBK 2005 71/Chapter1 Sốnguyên (integer)• 8 bit unsigned: 0 đ n 255 ế signed : -128 đ n 127 ( bù hai) ế• 16 bit unsigned: 0 đ n 65535 (216-1) ế signed : -32768 (215) đ n 32767 (215 -1) ế• 32 bit unsigned: 0 đ n 232 -1 ế signed : -231 đ n 231-1 ế
  72. 72. © DHBK 2005 72/Chapter1 Little endian và big endian• Số1234 H đ ợ lư trữthếnào trong bộnhớ8 bit? ưc u FFFFH FFFFH ..... ..... 0101H 12H 0101H 34H 0100H 34H 0100H 12H ..... ..... 0000H 0000H little endian big endian Intel microprocessors Motorola microprocessors
  73. 73. Sốthự c© DHBK 2005 73/Chapter1 (real number, floating point number)• Ví dụ 1,234=1,234*100=0,1234*10 1=... :• 11,01 B= 1,101*21=0,1101*22=... mantissa exponent• Real number: (m, e) , e.g. (0.1101, 2) Single precision: 32 bit Double precision: 64 bit
  74. 74. Sốthự c© DHBK 2005 74/Chapter1 (real number, floating point number)• IEEE-754 format cho single-precision 31 30 23 22 0 S biased exponent e fraction f of normalized mantissa 1 sign bit: 0 dư ng, 1 âm ơ 8 bit biased exponent= exponent + 127 24 bit mantissa chuẩ hoá = 1 bit ẩ + 23 bit fraction n nMantissa chuẩ hoá: có giá trị a 1 và 2 : 1.f n giữ Ví dụ biể diễ 0.1011 dư i dạ IEEE-754 : u n ớ ng Sign bit s=0 chuẩ hoá mantissa: 0.1011=1.011*2-1 n Biased exponent: -1 + 127=126=01111110 IEEE format: 0 01111110 0110000000000000000000
  75. 75. Sốthự c© DHBK 2005 75/Chapter1 (real number, floating point number)• IEEE-754 format cho double-precision 63 62 52 51 0 S biased exponent e fraction f of normalized mantissa 1 sign bit: 0 dư ng, 1 âm ơ 11 bit biased exponent= exponent + 1023 53 bit mantissa chuẩ hoá = 1 bit ẩ + 52 bit fraction n n single precision: (-1)s x 2e-127 x (1.f)2 double precision: (-1)s x 2e-1023 x (1.f)2
  76. 76. Sốthự c© DHBK 2005 76/Chapter1 (real number, floating point number) Single Precision Double PrecisionMachine epsilon 2-23 or 1.192 x 10-7 2 -52 or 2.220 x 10-16Smallest positive 2 -126 or 1.175 x 10 -38 2 -1022 or 2.225 x 10 -308Largest positive (2- 2 -23) 2127 or 3.403 x 10 38 (2- 2 -52) 21023 or 1.798 x 10308Decimal Precision 6 significant digits 15 significant digits
  77. 77. © DHBK 2005 77/Chapter1 BCD• Binary Coded Decimal number BCD chuẩ (BCD gói, packed BCD): n 1 byte biể diễ 2 sốBCD u n Decimal BCD Ví dụ 25: 0010 0101 : digit 0 0000 1 0001 BCD không gói (unpacked BCD) : 2 0010 1 byte biể diễ 1 sốBCD u n 3 0011 ví dụ 25: 00000010 00000101 : 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
  78. 78. ASCII© DHBK 2005 78/Chapter1 • American Standard Code for Information Interchange (7-bit code) b3b2b1b0 000 001 010 011 100 101 110 111 0000 NUL DLE SP 0 @ P ‘ p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F V f V 0111 BEL ETB ‘ 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L l | 1101 CR GS - = M ] m } 1110 SO RS . > N ^ n ~ 1111 SI US / ? O _ o DEL
  79. 79. Chư ng 1© DHBK 2005 79/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý Hệvi xửlý
  80. 80. Chư ng 1© DHBK 2005 80/Chapter1 ơ Giớ thiệ chung vềhệvi xửlý i u• Lị sửphát triể củ các bộvi xửlý và máy tính ch n a• Phân loạ vi xửlý i• Các hệđ m dùng trong máy tính ( nhắ lạ ế c i)• Giớ thiệ sơlư c vềcấ trúc và hoạ đ ng củ hệvi i u ợ u t ộ a xửlý Hệvi xửlý
  81. 81. © DHBK 2005 81/Chapter1 Hệvi xửlý Bus dữliệu Bus đ u khiể iề n Phố ghép i Phố ghép i Bộnhớ Bộnhớ Vi xửlý Vi xửlý Thiế bị t vào/ra vào/ra Memory Memory CPU CPU vào/ra (I/O) (I/O) Màn hình Bus đa chỉ ị Máy in Bàn phím DRAM Intel 80X86 ISA Con chuộ t SRAM Motorola 680X EISA Ổ cứng ROM PowerPC PCI Ổ mềm EEPROM ... VESA CD-ROM Flash SCSI DVD USB ... ...
  82. 82. © DHBK 2005 82/Chapter1 Hệvi xửlý• CPU Đ n vị ơ sốhọ và logic c Đ c mã lệ ọ nh (Arithmetic Logical Unit) Thự hiệ các phép toán sốhọ c n c  Cộng, trừ nhân chia , Giả mã lệ i nh Thự hiệ các phép toán logic c n  And, or, compare.. Đ n vị iề khiể (Control Unit) ơ đ u n Thự hiệ lệ c n nh Các thanh ghi (Registers) Lư trữdữliệ và trạ thái củ quá trình thự hiệ lệ u u ng a c n nh
  83. 83. © DHBK 2005 83/Chapter1 Hệvi xửlý• Memory ROM: không bị t dữliệ chứ dữliệ đ u khiể hệthố mấ u, a u iề n ng lúc khở đ ng i ộ RAM: mấ dữliệ khi mấ nguồ chứ chư ng trình và dữ t u t n, a ơ liệ trong quá trình hoạ đ ng củ hệthố u t ộ a ng• Bus dữliệu 8, 16, 32, 64 bit tùy thuộ vào vi xửlý c• Bus đa chỉ ị : 16, 20, 24, 32, 36 bit sốô nhớcó thểđ ánh đa chỉ2N ị : Ví dụ 8088/8086 có 20 đ ờ đa chỉ quả lý đ ợ : ư ng ị => n ưc 220 bytes=1Mbytes
  84. 84. © DHBK 2005 84/Chapter1 Hệvi xửlýNhà sả xuấ n t Tên vi xửlý Bus Bus Khảnă đa ng ị dữliệu đa chỉ ị chỉ Intel 8088 8 20 1M 8086 16 20 1M 80186 16 20 1M 80286 16 24 16 M 80386SX 16 24 16 M 80386DX 32 32 4G 80486DX 32 32 4G Pentium 64 32 4G Pentium Pro 64 36 64 G Pentium I, II, III, IV 64 36 64 G Motorola 68000 16 24 16 M 68010 16 24 16 M 68020 32 32 4G 68030 32 32 4G 68040 32 32 4G 68060 64 32 4G PowerPC 64 32 4G
  85. 85. © DHBK 2005 1/Chapter2 Nộ dung môn họ i c1. Giớ thiệ chung vềhệvi xửlý i u2. Bộvi xửlý Intel 8088/80863. Lậ trình hợ ngữcho 8086 p p4. Tổchứ vào ra dữliệ c u5. Ngắ và xửlý ngắ t t6. Truy cậ bộnhớtrự tiế DMA p c p7. Các bộvi xửlý trên thự tế c
  86. 86. © DHBK 2005 2/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  87. 87. © DHBK 2005 3/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  88. 88. © DHBK 2005 4/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  89. 89. © DHBK 2005 5/Chapter2 Sơđ khố 8088/8086 ồ i EU bus đa chỉ ị BIUCác thanh AX 20 bit  BXghi đ nă a ng CX DX Bus trong củ CPU a Các thanh ghi CS SP 16 bit dữliệuCác thanh ghi đ n và con trỏ oạ DS BP 20 bit đa chỉ ị SScon trỏ SI lệ nh ESvà chỉsố DI IP Bus dữliệ u Logic ALU 16 bit đ u khiể iề n Các thanh ghi tạ thờ m i bus Bus ngoài Khố đ u i iề khiể n ALU củ EU a Hàng đ i lệ ợ nh Thanh ghi cờ
  90. 90. © DHBK 2005 6/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u Sơđ ồkhố i Các thanh ghi đ nă a ng Các thanh ghi đ n oạ Các thanh ghi con trỏvà chỉsố Thanh ghi cờ Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  91. 91. © DHBK 2005 7/Chapter2 Các thanh ghi đ nă củ 8088/8086 a ng a 8 bit cao 8 bit thấp •8088/8086 đ n 80286 : 16 bits ế AX AH AL •80386 trởlên: 32 bits EAX, BX BH BL EBX, ECX, EDX CX CH CL DX DH DL• Thanh ghi chứ AX (accumulator): chứ kế quảcủ các phép tính. a a t a Kế quả8 bit đ ợ chứ trong AL t ưc a• Thanh ghi cơsởBX (base): chứ đa chỉ a ị cơsở ví dụcủ bả dùng , a ng trong lệ XLAT (Translate) nh• Thanh ghi đ m CX (count): dùng đ ế ểchứ sốlầ lặ trong các lệ lặ a n p nh p (Loop). CL đ ợ dùng đ ưc ểchứ sốlầ dị hoặ quay trong các lệ a n ch c nh dị và quay thanh ghi ch• Thanh ghi dữliệ DX (data): cùng AX chứ dữliệ trong các phép u a u tính nhân chia số16 bit. DX còn đ ợ dùng đ ưc ểchứ đa chỉ ng a ị cổ trong các lệ vào ra dữliệ trự tiế (IN/OUT) nh u c p
  92. 92. © DHBK 2005 8/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  93. 93. © DHBK 2005 9/Chapter2 Các thanh ghi đ ạ o n• Tổchứ củ bộnhớ1 Mbytes c a Đ n bộnhớ(segment) FFFFFH oạ 216 bytes =64 KB Đ n 1: đa chỉ ầ 00000 H oạ ị đu Đ n 2: đa chỉ ầ 00010 H oạ ị đu Đ n cuố cùng: oạ i FFFF0 H Ô nhớtrong đ n: oạ đa chỉ ch: offset ị lệ Ô 1: offset: 0000 Ô cuố cùng: offset: FFFF i Đa chỉ t lý: ị vậ 1FFFFH Segment : offset Offset=F000 1F000H 10000H 1000Đa chỉ t lý=Segment*16 + offset ị vậ Thanh ghi đ n oạ Chếđộthự (real mode) c 00000H
  94. 94. © DHBK 2005 10/Chapter2 Các thanh ghi đ ạ o n• Ví dụ Đa chỉ t lý 12345H : ị vậ Đa chỉ oạ ị đ n Điạchỉ ch lệ 1000 H 2345H 1200 H 0345H 1004 H ? 0300 H ?• Ví dụ Cho đa chỉ ầ củ đ n: 49000 H, xác đnh đa chỉ i : ị đu a oạ ị ị cuố
  95. 95. © DHBK 2005 11/Chapter2 Các thanh ghi đ ạ o n• Các thanh ghi đ n: chứ đa chỉ oạ oạ a ị đ n FFFFF ............. 58FFF Đ n dữliệ phụ oạ u extra segment 49000 4900 ES 43FFF Đ n ngă xế oạ n p Stack segment 34000 3400 SS 30000 2FFFF Đ n mã oạ Code segment 20000 CS 2000 1FFFF Đ n dữliệ oạ u Data segment 10000 1000 DS 00000
  96. 96. © DHBK 2005 12/Chapter2 Các thanh ghi đ ạ o n• Các đ n chồ nhau oạ ng FFFFF s t a d c a k 0A480 t 0A47F a c Stack o 0A280 d 0A28 SS 0A27F e Data 0A0F0 DS 0A0F 0A0EF Code 090F0 090F CS 00000
  97. 97. © DHBK 2005 13/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  98. 98. © DHBK 2005 14/Chapter2 Các thanh ghi con trỏvà chỉ ố s• Chứ đa chỉ ch (offset) a ị lệ  Con trỏlệ IP (instruction pointer): chứ đa chỉ nh tiế nh a ị lệ p theo trong đ n mã lệ CS. oạ nh CS:IP Con trỏcơsởBP (Base Pointer): chứ đa chỉ a dữliệ a ị củ u trong đ n ngă xế SS hoặ các đ n khác oạ n p c oạ SS:BP  Con trỏngă xế SP (Stack Pointer): chứ đa chỉ n thờ n p a ị hiệ i củ đnh ngă xế a ỉ n p SS:SP Chỉ sốnguồ SI (Source Index): chứ đa chỉ n a ị dữliệ nguồ u n trong đ n dữliệ DS trong các lệ chuỗ oạ u nh i DS:SI Chỉ sốđích (Destination Index): chứ đa chỉ a ị dữliệ đ u ích trong đ n dữliệ DS trong các lệ chuỗ oạ u nh i DS:DI SI và DI có thểđ ợ sửdụ nhưthanh ghi đ nă ưc ng a ng 80386 trởlên 32 bit: EIP, EBP, ESP, EDI, ESI
  99. 99. © DHBK 2005 15/Chapter2 Các thanh ghi con trỏvà chỉ ố s• Thanh ghi đ n và thanh ghi lệ ngầ đnh oạ ch m ị Segment Offset Chú thích CS IP Đa chỉ nh ị lệ SS SP hoặ BP c Đa chỉ ị ngă xế n p DS BX, DI, SI, số8 bit Đa chỉ ị dữliệu hoặ số16 bit c ES DI Đa chỉ ị chuỗi đích
  100. 100. © DHBK 2005 16/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  101. 101. © DHBK 2005 17/Chapter2 Thanh ghi cờ(Flag Register) 15 14 2 1 0 O D I T S Z A P C• 9 bit đ ợ sửdụ ưc ng, 6 cờtrạ thái: ng C hoă CF (carry flag)): CF=1 khi có nhớhoặ mư n từMSB c c ợ P hoặ PF (parity flag): PF=1 (0) khi tổ sốbít 1 trong kế c ng t quảlà chẵ (lẻ n ) A hoặ AF (auxilary carry flag): cờnhớphụ AF=1 khi có c , nhớhoặ mư n từmộ sốBCD thấ sang BCD cao c ợ t p Z hoặ ZF (zero flag): ZF=1 khi kế quảbằ 0 c t ng S hoặ SF (Sign flag): SF=1 khi kế quảâm c t O hoặ OF (Overflow flag): cờtràn OF=1 khi kế quảlà mộ c t t sốvư t ra ngoài giớ hạ biể diễ củ nó trong khi thự ợ i n u n a c hiệ phép toán cộ trừsốcó dấ n ng u
  102. 102. © DHBK 2005 18/Chapter2 Thanh ghi cờ(Flag Register) 15 14 2 1 0 O D I T S Z A P C• 3 cờđ u khiể iề n T hoă TF (trap flag)): cờbẫ TF=1 khi CPU làm việ ởchế c y, c đ ộchạ từ lệ y ng nh I hoặ IF (Interrupt enable flag): cờcho phép ngắ IF=1 thì c t, CPU sẽcho phép các yêu cầ ngắ (ngắ che đ ợ đ ợ u t t ư c) ư c tác đ ng (Các lệ ộ nh: STI, CLI) D hoặ DF (direction flag): cờhư ng, DF=1 khi CPU làm c ớ việ vớ chuỗ ký tựtheo thứtựtừphả sang trái (lệ STD, c i i i nh CLD)
  103. 103. © DHBK 2005 19/Chapter2 Thanh ghi cờ(Flag Register)• Ví dụ: 80h + 80h 100h SF=0 vì msb trong kế quả=0 t PF=1 vì có 0 bít củ tổ bằ 1 a ng ng ZF=1 vì kế qủ thu đ ợ là 0 t a ưc CF=1 vì có nhớtừbít msb trong phép cộng OF=1 vì có tràn trong phép cộ 2 sốâm ng
  104. 104. © DHBK 2005 20/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u  Sơđ ồkhố i  Các thanh ghi đ nă a ng  Các thanh ghi đ n oạ  Các thanh ghi con trỏvà chỉsố  Thanh ghi cờ  Hàng đ i lệ ợ nh• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  105. 105. © DHBK 2005 21/Chapter2 Hà ng đ i lệ ợ nh• 4 bytes đ i vớ 8088 và 6 bytes đ i vớ 8086 ố i ố i• Xửlý pipeline Không có pipelining F1 D1 E1 F2 D2 E2 F3 D3 E3 F1 D1 E1 Có pipelining F2 D2 E2 F3 D3 E3
  106. 106. © DHBK 2005 22/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  107. 107. © DHBK 2005 23/Chapter2 Intel 8088 • 16-bit processor • introduced in 1979 • 3  5 to 8 MHz, 29 m, KTOR, 0.33 to 0.66 MIPS
  108. 108. © DHBK 2005 24/Chapter2 Intel 8088 •ChếđộMin và chếđộMax: MN/MX = 1 chếđ ộMin = 0 chếđ ộMax vớ bus i controller 8288
  109. 109. © DHBK 2005 25/Chapter2 Intel 8086
  110. 110. © DHBK 2005 26/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  111. 111. © DHBK 2005 27/Chapter2 Bả đ bộnhớcủ máy tính IBM PC n ồ a Vùng nhớ mởrộ ng FFFFF Vùng nhớ hệ ng thố A0000 484 Kbytes 1 Mbytes 9FFFF bộnhớthự c Vùng nhớ ơ chư ng trình 640 Kbytes 00000
  112. 112. © DHBK 2005 28/Chapter2 Bả đ vùng nhớchư ng trình n ồ ơ 9FFFF MSDOS 9FFF0 Vùng dành cho các chư ng trình ứ dụ ơ ng ng 08E30 COMMAND.COM 08490 Device drivers (mouse.sys) 02530 MSDOS 01160 IO.SYS 00700 Vùng DOS 00500 Vùng BIOS 00400 00000 Các vector ngắt
  113. 113. © DHBK 2005 29/Chapter2 Bả đ vùng nhớhệthố n ồ ng FFFFF ROM BIOS F0000 ROM BASIC E0000 Vùng đểdành C8000 Video BIOS ROM C0000 Video RAM (text) B0000 Video RAM (đồhoạ) A0000
  114. 114. © DHBK 2005 30/Chapter2 Các cổ vào ra ng• Đa chỉ0000H –FFFFH, M/IO =0 ị : FFFF Vùng mởrộng COM1 03F8 Đ u khiể đa mề iề n ĩ m 03F0 CGA adapter 03D0 LPT1 0378 Đ u khiể ổcứ iề n ng 0320 COM2 02F8 8255 0060 Đnh thờ (8253) ị i 0040 Đ u khiể ngắ iề n t 0020 0000 Đ u khiể DMA iề n
  115. 115. © DHBK 2005 31/Chapter2 Trình tựkhở đ ng i ộ• Khi bậ nguồ hoặ nhấ Reset t n c n CS=FFFFh và IP=0000 => đa chỉ ị FFFF0 chứ chỉ chuyể a thị n đ u khiể đ n đ m khớ đ u củ các chư ng trình BIOS iề n ế iể i ầ a ơ Các chư ng trình BIOS kiể tra hệthố và bộnhớ ơ m ng Các chư ng trình BIOS khở tạ bả vector ngắ và vùng ơ i o ng t dữliệ BIOS u BIOS nạ chư ng trình khở đ ng (boot program) từđa vào p ơ i ộ ĩ bộnhớ Chư ng trình khở đ ng nạ hệđ u hành từđa vào bộnhớ ơ i ộ p iề ĩ Hệđ u hành nạ các chư ng trình ứ dụ iề p ơ ng ng
  116. 116. © DHBK 2005 32/Chapter2 Vùng nhớd ành riêng củ 8088/8086 a FFFFF Reset Bootstrap FFFF0 program jump 003FF Các vector ngắt 00000
  117. 117. © DHBK 2005 33/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ  Chếđ ị chỉ ộđa thanh ghi  Chếđ ị chỉ c thì ộđa tứ  Chếđ ị chỉ c tiế ộđa trự p  Chếđ ị chỉ ộđa gián tiế qua thanh ghi p  Chếđ ị chỉ ơ đ i cơsở ộđa tư ng ố  Chếđ ị chỉ ơ đ i chỉ ộđa tư ng ố số  Chếđ ị chỉ ơ đ i chỉ ộđa tư ng ố sốcơsở• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  118. 118. Chếđ đa chỉ thanh ghi© DHBK 2005 34/Chapter2 ộ ị (Register Addressing Mode)• Dùng các thanh ghi nhưlà các toán hạng• Tố đ c ộthự hiệ lệ cao c n nh• Ví dụ: MOV BX, DX ; Copy nộ dung DX vào BX i MOV AL, BL ; Copy nộ dung BL vào AL i MOV AL, BX ; không hợ lệvì các thanh ghi có kích thư c p ớ khác nhau MOV ES, DS ; không hợ lệ (segment to segment) p MOV CS, AX ; không hợ lệvì CS không đ ợ dùng làm p ưc thanh ghi đích ADD AL, DL ; Cộ nộ dung AL và DL rồ đ a vào AL ng i i ư
  119. 119. Chếđ đa chỉứ thì t c© DHBK 2005 35/Chapter2 ộ ị (Immediate Addressing Mode)• Toán hạ đ ng ích là thanh ghi hoặ ô nhớ c• Toán hạ nguồ là hằ số ng n ng• Dùng đ ểnạ hằ sốvào thanh thi (trừthanh ghi p ng đ n và thanh cờ hoặ vào ô nhớtrong đ n dữliệ oạ ) c oạ u DS• Ví dụ: MOV BL, 44 ; Copy sốthậ phân 44 vào thanh ghi BL p MOV AX, 44H ; Copy 0044H vào thanh ghi AX MOV AL, ‘A’ ; Copy mã ASCII củ A vào thanh ghi AL a MOV DS, 0FF0H ; không hợ lệ p MOV AX, 0FF0H ; MOV DS, AX ; MOV [BX], 10 ; copy sốthậ phân 10 vào ô nhớDS:BX p
  120. 120. Chếđ đa chỉ ự tiế tr c p© DHBK 2005 36/Chapter2 ộ ị (Direct Addressing Mode)• Mộ toán hạ là đa chỉ nhớchứ dữliệ t ng ị ô a u• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AL, [1234H] ; Copy nộdung ô nhớ đ chỉ i có ị DS:1234 vào AL a MOV [ 4320H ], CX ; Copy nộdung củ CX vào 2 ô nhớ tiế DS: i a liên p 4320 và DS: 4321
  121. 121. Chếđ đa chỉ án tiế qua thanh ghi gi p© DHBK 2005 37/Chapter2 ộ ị (Register indirect Addressing Mode)• Mộ toán hạ là thanh ghi chứ đa chỉ a 1 ô nhớ t ng a ị củ dữliệu• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AL, [BX] ; Copy nộdung ô nhớ đ chỉ i có ị DS:BX vào AL a MOV [ SI ], CL ; Copy nộdung củ CL vào ô nhớ đ chỉ i a có ị DS:SI a MOV [ DI ], AX ; copy nộ dung củ AX vào 2 ô nhớ i a liên tiế DS: DI và DS: p (DI +1)
  122. 122. Chếđ đa chỉ ơ đ i cơsở tư ng ố© DHBK 2005 38/Chapter2 ộ ị (Based relative Addressing Mode)• Mộ toán hạ là thanh ghi cơsởBX, BP và các t ng hằ sốbiể diễ giá trị ch chuyể ng u n dị n• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV CX, [BX]+10 ; Copy nộdung 2 ô nhớ i liên tiế có đ chỉ p ị DS:BX+10 a và DS:BX+11 vào CX MOV CX, [BX+10] ; Cách viếkhác củ lệ trên t a nh MOV AL, [BP]+5 ; copy nộdung củ ô nhớ i a SS:BP+5 vào thanh ghi AL
  123. 123. Chếđ đa chỉ ơ đ i chỉ ố tư ng ố s© DHBK 2005 39/Chapter2 ộ ị (Indexed relative Addressing Mode)• Mộ toán hạ là thanh ghi chỉ t ng sốSI, DI và các hằng sốbiể diễ giá trị ch chuyể u n dị n• Toán hạ kia chỉ thểlà thanh ghi ng có• Ví dụ: MOV AX, [SI]+10 ; Copy nộ dung 2 ô nhớ tiế có đ chỉ i liên p ị DS:SI+10 và a DS:SI+11 vào AX MOV AX, [SI+10] ; Cách viếkhác củ lệ trên t a nh MOV AL, [DI]+5 ; copy nộdung củ ô nhớ i a DS:DI+5 vào thanh ghi AL
  124. 124. 40/Chapter2 Chếđ đa chỉ ơ đ i chỉ ốcơsở tư ng ố s© DHBK 2005 ộ ị ( Based Indexed relative Addressing Mode)• Ví dụ: MOV AX, [BX] [SI]+8 ; Copy nộdung 2 ô nhớ tiế có đ chỉ i liên p ị a DS:BX+SI+8 và DS:BX+SI+9 vào AX MOV AX, [BX+SI+8] ; Cách viếkhác củ lệ trên t a nh MOV CL, [BP+DI+5] ; copy nộ dung củ ô nhớ i a SS:BP+DI+5 vào thanh ghi CL
  125. 125. © DHBK 2005 41/Chapter2 Tóm tắ các chếđ đa chỉ t ộ ị Chế ộ ị chỉ đ đa Toán hạng Thanh ghi đ n ngầ đnh oạ m ị Thanh ghi Thanh ghi Tứ thì c Dữliệ u Trự tiế c p [offset] DS Gián tiế qua thanh ghi p [BX] DS [SI] DS [DI] DS Tư ng đ i cơsở ơ ố [BX] + dị chuyể ch n DS [BP] + dị chuyể ch n SS Tư ng đ i chỉ ơ ố số [DI] + dị chuyể ch n DS [SI] + dị chuyể ch n DS Tư ng đ i chỉ cơsở ơ ố số [BX] + [DI]+ dị chuyể ch n DS [BX] + [SI]+ dị chuyể ch n DS [BP] + [DI]+ dị chuyể ch n SS [BP] + [SI]+ dị chuyể ch n SS
  126. 126. Bỏchếđ ngầ đnh thanh ghi đ ạ m ị o n© DHBK 2005 42/Chapter2 ộ (Segment override)• Ví dụ: MOV AL, [BX]; Copy nộ dung ô nhớ đ chỉ i có ị DS:BX vào AL a MOV AL, ES:[BX] ; Copy nộ dung ô nhớ đ chỉ i có ị ES:BX vào AL a
  127. 127. © DHBK 2005 43/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  128. 128. © DHBK 2005 44/Chapter2 Cách mã hoá lệ củ 8086 nh a Opcode MOD-REG-R/M Dị chuyể ch n Tứ thì c 1-2 byte 0-1 byte 0-2 byte 0-2 byte• Mộ lệ có đ t nh ộdài từ1 đ n 6 byte ế D W W=0 dữliệ 1 byte u Opcode W=1 dữliệ 2 byte u D=1 dữliệ đ đ n thanh ghi cho bở 3 bit REG u i ế i D=0 dữliệ đ từthanh ghi cho bở 3 bit REG u i i
  129. 129. © DHBK 2005 45/Chapter2 Cách mã hoá lệ củ 8086 nh a MOD REG R/M MOD <> 1100 không có dị chuyể ch n Thanh ghi Mã Mã Chế ộ ị chỉ đ đa01 dị chuyể 8 bit ch n10 dị chuyể 16 bit ch n W=1 W=0 000 DS:[BX+SI]11 R/M là thanh ghi AX AL 000 001 DS:[BX+DI] BX BL 011 010 SS:[BP+SI] CX CL 001 011 SS:[BP+DI] DX DL 010 100 DS:[SI] SP AH 100 101 DS:[DI] DI BH 111 110 SS:[BP] BP CH 101 111 DS:[BX] SI DH 110
  130. 130. © DHBK 2005 46/Chapter2 Cách mã hoá lệ củ 8086 nh a• Ví dụ chuyể lệ MOV CL, [BX] sang mã máy : n nh opcode MOV: 100010 Dữliệ là 1 byte: W=0 u Chuyể tớ thanh ghi: D=1 n i Không có dị chuyể MOD=00 ch n: [BX] nên R/M=111 CL nên REG=001 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 MOV MOD CL [BX] D WVí dụ2: chuyể lệ MOV [SI+F3H], CL sang mã máy n nh
  131. 131. © DHBK 2005 47/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcủ máy tính IBM-PC a• Các chếđ ị chỉ a 8086 ộđa củ• Cách mã hoá lệ củ 8086 nh a• Mô tảtậ lệ củ 8086 p nh a  Các lệ di chuyể dữliệ nh n u  Các lệ sốhọ và logic nh c  Các lệ đ u khiể chư ng trình nh iề n ơ• Cách đánh đa chỉ ị ởchếđộbả vệởcác máy tính từ o 80286
  132. 132. © DHBK 2005 48/Chapter2 Chư ng 2: Bộvi xửlý Intel 8088/8086 ơ• Cấ trúc bên trong u• Sơđ ồchân• Bả đ n ồbộnhớcỀ

×