1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Vi xử lý bài giảng dành cho sinh viên Đại học và cao đẳng

166 437 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 166
Dung lượng 3,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vi xử lý bài giảng dành cho sinh viên Đại học và cao đẳng là bộ tài liệu hay và rất hữu ích cho các bạn sinh viên và quý bạn đọc quan tâm. Đây là tài liệu hay trong Bộ tài liệu sưu tập gồm nhiều Bài tập THCS, THPT, luyện thi THPT Quốc gia, Giáo án, Luận văn, Khoá luận, Tiểu luận…và nhiều Giáo trình Đại học, cao đẳng của nhiều lĩnh vực: Toán, Lý, Hoá, Sinh…. Đây là nguồn tài liệu quý giá đầy đủ và rất cần thiết đối với các bạn sinh viên, học sinh, quý phụ huynh, quý đồng nghiệp và các giáo sinh tham khảo học tập. Xuất phát từ quá trình tìm tòi, trao đổi tài liệu, chúng tôi nhận thấy rằng để có được tài liệu mình cần và đủ là một điều không dễ, tốn nhiều thời gian, vì vậy, với mong muốn giúp bạn, giúp mình tôi tổng hợp và chuyển tải lên để quý vị tham khảo. Qua đây cũng gởi lời cảm ơn đến tác giả các bài viết liên quan đã tạo điều kiện cho chúng tôi có bộ sưu tập này. Trên tinh thần tôn trọng tác giả, chúng tôi vẫn giữ nguyên bản gốc. Trân trọng. ĐỊA CHỈ DANH MỤC TẠI LIỆU CẦN THAM KHẢO http:123doc.vntrangcanhan348169nguyenductrung.htm hoặc Đường dẫn: google > 123doc > Nguyễn Đức Trung > Tất cả (chọn mục Thành viên)

Trang 1

TR NGă I H C PH MăV Nă NG

Qu ng Ngãi, tháng 12/2014

Trang 2

TR NGă I H C PH MăV Nă NG

Qu ng Ngãi, tháng 12/2014

Trang 3

M C L C

L I NịI U 1

Ch ng 1 T NG QUAN V H VI X LÝ 2

1.1 H vi x lý 2

1.2 Các thành ph n c a h vi x lý 4

1.2.1 Lõi vi x lý 4

1.2.2 H th ng bus 8

1.2.3 C u chuy n bus 10

1.2.4 Ngo i vi 11

1.3 L ch s phát tri n và phân lo i các b vi x lý 11

Ch ng 2 B VI X LÝ INTEL 8086 17

2.1 Ki n trúc bên trong c a 8086 17

2.1.1 S đ kh i 17

2.1.2 Ch c n ng vƠ ch đ làm vi c c a các chân giao ti p 18

2.2 Các thành ph n c a b vi x lý 8086 22

2.3 Quá trình s lý l nh 29

2.3.1 Các ph ng pháp đ nh đ a ch 30

2.3.2 T p l nh 8086 34

2.4 Ng t 55

2.4.1 Gi i thi u 55

2.4.2 Ng t ngoài 56

2.4.3 Ng t trong 58

2.4.4 B ng vector ng t 59

2.4.5 Quá trình x lý ng t 60

2.5 B đ ng x lý toán h c 8087 62

Ch ng 3 VI I U KHI N VÀ VI CH NG TRỊNH 68

3.1 Gi i thi u v vi đi u khi n 68

3.2 ng d li u vƠ đ ng đi u khi n 69

3.3 Vi l nh 73

3.4 nh thì vi l nh 75

Trang 4

Ch ng 4 PH I GHÉP B VI X LÝ V I B NH VÀ CÁC THI T B

VÀO/RA 78

4.1 Gi i thi u v b nh 78

4.2 Gi i thi u v thi t b vào/ra 81

4.2.1 Phân lo i thi t b vào/ra 81

4.2.2 Các kh i giao ti p 81

4.3 H th ng bus ngoài 82

4.4 Các chip h tr vào/ra 83

4.4.1 Chip USART 8251A 84

4.4.2 Chip PIO 8255A 94

4.5 Vào/ra b ng ph ng pháp th m dò 103

4.6 Vào/ra b ng ph ng pháp ng t 105

4.6.1 Các tín hi u ng t c a 8086 105

4.6.2 Quá trình x lý ng t 105

4.6.3 X lý u tiên ng t 106

4.6.4 Chip phân x ng t 8259A 107

4.7 Vào/ra b ng ph ng pháp truy xu t b nh tr c ti p (DMA) 117

4.7.1 Khái ni m DMA 117

4.7.2 Chip đi u khi n DMA 8237A 118

4.7.3 Ho t đ ng c a 8237A trong h vi x lý 8086 129

Ch ng 5 L P TRÌNH PH I GHÉP 131

5.1 L p trình cho các chip h tr vào/ra 131

5.1.1 L p trình cho chip h tr vào/ra n i ti p USART 8251A 131

5.1.2 L p trình cho chip PIO 8255A 136

5.2 L p trình s d ng ng t và l p trình cho 8259A 139

5.2.1 Ng t m m vƠ ch ng trình con x lý ng t 139

5.2.2 L p trình cho 8259A 142

5.3 L p trình cho b đi u khi n truy nh p b nh tr c ti p 8237A 145

5.4 M t s ng d ng khác 150

5.4.1 Ghép n i vi x lý v i bàn phím 150

Trang 5

5.4.2 Ghép n i v i led đ n 154 5.4.3 Ghép n i v i led 7 đo n 155 TÀI LI U THAM KH O 161

Trang 6

1

L IăNịIă U

Bài gi ng “Vi x lý” đ c biên so n dùng làm tài li u h c t p cho sinh viên

b c cao đ ng chính qui ngành công ngh k thu t i n ậ i n t tr ng i h c

Ph m V n ng Bài gi ng bao g m 5 ch ng, cung c p cho sinh viên nh ng ki n

th c c b n v vi x lý nh : l ch s phát tri n, h th ng bus, ngo i vi, ki n trúc c a

vi x lý, t p l nh và cách th c xây d ng t p l nh cho vi x lý, ho t đ ng c a vi x

lý, cách th c xây d ng m t h th ng vi x lý ầ BƠi gi ng này s d ng vi x lý Intel 8086 đ minh h a chi ti t cho các khái ni m trên Intel 8086 thu c h vi x lý thông d ng c a Intel, đ c s d ng ph bi n trong các máy vi tính cá nhân ây là

lo i vi x lý thu c đ i đ u c a h 8086 (x86) nên có ki n trúc c b n, làm n n t ng cho s phát tri n c a các dòng vi x lý cao c p c a Intel nh Celeron, Pentium, ầ

N i dung chi ti t c a bài gi ng nh sau:

Trong quá trình biên so n không th tránh kh i nh ng thi u sót, r t mong

nh n đ c s góp ý c a b n đ c đ bài gi ng đ c hoàn thi n h n M i ý ki n đóng góp xin g i v đ a ch : B môn i n ậ i n t , Khoa K thu t ậ Công ngh ,

Tr ng i h c Ph m V n ng

Tác gi xin chân thành c m n

Trang 7

2

Ch ngă1 T NG QUAN V H VI X LÝ

Ngày nay, v i s phát tri n bùng n c a khoa h c k thu t nói chung vƠ l nh

v c vi m ch đi n t công ngh cao nói riêng, các thi t b đi n t đư tr nên r t thông d ng v i t t c m i ng i T nh ng v t d ng đ trong nhà ph c v cho cu c

s ng sinh ho t hàng ngƠy nh : tivi, t l nh, máy gi t, ầ cho đ n nh ng thi t b c m tay ph c v cho nhu c u công vi c và gi i trí nh : máy tính, máy nh, đi n tho i di

đ ng, ầ đ u có m t đ c đi m chung, đó lƠ: ho t đ ng d a trên s đi u khi n c a

m t ho c nhi u ph n t trong m ch Các ph n t nƠy đ c ví nh b não c a c h

th ng, có nhi m v đón nh n, x lý các thông tin vƠ đi u khi n c h th ng ho t

đ ng m t cách hài hòa nh t, chúng còn đ c g i là các vi x lý Vi x lý g n g i vƠ quen thu c nh t v i chúng ta có l là các đ n v x lý trung tơm (hay còn đ c g i

là CPU) c a Intel vƠ AMD, đ c s d ng trong các máy vi tính cá nhơn Ch ng này s trình bày t ng quan v h vi x lý nh : l ch s phát tri n c a vi x lý, các thành ph n c b n trong m t h vi x lý, ầ

1.1 H vi x lý

M t h vi x lý th ng bao g m: các lõi vi x lý k t n i v i các ngo i vi

đi u khi n các thi t b bên ngoài thông qua h th ng bus Hình 1.1 mô t m t h vi

x lý đ n gi n bao g m hai lõi vi x lý

T hình 1.1, ta th y h th ng bao g m hai lõi vi x lý giao ti p v i các ngo i

vi thông qua các bus và c u chuy n bus đơy ta s d ng thu t ng “lõi vi x lý”

(core) hay đ n v x lý trung tơm (CPU) c ng chính lƠ m t “vi x lý” n i dung

c a giáo trình này Trên th c t , “vi x lý” lƠ thu t ng dùng chung đ đ c p đ n

k thu t ng d ng các công ngh vi đi n t , công ngh tích h p và kh n ng x lý theo ch ng trình vƠo các l nh v c khác nhau Vào nh ng giai đo n đ u trong quá trình phát tri n, các vi x lý đ c thi t k và ch t o ch tích h p nh ng ph n c ng thi t y u nh t c a m t vi x lý nh : kh i giao ti p bus, kh i tính toán s h c (ALU), t p thanh ghi, kh i gi i mã l nh, ầ Trong giai đo n này, các thành ph n

đi u khi n khác th ng không đ c tích h p cùng v i vi x lý trên m t chip (m ch

tích h p đư đ c đóng gói thƠnh ph n c ng) mà ph i ghép n i thêm bên ngoài Các thành ph n này còn đ c g i là các ngo i vi V sau nh s phát tri n v t b c c a

Trang 8

3

công ngh tích h p, các ngo i vi c ng d n đ c tích h p vào bên trong chip cùng

v i lõi vi x lý t o thành h th ng vi x lý

Hình 1.1 H vi x lý

M t h th ng vi x lý có th có m t ho c nhi u lõi vi x lý NgƠy nay, ng i

ta có th tích h p r t nhi u lõi vi x lý và th m chí là b x lý đ h a trên m t chip

Thông th ng, m i lõi vi x lý s chi m m t bus, các bus này liên h v i nhau thông qua các c u chuy n bus nh hình 1.1 Vi c phân h th ng thành nhi u bus

nh v y là nh m t i u hóa t c đ c a t ng ngo i vi trong h th ng Các ngo i vi

t c đ th p (nh UART, CAN, SPI, ầ) s đ c k t n i v i bus t c đ th p, t ng

ng nh v y các ngo i vi t c đ cao (nh USB, SATA, Ethernet, ầ) s đ c k t

n i v i bus t c đ cao M i lõi vi x lý trong h th ng đa lõi s có m t ch c n ng riêng tùy vƠo đ c tính k thu t và ng d ng c th

Nguyên lý ho t đ ng c a m i h vi x lý d ng nƠy đ u gi ng nhau Vi x lý

đ c m t l nh t b nh , th c thi l nh đó r i đ c và th c thi l nh k ti p Quá trình nƠy đ c l p đi l p l i mi n là h th ng còn đang ch y Chính vì v y, trong m t h

th ng vi x lý ph i luôn có m t phân vùng b nh dƠnh cho ch ng trình th c thi

và kh i đi u khi n truy xu t đ n b nh M t s h th ng vi x lý đ c s d ng cho

Trang 9

4

các ng d ng đ n gi n, không c n ch ng trình l n s s d ng b nh đ c tích

h p s n trên h th ng (th ng là SRAM) làm b nh ch ng trình Tuy nhiên, do

gi i h n v kích th c c a chip nên các b nh d ng này ch có dung l ng nh

(th ng là ch vƠi tr m KB) Do đó, đ i v i các ng d ng ph c t p đòi h i ch ng trình l n, ng i ta ph i s d ng các b nh có dung l ng l n (nh DRAM) đ c

g n ngoài h th ng làm b nh ch ng trình Vi c truy xu t đ n nh ng b nh d ng nƠy đ c th c hi n thông qua m t ngo i vi c a h th ng, đó lƠ ngo i vi đi u khi n

Lõi vi x lý đ c xem là b não c a h th ng Ch c n ng chính c a lõi vi x

lý là ti p nh n và x lý các thông tin t các ngo i vi trong h th ng thông qua h

th ng bus vƠ đi u khi n ho t đ ng c a h th ng m t cách h p lý nh t đúng theo yêu

c u k thu t đư đ c đ a ra Vi x lý ho t đ ng theo m t ch ng trình đ c ng i

s d ng đ nh ngh a tr c Ch ng trình lƠ t p h p các l nh đ x lý d li u Các

l nh nƠy đ c th hi n d i d ng các s nh phơn vƠ đ c l u tr trong b nh

ch ng trình Tuy nhiên, vi c vi t l nh (hay còn g i là l p trình cho vi x lý) d i

d ng các s nh phân là công vi c h t s c nhàm chán và d x y ra sai sót trong

ch ng trình Do đó, đ vi c l p trình tr nên thú v và mang tính tr c quan h n, song song v i vi c thi t k ph n c ng, các công ty thi t k vi x lý còn phát tri n thêm ph n m m đ d ch các l nh c a vi x lý đ c l p trình d i d ng ch vi t mang tính g i nh , thành các mã nh phơn t ng ng Ph n m m nƠy còn đ c g i

Trang 10

5

khác nhau và nh ng vi x lý ph c t p th ng có t p l nh lên đ n hƠng tr m l nh,

r t khó đ nh t t c Do đó, song song v i trình biên d ch assembly, các công ty

thi t k vi x lý còn phát tri n thêm trình biên d ch ngôn ng C cho vi x lý nh m

t n d ng tính ph bi n c a ngôn ng l p trình C Khi đó, l p trình viên ch c n l p

trình ho t đ ng cho vi x lý hoàn toàn b ng ngôn ng l p trình C, mà không c n

quan tơm đ n t p l nh c a vi x lý

V i vi c vi x lý ph i đ c l nh th c thi t các vùng nh trong h th ng xen

k v i vi c truy xu t d li u đ ph c v cho m t s l nh, vi x lý th ng đ c thi t

k theo hai ki n trúc c b n và v n còn ph bi n cho đ n ngƠy nay, đó là ki n trúc Von Neumann và ki n trúc Harvard

a Ki n trúc Von Neumann

Các vi x lý thi t k theo ki n trúc Von Neumann s chia s m t đ ng bus

chung cho c l nh và d li u nh hình 1.2

Hình 1.2 Ki n trúc Von Neumann

V i ki n trúc Von Neumann, l nh và d li u có th đ c l u tr trong cùng

m t b nh Trên th c t , m t b nh đ c chia thành r t nhi u vùng, vi c phân vùng nh cho l nh và d li u s do ng i l p đ c tính k thu t c a h th ng quy

đ nh T đ c tính c a vi x lý thi t k theo ki n trúc Von Neumann, ta th y, trong lúc vi x lý đang truy xu t d li u thì không th g i l nh vƠ ng c l i ơy c ng chính là m t nh c đi m c a ki n trúc Von Neumann, còn đ c g i là tình tr ng

th t c chai Von Neumann kh c ph c tình tr ng nƠy, ng i ta đư s d ng m t

s k thu t nh : tích h p thêm các b nh cache vào vi x lý ho c thi t k theo ki n

trúc Harvard

b Ki n trúc Havard

Trang 11

V i hai đ ng bus l nh và d li u riêng bi t, vi x lý có th đ ng th i g i

l nh và truy xu t d li u T c đ c a vi x lý đ c thi t k theo ki n trúc Harvard

s nhanh h n ki n trúc Von Neumann, do nó có th th c hi n ngay l nh ti p theo khi v a k t thúc l nh tr c đó Tuy nhiên, v i vi c thêm vào vi x lý m t thành

ph n giao ti p bus và thêm vào h th ng m t bus n a s làm cho thi t k ph n c ng

tr nên ph c t p, t n nhi u tƠi nguyên h n

Nh ng thi t k vi x lý t c đ cao ngƠy nay th ng k t h p c hai ki n trúc Harvard và Von Neumann Gi i pháp là tích h p thêm vào vi x lý b nh đ m có

dung l ng nh (so v i các b nh chính) nh ng t c đ r t cao, g i là cache Cache

c ng đ c phân thành cache d li u và cache ch ng trình, t ng ng dùng đ

ch a d li u vƠ ch ng trình đư đ c th c thi nhi u l n tr c đó Vi x lý s tìm

l nh ho c d li u trong b nh cache t ng ng tr c Trong tr ng h p không có

l nh ho c d li u c n tìm, vi x lý s ti p t c tìm trong b nh chính thông qua bus

ngoài Hình 1.4 mô t vi x lý và h th ng thi t k theo ki u ki n trúc k t h p này

Nh v y, ki n trúc Harvard đ c dùng khi vi x lý truy c p vào b nh

cache, còn ki n trúc Von Neumann đ c s d ng m c truy c p b nh chính trong h th ng

Trang 12

7

Hình 1.4 Vi x lý v i b nh cache

Sau đơy, ta xét thêm m t k thu t nh m t ng t c đ x lý l nh c a vi x lý,

đó lƠ k thu t đ ng ng (pipeline) T i m t th i đi m, vi x lý ch th c thi đ c

m t l nh, l nh th c thi theo th t tùy vƠo ý đ nh c a ng i l p trình Quá trình

th c thi l nh bao g m các b c: nh n l nh t b nh , gi i mã l nh, th c thi l nh, truy xu t b nh và c p nh p các thanh ghi n i Vi x lý ph i t n ít nh t m t chu k máy đ th c thi m t b c, do đó, ph i t n m t vài chu k máy, vi x lý m i th c thi xong m t l nh Vì v y, đ t i u t c đ th c thi, ng i ta đư xơy d ng b x lý l nh theo ki n trúc đ ng ng, đ c mô t nh hình 1.5

Hình 1.5 ă ng ng 5 t ng

Trong đi u ki n không s d ng đ ng ng, m i l nh th c thi ph i t n 5 chu

k máy (l nh 1 t chu k 1 đ n chu k 5, l nh 2 t chu k 6 đ n chu k 10, ầ) V i

Trang 13

8

M t u đi m l n c a vi x lý đó lƠ có kh n ng thay đ i ch ng trình ho t

đ ng m t cách linh ho t theo m c đích c a ng i dùng, đ c bi t hi u qu đ i v i các bài toán và h th ng l n B n thân các vi x lý khi đ ng m t mình th ng không có nhi u hi u qu s d ng, nh ng khi lƠ m t ph n trong h th ng k t h p v i các ngo i vi khác thì vi x lý phát huy đ c hi u qu r t l n

1.2.2 H th ng bus

H th ng bus c ng là thành ph n không th thi u trong m t h th ng vi x

lý H th ng bus bao g m các đ ng tín hi u đ ng b và d li u mƠ qua đó ta có

th truy n đi đ a ch , d li u và thông tin v các hình th c truy xu t nh đ c ho c ghi Hình 1.6 th hi n đ n gi n các thành ph n c b n c a m t bus Trong hình 1.6, các Master là các thành ph n ch đ ng, có kh n ng phát các l nh đ c/ghi d li u

đ n các Slave Master có th là m t vi x lý ho c m t ngo i vi Các Slave là các

thành ph n b đ ng, ho t đ ng d a vào các yêu c u t Master

Hình 1.6 Các thành ph năc ăb n c a m t bus

 B phân x bus (Arbiter)

T i m t th i đi m ch có m t Master đ c quy n truy xu t đ n m t Slave c

th Trong tr ng h p có nhi u h n m t Master mu n truy xu t đ n cùng m t Slave thì b phân x bus s đ a ra quy t đ nh th t các Master đ c truy xu t đ n Slave

đó Th t này tùy thu c vƠo đ c tính k thu t đ c đ nh ngh a tr c khi b t đ u

Trang 14

9

xây d ng h th ng Các tín hi u ngõ ra c a b phân x bus s đ c dùng làm tín

hi u đi u khi n các b d n kênh (Multiplexer)

 B gi i mư đ a ch (Decoder)

Bus qu n lý các ngo i vi (Slave) trong h th ng b ng đ a ch Th ng trong

h th ng vi x lý, đ a ch đ c th hi n d i d ng s th p l c phân (hex) Tùy vào

h th ng, đ ng đ a ch có th có 8, 16, 32, ầ bit M t ngo i vi trong h th ng s

có t ng ng m t đ a ch ho c m t t m đ a ch Vi c phơn phát đ a ch cho ngo i vi

th ng đ c quy t đ nh b i ng i l p ra đ c tính k thu t cho h th ng M t

Master mu n truy xu t đ n m t ngo i vi nƠo đó trong h th ng ph i g i chính xác

đ a ch c a ngo i vi đó qua bus đ a ch M ch gi i mư đ a ch có ch c n ng ch n

chính xác ngo i vi t ng ng v i đ a ch ho c t m đ a ch đó

Có hai ph ng pháp gi i mư đ a ch :

a Gi i mư đ y đ hay toàn ph n: M i ngo i vi đ c gán v i m t đ a ch duy

nh t Khi đó ta ph i dùng t t c các bit đ a ch cho vi c gi i mã

b Gi i mã m t ph n: M i ngo i vi đ c gán v i m t t m đ a ch nƠo đó Do

đó, ta không nh t thi t ph i s d ng t t c các bit đ a ch cho vi c gi i mã

Ph ng pháp nƠy lƠm gi m đ ph c t p trong m ch gi i mư đ a ch

Ví d : Ta có chip nh dung l ng 4KB, tín hi u cho phép chip nh ho t

Vì 4 bit cao c a vùng đ a ch ch n chip nh có giá tr lƠ D (t ng ng s nh phơn lƠ: 1101), nên đ có th ch n chip đ c thì c n có m ch t o tín hi u ch n chip

/CS tích c c khi A15 = A14 = A12 = 1 và A13 = 0 hay /CS = /(A15 and A14 and

A12 and /A13) Do đó, ta ch c n m t c ng NAND 4 ngõ vào là có th gi i mư đ c

m ch này Hình 1.7 là m ch gi i mư vƠ s đ k t n i v i chip nh

Trang 15

C u chuy n bus có ch c n ng k t n i hai bus ho t đ ng b t đ ng b trong h

th ng Vi c hai bus trong cùng m t h th ng nh ng ho t đ ng b t đ ng b có th là

do m t trong nh ng nguyên nhân sau:

 Giao th c đi u khi n vƠ đ c/ghi d li u c a hai bus khác nhau

 T c đ ho t đ ng c a hai bus khác nhau

Hình 1.8 là c u trúc r t đ c tr ng cho m t h th ng s d ng lõi vi x lý ARM Các lõi vi x lý ARM đ c s d ng r t ph bi n trong các thi t b di đ ng

hi n nay do nh ng u đi m v m c tiêu th đi n n ng Các lõi vi x lý ARM t ng

thích v i hai chu n bus là AHB và AXI Giao th c c a hai bus này là hoàn toàn

khác nhau, t c đ c a AXI bus c ng cao h n so v i AHB bus Do đó, đ các lõi ARM t ng thích v i AHB bus có th truy xu t đ n các ngo i vi t ng thích v i AXI bus ta c n ph i có c u chuy n bus t AHB sang AXI vƠ ng c l i

Hình 1.8 C u chuy n gi a hai bus AXI và AHB

Trang 16

11

Vi c đ ng b d li u trong h th ng là c c k quan tr ng liên quan đ n m c

đ chính xác c a các quá trình x lý Trong m t h th ng ph c t p, các ngo i vi

ho t đ ng nh ng t n s cao ho c th p khác nhau Do đó, đ t i u hóa t c đ ho t

đ ng c a toàn b h th ng thì các ngo i vi t c đ cao (ho c th p) ph i đ c k t n i

v i bus t c đ cao (ho c th p), do đó, vi c trong h th ng xu t hi n nhi u h n m t

bus là không th tránh kh i Khi đó, vai trò c a c u chuy n bus là r t quan tr ng

d li u v i đ a c ng) Xét trên ph ng di n c a bus, m t s ngo i vi đóng vai trò

v a là Master, v a là Slave nh : USB, Ethernet, SATA, m t s ch đóng vai trò lƠ

Slavenh Timer, UART, PWM

Thông th ng, ho t đ ng c a các ngo i vi đ c l p trình thông qua vi x lý Sau khi đ c l p trình xong các ngo i vi s ho t đ ng d a vào các tín hi u đ ng b

nh ng t hay các tín hi u b t tay cho giao th c truy n nh n d li u tr c ti p không qua vi x lý (giao th c này còn g i là DMA)

1.3 L ch s phát tri n và phân lo i các b vi x lý

Có th nói vi x lý là s n ph m c a vi c phát minh ra transistor (n m 1947)

và m ch tích h p (n m 1958) [1] NgƠy nay, vi x lý đ c s d ng trong h u h t t t

c các l nh v c, t các máy tính nhanh nh t cho đ n nh ng đ ch i đ n gi n nh t,

và các ng d ng c a vi x lý s còn ti p t c đ c m r ng trong t ng lai

Vi x lý là ng d ng ph c t p nh t c a transistor, v i s l ng transitor có

th lên đ n hàng t trong m t s vi x lý hi n nay vƠ đơy ch a ph i là gi i h n cu i cùng V i nhu c u ph i t ng t c đ x lý cùng v i s phát tri n nhanh chóng c a k

Trang 17

12

thu t, các công ty vi m ch hƠng đ u luôn tìm cách nâng cao t c đ x lý b ng cách

c i ti n công ngh s n xu t và t i u k thu t thi t k

K nguyên c a vi x lý đ c b t đ u t nh ng n m đ u th p k 70 v i s ra

đ i c a vi x lý phiên b n 4 bit Intel 4004 vƠo tháng 3 n m 1971 vƠ phiên b n 8 bit Intel 8008 vƠo tháng 4 n m 1972 B ng 1.1 li t kê các dòng vi x lý c a Intel t khi thành l p đ n n m 2007 T b ng 1.1 ta th y, t c đ vi x lý ngày càng nâng cao

(lên đ n hàng GHz), m c đ tích h p ngày càng nhi u (đ n hàng t transistor) và công ngh ch t o ngày càng nh (hàng nanomet) Hình 1.9 cho th y s phát tri n

c a các dòng vi x lý c a m t vƠi công ty đi n t trên th gi i

Hình 1.9 M t s dòng vi x lý tính t i th iăđi măn mă2010

Motorola tuy không có nhi u s n ph m nh Intel, nh ng c ng phát tri n m t

s chip vi x lý s d ng cho các ng d ng riêng c a mình M t s vi x lý đ c

tr ng c a Motorola nh : dòng vi x lý 8 bit 6800 đ c gi i thi u vƠo n m 1974, dòng vi x lý 16 bit 68000 đ c gi i thi u vƠo nh ng n m cu i th p niên 70 và các dòng vi x lý 32 bit đ c gi i thi u ti p sau đó 68020/68030/68040 VƠo nh ng

Trang 18

13

n m đ u th p k 90, Motorola còn h p tác v i Apple vƠ IBM đ thi t k và ch t o các dòng vi x lý PowerPC (đôi khi đ c vi t t t là PPC) có t c đ cao, tích h p b

nh cache on-chip và ti t ki m n ng l ng, đ c s d ng trong các thi t b di đ ng

nh : đi n tho i, máy tính laptop M t s h vi x lý PPC nh : 601, 604, 620 (64

1999 Intel Pentium III

Intel Core 2 Duo

Intel Core 2 Extreme

Dual-Core Intel Xeon

Trang 19

14

2006 Dual-Core Intel Itanium 2

2007 Quad-Core Intel Xeon

(Ngu n: Intel)

Vào kho ng gi a th p niên 70, hưng Zilog c ng gi i thi u s n ph m chip vi

x lý 8 bit đ u tiên c a hưng, đó lƠ Z80 Vi x lý nƠy đ c s d ng khá r ng rãi trong các máy vi tính vào th i k đó Sau đó, Zilog còn ti p t c phát tri n các vi x

lý 16 bit (Z8000) vƠ 32 bit (Z80000) nh ng không th t s thành công Ngoài ra,

m t s công ty đi n t n i ti ng khác c ng có nh ng dòng chip vi x lý riêng cho các s n ph m c a h nh : R2000, R3000, R4000, ầ c a MIPS, PA7100, PA7200, PA8000, ầ c a HP

Phân lo i vi x lý theo kh n ng c a b tính toán s h c (ALU)

 Vi x lý 8 bit: t ng ng b tính toán s h c có kh n ng ti p nh n và tính toán các toán h ng 8 bit H u h t các vi x lý th h đ u đ u thu c lo i nƠy nh : Intel 8008, 8080, 8085, Z80, MC6800, ầ Hi n nay, các vi x lý v n còn đ c dùng trong m t s ng d ng đ n gi n vì nh ng u đi m v giá thành, m c đ tiêu th

n ng l ng

 Vi x lý 16 bit: t ng ng b tính toán s h c có kh n ng ti p nh n và tính toán các toán h ng 16 bit Các vi x lý thu c dòng này h u h t đ c nâng c p t th

h 8 bit T p l nh c a các vi x lý nƠy đư đa d ng h n v i các l nh nhân s h c

M t s vi x lý đ c tr ng cho lo i này g m: Intel 8086, 80186, 80286 (các chip này

là nh ng chip đ u tiên thu c h x86 c a Intel), Motorola 68000, 68010

 Vi x lý 32 bit: ơy lƠ dòng vi x lý đ c s d ng r t r ng rãi vào nh ng

n m cu i th k 20 vƠ đ u th k 21, v i nh ng tính u vi t v c u trúc, và các

ph n c ng h tr V i 32 bit đ a ch , các vi x lý này có kh n ng truy xu t vùng

nh lên đ n 4GB B tính toán s h c có kh n ng th c thi các toán h ng có chi u dƠi đ n 32 bit M t s vi x lý đ c tr ng cho lo i này g m: Intel 80386, 80486, Pentium, Motorola 68020, 68030, 68040, 68060

Trang 20

15

 Vi x lý 64 bit: Các vi x lý thu c lo i nƠy đ c phát tri n t nh ng n m

đ u th p niên 90 c a th k 20, nh ng th i đi m th c s bùng n lƠ vƠo đ u th k

21 v i s ra đ i c a các chip vi x lý 64 bit dùng cho máy tính cá nhân c a Intel (h x86-64 hay x64) và AMD (h AMD64) và h a h n s còn phát tri n m nh trong

t ng lai M t s vi x lý đ c tr ng cho lo i này bao g m: Intel Core i3, i5, i7, AMD Athlon 64, Turion 64

Trang 21

16

CÂU H I ÔN T PăCH NGă1

1 Phân bi t các dòng vi x lý 8 bit, 16 bit, 32 bit và 64 bit K tên m t s vi x

8 Gi i thích các thông s sau trong b ng c u hình c a m t máy tính cá nhân?

Intel Core i3 4130T 2.9GHz – 3M, 4GB/1600, HDD 1TB, Webcam, GF GT710A, 23” Full HD Touch, DVDRW, Wireless N, Win8.1

Trang 22

17

Ch ngă2 B VI X LÝ INTEL 8086

Vi x lý 8086 là vi x lý 16 bit đ u tiên c a Intel, đ c gi i thi u vƠo n m

1978 Ban đ u, t c đ c a 8086 lƠ 5MHz, đ c ch t o theo công ngh 3µ, v i s

l ng vào kho ng 29000 transistor, đ c s d ng trong khá nhi u ng d ng các

l nh v c khác nhau Vì 8086 thu c h 80x86, có tính k th a, nên các ch ng trình

vi t cho 8086 v n có th ch y trên các h th ng nâng c p sau này V m t c u t o, Intel 8086 c ng khá đ n gi n, r t thích h p đ ti p c n k thu t vi x lý ó c ng lƠ

m t s lý do ta l a ch n vi x lý Intel 8086 cho môn h c Vi x lý Ch ng nƠy s trình bày nh ng ki n th c c b n v 8086 nh : c u trúc ph n c ng, t p l nh, x lý

ng t, ầ

2.1 Ki n trúc bên trong c a 8086

2.1.1 S ăđ kh i

Trên hình 2.1 lƠ s đ kh i c u trúc bên trong c a vi x lý Intel 8086

Hình 2.1 ăS ăđ kh i c a vi x lý Intel 8086

T s đ kh i ta th y, c u trúc vi x lý 8086 bao g m 2 kh i chính: kh i

th c thi (EU) và kh i giao ti p bus (BIU) BIU có ch c n ng chính lƠ t o các đ a ch

Trang 23

18

b nh ho c ngo i vi đ chuy n d li u gi a kh i th c thi v i các thành ph n bên ngoài vi x lý NgoƠi ra, BIU còn lƠ n i ti p nh n nh ng mã l nh t b nh vƠ đ t chúng vƠo hƠng đ i l nh EU nh n nh ng mã l nh (t hƠng đ i l nh) và d li u t BIU, th c thi nh ng l nh nƠy vƠ l u các k t qu vào các thanh ghi c a vi x lý

Vi c chia c u trúc c a vi x lý thành hai ph n là nh m nâng cao t c đ x lý l nh Trong th i gian EU b n th c thi m t l nh, BIU v n có th nh n m t l nh m i và

đ a vƠo hƠng đ i l nh Khi EU th c thi xong m t l nh thì nó s ngay l p t c tìm

đ c l nh k ti p trong hƠng đ i l nh mà không c n ph i ch m t kho ng th i gian

đ c l nh t BIU

2.1.2 Ch căn ngăvƠăch đ làm vi c c a các chân giao ti p

Trên hình 2.2 lƠ s đ chân c a vi x lý 8086

Hình 2.2 ăS ăđ chân c a vi x lý Intel 8086

Vi x lý 8086 có m t bus đ a ch 20 bit, bus d li u 16 bit, ba chân ngu n, và

17 chân dùng cho các ch c n ng đ nh thì vƠ đi u khi n gi m s l ng chân khi

đóng gói, bus đ a ch và bus d li u đ c d n kênh, t c là d li u vƠ đ a ch s d ng

Trang 24

19

chung m t chân vi x lý Hình 2.3 và hình 2.4 mô t chu k đ c và ghi khi 8086

ho t đ ng ch đ t i thi u (t c là vi x lý tr c ti p t o các tín hi u đi u khi n đ truy c p b nh và các c ng I/O)

Hình 2.3 ăQuáătrìnhăđ c d li u c a 8086

T các hình 2.3 và hình 2.4 ta th y các chơn AD0 đ n AD15 s đóng vai trò

lƠ các chơn đ a ch trong chu k T1, nh ng s tr thƠnh đ ng d li u đ c ho c ghi trong các chu k T2 đ n T4 ơy chính lƠ thi t k dùng d n kênh theo th i gian

Ý ngh a c a các chơn nh sau:

 Các chân s 2 đ n s 16 và chân 39: là các chân ba tr ng thái, v a là ngõ

vào, v a là ngõ ra Các chân này là bus đ a ch (trong chu k T1) và là bus d li u

(trong các chu k T2 đ n T4)

 Các chân s 35 đ n s 38: là các ngõ ra ba tr ng thái Các chơn nƠy c ng

đ c d n kênh theo th i gian Trong chu k T1, các chân này là các bit cao c a bus

đ a ch Trong chu k t T2 đ n T4, các chân này th hi n tr ng thái hi n t i c a vi

x lý

 Chân s 34: là ngõ ra ba tr ng thái Chơn nƠy c ng đ c d n kênh theo th i gian Trong chu k T1, chân này tích c c m c th p, đ c dùng đ cho phép truy

Trang 25

20

xu t byte d li u theo tám bit cao trên đ ng bus d li u (AD8 đ n AD15) Trong

chu k T2 đ n T4, chơn nƠy c ng đ c dùng đ th hi n tr ng thái c a vi x lý

B ng 2.1 cho ta bi t m t s ch đ truy c p d li u d a vào giá tr c a chân này (

BHE) vƠ chơn đ a ch AD0 trong chu k T1

Hình 2.4 Quá trình ghi d li u c a 8086

B ng 2.1 B ng mô t truy c p d li u

0 1 Truy c p d li u theo byte t i đ a ch l , d li u lƠ AD8 đ n AD15

1 0 Truy c p d li u theo byte t i đ a ch ch n, d li u lƠ AD0 đ n AD7

Trang 26

21

trong h vi x lý khác Ch c n ng c a các chân s 24 đ n 32 thay đ i ph thu c vào

m c logic c a chân này

 Chân s 32: là m t ngõ ra ba tr ng thái, tích c c m c th p Chân này có ch c

n ng ch h ng c a lu ng d li u trên bus là t b nh hay I/O đ n vi x lý (t c là

quá trình đ c d li u) D li u đ c v t ng ng trong chu k chân này tích c c

 Chân s 31: là m t ngõ vào, tích c c m c cao Chân này có ch c n ng cách

ly vi x lý (h m ch t t c các đ ng bus) v i ngo i vi và b nh đ cho m t ph n

t khác truy c p vào các thi t b này Ch đ nƠy đ c g i lƠ “truy c p b nh tr c

ti p” (DMA)

 Chân s 30: là m t ngõ ra, tích c c m c cao Có ch c n ng xác nh n đư cách

ly vi x lý kh i các ngo i vi và b nh khi có yêu c u t bên ngoài (chân 31 tích

c c)

 Chân s 29: là ngõ ra ba tr ng thái, tích c c m c th p Chân này có ch c

n ng ng c l i so v i chân 32 Nó ch h ng c a lu ng d li u trên bus đi t vi x

lý đ n ngo i vi ho c b nh (t c là quá trình ghi d li u) D li u có giá tr ghi trong chu k tín hi u này còn tích c c

 Chân s 28: là m t ngõ ra ba tr ng thái Chân này xu t ra chu k T1, đ c dùng đ ch n thi t b truy xu t là ngo i vi (m c th p) hay b nh (m c cao)

 Chân s 27: là m t ngõ ra ba tr ng thái Chân này có ch c n ng đi u khi n

h ng c a lu ng d li u qua các b đ m (n u có) đ c n i vào bus d li u h

th ng Khi chân này m c th p, nó ch truy xu t đ c, khi m c cao, nó ch truy

xu t ghi

 Chân s 26: là m t ngõ ra ba tr ng thái Chân này có ch c n ng c m các b

đ m d li u cho đ n chu k T2, khi các chân ADi không còn gi đ a ch c a b nh

ho c ngo i vi

 Chân s 25: là m t ngõ ra, tích c c m c cao Chơn nƠy th ng đ c s d ng

đ ch t đ a ch T các gi n đ đ nh thì quá trình đ c/ghi c a vi x lý trong các hình

2.3 và hình 2.4, ta th y m i chu k bus đ u b t đ u v i xung ALE trong chu k T1

a ch 20 bit đ c đ m b o h p l khi chân này tích c c

Trang 27

 Chân s 17: là m t ngõ vào Chân này có ch c n ng t ng t nh chơn 18,

nh ng b t ng t theo c nh lên Ng t chân này không che (c m) đ c mà s luôn

 Chân s 22: là m t ngõ vào, tích c c m c cao Chơn nƠy đ c l y m u

c nh lên xung nh p trong chu k T2 N u đ ng này m c th p thì m t tr ng thái T3 thêm (g i là tr ng thái ch ) đ c chèn vào b i vi x lý Chu trình này ti p t c

l p l i cho đ n khi tín hi u này lên m c cao Chơn nƠy th ng đ c lái b i các thi t

b đáp ng ch m, không th cung c p d li u k p th i cho vi x lý

 Chân s 21: ngõ vào reset h th ng, tích c c m c cao Reset s k t thúc l nh

đang th c thi hi n t i và quay l i th c hi n l nh ban đ u c a ch ng trình (b t đ u

t i đ a ch FFFF0H) Reset th ng đ c dùng khi m i b t đ u cho h th ng ch y

ho c khi x y ra s c h th ng

 Chân s 19: cung c p xung nh p clock cho vi x lý ho t đ ng T t c các tín

hi u trong vi x lý đ u đ c đ ng b theo xung nh p này

 Chân s 1 và 20: ngõ vào n i mass

 Chân s 40: ngõ vào n i v i ngu n Ngu n c p cho 8086 ho t đ ng là +5V

Trang 28

23

 Kh i logic đi u khi n bus có ch c n ng nh n đ a ch đ c sinh ra t quá

trình tính toán tr c đó, gi i mư vƠ đ c/ghi d li u đ n các ngo i vi thích h p i

v i quá trình đ c mã l nh thì các l nh đ c vào s đ c đ a vƠo hƠng đ i l nh

 HƠng đ i l nh có kích th c 6 byte, đ c dùng đ ch a các mã l nh đ c

đ c tr c và ch EU x lý ơy lƠ m t c u trúc m i đ c Intel áp d ng nh m nâng cao t c đ th c thi c a vi x lý Trong lúc EU đang b n th c thi l nh hi n t i thì BIU v n s ti p t c nh n các l nh ti p theo và x p vƠo hƠng đ i Do đó, khi EU

th c thi xong m t l nh thì s ti p t c th c thi l nh ti p theo t hƠng đ i mà không

ph i ch th i gian đ c l nh đó thông qua BIU HƠng đ i l nh ho t đ ng theo nguyên t c “vào tr c – ra tr c” (first in – first out hay FIFO), ngh a lƠ byte l nh

nƠo đ c c t vƠo hƠng đ i tr c s đ c l y ra x lý tr c Khi hƠng đ i l nh đ y,

t c là có 6 l nh trong hƠng đ i, BIU s ng ng quá trình g i l nh đ n khi hƠng đ i

tr ng 2 byte Do bus d li u c a 8086 có đ r ng 16 bit nên thông th ng 8086 luôn l y 2 l nh x p vƠo hƠng đ i sau m i l n g i Các l nh trong ch ng trình th c thi c a vi x lý đ c s p x p theo m t tr t t nh t đ nh vƠ đ c qu n lý thông qua

đ a ch Vi x lý s th c thi các l nh này m t cách tu n t Do đó, khi m t l nh đang đ c th c thi thì BIU s l y các l nh các đ a ch ti p theo x p vƠo hƠng đ i Tuy nhiên, khi vi x lý th c thi m t l nh r nhánh (l nh nh y ho c g i hàm con) thì

đ a ch l nh k ti p s không theo tr t t bình th ng n a mà ph thu c vào l nh r nhánh đang th c thi Khi đó, d li u trong hƠng đ i s b xóa và BIU s g i l nh t

đ a ch m i và l i x p vƠo hƠng đ i đ th c thi

 Các thanh ghi đo n: bao g m b n thanh ghi CS, DS, SS vƠ ES, có đ r ng 16 bit

Bus đ a ch c a 8086 có đ r ng 20 bit, do đó 8086 có kh n ng truy xu t đ n không gian b nh có dung l ng t i đa lƠ 1MB (220 byte) Không gian b nh này (v sau g i là vùng nh ) l i đ c chia nh thành nh ng vùng nh nh h n có dung

l ng t i đa 64KB, g i lƠ các phơn đo n (segmentation) Các phơn đo n có th n m

li n k nhau, ch ng l p hoàn toàn ho c ch ng l p m t ph n Trên hình 2.5, phân

đo n B (segment B) vƠ phơn đo n C (segment C) ch ng l p m t ph n, phơn đo n C

vƠ phơn đo n D (segment D) ch ng l p hoàn toàn

Trang 29

24

Hình 2.5 ăCácăphơnăđo n trong b nh

Trong m t ch ng, trình th ng có r t nhi u phơn đo n v i các ch c n ng khác nhau nh :

 Phơn đo n ch ng trình: dùng đ ch a mã l nh th c thi c a ch ng trình

 Phơn đo n d li u: dùng đ ch a các d li u đ c/ghi t vi x lý

Phơn đo n dùng lƠm ng n x p (stack): dùng vào các m c đích đ c bi t nh :

b o l u d li u hay tr ng thái c a vi x lý tr c khi x y ra ng t ho c nh y vƠo ch ng trình con

Các phơn đo n đ c đ t trong vùng nh 1MB, t ng ng v i đ a ch v t lý

bi n đ i t : 0 đ n FFFFFH Tuy nhiên, 8086 không s d ng đ a ch nƠy đ truy xu t vƠo các phơn đo n do thanh ghi ch có đ r ng 16 bit lƠm đ c vi c này, 8086

s d ng b hai s 16 bit, bao g m đ a ch c s (còn g i lƠ đ a ch đ u) vƠ đ a ch

offset (còn g i lƠ đ a ch l ch) B hai s nƠy đ c g i lƠ đ a ch logic truy xu t vƠo các phơn đo n, vi x lý ph i t o ra đ a ch v t lý t đ a ch logic (b ng ph n t

∑) vƠ đ a lên bus đ a ch a ch v t lý đ c tính nh sau:

c a các thanh ghi đo n làm cho các phơn đo n có th d ch chuy n linh ho t trong

ph m vi không gian 1MB Hình 2.6 mô t chi ti t vai trò c a t ng thanh ghi đo n

Trang 30

25

Hình 2.6 Vai trò c aăcácăthanhăghiăđo n

 Thanh ghi con tr l nh: IP, đ r ng 16 bit

Thanh ghi IP có ch c n ng ch a đ a ch offset c a l nh ti p theo tính t đ a

ch đ u c a phơn đo n mã l nh hi n t i Do đó, đ a ch logic c a l nh ti p theo đ c

g i vƠo hƠng đ i là c p giá tr thanh ghi: CS vƠ IP Thanh ghi nƠy đ c qu n lý b i BIU, ng i l p trình không th can thi p tr c ti p vào thanh ghi này Tuy nhiên,

m t s l nh có th lƠm thay đ i, l u ho c l y l i giá tr c a thanh ghi này t ng n

x p

Khi h th ng đ c reset, n i dung c a các thanh ghi s đ c n p l i giá tr

nh b ng 2.2

B ng 2.2 Giá tr c a các thanh ghi sau khi reset

Trang 31

 n v đi u khi n (CU): có ch c n ng nh n l nh t hƠng đ i và gi i mã l nh Ngõ ra c a kh i nƠy đ c đ a đ n m t s kh i đi u khi n khác nh : kh i tính toán

s h c (ALU), thanh ghi c , ầ

 Kh i tính toán s h c (ALU): nh n tín hi u đi u khi n t b gi i mã l nh và

th c hi n các phép tính toán s h c phù h p v i l nh đó Ngõ ra t b ALU s tác

đ ng đ n các thanh ghi chung và thanh ghi c

 Các thanh ghi chung

Vi x lý 8086 có 8 thanh ghi chung M i thanh ghi có đ r ng 16 bit vƠ đ c chia thành hai nhóm Nhóm th nh t là thanh ghi d li u AX, BX, CX, DX, nhóm

th hai là các thanh ghi ch s SP, BP, DI, SI

Trang 32

27

 Thanh ghi CX: còn đ c g i là b đ m, th ng dùng đ ch a s vòng l p trong các tr ng h p có l nh LOOP Thanh ghi CL th ng dùng đ ch a s bit c n

d ch ho c xoay thanh ghi trong các l nh t ng ng

 Thanh ghi DX: đ c s d ng cho các phép nhân ho c chia s h c

 Các thanh ghi ch s

Thông th ng, các thanh ghi trong nhóm nƠy đ u đ c s d ng nh các thanh ghi đa n ng, nh ng ng d ng chính c a m i thanh ghi m c đ nh là thanh ghi

l ch cho các phơn đo n t ng ng

 Thanh ghi BP: con tr c s , ch a đ a ch c a m t d li u n m trong ng n

x p SS Do đó, đ a ch logic c a m t ph n t ch a trong ng n x p là c p s SS và

BP

 Thanh ghi SP: con tr ng n x p, ch a đ a ch đ nh hi n t i c a ng n x p SS

Do đó, đ a ch logic c a đ nh hi n t i c a ng n x p là c p s SS và SP

 Thanh ghi SI và DI: ch s ngu n và ch s đích, tr vào d li u trong phân

đo n d li u Do đó, đ a ch logic c a d li u là các c p s : DS và SI, DS và DI

 Thanh ghi c :

ơy lƠ thanh ghi đ c bi t, có đ r ng 16 bit M i bit trong thanh ghi này có

ch c n ng th hi n m t tr ng thái c a k t qu phép toán do ALU th c hi n ho c

m t tr ng thái ho t đ ng c a kh i EU D a vào các c nƠy, ng i l p trình s có

h ng thích h p cho lu ng ch ng trình ti p theo Thanh ghi nƠy có 16 bit nh ng

ng i ta ch s d ng 9 bit đ làm các bit c Hình 2.7 mô t tên và v trí các c trong thanh ghi

Trang 33

28

 C C (CF): c nh C này có giá tr 1 khi k t qu phép tính c ng có nh

ho c phép tính tr ph i m n bit MSB C nƠy c ng b tác đ ng b i l nh xoay

m t thanh ghi ho c m t ô nh Bit xoay s đ c đ t vào c này

C P (PF): c parity C này cho bi t t ng s bit 1 trong k t qu tính toán là

s ch n hay s l PF có giá tr 1 khi t ng s bit 1 là m t s ch n C nƠy th ng

đ c dùng đ ki m tra l i trên đ ng truy n d li u

 C A (AF): c nh ph C này r t có ý ngh a khi ta làm vi c v i các s BCD AF có giá tr 1 khi phép toán có nh ho c m n t m t s BCD th p (4 bit

th p) sang m t s BCD cao (4 bit cao)

 C Z (ZF): c zero C này có giá tr 1 khi k t qu phép toán là 0

 C S (SF): c d u C này có giá tr 1 khi k t qu phép toán là s âm Vi x

lý 8086 hi u m t s âm theo ki u bù 2, t c là s ơm t ng ng v i bit MSB là 1, s

d ng ng v i bit MSB b ng 0

 C O (OF): c tràn C này báo hi u phép tính s h c b tràn, t c là k t qu phép tính v t quá t m bi u di n c a thanh ghi, khi đó k t qu tính toán không chính xác Trong tr ng h p này, vi x lý s sinh ra ng t tràn và nh y vƠo ch ng trình ng t đ ng i l p trình có h ng x lý cho phù h p

Trên đơy lƠ sáu c ch tr ng thái c a các phép tính s h c N i dung các c này ch đ c thay đ i b ng ph n c ng, ng i l p trình ch có th đ c giá tr (Read Only) mà không th ghi vào các c này

Các c đi u khi n:

C T (TF): c b y Vi c set c này lên 1 s đ t vi x lý vào ch đ ch y t ng

l nh Thông th ng, c nƠy đ c s d ng cho vi c tìm và gi i quy t l i ch ng trình ch đ này, vi x lý s sinh m t ng t trong sau khi th c thi m t l nh đ cho

ng i l p trình có th quan sát k t qu c a vi c th c thi l nh đó

C I (IF): c cho phép ng t i v i các ng t có m t n (maskable), c này

cho phép ho c không cho phép vi x lý nh y vƠo ch ng trình ng t khi có m t ng t

x y ra i v i các ng t không có m t n (non-maskable), bit này không có tác

d ng IF = 1: cho phép ng t, IF = 0: c m ng t

Trang 34

29

C D (DF): c h ng Khi c nƠy đ c set lên 1, m t chu i s đ c x lý t

đ a ch cao xu ng đ a ch th p, t c là t ph i sang trái Khi c này b xóa v 0, chu i

s đ c x lý theo h ng ng c l i, t c là t trái sang ph i

Trên đơy lƠ ba c đi u khi n ho t đ ng c a vi x lý Các c này có kh n ng

đ c/ghi (Read/Write), t c là n i dung các c này có th đ c l p trình b ng ph n

m m, tùy vào m c đích c a t ng ch ng trình

2.3 Quá trình s lý l nh

L nh c a m t vi x lý đ c mư hóa d i d ng các s nh phơn 0 vƠ 1, vì đó

là d ng bi u di n thông tin duy nh t mà máy hi u đ c Do đó, sau khi nh n l nh,

b vi x lý ph i th c hi n vi c gi i mã l nh r i sau đó m i th c hi n l nh M t l nh

có th có đ dài m t vài byte tùy theo b vi x lý Gi s m t b vi x lý nƠo đó dùng m t byte đ ch a các mã l nh (opcode) c a nó Ta có th tính đ c s l nh

l n nh t mà m t byte này có th mư hóa đ c là 256 (28) l nh Trong th c t vi c

mã hóa m t l nh hoƠn toƠn không đ n gi n nh v y mà còn ph thu c vào r t nhi u

Trang 35

b nh , thanh ghi ho c trong các ngo i vi Các ph ng pháp đ nh đ a ch s cho vi

x lý bi t các toán h ng đ c đ đơu Sau đơy lƠ các ph ng pháp đ nh đ a ch

MOV AL, ABH; n p s hex AB vào thanh ghi AL

MOV BX, 1000H; n p s hex 1000 vào thanh ghi BX

 Cách đ nh đ a ch thanh ghi

Trang 36

31

Trong ch đ đ a ch nƠy ng i ta dùng các thanh ghi bên trong vi x lý nh

là các toán h ng đ ch a d li u c n thao tác Cách đ nh đ a ch nƠy th ng đ c dùng đ di chuy n d li u gi a các thanh ghi

Ví d :

MOV BX, DX; chuy n n i dung thanh ghi DX vào thanh ghi BX

Ta có th k t h p cách đ nh đ a ch nƠy vƠ cách đ nh đ a ch t c th i đ n p giá tr cho thanh ghi đo n

Ví d :

MOV AX, 1080H; n p s hex 1080 vào AX

MOV DS, AX; chép n i dung AX (1080H) vào DS

Chú ý: vi c chuy n d li u gi a các thanh ghi sau là không h p l

MOV BL, BX; do quá kích th c

MOV CS, AX; CS không th là toán h ng đích

MOV ES, DS; c m chuy n thanh ghi đo n sang thanh ghi đo n

l n trong ch ng trình thì cách nƠy l i không hi u qu Cách đ nh đ a ch gián ti p

gi i quy t v n đ này b ng cách l u tr đ a ch b nh trong m t thanh ghi pointer hay index (BX, BP, SI ho c DI) Ngoài ra, ta có th thay đ i vi trí truy c p b nh

b ng cách c ng thêm m t đ d i (theo ki u s bù 2) vào pointer hay index

Trang 37

32

Chú ý, các đo n m c nhiên cho t t c các cách đ nh đ a ch gián ti p lƠ đo n

ng n x p khi có dùng BP, vƠ lƠ đo n d li u khi có dùng các thanh ghi BX, SI và

DI Sau đơy lƠ m t s d ng đ nh đ a ch gián ti p:

nhăđ a ch gián ti p thanh ghi

Cách này s d ng thanh ghi thay vì h ng s (nh trong đ nh đ a ch tr c ti p)

đ đ c t đ a ch offset Các thanh ghi ch a đ a ch offset là: BP, BX, DI và SI

Thanh ghi đo n m c nhiên khi s d ng BP là SS, khi s d ng các thanh ghi còn l i thì thanh ghi đo n m c nhiên là DS

Ví d : v i BX=0222H, DS=1000H, SS=2000H, BP=0111H

MOV CX,[BX]; chép 1 word t ô nh 10222H và 10223H vào CX

MOV [BP],DL; l u 1 byte t thanh ghi DL vào ô nh 20111H

nhăđ a ch n n

Toán h ng đ c đ t đ a ch cho tr c b ng cách c ng m t đ d i vào các thanh ghi BX ho c BP và k t h p k t qu v i thanh ghi đo n

Ví d : v i DS=1000H, SS=2000H, BP=0222H, BX=0111H

MOV AX,[BP-2]; chép n i dung c a 20220H và 20221H vào AX

MOV [BX+777H],AX; l u n i dung AX vào 10888H và 10889H

nhăđ a ch ch s

Cách nƠy t ng t nh đ nh đ a ch n n, ngo i tr các thanh ghi đ c s

d ng là các thanh ghi ch s SI và DI Sau khi c ng v i đ d i, k t qu này s k t

h p v i thanh ghi đo n m c đ nh lƠ DS đ t o ra đ a ch v t lý truy c p đ n vùng

nh

Ví d : v i DS=1000H, SI=222H, DI=111H

MOV [DI-1],BL; l u n i dung thanh ghi BL vào ô nh 10110H

MOV BX,[SI+1000H]; chép n i dung các ô nh 11222H và 11223H vào BX

nh đ a ch n n vƠ đ nh đ a ch ch s còn đ c g i lƠ đ nh đ a ch t ng đ i thanh ghi

nhăđ a ch n n v iăđ d i

Trang 38

33

Các thanh ghi n n (BX vƠ BP) đ c c ng v i các thanh ghi ch s (DI và SI)

nh nh ng s nguyên d ng đ cho ra giá tr offset Giá tr offset này s k t h p v i thanh ghi đo n (DS ho c SS) đ t o đ a ch v t lý truy c p b nh

Ví d : v i SS=1000H, SI=3333H, BP=2222H

MOV AX,[SI+BP]; n p n i dung các ô nh 15555H và 15556H vào AX

 Cách đ nh đ a ch chu i

Chu i là m t dãy liên t c các byte hay word đ c c t trong b nh Các ký

t trong chu i đ c mã hóa theo b ng mã ASCII Vi x lý 8086 có nhi u l nh đ c thi t k riêng cho x lý các chu i ký t Các l nh nƠy có cách đ nh đ a ch đ c bi t

và s d ng đ a ch logic DS:SI đ ch đ n ngu n vƠ ES:DI đ ch đ n đích c a chu i L nh MOVSB s chuy n byte d li u ngu n đ n v trí đích Các l nh v i chu i không đ c s d ng b t c cách đ nh đ a ch nào khác Các chu i có th dài

đ n 64KB

Ví d : v i DS=1000H, ES=2000H, SI=10H, DI=20H

MOVSB; chuy n m t byte trong chu i t 10010H đ n 20020H

 nh đ a ch c ng

Ví d :

IN AL,40H; chép n i dung c a c ng I/O 40H vào AL

OUT 80H,AL; đ a n i dung c a AL ra c ng I/O 80H

C ng I/O còn có th truy xu t b ng thanh ghi

Ví d :

IN AL,DX; chép n i dung c a c ng I/O ch b i DX vào AL

 nh đ a ch ng n x p

c s d ng trong các l nh CALL/RET vƠ PUSH/POP Ng n x p c a 8086

đ c t ch c theo c u trúc LIFO (last in first out, t c lƠ vƠo sau ra tr c)

Ví d :

PUSH AX; c t n i dung thanh ghi AX vƠo ng n x p

PUSH [BX]; c t n i dung c a ô nh (DS:BX) vƠo ng n x p

POP AX; l y n i dung c a đ nh ng n x p hi n th i đ a vƠo AX

Trang 39

34

Trong tr ng h p l nh CALL, đ a ch quay v s đ c c t trong ng n x p

L nh RET s l y l i đ a ch này t ng n x p vƠ đ t nó vào con tr l nh (IP)

Sau đơy lƠ m t s quy t c k t h p các thanh ghi đo n và offset

Thông th ng vi x lý có các quy t c m c đ nh k t h p thanh ghi đo n và

thanh ghi offset Các quy t c nƠy đ c s d ng cho m t s cách đ nh đ a ch nh t

đ nh Tuy nhiên, ta có th thay đ i các quy t c này b ng cách s d ng các ti p đ u

ng nh sau:

B ng 2.4 Quy t c k t h păthanhăghiăđo n và thanh ghi offset

Thanh ghi offset Thanh ghi đo n m c đ nh Ti p đ u ng

MOV AX,[DI]; n p n i dung DS:[DI] vào thanh ghi AX

MOV AX,ES:[DI]; n p n i dung ES:[DI] vào thanh ghi AX

2.3.2 T p l nh 8086

Vi x lý 8086 có 90 l nh c b n đ c chia thành các nhóm l nh nh nh : chuy n d li u, s h c, logic, x lý chu i, chuy n đi u khi n vƠ đi u khi n b x

lý N i dung giáo trình này s gi i thi u m t s l nh c b n th ng đ c s d ng

Trang 40

35

ο ích: ô nh , thanh ghi chung, thanh ghi đo n

ο Ngu n: ô nh , thanh ghi chung, thanh ghi đo n, h ng s

M t s đi m c n l u ý đ i v i các toán h ng:

ο Khi toán h ng đích lƠ thanh ghi đo n thì toán h ng ngu n ph i là

thanh ghi chung ho c ô nh 16 bit

ο Khi toán h ng ngu n lƠ thanh ghi đo n thì toán h ng đích ph i là

thanh ghi chung 16 bit ho c ô nh

Ví d :

MOV AL, 10; AL = 0AH

MOV DL, SS:[DI]; n p n i dung ô nh có offset [DI] trong đo n stack vào

DL

MOV ES, CX; n p thanh ghi CX vƠo thanh ghi đo n ES

MOV BP, SS; n p thanh ghi đo n SS vào BP,

- MOV ARRAY[SI],AL; n p thanh ghi AL vào ô nh đ c tr b i SI

IN AL, 70h; đ c 1 byte t c ng có đ a ch 70h và n p vào thanh ghi AL

IN AX, DX; đ c c ng có đ a ch l u trong thanh ghi DX vƠ n p vào AX

 L nh OUT

- Cú pháp: OUT c ng,thanh ghi tích l y

Ngày đăng: 02/05/2017, 22:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w