Chng 4 M MY Computer Codes Ni Dung


















































- Slides: 50
Chương 4 MÃ MÁY Computer Codes
Nội Dung v v v Dữ liệu máy Mã máy Các loại mã máy Trình tự sắp xếp Câu hỏi và Bài tập 1
Dữ liệu máy (Computer data) n n n Dữ liệu số (Numeric data): Chỉ bao gồm các chữ số 0, 1, 2, 3, …. , 9. Dữ liệu chữ (Alphabetic data): Bao gồm các chữ cái từ A, B, C, …. , Z (cả cữ hoa lẫn chữ thường) và ký tự khoảng trắng. Dữ liệu chữ và số (Alphanumeric data): Một chuỗi các ký hiệu, trong đó mỗi một ký hiệu có thể là một trong các chữ cái A, B, …. , Z hoặc là 1 trong các số 0, 1, 2, …, 9, hoặc 1 ký tự đặc biệt như + - * / , . = ( ) etc 2
Mã Máy (Computer codes) n n n Mã máy được sử dụng để biểu diễn dữ liệu bên trong máy tính. Khi máy tính sử dụng các số nhị phân để biểu diễn dữ liệu bên trong máy tính, mã máy sẽ sử dụng các kiểu mã hóa nhị phân. Trong mã hóa nhị phân, mỗi ký hiệu xuất hiện trong dữ liệu được biểu diễn bởi một nhóm các bit. Nhóm các bit sử dụng để biểu diễn 1 ký hiệu được gọi là 1 byte, (1 byte = 8 bits). 3
Các Loại Mã Máy n n BCD : Binary Coded Decimal (6 bits) EBCDIC: Extended Binary-Coded decimal Interchange Code (8 bits) n n Zoned and Packed Decimal numbers ASCII 4
Mã BCD – Binary Coded Decimal n n Mã Binary Coded Decimal (BCD) là một mã ra đời sớm nhất. Được dựa trên ý tưởng của việc chuyển mỗi 1 số trong 1 số thập phân sang số nhị phân tương ứng. Mỗi 1 số thập phân được mô tả trong BCD gồm 4 bits. Ví dụ: 42(10) = 0100 0010 hay 01000010 trong BCD 4 2 5
Mã BCD – Binary Coded Decimal Ký số thập phân BCD tương đương 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 6 BCD tương ứng với các ký số thập phân Mã BCD phải được viết đủ 4 bit và sự tương ứng chỉ được áp dụng cho số thập phân từ 0 đến 9, nên số nhị phân từ 1010 (= 1010) , 1011 (= 1110) , 1100 (=1210), 1101 (= 1310), 1110 (= 1410) , 1111 (= 1510) của số nhị phân 4 bit không phải là mã BCD.
Mã BCD – Binary Coded Decimal n n 7 Vậy các số thập phân có giá trị từ 10 đến 15 được biểu diễn như thế nào trong BCD? ? ? Ví dụ: 10(10) = 0001 0000 hay 00010000 trong BCD 1 0 15(10) = 0001 1 0101 hay 00010101 trong BCD 5
Mã BCD – Binary Coded Decimal n n n Thay vì sử dụng 4 -bits cho 16 (24)ký tự, người thiết kế máy tính thường sử dụng 6 bits để mô tả mã BCD. Trong 6 -bits mã BCD, 4 bits cho mã BCD, 2 bits còn lại được thêm vào là mã vùng. Mô tả 64(26) ký tự khác nhau bao gồm các số(0. . 9), chữ cái (A. . Z) và các ký tự đặc biệt. 8
9 Mã BCD – Binary Coded Decimal Vùng (zone) Ký số (Digit) Biểu diễn hệ bát phân Octal A 11 0001 61 62 B 11 0010 62 0011 63 C 11 0011 63 11 0100 64 D 11 0100 64 E 11 0101 65 F 11 0110 66 G 11 0111 67 H 11 1000 70 I 11 1001 71 J 10 0001 41 K 10 0010 42 L 10 0011 43 Ký tự Mã BCD Vùng (zone) Ký số (Digit) Biểu diễn hệ bát phân Octal A 11 0001 61 B 11 0010 C 11 D Ký tự Mã BCD
Mã BCD – Binary Coded Decimal Ký tự Mã BCD Vùng(Zone) Ký số(Digit) Biểu diễn hệ bát phân (Octal) A 11 0001 61 B 11 0010 62 C 11 0011 63 D 11 0100 64 E 11 0101 65 F 11 0110 66 G 11 0111 67 H 11 1000 70 I 11 1001 71 J 10 0001 41 K 10 0010 42 L 10 0011 43 10
Mã BCD – Binary Coded Decimal n Ví dụ 1: Biểu diễn số nhị phân cho từ BASE trong BCD – B = 110010 trong hệ đếm nhị phân BCD – A = 110001 trong hệ đếm nhị phân BCD – S = 010010 trong hệ đếm nhị phân BCD – E = 110101 trong hệ đếm nhị phân BCD Vì vậy, các chữ số nhị phân biểu diễn chữ Base 110010 110001 010010 110101 B A S E 11
Mã BCD – Binary Coded Decimal n Ví dụ 2: Dùng hệ bát phân, biểu diễn mã BCD cho từ DIGIT Giải pháp: – D = 64 trong hệ đếm bát phân BCD – I = 71 trong hệ đếm bát phân BCD – G = 67 trong hệ đếm bát phân BCD – I = 71 trong hệ đếm bát phân BCD – T = 23 trong hệ đếm bát phân BCD Như vậy mã hóa BCD cho từ DIGIT trong hệ bát phân sẽ là: 64 D 71 I 67 G 71 I 23 T 12
Bài tập - Mã BCD – Binary Coded Decimal 1. Hãy chuyển đổi các số dưới đây sang mã BCD dạng 4 -bit: (a) 2510 (c) 12810 (b) 6410 (d) 102410 2. Sử dụng ký hiệu nhị phân, liệt kê mã BCD cho các từ sau: (a) BIT (c) CODE (b) BYTE (d) ZERO 3. Sử dụng ký hiệu bát phân, liệt kê mã BCD cho các từ sau: (a) COMPUTER (c) VIDEO (b) INPUT (d) OUTPUT 13
14 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code n n n EBCDIC dùng một mã 8 bit cho mỗi kí tự (thêm 2 bit vào mã vùng để mở rộng thêm vùng nhớ). Được chia thành 2 nhóm 4 -bits, mỗi nhóm biểu diễn 1 số thập lục phân, nhóm đầu biểu diễn mã vùng và nhóm kế tiếp là số. Có thể biểu diễn được 256 (28) kí tự khác nhau. Mã EBCDIC được dùng trong các hệ thống Mainframe IBM và những hệ máy tương đương khác. Tín hiệu điện tử có khả năng chuyển đổi ký tự từ dạng ASCII sang EBCDIC và ngược lại. Chúng ta cũng có thể có được các giá trị chuyển đổi này thông qua các chương trình máy tính.
15 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code Mã EBCDIC Kí tự Vùng(zone) Ký số(Digit) Biểu diễn hệ thập lục phân (Hexa) A 1100 0001 C 1 B 1100 0010 C 2 C 1100 0011 C 3 D 1100 0100 C 4 E 1100 0101 C 5 F 1100 0110 C 6 G 1100 0111 C 7 H 1100 1000 C 8 I 1100 1001 C 9 J 1101 0001 D 1 K 1101 0010 D 2 L 1101 0011 D 3
16 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code Mã EBCDIC Kí tự Vùng(Zone) Ký số(Digit) Biểu diễn hệ thập lục phân (Hexa) A 1100 0001 C 1 B 1100 0010 C 2 C 1100 0011 C 3 D 1100 0100 C 4 E 1100 0101 C 5 F 1100 0110 C 6 G 1100 0111 C 7 H 1100 1000 C 8 I 1100 1001 C 9 J 1101 0001 D 1 K 1101 0010 D 2 L 1101 0011 D 3
17 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code Mã EBCDIC Kí tự Vùng(Zone) Ký số(Digit) Biểu diễn hệ thập lục phân (Hexa) A 1100 0001 C 1 B 1100 0010 C 2 C 1100 0011 C 3 D 1100 0100 C 4 E 1100 0101 C 5 F 1100 0110 C 6 G 1100 0111 C 7 H 1100 1000 C 8 I 1100 1001 C 9 J 1101 0001 D 1 K 1101 0010 D 2 L 1101 0011 D 3
18 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code n Ví dụ: Biểu diễn số nhị phân cho từ BASE trong EBCDID – B = 11000010 trong hệ đếm nhị phân EBCDID – A = 11000001 trong hệ đếm nhị phân EBCDID – S = 11100010 trong hệ đếm nhị phân EBCDID – E = 11000101 trong hệ đếm nhị phân EBCDID Vì vậy, các chữ số nhị phân biểu diễn chữ Base 11000010 11000001 11100010 B A S 11000101 E
19 Mã EBCDIC–Extended Binary Coded Decimal Interchange Code n Ví dụ: Biểu diễn số thập lục phân cho từ DIGIT trong EBCDID – D = C 4 trong hệ đếm thập lục phân EBCDID – I = C 9 trong hệ đếm thập lục phân EBCDID – G = C 7 trong hệ đếm thập lục phân EBCDID – T = E 3 trong hệ đếm thập lục phân EBCDID Như vậy mã EBCDID cho từ DIGIT trong hệ thập lục phân sẽ là: C 4 C 9 C 7 C 9 E 3 D I G I T
20 Bài tập - Mã EBCDIC–Extended Binary Coded Decimal Interchange Code 4. Sử dụng ký hiệu hệ nhị phân, hãy cho biết mã EBCDIC của các từ dưới đây: a) SUN c) CAT b) MOON d) DOG 5. Sử dụng ký hiệu hệ thập lục phân, hãy cho biết mã EBCDIC của các từ dưới đây : a) PROGRAM c) BYTE b) OUTPUT d) OCTAL
Zoned and Packed Decimal Numbers Mã Zoned n Dùng để biểu diễn các số dương, âm hay không dấu. n Ký hiệu để biểu hiện cho số hệ thập lục phân dương là C (+), hệ thập lục phân âm là D (-), và hệ thập lục phân không dấu là F. Giá trị số 345 +345 -345 EBCDIC F 3 F 4 F 5 F 3 F 4 C 5 F 3 F 4 D 5 Dấu hiệu chỉ báo F cho không dấu C cho số dương D cho số âm Giá trị số ở EBCDIC trong hệ đếm thập lục phân 21
Zoned and Packed Decimal Numbers 22 Mã Packed n Phải chuyển dữ liệu từ Zoned thành dạng Packed theo các bước sau thì máy tính mới thực hiện được các phép toán số học. – Bước 1: Di chuyển ký hiệu dấu đến cực bên phải của số. – Bước 2: Tất cả các ký hiệu còn lại bị loại ra. Giá trị số Định dạng vùng Định dạng đóng gói 345 F 3 F 4 F 5 345 F +345 F 3 F 4 C 5 345 C -345 F 3 F 4 D 5 345 D 3456 F 3 F 4 F 5 F 6 03456 F Quá trình chuyển đổi dữ liệu thập phân thành dữ liệu đóng gói
Zoned and Packed Decimal Numbers Ví dụ: n Sử dụng hệ thống đếm nhị phân, mã hóa EBCDIC cho mẫu từ BIT. Bao nhiêu bytes được yêu cầu? n Giải pháp: – B= 1100 0010 trong hệ đếm nhị phân EBCDIC – I = 1100 1001 trong hệ đếm nhị phân EBCDIC – T = 1110 0011 trong hệ đếm nhị phân EBCDIC Vì vậy, mã EBCDIC cho từ BIT trong nhị phân sẽ là 11000010 11001001 11100011 B I T Từ BIT yêu cầu 3 byte để lưu trữ, vì mỗi ký tự là 1 byte (hoặc 8 bit). 23
Zoned and Packed Decimal Numbers Ví dụ: n Dùng mã EBCDIC cho từ ZONE (dùng hệ thập lục phân). Bao nhiêu bytes được yêu cầu? Giải pháp: – Z = E 9 trong hệ đếm thập lục phân EBCDIC – O = D 6 trong hệ đếm thập lục phân EBCDIC – N = D 5 trong hệ đếm thập lục phân EBCDIC – E = C 5 trong hệ đếm thập lục phân EBCDIC Mã EBCDIC cho từ ZONE trong hệ đếm thập lục phân sẽ là: E 9 Z n D 6 O D 5 C 5 N E Mỗi chữ số hệ thập lục phân yêu cầu 4 bit và đòi hỏi phải có đầy đủ 8 chữ số hệ thập lục phân. Vì vậy, cần 8 x 4 = 32 bit hay 4 byte (8 bit = 1 byte). 24
Zoned and Packed Decimal Numbers Ví dụ: n Mã hóa thập phân EBCDIC cho giá trị +256 (sử dụng hệ 16). Bao nhiêu bytes sẽ được yêu cầu? Giải pháp: +256=F 2 F 5 C 6 trong EBCDIC n Mỗi chữ số thập lục phân yêu cầu 4 bit và đòi hỏi phải có đầy đủ 6 chữ số thập lục phân. n Vì vậy, cần 6 x 4 = 24 bit, hoặc 3 byte (8 bit = 1 byte) 25
Zoned and Packed Decimal Numbers Ví dụ: n Mã hóa -128 theo dạng đóng gói số thập phân (sử dụng thập lục phân). Bao nhiêu bytes được yêu cầu? n Giải pháp: -128 = F 1 F 2 D 8 định dạng vùng trong EBCDIC =128 D định dạng đóng gói trong EBCDIC n Mỗi chữ số thập lục phân yêu cầu 4 bit và đòi hỏi phải có đầy đủ 4 chữ số thâp lục phân. n Vì vậy, cần 4 x 4 = 16 bit hoặc 2 byte (8 bit = 1 byte). 26
27 Bài tập - Zoned and Packed Decimal Numbers 6. Dùng mã thập lục để biểu diễn các giá trị dưới đây trong mã zoned-decimal: a) 1256 c) -63 b) +439 d) -786 Bao nhiêu bytes được yêu cầu để biểu diễn mỗi 1 chữ trên. 7. Dùng mã thập lục để biểu diễn các giá trị dưới đây trong mã packed-decimal: a) 12915 c) 872 b) +9876 d) -256 Bao nhiêu bytes được yêu cầu để biểu diễn mỗi 1 chữ trên.
28 ASCII- American Standard Code for Information Interchange n n n Mã ASCII được sử dụng theo chuẩn của Mỹ. Bộ kí tự và bộ mã kí tự dựa trên bảng chữ cái La Tinh : !"#$%&'()*+, -. /0123456789: ; <=>? @A-Z []^_ `az{|}~. . . Mã ASCII được dùng để thể hiện dữ liệu bên trong các máy tính cá nhân. ASCII có hai kiểu ASCII-7 và ASCII-8. ASCII-7 là một mã 7 -bits biểu diễn 128(27) kí tự khác nhau. 3 bits đầu tiên được sử dụng cho bit vùng và 4 bits sau cho ký số. ASCII-8 được mở rộng từ ASCII-7. Nó là một mã 8 -bit, biểu diễn 256 (28) ký tự khác nhau. Các bit được thêm vào cho các bit vùng và mã hóa ký tự liên tục theo cơ số 16.
29 ASCII- American Standard Code for Information Interchange
30 ASCII- American Standard Code for Information Interchange
31 ASCII- American Standard Code for Information Interchange
32 ASCII- American Standard Code for Information Interchange Ví dụ: n Viết mã hóa nhị phân cho chữ BOY trong ASCII-7. Cần bao nhiêu byte? Giải pháp: B = 1000010 trong ASCII-7 hệ nhị phân O = 1001111 trong ASCII-7 hệ nhị phân Y = 1011001 trong ASCII-7 hệ nhị phân Do đó, mã hóa nhị phân cho các chữ BOY trong ASCII-7 sẽ được 1000010 B n 1001111 1011001 O Y Vì mỗi ký tự trong ASCII-7 yêu cầu một byte để mô tả 1 ký tự nên cần 3 byte mô tả chữ BOY
33 ASCII- American Standard Code for Information Interchange Ví dụ: n Dùng mã thập lục phân cho từ GIRL trong ASCII-7. Bao nhiêu byte được yêu cầu? Giải pháp: – G = 47 trong ASCII-7 hệ đếm thập lục phân – I = 49 trong ASCII-7 hệ đếm thập lục phân – R = 52 trong ASCII-7 hệ đếm thập lục phân – L = 4 C trong ASCII-7 hệ đếm thập lục phân n Do đó, sự mã hóa hệ thập lục phân cho từ GIRL trong ASCII-7 sẽ là 47 49 52 4 C G I R L n Vì mỗi ký tự trong ASCII-7 yêu cầu một byte để mô tả nên cần 4 byte để mô tả chữ GIRL.
34 ASCII- American Standard Code for Information Interchange
35 ASCII- American Standard Code for Information Interchange
36 ASCII- American Standard Code for Information Interchange
37 ASCII- American Standard Code for Information Interchange Ví dụ: n Viết mã nhị phân cho các chữ SKY trong ASCII-8. Cần bao nhiêu byte? Giải pháp: – S = 10110011 trong ASCII-8 hệ nhị phân – K = 10101011 trong ASCII-8 hệ đếm nhị phân – Y = 10111001 trong ASCII-8 hệ đếm nhị phân n Do đó, các mã nhị phân cho từ SKY trong ASCII-8 sẽ là 10110011 101010111001 S K Y n Vì mỗi ký tự trong ASCII-8 yêu cầu một byte để mô tả nên cần 3 byte mô tả chữ SKY.
38 ASCII- American Standard Code for Information Interchange Ví dụ: n Dùng mã thập lục phân cho chữ STAR trong ASCII-8. Cần bao nhiêu byte? Giải pháp: – S = B 3 trong ASCII-8 hệ đếm thập lục phân – T = B 4 trong ASCII-8 hệ đếm thập lục phân – A = A 1 trong ASCII-8 hệ đếm thập lục phân – R = B 2 trong ASCII-8 hệ đếm thập lục phân n Mã thập lục phân cho từ STAR trong ASCII-8 sẽ là B 3 B 4 A 1 B 2 S T A R n Vì mỗi ký tự trong ASCII-8 yêu cầu một byte để mô tả nên cần 4 byte mô tả chữ STAR.
Bài Tập - ASCII 8. Dùng mã nhị phân cho các từ dưới đây trong ASCII-7 và ASCII-8 cho các từ dưới đây : a) DRY c) DAMP b) WET d) TERM 9. Dùng mã thập lục phân trong ASCII-7 và ASCII-8 cho các từ dưới đây : a) PRINT c) RUB b) TYPE d) GIVE 39
Trình Tự Sắp Xếp – Collating Sequence n n Tuỳ thuộc vào loại mã máy được sử dụng riêng cho mỗi máy tính, thứ tự sắp xếp có thể thay đổi từ một hệ thống máy tính này tới một hệ thống máy tính khác. Thứ tự sắp xếp các chữ cái (alphabetic order) ( A < B < C < … < Z ) Thứ tự sắp xếp các số (numeric order): (0 < 1< 2< … < 9 ). Trong 1 máy tính sử dụng: Ø Mã BCD, thì các ký tự số (0, 1, . . . , 9) < ký tự chữ trong bảng chữ cái (A, B, . . . , Z). Ø Mã EBCDIC, thì các ký tự số > ký tự chữ số trong bảng chữ cái. Ø Mã ASCII, ký tự số < ký tự chữ trong bảng chữ cái. 40
Trình Tự Sắp Xếp – Collating Sequence Ví dụ: n Giả sử, một máy tính dùng mã BCD miêu tả cho các ký tự. Trong đó yêu cầu máy tính sắp xếp chuỗi 23, A 1, 1 A? Giải pháp: n Trong BCD, ký tự số < ký tự trong bảng chữ cái. n Chuỗi sẽ được sắp xếp như sau: 23 < 1 A < A 1 23, 1 A, A 1. 41
Trình Tự Sắp Xếp – Collating Sequence Ví dụ: n Giả sử, một máy tính dùng mã EBCDIC miêu tả cho các ký tự. Trong đó yêu cầu máy tính sắp xếp chuỗi 23, A 1, 1 A? Giải pháp: n Trong EBCDIC, ký tự số > ký tự trong bảng chữ cái. n Chuỗi sẽ được sắp xếp như sau: 23 > 1 A > A 1, 1 A, 23 42
Trình Tự Sắp Xếp – Collating Sequence Ví dụ: n Giả sử, một máy tính dùng mã ASCII miêu tả cho các ký tự. Trong đó yêu cầu máy tính sắp xếp chuỗi 23, A 1, 1 A? Giải pháp: n Trong ASCII, ký tự số < ký tự trong bảng chữ cái. n Chuỗi sẽ được sắp xếp như sau: 1 A < 23 <A 1 1 A, 23, A 1 43
Bài Tập - Trình Tự Sắp Xếp 44 – Collating Sequence 10. Một máy tính sử dụng mã EBCDIC khi miêu tả cho các kí tự. Thứ tự sắp xếp các chuỗi sau thế nào? a. ABC b. 123 c. 245 d. ADD 11. Một máy tính sử dụng ASCII. Thứ tự sẽ sắp xếp các chuỗi sau thế nào? a. BED b. 512 c. 400 d. 128 e. BAD
Câu hỏi và Bài Tập 1. Viết mã BCD dạng 4 -bit cho số sau đây: 2510 6410 12810 102410 2. Sử dụng hệ nhị phân, chỉ ra mã BCD cho các từ sau: a. BIT b. BYTE c. MÃ d. ZERO 45
Câu hỏi và Bài Tập 3. Sử dụng hệ bát phân, chỉ ra mã BCD cho các từ sau: a. MÁY TÍNH b. VIDEO c. INPUT d. OUTPUT 4. Có bao nhiêu ký tự khác nhau có thể biểu diễn cho các mã sau: a. BCD b. EBDIC c. ASCII-7 d. ASCII-8 46
Câu hỏi và Bài Tập 47 5. Tại sao chúng ta có định dạng đóng gói thập phân? Có gì khác nhau với định dạng thập phân? 6. Dùng hệ nhị phân, viết mã EBCDIC cho các từ sau? a. SUN b. MOON c. CAT d. DOG 7. Dùng hệ thập lục phân, viết mã EBCDIC cho các từ sau? a. PROGRAM b. OUTPUT c. BYTE d. OCTAL Bao nhiêu byte được yêu cầu cho các từ này
Câu hỏi và Bài Tập 8. Sử dụng hệ thập lục phân, viết mã cho các số thập phân sau: a. 1256 b. +439 c. -63 d. -786 Bao nhiêu byte được yêu cầu cho mỗi miêu tả này? 9. Sử dụng hệ thập lục phân, viết mã cho số thập phân đóng gói sau: a. 12915 b. 9876 c. 872 d. -256 Bao nhiêu byte được yêu cầu cho mỗi miêu tả này? 48
Câu hỏi và Bài Tập 49 10. Sử dụng hệ nhị phân, viết mã cho số thập phân sau: a. DRY b. WET c. DAMP d. TERM 11. Sử dụng hệ thập lục phân, viết mã cho số thập phân sau: a. PRINT b. TYPE c. RUB d. GIVE