Ế
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/CNTTwru 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