Contenu connexe
Similaire à Ky.thuat.vi.xu.ly uds
Similaire à Ky.thuat.vi.xu.ly uds (20)
Ky.thuat.vi.xu.ly uds
- 2. Kỹ ậ vi xửlý
thu t
Microprocessors
Giả viên: Phạ Ngọ Nam
ng m c
- 3. © 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
- 4. © DHBK 2005 3/Chapter1
Nộ dung môn họ
i c
1. Giớ thiệ chung vềhệvi xửlý
i u
2. Bộvi xửlý Intel 8088/8086
3. Lậ trình hợ ngữcho 8086
p p
4. Tổchứ vào ra dữliệ
c u
5. Ngắ và xửlý ngắ
t t
6. Truy cậ bộnhớtrự tiế DMA
p c p
7. Các bộvi xửlý trên thự tế
c
- 5. © 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
- 6. © 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
- 7. © 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ể
- 8. 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ý
- 9. 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ý
- 10. 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ý
- 11. 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
- 12. Thếhệ-1: The early days (…-1642)
© DHBK 2005 11/Chapter1
• Thếkỷ12: Muhammad ibn
Musa Al'Khowarizmi đ a
ư
ra khái niệ vềgiả
m i
thuậ algorithm
t
- 13. 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
- 14. 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ý
- 15. © 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
- 16. © 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
- 17. © 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
- 18. © DHBK 2005 17/Chapter1
Thếhệ0: Mechanical (1642-1945)
- 19. © 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)
ầ
- 20. © 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
- 21. © 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
- 22. © 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)
- 23. © 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.
- 24. © 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!!
- 25. 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ý
- 26. © 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
- 27. © 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)
- 28. © 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
- 29. © 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ý
- 30. © 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
- 31. © 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.
- 32. © DHBK 2005 31/Chapter1
Thếhệ1: Vacuum tubes (1945-1955)
• Mộ magnetic core lư trữ256 bits
t u
- 33. © 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
- 34. © DHBK 2005 33/Chapter1
Thếhệ1: Vacuum tubes (1945-1955)
• Nă 1954, John Backus, IBM phát minh ra
m
FORTRAN
- 35. 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ý
- 36. 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
- 37. 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)
- 38. 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ý
- 39. 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
- 40. 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
- 41. 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
ầ
- 42. © 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, ị
- 43. © 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
- 44. 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ý
- 45. © 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ề
- 46. © 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 ầ
- 47. © 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 ớ
- 48. © 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
- 49. 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ý
- 51. © 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
- 52. © DHBK 2005 51/Chapter1
Phân loạ vi xửlý
i
Phâ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
- 53. © 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
- 54. 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ý
- 55. 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ý
- 56. © 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
m1
D i
d r i
i n
- 57. © 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
- 58. © 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
m1
O i
d 8 i
i n
- 59. © 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
- 60. © 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
- 61. 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ý
- 62. © 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
- 63. © DHBK 2005 62/Chapter1
Trừnhịphân
x 11101
y 1111
Mư n
ợ 1110
Hiệu 01110
- 64. © 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
- 65. © 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
- 66. 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ý
- 67. 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)
- 68. © 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 1101
Sốbù 1 củ 13 =1111 0010
a
Cộ thêm 1:
ng 1
Sốbù 2 củ 13= 1111 0011 (tứ là -13)
a c
- 69. © DHBK 2005 68/Chapter1
Sốbù 2
• Ví dụ Tìm sốbù 2 củ 0
: a
0 = 0000 0000
Sốbù 1 củ 0 =1111 1111
a
Cộ thêm 1:
ng 1
Số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
ế
- 70. © 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
- 71. 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ý
- 72. © 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
ế
- 73. © 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
- 74. 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
- 75. 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 n
Mantissa 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
- 76. 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
- 77. Sốthự c
© DHBK 2005 76/Chapter1
(real number, floating point number)
Single Precision Double Precision
Machine epsilon 2-23 or 1.192 x 10-7 2 -52 or 2.220 x 10-16
Smallest positive 2 -126 or 1.175 x 10 -38 2 -1022 or 2.225 x 10 -308
Largest positive (2- 2 -23) 2127 or 3.403 x 10 38 (2- 2 -52) 21023 or 1.798 x 10308
Decimal Precision 6 significant digits 15 significant digits
- 78. © 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
- 79. 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
- 80. 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ý
- 81. 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ý
- 82. © 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 ...
...
- 83. © 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
- 84. © 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
- 85. © 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
- 86. © DHBK 2005 1/Chapter2
Nộ dung môn họ
i c
1. Giớ thiệ chung vềhệvi xửlý
i u
2. Bộvi xửlý Intel 8088/8086
3. Lậ trình hợ ngữcho 8086
p p
4. Tổchứ vào ra dữliệ
c u
5. Ngắ và xửlý ngắ
t t
6. Truy cậ bộnhớtrự tiế DMA
p c p
7. Các bộvi xửlý trên thự tế
c
- 87. © 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
- 88. © 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
- 89. © 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
- 90. © DHBK 2005 5/Chapter2
Sơđ khố 8088/8086
ồ i
EU
bus đa chỉ
ị BIU
Các thanh AX 20 bit
BX
ghi đ nă
a ng
CX
DX Bus trong củ CPU
a
Các thanh ghi CS
SP 16 bit dữliệu
Các thanh ghi đ n và con trỏ
oạ DS
BP 20 bit đa chỉ
ị
SS
con trỏ SI lệ
nh ES
và 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ờ
- 91. © 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
- 92. © 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
- 93. © 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
- 94. © 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
- 95. © 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ố
- 96. © 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
- 97. © 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
- 98. © 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
- 99. © 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
- 100. © 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
- 101. © 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
- 102. © 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
- 103. © 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)
- 104. © 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
- 105. © 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
- 106. © 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
- 107. © 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
- 108. © 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
- 109. © DHBK 2005 24/Chapter2
Intel 8088
•ChếđộMin và chếđộMax:
MN/MX = 1 chếđ ộMin
= 0 chếđ ộMax vớ bus
i
controller 8288
- 111. © 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
- 112. © 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
- 113. © 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
- 114. © 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
- 115. © 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
- 116. © 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
- 117. © 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
- 118. © 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
- 119. 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 ư
- 120. 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
- 121. 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
- 122. 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)
- 123. 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
- 124. 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
- 125. 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
- 126. © 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
- 127. 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
- 128. © 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
- 129. © 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
- 130. © DHBK 2005 45/Chapter2
Cách mã hoá lệ củ 8086
nh a
MOD REG R/M
MOD <> 11
00 không có dị chuyể
ch n Thanh ghi Mã Mã Chế ộ ị chỉ
đ đa
01 dị chuyể 8 bit
ch n
10 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
- 131. © 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 W
Ví dụ2: chuyể lệ MOV [SI+F3H], CL sang mã máy
n nh
- 132. © 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
- 133. © 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ủ 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
- 134. © DHBK 2005 49/Chapter2
Cá c lệ di chuyể dữliệ
nh n u
• MOV, XCHG, POP, PUSH, POPF, PUSHF, IN, OUT
• Các lệ di chuyể chuỗ MOVS, MOVSB, MOVSW
nh n i
• MOV
Dùng đ ểchuyể giữ các thanh ghi, giữ 1 thanh ghi và 1 ô
n a a
nhớhoặ chuyể 1 sốvào thanh ghi hoặ ô nhớ
c n c
Cú pháp: MOV Đ ích, nguồn
Lệ này không tác đ ng đ n cờ
nh ộ ế
Ví dụ:
MOV AX, BX
MOV AH, ‘A’
MOV AL, [1234H]
- 135. © DHBK 2005 50/Chapter2
Cá c lệ di chuyể dữliệ
nh n u
• Khảnă kế hợ toán hạ củ lệ MOV
ng t p ng a nh
Đích Thanh ghi Thanh ghi ô nhớ Hằ số
ng
đ nă
a ng đ n
oạ
Nguồn
Thanh ghi YES YES YES NO
đ nă
a ng
Thanh ghi YES NO YES NO
đ n
oạ
Ô nhớ YES YES NO NO
Hằ số
ng YES NO YES NO