Introduction to Windows NT Session 1 of Networking with Windows NT

Download Report

Transcript Introduction to Windows NT Session 1 of Networking with Windows NT

Chương 4
MÃ MÁY
Computer Codes
Nội Dung
4.1. Các loại mã máy
4.2. Trình tự sắp xếp
4.3. Câu hỏi và Bài tập
1
Các Loại Mã Máy


BCD : Binary Coded Decimal (6 bits)
EBCDIC: Extended Binary-Code decimal
Interchange Code (8 bits)


Zoned and Packed Decimal
Numbers
ASCII
2
Mã BCD – Binary Coded Decimal



3
Mã Binary Coded Decimal (BCD) là một mã ra đời
sớm nhất.
Tất cả ký số thập phân được mô tả trong BCD gồm 4
bits.
Ví dụ:
4
2
42(10) = 0100 0010 hay 01000010 trong BCD
Mã BCD – Binary Coded Decimal
Ký số thập phân
0
BCD tương đương
0000
1
2
3
0001
0010
0011
4
5
6
7
0100
0101
0110
0111
8
9
1000
1001
BCD tương ứng với các ký số thập phân
4
Mã BCD – Binary Coded Decimal


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
5
00010101 trong BCD
5
Mã BCD – Binary Coded Decimal



6
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.
Mã BCD – Binary Coded Decimal
Ký tự
Mã BCD
Vùng (zone) Ký số (Digit)
7
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
Mã BCD – Binary Coded Decimal
Ký tự
Mã BCD
Vùng(Zone) Ký số (Digit)
9
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
Mã BCD – Binary Coded Decimal

Ví dụ: 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
B
110001
010010
110101
A
S
E
8
Mã BCD – Binary Coded Decimal

11
Ví dụ 4.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
Mã BCD – Binary Coded Decimal
Ký tự
10
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
Mã BCD
13
Mã EBCDIC–Extended Binary Coded Decimal Interchange Code



EBCDIC là một mã 8 bit (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ố.
Mô tả cho 256 (28) kí tự khác nhau
14
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
C1
B
1100
0010
C2
C
1100
0011
C3
D
1100
0100
C4
E
1100
0101
C5
F
1100
0110
C6
G
1100
0111
C7
H
1100
1000
C8
I
1100
1001
C9
J
1101
0001
D1
K
1101
0010
D2
L
1101
0011
D3
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
C1
B
1100
0010
C2
C
1100
0011
C3
D
1100
0100
C4
E
1100
0101
C5
F
1100
0110
C6
G
1100
0111
C7
H
1100
1000
C8
I
1100
1001
C9
J
1101
0001
D1
K
1101
0010
D2
L
1101
0011
D3
16
Mã EBCDIC–Extended Binary Coded Decimal Interchange Code

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
11000101
B
A
S
E
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
C1
B
1100
0010
C2
C
1100
0011
C3
D
1100
0100
C4
E
1100
0101
C5
F
1100
0110
C6
G
1100
0111
C7
H
1100
1000
C8
I
1100
1001
C9
J
1101
0001
D1
K
1101
0010
D2
L
1101
0011
D3
Zoned and Packed Decimal Numbers
Mã Zoned
 Dùng để biểu diễn các số dương, âm hay không
dấu.
 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
EBCDIC
F3F4F5
Dấu hiệu chỉ báo
F cho không dấu
+345
-345
F3F4C5
F3F4D5
C cho số dương
D cho số âm
Giá trị số ở EBCDIC trong hệ đếm thập lục phân
19
Zoned and Packed Decimal Numbers
Mã Packed
 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 khu vực
Định dạng đóng gói
345
F3F4F5
345F
+345
F3F4C5
345C
-345
F3F4D5
345D
3456
F3F4F5F6
03456F
Quá trình chuyển đổi dữ liệu thập phân thành dữ liệu đóng gói
20
Zoned and Packed Decimal Numbers
Ví dụ:
 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?
 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 ba byte để lưu trữ, vì mỗi ký tự là 1
byte (hoặc 8 bit).
21
Zoned and Packed Decimal Numbers
Ví dụ:
 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 = E9 trong hệ đếm thập lục phân EBCDIC
– O = D6 trong hệ đếm thập lục phân EBCDIC
– N = D5 trong hệ đếm thập lục phân EBCDIC
– E = C5 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à:
E9
Z

D6
O
D5
N
C5
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
22
Zoned and Packed Decimal Numbers
Ví dụ:
 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=F2F5C6 trong EBCDIC
 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.
 Vì vậy, cần 6 x 4 = 24 bit, hoặc 3 byte (8 bit = 1
byte)
23
Zoned and Packed Decimal Numbers
Ví dụ:
 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?
 Giải pháp:
-128 = F1F2D8 in EBCDIC
=128D Định dạng đóng gói
 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.
 Vì vậy, cần 4 x 4 = 16 bit hoặc 2 byte (8 bit = 1
byte).
24
ASCII



26
American Standard Code for Information Interchange
Mã ASCII được sử dụng theo chuẩn của Mỹ.
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 là một mã 8-bit, biểu diễn 256 (28) ký tự
khác nhau. Các bit sẽ được thêm vào các bit vùng
và mã hóa ký tự liên tục theo cơ số 16.
ASCIICharacter
27
American Standard Code for Information Interchange
ASCII-7 code
Zone
Digit
Hexadecimal
Equivalent
0
11
0000
30
1
11
0001
31
2
11
0010
32
3
11
0011
33
4
11
0100
34
5
11
0101
35
6
11
0110
36
7
11
0111
37
8
11
1000
38
9
11
1001
39
ASCII-
28
American Standard Code for Information Interchange
Mã ASCII-8
Kí tự
Vùng
Kí số
Hệ thập lục phân
0
101
0000
50
1
101
0001
51
2
101
0010
52
3
101
0011
53
4
101
0100
54
5
101
0101
55
6
101
0110
56
7
101
0111
57
8
101
1000
58
9
101
1001
59
Tham khảo thêm giáo trình trang 61 và 62
ASCII-
29
American Standard Code for Information Interchange
Ví dụ:
 Viết mã hóa nhị phân cho các 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

1001111
O
1011001
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
ASCII-
30
American Standard Code for Information Interchange
Ví dụ:
 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 = 4C trong ASCII-7 hệ đếm thập lục phân

Do đó, sự mã hóa hệ thập lục phân cho từ GIRL trong ASCII7 sẽ là
47
G

49
I
52
R
4C
L
Vì mỗi ký tự trong ASCII-7 yêu cầu một byte để mô
ASCII-
31
American Standard Code for Information Interchange
Ví dụ:
 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ệ đếm thập lục phân
– K = 10101011 trong ASCII-8 hệ đếm thập lục phân
– Y = 10111001 trong ASCII-8 hệ đếm thập lục phân

Do đó, các mã nhị phân cho từ SKY trong ASCII-8 sẽ là
10110011
10101011
10111001
S
K
Y

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.
ASCII-
32
American Standard Code for Information Interchange
Ví dụ:
 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 = B3 trong ASCII-8 hệ đếm thập lục phân
– T = B4 trong ASCII-8 hệ đếm thập lục phân
– A = A1 trong ASCII-8 hệ đếm thập lục phân
– R = B2 trong ASCII-8 hệ đếm thập lục phân
 Mã thập lục phân cho từ STAR trong ASCII-8 sẽ là
B3
S

B4
T
A1
A
B2
R
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.
Trình Tự Sắp Xếp – Collating Sequence


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 )
34
Trình Tự Sắp Xếp – Collating Sequence
Ví dụ:
 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,
A1, 1A?
Giải:
 Trong BCD, ký tự số < ký tự trong bảng chữ cái.
 Chuỗi sẽ được sắp xếp như sau:
23 < 1A < A1  23, 1A, A1.
35
Trình Tự Sắp Xếp – Collating Sequence
Ví dụ:
 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, A1, 1A?
Giải:
 Trong EBCDIC, ký tự số > ký tự trong bảng chữ cái.
 Chuỗi sẽ được sắp xếp như sau:
23 > 1A > A1  A1, 1A, 123
35
Trình Tự Sắp Xếp – Collating Sequence
Ví dụ:
 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, A1, 1A?
Giải:
 Trong ASCII, ký tự số < ký tự trong bảng chữ cái.
 Chuỗi sẽ được sắp xếp như sau:
1A < 23 <A1  1A, 23, A1
35