Bài giảng hợp ngữ - Chương 1 pot - Pdf 19

Bài ging hp ng Chng I: Các khái nim c bn
5
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
1100 1101 0010 0001
MOV AH,2Ah
INT 21h
Ta thy các lnh máy tính bng các dãy bít 0, 1 rt dài và khó nh, còn lnh hp ng
thì ngn gn hn nhiu. Khi chy mt chng trình hp ng thì phi dch nó sang ngôn
ng máy.
Hc hp ng, không ch hc mt ngôn ng lp trình có tc  rt nhanh (hp ng là
ngôn ng lp trình có tc  nhanh nht) mà còn  nm bt c bn cht bên trong ca
máy tính, bit cách tác ng trc tip vào phn lõi ca máy tính.
1.2 Biu din s và kí t trong máy tính
1.2.1 Mt s hm
a) H thp phân (Decimal) - Hm c s 10
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
thp phân c biu din di dng tng các lu tha c s 10.
Ví d:
S 1998 trong h thp phân có th biu din nh sau:
(1998)
10
= 1x10

Trong hp ng, ngi ta kí hiu 1 s nh phân bng ch B hoc b  cui (vit tt ca
Binary).
Ví d:
Bài ging hp ng Chng I: Các khái nim c bn
6
(1101)
2
c kí hiu là: 1101B, hoc 1101b
c) H thp lc phân (Hexa Decimal) - Hm c s 16
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t ng 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 c biu din di dng tng các lu tha c
 16.
Ví d:
S 2B trong h thp lc phân có th biu din nh sau:
(2B)
16
= 2x16
1
+ Bx16
0
= (43)
10
Trong hp ng, ngi ta kí hiu 1 s thp lc phân bng ch H hoc h  cui (vit tt ca
Hexa Decimal).
Ví d:
(2B)
16
c kí hiu là: 2BH, hoc 2Bh
Chú ý: Kí hiu mt s thp lc phân trong chng trình hp ng phi luôn bt u bng

 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
15 F 1111
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
1.2.2 Biu din s nguyên trong máy tính
Do gii hn ca phn cng máy tính, d liu trong máy tính thng c biu din bi
các nhóm 8 bít (gi là Byte)

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
Gi s s -13 c biu din bi dãy bít 1000 1101, ta em nó cng vi dãy bít biu din
 +13  kim tra:
0000 1101
+ 1000 1101
1001 1010
 0
Ta thy tng thu c khác 0, nh vy ây không phi là dãy bít cn tìm
Quy tc tìm si: Cho 1 s nguyên A. Gi sã bi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:
c 1: Tìm s bù 1 ca A bng cách o tt c các bít.
Ví d: A = 0000 1101
Khi ó s bù 1 ca A là 1111 0010
c 2: Tìm s bù 2 (bng cách ly s bù 1 cng vi 1)
1111 0010
+ 1
1111 0011
 bù 2 tìm c (1111 0011) chính là dãy bít biu din s -A.
Bài ging hp ng Chng I: Các khái nim c bn
9
Ta th kim tra li bng cách cng 2 dãy bít:
0000 1101
+ 1111 0011
1 0000 0000

• 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
= 1x2
12
+ 1x2
11
+ 1x 2
7
+ 1x2
6
+ 1x2
5
+ 1x2
3
= 4096 + 2048 + 128 + 64 + 32 + 8
= 6376
y N = -6376
1.2.3 Biu din kí t trong máy tính
Khi s dng máy tính, ta không ch làm vic vi các con s mà còn phi làm vic vi
nhiu loi d liu khác nhau, trong ó có các kí t. Các kí t cng c biu din bi các
dãy bít nh phân, s biu din này mang tính cht quy c.

• 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)
 lýNhp Xut
u tr
Bài ging hp ng Chng I: Các khái nim c bn
11
1.3.2 B vi x lý - CPU
ây là trung tâm x lý ca máy tính. Mi b vi x lý c trang b mt h thng các
nh c bn bng ngôn ng nh phân (do nhà sn xut quy nh). Ngi lp trình có th
 dng các lnh này “ra lnh” cho máy tính thc hin u mình mun.
a) Các thành phn chính ca b vi x lý:
• 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 CPU. Mi thanh ghi có kh
ng cha c mt dãy các bít d liu ( dài còn ph thuc vao tng loi
CPU).
•  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) H vi x lý Intel x86

thao tác vi b nh. Có 4 thanh ghi 16 bít là CS, DS, ES, SS.
CS
DS
SS
ES
• Nhóm các thanh ghi con tr và ch s:
Các thanh ghi này dùng  cha a ch phân n (offset) ca các ô nh trong các
thao tác vi b nh. Có 5 thanh ghi 16 bit là SI, DI, SP, BP, IP.
SI
DI
SP
BP
IP
(Các khái nim va ch segment và offset s nói k hn  phn sau)
• Thanh ghi trng thái (Thanh ghi c - Flag):
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ó
t tên riêng, có mt công dng riêng trong vic phn ánh trng thái (s tìm hiu c th
trong chng 3).
Bài ging hp ng Chng I: Các khái nim c bn
13
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à 2
20

Ta thu c: 10A20h
c 2: Ly giá tr thu c  bc 1 em cng vi a ch offset:
Bài ging hp ng Chng I: Các khái nim c bn
14
10A20h
+ 34B4h
13ED4h
y a ch vt lý ca ô nhó là 13ED4h.
c) S phân chia không gian nh:
Không gian a ch 1MB (t 00000h n FFFFFh) thng c chia thành các vùng
nh theo chc nng s dng:
F0000h
ROM BIOS
E0000h
D0000h
C0000h
} dành
B0000h
A0000h
} B nh hin th
90000h

20000h
10000h
00000h 64 KB
} B nh c s: 10 n (640 KB)
Trong ó, 10 n u tiên (B nh c s - Base memory) dùng  np và chy các
ng dng ca hu hành DOS. Hai n a ch tip theo dành cho RAM trên v mch
màn hình. n cui cùng dành cho ROM BIOS.
BIOS (Base Input – Output System) là mt phn mm u khin các thao tác vào ra c


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status