Bài giảng hợp ngữ - Chương 1
lượt xem 20
download
Tài liệu tham khảo Bài giảng hợp ngữ gồm 9 chương - Chương 1 Các khái niệm cơ bản
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng hợp ngữ - Chương 1
- Bài gi ng h p ng Ch ng I: Các khái ni m c b n CH NG I: CÁC KHÁI NI M C BN 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 t r 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 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 t hô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 t h a c s 10. Ví d : S 1998 trong h th p phân có th bi u di n nh sau: (1998)10 = 1x103 + 9x102 + 9x101 + 8x100 Trong h p ng , ng i ta kí hi u 1 s th p phân b ng ch D ho c d cu i (vi t t t c a Decimal), c ng có th không c n vi t các ch ó. Ví d : (1998)10 c kí hi u là: 1998D, 1998d, ho c n gi n là 1998 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 t h 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 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 : 5
- Bài gi ng h p ng Ch ng I: Các khái ni m c b n (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 = 2x161 + Bx160 = (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 . Ví d s (FA)10 c kí hi u là 0FAh (ch không kí hi u là FAh). H t h p l c phân (g i t t là h hex) là h m c s d ng nhi u nh t trong h p ng , 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 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 d0 3 2 d1 1 2 1 0 Vi t các s d ng ct d i lên ta thu c s nh p hân 1101b. • Chuy n t h th p phân v h th p l c phân: Quy t c chuy n: em s th p phân chia liên li p cho 16, 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 th p l c phân t ng ng. Ví d : Chuy n s th p phân 43 sang h th p l c phân. 43 16 11 2 16 d2 0 Vi t các s d ng ct d i lên ta thu c s th p l c phân 2Bh (chú ý là 11d = 0Bh). 6
- Bài gi ng h p ng Ch ng I: Các khái ni m c b n • Chuy n i gi a h nh p hân và h t h p l c phân: Vi c chuy n i gi a 2 h m này khá d dàng do m i kí hi u trong h hex l i t ng ng v i 4 kí hi u nh p hân. Xem b ng chuy n i sau: 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) 1 byte = 8 bit 2 byte = 16 bit = 1 word 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ì l ng thông tin bi u di n c càng l n. N u g i N là s bít c a dãy thì s kh n ng bi u di n = 2N. Xét m t dãy bít nh phân: 1 0 0 1 0 ... 00 msb lsb 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 d i 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 d i 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 t hì 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 d i n s âm trong máy tính: ph i tho mãn u k i 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. 8
- Bài gi ng h p ng Ch ng I: Các khái ni m c b n 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 t qu thu c b ng 0 ch ng t ta ã tìm úng (vì ang bi u di n s nguyên b ng m t dãy 8 bit nên s 1 trong k t qu trên có th lo i b - s gi i thích k h n trong ch ng sau). y -13 = 1111 0011b 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 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. Tuy nhiên, n u m i ng i, m i c quan, m i qu c gia l i t a ra quy c c a riêng mình thì s r t khó kh n cho vi c trao i thông tin. Nhu c u t ra là c n ph i có m t h th ng quy c chung mang tính qu c t . Cách th c mã hoá kí t c s d ng r ng rãi nh t trên các máy PC d a trên b ng mã ASCII (American Standard Code for Information Interchange). H t h ng này s d ng 8 bít bi u di n 1 kí t . 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) Hi n nay có r t nhi u b ng mã khác nhau c s d ng, ph bi n nh t là mã Unicode, i dài dãy bít có th thay i khá m m d o, và nó v n gi c s t ng thích v i mã ASCII truy n th ng. 1.3 T ch c c a máy tính 1.3.1 S h th ng máy tính Ng i ta th ng chia các b ph n c a máy tính làm 4 kh i sau: 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 t rong: 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 t h ng các dây d n, cáp n i liên k t gi a 3 b ph n trên (h t h ng Bus) 10
- Bài gi ng h p ng Ch ng I: Các khái ni m c b n Bus nh trong CPU ch vào/ra trong 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 t h 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 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 I ntel. 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 • Nhóm các thanh ghi n: Các thanh ghi này dùng l u tr a ch c a các n b nh (segment) trong các 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 p hân n (offset) c a các ô nh t rong 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 p h 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 t h trong ch ng 3). 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 t rong h t h 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) Các thanh ghi c a b vi x lý 8086 ch dài 16 bít, chúng không th ch a c a ch dài 20 bít. Do ó ng i ta ph i s d ng m t ph ng pháp ánh a ch khác, g i là a ch logic. 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 t rong 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 o ffset). 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 o ffset s n m trong ph m vi t 0000h n FFFFh. Mu n xác nh a ch c a m t ô nh t a 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 t hu c b c 1 em c ng v i a ch o ffset: 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. 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 dành C0000h B0000h }B nh hi n th A0000h 90000h ... }B nh c s : 10 n (640 KB) 20000h 10000h 00000h 64 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 c h 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 n c a máy tính. Nó c nhà s n xu t cài s n trong ROM và t ng thi hành khi b t máy tính. 14
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Kỹ thuật lập trình 2 - ĐH KTCN
121 p | 701 | 368
-
Giáo trình kỹ thuật vi xử lý tập 1 part 1
54 p | 593 | 224
-
KIẾN TRÚC MÁY TÍNH -NGÔN NGỮ CỦA MÁY TÍNH
61 p | 375 | 85
-
Bài giảng Tin học
353 p | 162 | 78
-
NGÔN NGỮ LẬP TRÌNH FORTRAN VÀ ỨNG DỤNG TRONG KHÍ TƯỢNG THỦY VĂN part 1
12 p | 269 | 55
-
Bài tập pascal : Lời giải, đáp án part 7
25 p | 176 | 52
-
Tài Liệu Lập Trình Hợp Ngữ ĐHQG Hà Nội
13 p | 179 | 51
-
BÀI 7.1: LẬP TRÌNH HỢP NGỮ
44 p | 134 | 18
-
Lập trình iSO (Module 2) - TTTH ĐH KHTN
143 p | 87 | 11
-
Bài giảng hệ điều hành : QUẢN LÝ TIẾN TRÌNH part 2
11 p | 105 | 10
-
Định tuyến và lọc lưu lượng mạng - Part 1
11 p | 91 | 9
-
Giáo trình thực hành Lập trình hệ thống: Phần 1
23 p | 86 | 9
-
Bài giảng Bài 1: Giới thiệu về Scilab - ĐH Bách Khoa Hà Nội
34 p | 203 | 8
-
Bài giảng Kiến trúc máy tính: Phần 2 - Trường ĐH Công nghệ Giao thông vận tải
100 p | 23 | 8
-
Chapter 5: Mảng và biến con trỏ
18 p | 96 | 5
-
Bài giảng Ngôn ngữ lập trình nâng cao: Bài 2.1 - Nguyễn Xuân Hùng
33 p | 61 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn