Professional Documents
Culture Documents
CH Ngi:Cáckháinimc BN 1.1 M U
CH Ngi:Cáckháinimc BN 1.1 M U
CH NG I: CÁC KHÁI NI M C B N
1.1 M u
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.
Máy tính ch có kh n ng hi u c các tín hi u 0, 1 d i d ng n ho c t , g i là tín
hi u nh phân (ngôn ng nh phân còn c g i là ngôn ng máy). Các l nh c a h p ng
th c ch t là d ng kí hi u c a ngôn ng máy: h p ng 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. Ví d :
nh ngôn ng máy nh h p ng
1011 0100 0010 1010 MOV AH,2Ah
1100 1101 0010 0001 INT 21h
b) H nh phân (Binary) - H mc s 2
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
c bi u di n d i d ng t ng các lu th a c s 2.
Ví d :
S 1101 trong h nh phân có th bi u di n nh sau:
(1101)2 = 1x23 + 1x22 + 0x21 + 1x20
= (13)10
5
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
d) Chuy n i gi a các h m
• Chuy n t h th p phân v h nh phân:
Quy t c chuy n: em s th p phân chia liên li p cho 2, cho t i khi th ng s b ng 0 thì
ng l i. Vi t các s d ng c t d i lên ta thu c s nh phân t ng ng.
Ví d : Chuy n s th p phân 13 sang h nh phân.
13 2
1 6 2
d 0 3 2
d 1 1 2
1 0
6
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
Ví d 1:
Chuy n i 2Ah sang h nh phân.
Tra b ng ta th y: 2h = 0010b, Ah = 1010b
y 2Ah = 00101010b
Ví d 2:
Chuy n i 10110110b sang h hex.
u tiên ta chia dãy bít nh phân thành t ng nhóm 4 bít, thu c 2 nhóm sau: 0110 và
1011.
Tra b ng ta th y: 0110b = 6h, 1011b = Bh
y 10110110b = B6h
7
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
Bít u tiên (bên trái) c g i là bít n ng nh t hay bít cao nh t c a dãy (Most
Significant Bit).
Bít cu i cùng (bên ph i) c g i là bít nh nh t hay bít th p nh t c a dãy (Least
Significant Bit).
a) S nguyên không d u:
M t s nguyên không d u (s không âm) c bi u di n b i 1 dãy bít nh phân nh ta
ã xét ph n tr c (ph n h m nh phân). ây ta ch nh n m nh thêm v chi u dài
a dãy bít: dài dãy bít khi bi u di n trong máy tính luôn là b i s c a 8.
Ví d : Bi u di n s nguyên 13 trong máy tính.
ph n tr c ta ã bi 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 nguyên này:
+ S nguyên d ng byte (8 bit): 00001101
+ S nguyên d ng word (16 bit): 00000000 00001101
b) S nguyên có d u:
i v i s nguyên có d u thì khi bi u di n d i d ng nh phân ta ph i dành 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
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 i xác nh
giá tr s nguyên?
Ví d :
+13 c bi u di n b i dãy bít 0000 1101.
y s -13 c bi u di n nh th nào, có ph i là dãy bít 1000 1101 hay không?
Nguyên t c bi u di n s âm trong máy tính: ph i tho mãn u ki n sau
Âm (nh phân) + S D ng (nh phân) = 0
8
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
Bài toán ng c:
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 nào?
Gi i:
i s nguyên ó là N.
Có 2 tr ng h p x y ra:
• 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
• u ây là s nguyên có d u:
Vì Msb = 1 nên N là s âm. n gi n ta s xác nh –N (s d ng) tr c, t ó suy ra
N.
Tìm –N b ng cách tìm s bù 2 c a N
c 1: o bít
bù 1 = 0001 1000 1110 0111
c 2: em c ng v i 1
0001 1000 1110 0111
+ 1
0001 1000 1110 1000
Ta tìm c –N = 0001 1000 1110 1000b
= 1x212 + 1x211 + 1x 27 + 1x26 + 1x25 + 1x23
= 4096 + 2048 + 128 + 64 + 32 + 8
= 6376
y N = -6376
9
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
Ví d :
Kí t Mã nh phân Mã hex
A 0100 0001 41h
B 0100 0010 42h
... ... ...
a 0110 0001 61h
b 0110 0010 62h
... ... ...
1 0011 0001 31h
2 0011 0010 32h
... ... ...
* 0010 1010 2Ah
+ 0010 1011 2Bh
... ... ...
(B ng mã ASCII y xin xem ph n ph l c 2)
Nh p lý Xu t
u tr
Trong ó:
• Các kh i Nh p/Xu t d li u: bao g m các thi t b nh bàn phím, chu t, màn
hình...
• Kh i l u tr : bao g m các a c ng, a m m...
• Kh i x lý: ây là ph n quan tr ng nh t c a m t máy tính, ta s t p trung xem xét
nó.
t h th ng x lý c a máy tính bao g m 3 b ph n chính:
+ 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à 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: u khi n vi c giao ti p v i thi t b ngo i vi.
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 3 b ph n trên (h th ng
Bus)
10
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
Bus
b) H vi x lý Intel x86
Có nhi u hãng khác nhau s n xu t b vi x lý cho máy tính. Ta s t p trung nghiên
u các b vi x lý thu c dòng x86 do hãng Intel ch t o.
B vi x lý u tiên thu c dòng này là 8086. Nó c s n xu t n m 1978, là b vi x
lý 16 bit u tiên c a Intel. 8088 ra i sau 8086 m t chút, v c b n nó c ng có c u t o
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 sau ó là s ra i c a các b vi x lý 80186, 80286, 80386, 80486, 80586
(Pentium), PII, PIII, P4...Càng v sau thì các b vi x lý l i càng tr nên m nh m h n
i dài các thanh ghi dài h n, t c ng h cao h n, b r ng bus l n h n...
c) B vi x lý 8086
Ta ch n 8086 nghiên c u vì nó có c u trúc n gi n, d tìm hi u. Và u quan
tr ng là h u h t các l nh c a nó u c các b vi x lý sau này k th a, nên các
ch ng trình vi t cho 8086 v n có th áp d ng trên các b vi x lý hi n i h n. Ta s
xem xét 14 thanh ghi c b n c a 8086, m i thanh ghi có chi u dài 16 bit.
• Nhóm các thanh ghi d li u (Thanh ghi công d ng chung):
Các thanh ghi này c s d ng khi th c hi n thao tác v i d li u. Có 4 thanh ghi 16
bit c t tên là AX, BX, CX, DX. M i thanh ghi l i c chia làm 2 thanh ghi 8 bit
i các tên t ng ng nh trên hình v :
AX AH AL
BX BH BL
11
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
CX CH CL
DX DH DL
CS
DS
SS
ES
SI
DI
SP
BP
IP
12
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
1.3.3 T ch c b nh trong
a) a ch v t lý:
B nh c a máy tính c c u t o b i các ph n t nh 1 bit. C 8 ph n t nh t o
thành m t ô nh (1 byte). Các ô nh c s p x p tu n t trong b nh và c ánh s
n l t t 0, 1, 2... S hi u các ô nh nh trên c g i là a ch v t lý c a ô nh .
Ta s xem xét mô hình t ch c b nh trong h th ng x lý 8086. B vi x lý 8086 s
ng 20 ng dây a ch (bus a ch 20 bít) liên l c v i b nh . Nói cách khác, a
ch các ô nh là m t dãy dài 20 bít. Nh v y s l ng c c i các ô nh có th ánh a
ch là 220 (= 1MB).
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)
b) a ch logic:
Theo ph ng pháp này, b nh c chia thành t ng n, m i n có chi u dài t i
a 64 KB. Các n c ánh s l n l t là 0, 1, 2,... S hi u n nh v y g i là a
ch n (hay a ch segment).
Ng i ta s d ng 16 bít ánh s các n, nh v y a ch segment s n m trong ph m
vi t 0000h n FFFFh.
Các ô nh trong n c ng c ánh s l n l t là 0, 1, 2,... S hi u ô nh nh v y
i là a ch t ng i (hay a ch offset). M t n nh có kích th c t i a 64 KB,
c là có t i a 65536 ô nh .
Ng i ta c ng dùng 16 bít ánh s các ô nh , nh v y a ch offset s n m trong
ph m vi t 0000h n FFFFh.
Mu n xác nh a ch c a m t ô nh ta ph i bi t hai thông tin: ô nh ó thu c n
nào (segment) và v trí c a ô nh trong n (offset). C p a ch segment:offset c
i là a ch logic.
Ví d :
t ô nh có a ch segment:offset = 10A2:34B4h, hãy xác nh a ch v t lý c a nó.
Gi i:
c 1: D ch a ch segment v bên trái 4 bít (t ng ng v i d ch 1 kí hi u hex).
Ta thu c: 10A20h
c 2: L y giá tr thu c b c 1 em c ng v i a ch offset:
13
Bài gi ng h p ng Ch ng I: Các khái ni m c b n
10A20h
+ 34B4h
13ED4h
y a ch v t lý c a ô nh ó là 13ED4h.
B0000h
A0000h }B nh hi n th
90000h
...
20000h }B nh c s : 10 n (640 KB)
10000h
00000h 64 KB
14