KI N TRÚC MÁY TÍNH

Ths Ph m Thanh Bình Gi ng viên: ỹ ộ B  môn K  thu t máy tính & m ng http://vn.myblog.yahoo.com/CNTT­wru http://ktmt.wru.googlepages.com

ế

B  môn K  thu t máy tính & m ng – Khoa CNTT

Ki n trúc máy tính 2

­ 1

ươ

Ch

ng 2:

Ữ Ủ      NGÔN NG  C A MÁY TÍNH  (ASSEMBLY)

ự trong máy tính

ế

Ki n trúc máy tính 2

­ 2

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ể ổ ứ ệ Các h  đ mệ ế ễ ố  Bi u di n s  và kí t ộ ớ  T  ch c CPU và b  nh  trong ơ ả  Các l nh Assembly c  b n

ở ầ M  đ u

ợ ộ

ữ ữ ậ

ằ ấ ớ ụ ầ ứ

ế

Ki n trúc máy tính 2

­ 3

ể ượ ệ i d ng đi n ho c t

H p ng  (Assembly language) là m t  ấ ngôn ng  l p trình c p th p, m c đích  ự ế ế nh m giao ti p tr c ti p v i ph n c ng  ủ c a máy tính.  ả ỉ c các   Máy tính ch  có kh  năng hi u đ ặ ừ ọ ướ ạ ệ tín hi u 0, 1 d , g i  ữ ị ị ệ là tín hi u nh  phân (ngôn ng  nh  phân  ữ ượ ọ c g i là ngôn ng  máy).  còn đ ỹ ậ ạ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ở ầ M  đ u

ằ ữ

ớ ơ

ự  Các l nh Assembly th c ch t là d ng kí hi u  ữ ử ụ ủ c a ngôn ng  máy: S  d ng các kí hi u b ng  ễ ể ể ế ti ng Anh đ  bi u di n các l nh ngôn ng  máy  cho d  nh  h n.

L nh ngôn ng  máy

L nh h p ng

0010 1010 1011 0100  0010 0001 1100 1101

MOV AH,2Ah INT   21h

ế

Ki n trúc máy tính 2

­ 4

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Bài 2.1 – Các h  đ mệ ế

ệ ế

ơ ố

ế

Ki n trúc máy tính 2

­ 5

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ệ ậ ị ệ ệ ậ ụ ệ ế ơ ố ơ ố  H  th p phân (h  đ m c  s  10) ệ ế  H  nh  phân (h  đ m c  s  2)  H  th p l c phân (h  đ m c  s  16)

ệ ậ

H  th p phân (Decimal)

ử ụ ệ ậ

ậ ễ ướ ạ ể ổ

ệ ậ

ư ễ ể ệ  H  th p phân s  d ng 10 kí hi u (0, 1, 2,...  ệ ố ể ể ễ 9) đ  bi u di n thông tin. Các s  trong h   ượ i d ng t ng  c bi u di n d th p phân đ ỹ ừ ơ ố các lu  th a c  s  10.  ể ụ ố 1998 trong h  th p phân có th    Ví d : S   bi u di n nh  sau:

ế

Ki n trúc máy tính 2

­ 6

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

(1998)10 = 1x103 + 9x102 + 9x101 + 8x100

ệ ậ

H  th p phân (Decimal)

1998D, 1998d,

ế

Ki n trúc máy tính 2

­ 7

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ườ ữ i ta kí   Trong ngôn ng  Assembly, ng ữ D ho c ặ d  ộ ố ậ ệ hi u m t s  th p phân b ng ch   ể ế ắ ủ ở ố t c a Decimal), cũng có th   t t  cu i (vi ế ầ t các ch  đó.  không c n vi  Ví d :ụ    (1998)10  đ ặ ơ ệ ượ c kí hi u là:  ả 1998 ho c đ n gi n là

H  nh  phân (Binary)

ệ ử ụ

ễ ướ ạ ố ệ ổ i d ng t ng các c bi u di n d

ị ể ố 1101 trong h  nh  phân có th   ệ

ế

Ki n trúc máy tính 2

­ 8

ư ể ễ ị ệ ể  H  nh  phân s  d ng 2 kí hi u (0,1) đ   ễ ị ể bi u di n thông tin. Các s  trong h  nh   ể ượ phân đ ỹ ừ ơ ố lu  th a c  s  2.  ụ  Ví d :  S   bi u di n nh  sau:

(1101)2 = 1x23 + 1x22 + 0x21 + 1x20                      = (13)10  ỹ ộ ậ B  môn K  thu t máy tính & m ng –  Khoa CNTT

H  nh  phân (Binary)

ằ ườ i ta kí  ữ B ho c ặ b

ế ắ ủ ộ ố t t

ế

Ki n trúc máy tính 2

­ 9

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ượ ệ c kí hi u là: 1101B, ho c ặ 1101b ữ  Trong ngôn ng  Assembly, ng ị ệ hi u m t s  nh  phân b ng ch   ở ố t c a Binary).   cu i (vi  Ví d :ụ   (1101)2 đ

ệ ậ ụ

H  th p l c phân (Hexa  Decimal)

ử ụ ệ ậ ụ

ệ ễ ể ể

ầ ượ ứ t  ng

ệ ậ ụ

ế

Ki n trúc máy tính 2

­ 10

ể ượ c bi u  ỹ ừ ơ ố i d ng t ng các lu  th a c  s   ậ

H  th p l c phân s  d ng 16 kí hi u (0,  1, 2,...9, A, B, C, D, E, F) đ  bi u di n  thông tin.  ệ  Các kí hi u A, B, C, D, E, F l n l ị ớ v i các giá tr  10, 11, 12, 13, 14, 15 trong  ệ ậ h  th p phân.  ố  Các s  trong h  th p l c phân đ ễ ướ ạ di n d ỹ B  môn K  thu t máy tính & m ng –  16.  Khoa CNTT

ệ ậ ụ

H  th p l c phân (Hexa  Decimal)

ệ ậ ụ ụ ố 2B trong h  th p l c phân có

ư Ví d : S   ễ ể ể th  bi u di n nh  sau:

ế

Ki n trúc máy tính 2

­ 11

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

(2B)16 =  2x161 + Bx160                              = (43)10

ệ ậ ụ

H  th p l c phân (Hexa  Decimal)

ườ

i ta kí  ữ H

ế ắ ủ t c a Hexa Decimal).

ế

Ki n trúc máy tính 2

­ 12

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ượ ệ c kí hi u là: 2BH, ho c ặ 2Bh ữ  Trong ngôn ng  Assembly, ng ằ ộ ố ậ ụ ệ hi u m t s  th p l c phân b ng ch   ở ố ho c ặ h  t t  cu i (vi  Ví d :ụ       (2B)16 đ

Chú ý:

ữ ị

ế

Ki n trúc máy tính 2

­ 13

ễ ắ ọ

ệ ộ ố ậ ụ  Kí hi u m t s  th p l c phân trong  ắ ả ươ ng trình h p Assembly ph i luôn b t  ch ượ ụ ố (FA)16 đ ệ ằ ố ầ đ u b ng s . Ví d  s   c kí hi u  ệ ứ FAh).  là 0FAh (ch  không kí hi u là  ệ hex) là h  ệ ọ ắ ệ ậ ụ t là h    H  th p l c phân (g i t ấ ề ượ ử ụ ế c s  d ng nhi u nh t trong  đ m đ ữ ể ể Assembly, do nó có th  bi u di n nh ng  ệ ằ dãy bít nh  phân dài b ng nh ng kí hi u  ớ ơ ng n g n, d  nh  h n  ỹ ạ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ệ ế

ữ Chuy n đ i gi a các h  đ m

ị h  th p phân v  h  nh  phân: Chuy n t

Đem s  th p phân chia liên li p cho 2, cho

ố ằ i. ng s  b ng 0 thì d ng l

ề ệ ế ạ ừ i lên ta thu

ế

Ki n trúc máy tính 2

­ 14

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ể ừ ệ ậ ố ậ ươ ố ư ượ ừ ướ t các s  d  ng  d c t ươ ứ ị c s  nh  phân t ng  ng ớ i khi th t ế Vi ượ ố đ

ệ ế ệ

2

ữ ổ ể Chuy n đ i gi a các h  đ m ị ể ố ậ ụ  Ví d : Chuy n s  th p phân 13 sang h  nh   phân. 13 d  1ư

6

2

d  0ư

3

2

d  1ư

1

2

d  1ư

0

ố ư ượ ừ ướ

c t

i lên ta thu đ

ượ ố c s

Vi ộ

d ạ

ế

Ki n trúc máy tính 2

­ 15

ế t các s  d  ng ị 1101b  nh  phân  ỹ ậ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ệ ế

ữ Chuy n đ i gi a các h  đ m

ể ừ ệ ậ ề ệ ậ ụ h  th p phân v  h  th p l c

Chuy n t phân:

ế

ươ i.

ố ư ượ ừ ướ Đem s  th p phân chia liên li p cho 16,  ạ ừ ng s  b ng 0 thì d ng l i lên ta thu

ế

Ki n trúc máy tính 2

­ 16

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

d ươ ứ ố ậ ố ằ ớ i khi th c t t các s  d  ng c s  th p l c phân t cho t ế Vi ượ ố ậ ụ đ ng  ng

ệ ế

ữ Chuy n đ i gi a các h  đ m

ể ố ậ

ệ ậ ụ

ụ  Ví d : Chuy n s  th p phân 43 sang h  th p l c  phân.

43

16

d  11ư

2

16

d  2ư

0

ố ư ượ ừ ướ

Vi

c t

d

i lên ta thu đ

ượ ố c s

2Bh (chú ý là 11d =  0Bh).

ế

Ki n trúc máy tính 2

­ 17

ế t các s  d  ng ậ ụ th p l c phân  ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ệ ế

ữ Chuy n đ i gi a các h  đ m

ể ữ ệ ệ ậ ổ ị

Chuy n đ i gi a h  nh  phân và h  th p  ụ l c phân:

ổ ệ

ể ỗ ệ ế ệ ễ ữ    Vi c chuy n đ i gi a 2 h  đ m này khá d   ng

ạ ươ i t ả ị ng v i 4 kí hi u nh  phân. Xem b ng

ế

Ki n trúc máy tính 2

­ 18

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ớ ể ổ ệ dàng do m i kí hi u trong h  hex l ệ ứ chuy n đ i sau:

ổ B ng chuy n đ i

ệ ậ

H  th p phân

H  Hex

ị H   nh  phân

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

1111

15

F

ế

Ki n trúc máy tính 2

­ 19

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ệ ế

ữ Chuy n đ i gi a các h  đ m

ệ ị ổ 2Ah sang h  nh  phân.

i:ả

ả ấ 2h = 0010b, Ah = 1010b

ế

Ki n trúc máy tính 2

­ 20

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Ví d  1: ụ ể Chuy n đ i  Gi Tra b ng ta th y:  V y ậ 2Ah = 00101010b

ệ ế

ữ Chuy n đ i gi a các h  đ m

ệ ổ 10110110b sang h  hex.

ượ c 2 nhóm sau:

ế

Ki n trúc máy tính 2

­ 21

Ví d  2:ụ ể Chuy n đ i  i:ả Gi ừ ầ Đ u tiên ta chia dãy bít nh  phân thành t ng  nhóm 4 bít, thu đ 0110 và  1011. ả ấ 0110b = 6h, 1011b = Bh

Tra b ng ta th y:  V y ậ 10110110b = B6h  ạ ậ ỹ ộ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ễ ố Bài 2.2 ­ Bi u di n s  nguyên trong  máy tính

ế

Ki n trúc máy tính 2

­ 22

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ố ố Dãy bít ấ  S  nguyên không d u ấ  S  nguyên có d u

Dãy bít

ườ

ữ ệ ở

i h n c a ph n c ng máy tính, d  li u  ễ c bi u di n b i các

ầ ứ ớ ạ ủ  Do gi ượ ng đ trong máy tính th nhóm 8 bít (g i là Byte) 1 byte = 8 bit 2 byte = 16 bit = 1 word

ế

ớ c càng l n. N u  ễ

ề ườ Ng i ta có th  ghép nhi u byte hay nhi u word  ơ ể ạ đ  t o thành dãy bít dài h n. Dãy bít càng dài thì  ễ ượ ượ ng thông tin bi u di n đ l g i ọ N là s  bít c a dãy thì s  kh  năng bi u di n  ủ = 2N

ế

Ki n trúc máy tính 2

­ 23

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Dãy bít

1

0

0

1

0

...

0

0

msb                                                          lsb

ộ ị Xét m t dãy bít  nh  phân:

ặ ầ ượ ọ c g i là bít n ng nh t

ấ ủ

ượ ọ ố ẹ c g i là bít nh

ế

Ki n trúc máy tính 2

­ 24

ấ ộ

ấ Bít đ u tiên (bên trái) đ hay bít cao nh t c a dãy (Most Significant Bit). ả Bít cu i cùng (bên ph i) đ ấ ủ ấ nh t hay bít th p nh t c a dãy (Least  ỹ ạ B  môn K  thu t máy tính & m ng –  Significant Bit).  Khoa CNTT

ấ S  nguyên không d u

ẽ ươ ứ

ộ ố ng  ng v i m t s  nguyên l n

ặ ằ

ơ

M t dãy bít s  t h n ho c b ng 0

ễ ố c ta đã bi

ể ướ ị

ụ  Ví d : Bi u di n s  nguyên 13 trong máy tính. Ở ầ ế ố  ph n tr t: s  nguyên 13 chuy n  ệ sang h  nh  phân s  là 1101

ể ể

ễ ố     Trong máy tính s  có nhi u cách đ  bi u di n s

00001101

00000000

nguyên này: ố ố ộ 00001101

ế

Ki n trúc máy tính 2

­ 25

ạ + S  nguyên d ng byte (8 bit):  ạ + S  nguyên d ng word (16 bit):  ậ ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ộ ể

i d ng nh  phân ta ph i dành

ấ S  nguyên có d u ộ ố ẽ ươ ứ ng  ng v i m t s  nguyên, có  ng. ễ ướ ạ ấ

ố  M t dãy bít s  t ặ ươ th  âm ho c d ể  Khi bi u di n d ị ra 1 bít đ  xác đ nh d u. Đó là bít đ u tiên c a  ấ dãy (bít n ng nh t ­ Msb). ấ

ể ặ ươ     + Msb = 0: D u D ng     + Msb = 1: D u Âmấ ề ấ

ế ị

ị i xác đ nh giá tr

ế

Ki n trúc máy tính 2

­ 26

ư ậ Nh  v y, n u chi u dài dãy bít là 8 thì bít đ u  ể tiên đ  xác đ nh d u, 7 bít còn l ố s  nguyên?  ỹ ậ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Ví d :ụ

ở ễ ể ượ 0000 c bi u di n b i dãy bít

ắ ể ể ả ả

ế

Ki n trúc máy tính 2

­ 27

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

S  ố +13 đ 1101. ượ ậ ố ­13 đ    V y s   ả ph i là dãy bít  Nguyên t c đ  bi u di n s  âm trong máy  tính: ph i tho  mãn đi u ki n sau ố ư ế ễ c bi u di n nh  th  nào, có  1000 1101 hay không? ễ ố ệ ề ố ươ ị ị S  Âm (nh  phân) + S  D ng (nh  phân) = 0

s  s

ả ử ố ­13 đ

c bi u di n b i dãy bít

ượ ộ

1000  ễ ố +13

ể  Gi ớ 1101, ta đem nó c ng v i dãy bít bi u di n s   ể ể đ  ki m tra:

0000 1101 +  1000 1101     1001 1010

≠  0

ư ậ

ượ

c khác 0, nh  v y đây  ầ

ấ ổ  Ta th y t ng thu đ ả không ph i là dãy bít c n tìm

ế

Ki n trúc máy tính 2

­ 28

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ố ố

ế

Quy t c tìm s  đ i:     Cho 1 s  nguyên A. Gi

ể ả ử  s  đã bi ố

ố ủ ằ ả

ấ ố ằ ố

ế

Ki n trúc máy tính 2

­ 29

ượ ể ễ c chính là dãy bít bi u di n

ố t dãy bít  ể ễ bi u di n A, khi đó mu n tìm dãy bít bi u  ư ễ ố di n s  ­A ta làm nh  sau: ướ B c 1: Tìm s  bù 1 c a A b ng cách đ o  ấ ả t t c  các bít.  ướ  B c 2: Tìm s  bù 2 (b ng cách l y s  bù  ộ 1 c ng v i 1)  ố    S  bù 2 tìm đ s  ­Aố .  ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Ví d  1:ụ

Xét A = 13 = 0000 1101

ố     Khi đó s  bù 1 c a

ủ A là 1111 0010

ấ ố

Tìm s  bù 2 (b ng cách l y s  bù 1 c ng v i 1)

1111 0010 +                 1     1111 0011

Nh   v y

ư ậ ­A = 1111 0011

ế

Ki n trúc máy tính 2

­ 30

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ạ ằ

Ki m tra l

ộ i b ng cách c ng 2 dãy bít:

0000 1101 +  1111 0011  1 0000 0000

ượ ằ

c b ng 0 ch ng t

ta đã tìm

ả ế  K t qu  thu đ đúng

ế

Ki n trúc máy tính 2

­ 31

V y ậ ­13 = 1111 0011b  ậ ỹ ộ B  môn K  thu t máy tính & m ng –    Khoa CNTT

Ch ng minh:

S  ố ­1 trong máy tính  ng v i m t dãy toàn bít 1:

Vì:

(cid:0)

Nên:

ộ                                ­1 = 1111 1111b (cid:0) AA A

A

(cid:0) (cid:0)

Suy ra:

AA

1(cid:0) 1(cid:0) 1(cid:0)

ế

Ki n trúc máy tính 2

­ 32

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

(cid:0) (cid:0)

Ví d  2:ụ

ộ ị  Cho m t dãy bít nh  phân sau đây (16 bit):

ễ ố ể ị 1110 0111 0001 1000b    Hãy xác đ nh xem nó bi u di n s  nguyên

ế

Ki n trúc máy tính 2

­ 33

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

nào?

Gi

i:ả

ườ

ng h p x y ra:

ọ ố G i s  nguyên đó là N. Có 2 tr ế

ợ ố

ả N u đây là s  nguyên không d u:

N = 1x215 + 1x214 + 1x213 + 1x210 + 1x 29 + 1x28 + 1x24 + 1x23     = 32768 + 16384 +8192 + 1024 + 512 + 256 + 16 + 8     = 59160

ế

N u đây là s  nguyên có d u:

ố ươ

ế

Ki n trúc máy tính 2

­ 34

ẽ ả ể ơ ố     Vì Msb = 1 nên N là s  âm. Đ  đ n gi n ta s   ướ ừ  đó suy ra N.  c, t ng) tr xác đ nh –N (s  d ạ ộ ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

2 c a ủ N

ả 0001 1000 1110 0111

ướ ố ướ

Tìm –N băng cách tìm s  bù  B c 1: đ o bít S  bù 1 =  B c 2: đem c ng v i

ớ 1

0001 1000 1110 0111 +                                   1     0001 1000 1110 1000

ế

Ki n trúc máy tính 2

­ 35

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

­N = 1x212 + 1x211 + 1x 27 + 1x26 + 1x25 + 1x23      = 4096 + 2048 + 128 + 64 + 32 + 8      = 6376

Ta tìm đ c ượ –N = 0001 1000 1110 1000b

ế

Ki n trúc máy tính 2

­ 36

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

V y ậ N = ­6376

trong máy

ể Bài 2.3 ­ Bi u di n kí t tính

ượ

cũng đ

ở c bi u di n b i các dãy bít

ị ầ

ộ ệ ố

ướ

c chung mang

theo b ng mã ASCII

ượ ử ụ

ể ể

ử ụ

ự  Các kí t nh  phân  ả  C n ph i có m t h  th ng quy  ố ế tính qu c t   ứ  Cách th c mã hoá kí t (American Standard Code for Information  ấ Interchange) đ th ng này s  d ng 8 bít đ  bi u di n 1 kí t

ổ ế ệ c s  d ng ph  bi n nh t. H   ễ

ế

Ki n trúc máy tính 2

­ 37

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

B ng mã ASCII

Kí tự A

ị Mã nh  phân 0100 0001

Mã hex 41h

B

0100 0010

42h

...

...

...

a

0110 0001

61h

b

0110 0010

62h

...

...

...

1

0011 0001

31h

2

0011 0010

32h

...

...

...

*

0010 1010

2Ah

+

2Bh

...

...

...

0010 1011 ạ

ế

Ki n trúc máy tính 2

­ 38

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ổ ứ

Bài 2.4 ­ T  ch c CPU

ầ ủ ộ ử

ế

Ki n trúc máy tính 2

­ 39

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ọ ộ Các thành ph n chính c a b  vi x  lý  ử  H  vi x  lý Intel x86  ử  B  vi x  lý 8086

ắ ạ ề

ố ử

Nh c l

i v  kh i x  lý

Nh pậ X  lýử Xu tấ

ế

Ki n trúc máy tính 2

­ 40

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ữ L u trư

ố ử Kh i x  lý

ấ ủ ầ ộ Đây là ph n quan tr ng nh t c a m t máy tính,

ộ ộ

ọ ậ ộ bao g m 3 b  ph n chính:  ử  B  vi x  lý – CPU ớ  B  nh  trong ạ  Các m ch vào ra

ệ ố ẫ

ệ ố ữ ế ậ

ế

Ki n trúc máy tính 2

­ 41

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ố Ngoài ra còn có h  th ng các dây d n, cáp n i  ộ ể đ  liên k t gi a các b  ph n trên (h  th ng  Bus)

ố ử

ơ ồ

S  đ  kh i x  lý:

Bus

ớ B  nh  trong

M ch vào/ra

ế

Ki n trúc máy tính 2

­ 42

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

CPU

ố ử

ầ ủ Các thành ph n c a kh i x  lý

ử ủ ể

ạ ữ ữ ệ

ả ơ ư

ế

ộ  B  vi x  lý – CPU (Central Processing Unit): Là  ộ b  não c a máy tính, nó x  lý các thông tin và  ề ạ ộ đi u khi n m i ho t đ ng c a máy tính. ớ ộ ớ ộ  B  nh  trong: Là b  nh  có kh  năng liên l c  ử ớ ộ ự ế tr c ti p v i b  vi x  lý,là  n i l u tr  d  li u  ử ụ ụ ph c v  cho quá trình x  lý. ạ ể ề  Các m ch vào ra: Đ  đi u khi n vi c giao ti p  ế ị ớ t b  ngo i vi. v i thi

ế

Ki n trúc máy tính 2

­ 43

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ủ ộ

ử Các thành ph n chính c a b  vi x   lý

ố ố ọ

ơ

ế

Ki n trúc máy tính 2

­ 44

ALU (Arithmetic & Logic Unit): Kh i s  h c và  ố ọ ệ logic. Đây là n i th c hi n các phép tính s  h c  (c ng, tr , nhân, chia...) và các phép logic (Not,  And, Or...).  ớ  Các thanh ghi: Cung c p kh  năng nh  bên trong  ộ ứ ượ c m t  CPU. M i thanh ghi có kh  năng ch a đ ộ ộ ữ ệ dãy các bít d  li u (đ  dài còn ph  thu c vao  ạ ừ t ng lo i CPU).  ộ ộ ệ ố H  th ng n i ghép bên trong CPU (Bus n i b ):  Cho phép liên l c gi a các b  ph n bên trong  CPU.  ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

H  vi x  lý Intel x86

ề ơ ả

ư

ư

ữ ệ

ẻ ơ ấ

ơ

ế

ố ộ ồ

ế

Ki n trúc máy tính 2

­ 45

ộ ộ  B  vi x  lý đ u tiên thu c dòng này là 8086, ra  ử ờ đ i năm 1978, là b  vi x  lý 16 bit đ u tiên c a  Intel.  8088 ra đ i sau 8086, v  c  b n nó cũng gi ng  ỉ nh  8086, nh ng có giá thành r  h n vì ch  có  ố ộ bus d  li u 8 bít, và t c đ  cũng th p h n  ử Ti p theo là các b  vi x  lý 80186, 80286, 80386,  80486, 80586 (Pentium), PII, PIII, P4, Core Duo...  ở ẽ ơ ộ  Các b  vi x  lý ngày càng tr  nên m nh m  h n  ồ ơ ớ ớ ộ v i đ  dài các thanh ghi l n h n, t c đ  đ ng h   ơ ề ộ ơ cao h n, b  r ng bus l n h n...  ỹ ậ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ử B  vi x  lý 8086

ấ ả ể

ầ ế ộ c các b

ươ ẫ

ế

Ki n trúc máy tính 2

­ 46

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

t cho 8086 v n có  ạ ơ ệ ng trình vi ộ ử ễ ơ  8086 có c u trúc đ n gi n, d  tìm hi u  ề ượ ủ ệ  H u h t các l nh c a nó đ u đ ế ừ ử vi x  lý sau này k  th a ế  Các ch ể ạ th  ch y trên các b  vi x  lý hi n đ i h n

ơ ả ủ

14 thanh ghi c  b n c a 8086  (M i thanh ghi dài 16 bít)

ữ ệ

Nhóm các thanh ghi d  li u (Thanh ghi công d ng  chung):  AX

AH

AL

BX

BH

BL

CX

CH

CL

DL

DX

ế

Ki n trúc máy tính 2

­ 47

DH ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Nhóm các thanh ghi đo n: ạ

CS

DS

SS

ES

ế

Ki n trúc máy tính 2

­ 48

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ỉ ố

Nhóm các thanh ghi con tr  và ch  s :

SI

DI

SP

BP

IP ộ

ế

Ki n trúc máy tính 2

­ 49

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ờ ạ

Thanh ghi tr ng thái (Thanh ghi c  ­  Flag):

ể ạ ị

ế

Ki n trúc máy tính 2

­ 50

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ộ ạ ệ ả Thanh ghi này dùng đ  xác đ nh tr ng thái  ờ ỗ ủ ộ c a b  vi x  lý. M i bít trên thanh ghi c   ộ có m t tên riêng, có m t công d ng riêng  trong vi c ph n ánh tr ng thái

ổ ứ

Bài 2.5 ­ T  ch c B  nh  trong

ế

Ki n trúc máy tính 2

­ 51

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ị ị ự ớ ROM và RAM ỉ ậ  Đ a ch  v t lý ỉ  Đ a ch  logic  S  phân chia không gian nh

ộ B  nh  trong có 2 lo i: ROM và  RAM

ậ ể ọ

ữ ệ ẽ ấ

ắ t máy.

ữ ệ ổ ộ t máy thì d  li u trên ROM v n ẫ

ế

Ki n trúc máy tính 2

­ 52

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ữ ớ  RAM (Random Access Memory): B  nh   ữ ẫ truy c p ng u nhiên, có th  đ c và ghi d   ệ RAM s  m t đi  li u lên đó. D  li u trên  khi t ớ ỉ  ROM (Read Only Memory): B  nh  ch   ủ ọ đ c, không th  thay đ i n i dung c a nó.  Khi t ượ đ nguyên. ắ c gi

ỉ ậ

Đ a ch  v t lý

ượ ấ ạ ở ộ c c u t o b i

ộ ớ nh  t o thành m t ô nh  (1

ầ ự ế c s p x p tu n t ố ầ ượ ừ t t ượ ọ ộ  trong b    0, 1, 2...  ị c g i là đ a

ế

Ki n trúc máy tính 2

­ 53

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

c đánh s  l n l ớ ư ớ ủ ớ ủ  B  nh  c a máy tính đ ầ ử ớ  nh  1 bit.  các ph n t ầ ử ớ ạ ứ  C  8 ph n t byte).  ớ ượ ắ  Các ô nh  đ ượ ớ nh  và đ ố ệ S  hi u các ô nh  nh  trên đ ỉ ậ ch  v t lý c a ô nh .

ổ ứ ộ

ệ ố

ớ T  ch c b  nh  trong h  th ng  8086

ị ử ng dây đ a

ị ể

ộ (đ a ch  các ô nh  là m t dãy dài 20 bít)

ể ớ ị

ế

Ki n trúc máy tính 2

­ 54

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ườ ử ụ ộ  B  vi x  lý 8086 s  d ng 20 đ ạ ớ ộ ỉ ỉ ch  (bus đ a ch  20 bít) đ  liên l c v i b   nh  ớ ỉ ị ố ượ  S  l ỉ ch  là 2 ớ ự ạ ng c c đ i các ô nh  có th  đánh đ a  20 (= 1MB)

ỉ ậ

Đ a ch  v t lý c a các ô nh

1111...1111111

FFFFFh

...

ỉ ạ

0000...0000011

Đ a ch  d ng hex:

00003h

0000...0000010

00002h

0000...0000001

00001h

0000...0000000

1 ô nhớ

00000h

1 ô nhớ

(20 bít)

ế

Ki n trúc máy tính 2

­ 55

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ỉ Đ a ch  logic

c đ a ch  dài 20 bít. Do

ườ ỉ ộ

ỉ ị ọ ươ ng  ỉ

ỗ ạ ố

t là 0, 1, 2,...

ượ ớ ố c đánh s

ế

Ki n trúc máy tính 2

­ 56

t là 0, 1, 2,... (c c đ i là 65535) ậ

ủ  Các thanh ghi c a 8086 ch  dài 16 bít,  ể ứ ượ ị không th  ch a đ ả ử ụ i ta ph i s  d ng m t ph đó ng ị pháp đánh đ a ch  khác, g i là đ a ch  logic  ộ ừ ớ ượ c chia thành t ng đo n, m i   B  nh  đ ề ạ đo n có chi u dài t i đa 64 KB, các đo n  ố ầ ượ ượ c đánh s  l n l đ ạ  Các ô nh  trong đo n cũng đ ự ạ ầ ượ l n l ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ỉ Đ a ch  logic

ầ ớ

ớ ẽ ồ ủ

ử ụ ỉ

ạ ạ

ị  Đ a ch  logic c a m t ô nh  s  g m 2 ph n: ạ ố ệ    S  hi u đo n (segment) và v  trí c a ô nh  trong  ạ đo n (offset) ể ườ  Ng i ta s  d ng 16 bít đ  đánh s  các đo n,  ẽ ằ ị ư ậ nh  v y đ a ch  segment s  n m trong ph m vi  ế ừ  0000h đ n FFFFh t ử ụ ườ i ta cũng s  d ng 16 bít đ  đánh s  các ô  Ng ẽ ư ậ ạ ớ nh  trong đo n đo n, nh  v y đ a ch  offset s   ằ n m trong ph m vi t

ể ị ế  0000h đ n FFFFh,

ế

Ki n trúc máy tính 2

­ 57

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

Ví d :ụ

ị ớ ộ

ỉ ậ ị ị

ế

Ki n trúc máy tính 2

­ 58

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ỉ  M t ô nh  có đ a ch  segment:offset =  10A2:34B4h, hãy xác đ nh đ a ch  v t lý  ủ c a nó

Gi

i:ả ướ ươ

B c 1: D ch đ a ch  segment v  bên trái 4 bít  (t

ị ươ ng v i d ch 1 kí hi u hex).

ượ

ỉ ị ớ ị c: 10A20h

ng đ               Ta thu đ

ượ ở ướ

b

c

c 1 đem

ấ ướ  B c 2: L y giá tr  thu đ ớ ị ộ c ng v i đ a ch  offset:

10A20h +  34B4h

13ED4h

ủ  V y đ a ch  v t lý c a ô nh  đó là 13ED4h

ế

Ki n trúc máy tính 2

­ 59

ớ ỉ ậ ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT

S  phân chia không gian nh

ROM BIOS

F0000h

E0000h

D0000h

} Đ  dành

C0000h

B0000h

ớ ể

} B  nh  hi n th

A0000h

90000h

...

20000h

ớ ơ ở

} B  nh  c  s : 10 đo n (640 KB)

10000h

64 KB ậ

ế

Ki n trúc máy tính 2

­ 60

00000h ỹ ộ B  môn K  thu t máy tính & m ng –  Khoa CNTT

ế

ầ H t Ph n 2.1

ế

Ki n trúc máy tính 2

­ 61

ỹ B  môn K  thu t máy tính & m ng –  Khoa CNTT