NGUYỄN NAM TRUNG
VI XỬ LÝ VÀ
CẤU TRÚC MÁY VI TÍNH
V~T7
N H À X U Ấ T BẢN K H O A H Ọ C V À K Ỹ T H U Ậ T
Hà Nội - 2001
Ill
L Ờ I NÓI ĐẦU
Do lốc độ phát triển của công nghệ máy tính quá nhanh và chu kỳ chấp nhận/loại
bỏ một kỷ thuật quá ngăn nên viết một cuốn sách về máy tính cá nhân giông như
ngắm bắn mục tiêu di động. Tác giả đã cố gắng hiên soạn cuốn sách để nội dung có
thế di trước lừ một đến hai năm so với công nghệ hiện có trên thị trường. Cuốn "VI
x ử LÝ VẢ CẨU TRÚC MÁY VI TÍNH” được biên soạn lại trên cơ sở phần đầu
của cuốn “CẤU TRÚC MÁY VI TÍNH VÀ THIET b ị n g o ạ i VI”. Cuốn sách tập
trung mô tả cấu trúc cơ bản một máy vi tính cá nhân, cấu tạo và nguyên tắc hoạt
động các thế hộ vi xử lý 16, 32 và 64 bit.
C hương I dược bổ sung thêm một phần giải thích các nguyên tắc xử lý mới như
câu trúc siêu vô hướng, cấu trúc siêu đường ống, xử lý xen kẽ, bộ lệnh giản lược v.v.
Phần này cung cấp các khái niệm cơ bản giúp bạn dọc hiểu cặn kẽ các cấu trúc vi
xử lý hiện đại đề cập đến trong chương 4 và chướng 5.
( ác khái niệm, câu văn, cách trình bày được sửa đổi để thông nhất từ đầu đến
euổì cuốn sách. Tác giả đã tham khảo và chọn lọc nhiều thuật ngữ tiếng Việt troag
các tài iiệu về công nghệ thông tin hiện có tại Việt Nam. Mặc dù vậy để tránh nhầm
lẫn do dùng lừ không chính xác, tác giả vẫn chú thích thuật ngữ tiếng Anh ngay sau
khái niệm tiếng Việt tướng ứng.
Một số nội dung đă lỗi thời như các giao diện ổ đĩa cứng trước IDE, giao diện bus
mở rộng ISA được lược bỏ. Thay vào đó, các giao diện EIDE mới, giao thức USB,
cấc giao thức mạng được bổ sung và đề cập kỹ hơn. Nhiều hình minh họa được sửa
đổi giúp hạn dọc nắm được tầm nhìn tổng quát về từng nội dung đề cập trong cuốn
sách. Phần cấu trúc máy tính tương lai đề cập đến định hướng PC2001 thay vi PC99
trong lần xuất bản trước. PC2001 có mục đích đơn giản hoá cấu trúc và các giao
diện ngoại vi của máy tính cá nhân, tác giả hy vọng trong lần tái bản tđi cuốn sách
này sẽ có nội dung ngắn gọn và đơn giản hơn nhiều do không phải đề cập đến các
giao diện ổ đĩa mềm, giao diện song song, tuần tự và giao diện bàn phím của
đã lỗi thời.
Góp ý và phê binh của bạn đọc xin gửi trực tiếp cho tác giả qua email
(naề
[email protected]) hay gửi đến nhà xuất bản Khoa học và Kỹ thuật, 70
Trần Hưng Đạo, Hà Nội.
Singapore, tháng 5 năm 2001
TS Nguyễn Nam Trung
V
MỤC LỤC
1Khái niệm cớ bản........................................................................1
I. I
1.2
1.3
1.4
ỉ .5
1.6
17
1.8
Hệ nhị phân và thập lục phân
Đổi sô thập phân ra sô" nhị phân hoặc thập lục phân
Biểu dien sô" nguyên theo mã nhị phân
1.3 .1 S ố thập phân mã hóa nhị phân BCD
1.3.2 Số nguyên có dấu
Biểu diễn số thực theo mã nhị phân
1.4.1 Biểu diễn dấu chấm tĩnh
1.4.2 Biểu diễn dấu châm động
Biểu diễn thông tin theo dạng mã nhị phân
1.5.1 Biểu diễn ký tự
1.5.2Biểu diễn các dạng thông tin khác
Xử lý véctơ và xử lý vô hưỡng
CISC và RISC
1.7.1 Các cấu trúc vi xử lý cơ bản
1.7.2 vư ớ ng m ắc cơ bản của cấu trúc siêu vô hướng
1.7.3 Mô hình tiến hành lệnh và quá trình
xử lýmáy song song
Lịch sử m áy tính cá nhân
2
5
6
6
6
7
7
8
9
9
14
18
19
19
23
24
27
2Thành phẩn cơ bản máy vi tính................................................ 31
2.1
2.2
C ác loại hình máy tính cá nhân
31
Bộ nguồn
37
2.2.1 Nguồn cấp điện máy lđn
37
2.2.2Nguồn pin cho máy xách tay
40
2.3 C ấu trúc bản mạch chính
42
2
3.1 Vi xử lý
49
2.3.2 ROM-BIOS
_ 57
2.3.3 Khe và ổ cắm
57
2.3.4 Lập trình và tmy nhập các vi mạch ngoại vi trên bản mạch chính 64
2.3.5 C ấu tníc máy vi tính hiện đại
66
VI
3 Vi xử lý 16 bit............ .................................................................69
3.1
C ấu trúc vi xử lý 16 bit
3.1.1 Các đớn vị chức năng
3.1.2Các thanh ghi
3.2 Vi xử lý 8088/8086
3.2.1 Cấu trúc mã lệnh
^ 3 .2 .2 Các phướng pháp định địa chỉ
3.2.3 Cách lập trình 8088/8086
3.3 Vi xử lý 80286
3.3.1 Địa chỉ, bộ chọn đoạn và bộ IĨ1 Ô tả đoạn
3.3.2 Nguyên tắc hoạt động của các cổng
3.3.3 Nguyên tắc hoạt động đa nhiệm
3.3.4Cách lập trình
70
70
71
74
76
78
80
81
84
89
91
93
4 Vi xử lý 32 bit..................... ....................................... -.... .........95
4.1
4.2
4.3
4.4
4.5
Nguyên tắc hoạt động của Vi xử lý32 bit thế hệ P6
4.1.1 Đặc điểm chung của P6
4.1.2 Cấu truc IA-32/P6
4.1.3 Môi trường cơ sở để tiến hành lệnh
C ấu tróc hệ thông vi xử lý 32 bit
4.2.1 Tài nguyên hệ thông
4.2.2C ác thanh ghi quản lý bộ nhớ
4.2.3 Lập trình hệ thống
C h ế độ hảo vệ
4.3.1 Phương pháp phân đoạn bộ nhớ
4.3.2 Không gian địa chỉ vật lý
4.3.3 Địa chỉ logic và địa chỉ tuyến tính
4.3.4C ác loại bô mỏ tả hệ thống
4 .3 .5 Phân trang và bộ nhớ ảo
4.3.6Tiểu trình, ngắt và ngoại lệ
4.3.7 Bảo vệ
Mô phỏng 8086
4.4.1 C h ế dộ địa chỉ thực
4.4.2 C hế độ 8086 ảo
4.4.3 Ngắt ảo trong chế độ bảo vệ
C h ế độ quản lý hệ thống
4.5.1 Vào c h ế độ quản lý hệ thống
4.5.2 Ra khỏi ch ế độ quản lý hệ thống
4.5.3 SMRAM
4.5.4 Môi trường tiến hành phục vụ ngắt SMI
95
95
97
101
113
113
117
122
127
128
131
131
137
139
145
159
180
180
185
198
199
200
200
201
204
VII
4.5.5 Ngoại lệ và ngắt trong c h ế độ quản lý hệ thống
4.5.6 Lưu trữ trạng thái đơn vị dấu chấm dộng FPLJ trong SMM
4.5.7 Khởi động tự động dừng (Auto Halt-Restart)
4 .5 .8 Tái định vị SMBASE
4.5.9 Khởi động lệnh truy nhập vào/ra
4.5.10 C h ế độ quản lý hệ thống trong hệ thống đa vi xử lý
205
206
207
208
209
210
5 Vi xử lý 64 bit........................................................................... 211
5.1
Nguyen tắc hoạt động của vi xử lý 64 hit
5.1.1 Đặc điểm chung của IA-64
5.1.2Câu trúc Itanium
5.2 Mô hình lập trình trên IA-64
5.2.1 Mỏ hình hộ nhớ ảo
5 .2 .2 Ngăn xếp thanh ghi
5.2.3 Lệnh tính số nguyên
5.2.4Lệnh so sánh và tiên đoán
5.2.5 Lệnh truy nhập bộ nhớ
5 .2 .6 Lệnh rẽ nhánh
5.2.7 Lệnh đa môi trường
5.2.8 Lệnh truyền tệp thanh ghi
5.2.9Lệnh chuỗi kỹ tự và đ ếm hit
5.3 Mỏ hình lập irình sô" học dấu chấm dộng
5.3.1 Dạng và khuôn dữ liệu
5.3.2Thanh ghi trạng thái dấu chấm động FPSR
5.3 .3L ệnh dấu chấm động
5.4 Mỏi tníftng lập trình ứng dụng trên môi trường IA-64
5.4.5 Các c h ế độ bộ lệnh
5.4.6 Mô hình các thanh ghi ứng dụng AR trong chế độ IA-32
211
211
216
229
230
232
234
235
235
236
237
239
239
240
240
241
243
244
245
246
Thuật ngữ...................................................................................250
Tài liệu tham khảo..................................................................... 253
1
KHÁI NIỆM c ơ BẢN
Máy vi tính cá nhân PC (personal computer), đặc biệt máy vi tính cá nhân
tương thích với cấu trúc của hãng IBM (International Business Machine) đă và
dang c h iê m lĩnh thị tnícìng xử lý thông tin. Từ một cấu hình độc lập, chậm, rẻ
tiền, vài chỉ được trang bị các thiết bị ngoại vi tôi thiểu, máy vi tính cá nhân
ngày naiy đã trở thành một cấu tnìc chuẩn đa chức năng và vượt ra khỏi cấu hình
của IBM hiện dà lỗi thời. Máy tính cá nhân xuất hiện trong mọi lĩnh vực ứng
dụng c u a xã hội hiện đại, từ công việc văn phòng đến những hệ thông điều
khiển pihức tạp. Trước khi đi sâu vào từng chi tiết của một máy vi tính cá nhân,
cách tniy nhập và lập trình chúng, chương này giới thiệu những khái niệm cơ
bản n h ấ t của kỹ thuật vi xử lý số. Nhừng khái niệm này đặt nền tang cho toàn
cuốn sáích, trang bị cho hạn đọc những kiến thức cơ sở trước khi đi sâu nghiên
cứu cấui trúc một m áy vi tính cá nhân.
Nội dung chính của cuốn sách này là cấu triíc một máy tính cá nhân tương
thích IBM , hay nói cách khác là 1 Ĩ1 Ô tả p h ầ n cứ n g (hardware) của một máy
tính cá nhân. Nền tảng công nghệ tin học hiện đại là kỹ thuật điện tử số. Kỹ
thuật n à y đưực hoàn thiện như ngày nay và còn phát triển mạnh mẽ trong tương
lai là nihờ tiến hộ vượt bậc của công nghệ vi điện tử. Vi mạch tích hợp mật độ
cao lố c ố t lõi của phần cứng máy tính. Phần cứng có thể được định nghĩa là một
(1.4)
ỉ .2 Đ Ổ I S ố THẬP PHẢN RA s ố NHỊ PHÂN HOẶC’ THẬP L ự c PHÂN
5
Việc qui định đánh dấu hộ đếm tương đôi tự do. Ta có thể viết chữ D
(decimal) sau một sô" để đánh dấu đó là số thập phân. Tương tự chữ B (binary)
và chữ Ị í (hexadecimal) ở phía sau được dùng để đánh dấu một số nhị phân và
một số thập lục phân. Các ngôn ngữ lập trình đều có quy định riêng đổ xác định
hộ đếm của một sô". Thông thường, nếu không viết thêm gì ta có một số thập
phân. Ngôn ngữ Pascal dùng ký tự đô-la “$” trước một số dể chỉ ra số đó là sô"
thập lục phân. HỢp ngữ của vi xử lý họ Intel dùng quy ước viết ký tự “B” và “H”
sau số như đã nêu trôn. Hợp ngữ của vi xử lý hay vi điều khiển họ Motorola
dùng ký tự phần trăm “%” và ký tự “Ox” trước một sô đề quy ưđc số nhị phân và
SỐ thập lục phân.
1.2
ĐỔI SỐ THẬP PHÂN RA s ố NHỊ PHÂN HOẶC
THẬP LỤC PHÂN
Klii làm việc với phần cứng m ột máy vi tính hay khi lập trình nó, người ta
thưítng phải đổi m ột số thập phan sang một số nhị phân hay ngược lại. Nguyên
nhân nằm ở thổi quen tư duy và sử dụng hệ thập phân của loài người. Ngày nay,
phép dổi số cổ thể dược thực hiện dễ dàng hầng một máy tính bỏ túi. Tuy vậy,
khả năng thực hiện những phép tính này được coi như một kỹ năng cơ bản của
người lạp trình. Đ ể đổi ra hệ nhị phân hay thập lục phân, ta chỉ cần chia số thập
phân cho cơ số của hệ (2 hoặc 16). s ố dơ là trị số, thương sổ được chia tiếp để
tinh trị sỏ tiếp theo. Trong hệ nhị phân, trị số đầu tiên (ngoài cùng bên phải)
được gọi là LSB (least significant hit) và trị số cuối cùng (ngoài cùng bên trái)
được gọi là MSB (most significant bit). Bảng 1.2 minh họa cách dổi một số thập
phân ra thập lục phân hay nhị phân:
B ả n g ỉ.2
Phép
d ổ i sô'
thập phân 113 ra
sô'
nhị phân
và
thập
lụ c
phân
Thập iục phàn
Nhị phân
113/2=56 dư
1 LSB
113/16=7 dư 1
56/2=28 dư
0
7/16=0 dư 7
28/2=14 dư
0
14/2=7 dư
0
?/2s=3 dư
1
3/2==
1
dư 1 MSB
Như vậy kết quả của phép đổi là:
N = 1 13 D = I 1100017? = 71H
(1.5)
6
1 KHÁI NựiM r ơ BẢN
1.3
BIỂU DIỄN SÔ NGUYÊN THEO MÃ NHỊ PHÂN
1.3.1 Số thập phân mã hóa nhị phân BCD
Vì hệ thập lục phân cổ den 16 ký tự nôn đủ để hiểu diễn 10 ký tự của chữ sỏ
thập phân. Nêu ta dùng 4 hit của hệ nhị phân hay một chữ số’ của hệ thập hục
phân dể biểu dien một s ố thập phân, thì sỏ đó dược gọi là số thập phân mã h(óa
nhị phan BCD (binary coded decimal). Phương pháp này hay dùng tron g cômg
nghẹ vi iínlì vì nó rât tiện chuyển đổi. Chẳng hạn muốn dổi một số BCD saing
mã ASCII (american Standard code for in form ation interchange,
đề cập trti ở
phần sau), ta chỉ cần cộng thêm giá trị 30H (là mẵ của số 0) vào số BCD d ẩn
dổi. Sỏ 410 hiểu diễn dưới dạng BCD không nén như sau:
N = 4 1 0 /) = 0 0 0 0 0 1 0 0 0000 0001 0000 OOOOtfl RCD = 04010 0 H \fírn
(1 ..6)
Phần Iđn các vi xử lý và hộ nhđ đều dùng đ(fn vị xử lý nhỏ nhất là một by te
(lbyte=8bit, thanii ghi nhỏ nhất và một tế bào bộ nhớ đều cổ kích thước 1 hytíe)
nôn phải dùng ca H hit đ ể hiểu diễn một trị sô của BCD. Việc này quá lãng p)hí
vì chỉ cổ 4 hit thấp (hay 1 nipple thấp) được dùng đến, 4 bit cao bị bỏ trống. Niếu
dùng cả 4 hit cao để biểu diễn ta có một số BCD nén (packed BCD). Cách bỉtểu
diễn này được CMOS-RAM của máy vi tính cá nhân dùng để hiểu diễn ngàiy,
giờ, tháng, năm ( dược đi sâu trong chương 6). Ví dụ sau đây cho thấy cách biíểu
diễn số thập phân 59 hằng một hy te BCD nén:
N = 5 9 D = 01011001«
= 59H Rrn
(I..7)
1.3.2 Số nguyên có dấu
Khi lập trình, ta thường phải định nghĩa cách biểu diễn các hiến số nguyỗằn.
Số nhị phân thường được.coi là m ộ t số nguyên không dấu (unsigned intẹgcĩr).
Tương tự như hệ số học, d ể hiểu diễn số nguyên cổ dấu (signed integer) ta (Cổ
thể dùng I hit de hiểu diễn dấu. Phương pháp này còn gọi là hiểu diễn dâu-gjiả
trị (signed-magnitude). r á c h biểu diễn dấu giá trị bất tiện khi cài đặt trong vi xử
lý nên cổ hai cách hiểu diễn khác là: dâu-bù 1 (signed-Ts complement) và
dấu-bù 2 (signed-2's complement). Ví dụ sau minh họa hiểu diễn số - 9 bằnỄD K
bit qua 3 cách hiểu diễn trôn:
1.4 BlỂt I DIỄN SỐ T H ự ( 1TI ỈBO MÃ NHỊ PHẢN
•
Sỏ +9:
(XXK) 1001
•
Mil u (Jicn dâu-giá trị:
1()(K) 1001
•
Hit'll dien dau-bù ỉ (nghịch đảo +9):
1111 0110
•
Bic U dien dấu-bù 2 (dâu-hù 1 cộng thêm 1): 1111 0111
c
ách bien dien dấu-bù
2
hay được dùng nhất trong vi xử
l ý.
7
Bit cao nhất
MSH I-IÔn xác dịnh dấu số nguyôn (0 là số dưđng, 1 là số âm). Nếu hit MSB
bằng (-, giấ trị số nguyên hằng giá trị nhị phân. Nếu hit MSB hằng 1, giá trị
tuyệt ôối của sỏ nguyên có dấu bù 2 dược tính theo nguyên tắc sau:
•
S ô n h ị p h â n (-9=111 0 1 1 1 ) t r ừ đi 1: (1111 0111 - 1 = 1111 0110),
•
Báo ttừng giá trị (0 thành 1, 1 thành 0, ra giá trị tuyệt đối:) (XXX) l(X)l (+9).
1A
BIỂu DIỄN SỐ THỰC THEO MÃ NHỊ PHÂN
( Y> liai cách hiểu diễn một số thực trong hệ nhị phân: số có dấu chấm tĩnh
(fixedpoint number) và số cố dâu chấm dộng (floating point number). Cách thứ
nhất diĩực dùng trong những vi xử lý (microprocessor) hay vi điều khiển
(niicrtcomtrollcr) cu. Cách thứ hai hay được dùng hiện nay và cỏ dộ chính xác
cao. Dflfu chain ở dây là dấu ngăn thập phân (giữa hàng đơn vị và phần giá trị
nhỏ h(fn một đơn vị). Dấu chấm này của hệ Anh-Mỹ tương đơdng vđi dấu phẩy
cil a Vọt Nam và các hệ lục địa châu Âu. Đ ề tiện so sánh vđi tài liệu về công
nghe thô ng tin (phần lớn được viết bằng tiếng Anh), khái niệm dấu châm được
giữ llạitnong cuốn sách này.
1.4.1 Biểu diễn dấu châm tĩnh
( 'ấ.h biểu dien dấu chấm tĩnh trong hệ nhị phan hoàn toàn tương tự như cách
hiểtii (icm một số thực thông thường của hệ thập phân. Phần giá trị lớn hơn 1
dtíỢk: vic t vào phía bên trái của dấu chấm và phần giá trị nhỏ hơn 1 dược viết
vào pliai bên phải. Công thức chung để biểu diễn một số thực dâu chấm tĩnh
(iìxint number) được viết như sau:
rti
n
n
ni
( 1.8 )
ï'pnjg đó K là số thực cần biểu diễn gồm n trị số đứng trước và m trị số đứng
sa» díu chấm. Tùy thuộc vào hộ thập phân hay hộ nhị phân mà C(1 số 5 có giá trị
8
1 KHÁI NIỆM C ơ BẢN
10 hay 2. Giá trị nhỏ nhất có thể biểu diễn được (hay độ chính xác của cách biểu
diễn này) được tính như sau (già thiết có 8 bit để hiểu diễn phần sau dấu ch ấm ):
A R =s
. m = 8 => A R = 2 8 = 0.00390625
<( 1.9)
1.4.2 Biểu diễn dâ'u châm động
Khác với cách biểu diễn dâu chấm tĩnh, cách biểu diễn số thực dấu c:hítm
động (floating point number) có khả nãng hiệu chỉnh theo giá trị cùa số tthực.
('ách hiểu diễn chung cho mọi hệ đếm như sau:
R = m-B‘
'
(il.lO)
Trong đó m là phần định trị (mantissa), trong hệ thập phân giá trị tuyệit đối
của nó phải luôn nhò hơn 1 (-1). Chuẩn Unicode do hăng Xerox dề nghị dùng 2
bytes dể mã hóa một ký tự. Đặc điểm chính của Unicode là nó không chứa
ký tự diều khiển và dùng cả 16 bit để mã hỏa ký tự. Bảng 1.4 cho thấy cách
phân bô mã trong chuẩn Unicode: 8192 giá trị đầu được dành cho chữ cái
chuẩn, 4096 giá trị tiếp là mã toán học, ký hiệu kỷ thuật v.v, 4096 giá trị sau
nữa dành cho chữ tượng hình. Hình 1.3 so sánh các chuẩn ký tự cơ bản.
12
1 KHÁI NIỆM C ơ BẢN
Bảng ỉ . 4 Phân bô' mã trong chuẩn Unicode
Mã thâp phân
0 đến 8191
Ký tự
Chữ cái: Anh, Latin 1, chàu Âu, Latin mở rộng, chữ cái phiên âm, Việt
Nam, Hy Lạp. Nga, Armenia. Do Thái, Ả Rập, Ethiopy, Dvanagari, Benigali,
Gurmukhi, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Ca-Na-Đa, Mã Lai
Xây Lan, Thái, Lào, Miến Điện, Khơme, Tây Tạng, Mông c ổ V.V.
Ký hiệu
Chữ tượng hình, chữ cái cho Hán , Nhật, Hàn
Chữ tượng hình cho Hán, Nhật, Hàn
Dành cho người sử dụng
Vùng tương thích
8192 đến 12287
12288 đến 16383
16384 đến 59391
59392 đến 65024
65025 đến 65536
ASCII
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
La tinl
Unicode
0
0
0
0
0
0
1
0
0
0
0
o
1
o
0
o
0
0
o
0
0
0
0
1
1
0
0
0
1
1
|
o
0
Các byte cao
Hình 1.3 So sánh mã ASCII. Latinl, Unicode và ISO 10646 của ký tự "C"
Unicode là mã 16 bit, để dùng được trên môi trường 8 bit (ví dụ trong giao
thức truyền dữ liệu hay giao diện lập trình ứng dụng API-appliaation
programming interface) mã Unicode dược chuyển thành một chuỗi hyte theo) q u y
định UTF-8 (I ỉnicode transformation format-8).
Unicode cùng định nghĩa mã cho các âm tiết trong tiếng V iệt (diacríticas) và
các phụ âm nhân mạnh (vocalized letter, như chữ “đ”). T ên dài trong hệề tệp
FAT32 (xem chương 9) của Microsoft Windows được mã hoá băng Unicode.
Unicode quy định các chữ cái có âm tiết của tiếng Việt là các ký tự tổng hợp
(composite character). Ví dụ chữ “ấ ” là tổng hợp của hai ký tự “â ” và
Một
chuỗi ký tự tổng hợp bao gồm nguyên âm cd sở (“â ” trong ví dụ trên) được: tiếp
nôì bởi các ký tự dấu thanh. Nguyên âm cở sở và dấu thanh được đặt vào «cùng
một vị trí khi hiển thị. Nếu chữ cái được tổng hỢp từ hai hay nhiều hơn ký tiự âm
tiết, thứ tự các dấu không quan trọng nếu không cổ luật chính tả cụ thể.
Các ký tự được tổng hợp trước (precomposed character) như chữ “đ chỉ (dùng
một lììă duy nhất d ể mô tả. C ác chưđng trình xử lý văn bản thường phân tícHì các
ký tự tổng hợp trước thành ký tự tổng hợp với chứ cái cđ sở và âm tiết đ ế tiện
xử lý.
Đ ể biểu diễn chữ cái tiếng Việt, các mã cần biểu diễn đủ:
•
33 chữ cái thường: a ả â b c d d e ê f g h i j k l m n ô ơ p q r s t u ư v w x y z
1.5 BIỂU DIỄN THÔNG TIN THEO DẠNG MÃ NHỊ PHẢN
•
13
3* chữ cái hoa: A Ẩ Â B C D Đ È Ê F G H I J K L M N O Ô Ỏ P Q R S T U Ư V W X
Yz
•
5 dấu thanh: huyền, hỏi, ngã, sắc, nặng
Unicode còn có thể coi phần dấu của các chữ Ă, Â, Ê, ô, ơ, ư như ký tự âm
tiết (diacritical marks) và dùng để tổ hợp với các chữ cái La-Tinh cơ bản ( ~Unicode 0x0306,
Unicode 0x0302, ’ : Unicode 0x031B). Cho tới
thời điểm
viết cuốn sách này, tiếng Việt vẫn chưa có bộ mã thống nhất và duy nhất. Các
chuẩn quốc gia của tiếng Việt do không đồng nhất với chuẩn quốc tế hay
Unicode nên gây ra nhiều phiền phức về tương thích phần m ềm . Bảng 1.5 liệt
kê một số chuẩn tiếng Việt hiện hành.
ẾìânịỊ / 5 Các chuẩn mã hoa tiếng Việt
ch ữ cãi và
thanh
TCVN 5712 (VN1-2)
8859-V, cp 1258, cp1129
Unicode 2.0 và ISO 10646
Huyén
bO
cc
0x0340
Hỏi
Ngã
b1
d2
0x0309
b2
de
0x0303
Sắc
ec
Nặng
b3
b4
f2
0x0341
0x0323
A-Z
Như mã trong ASCII
h4hư mă trong ASCII
Như mã trong Unicode
a-z
Như mã trong ASCII
Như mã trong ASCII
Như mã trong Unicode
Ấ
a1
c3
0x0102
Â
a2
C2
Ê
Ồ
a3
a4
ca
d4
0x00c2
OxOOca
0x00d4
ơ
a5
d5
0x01aO
Ư
a6
dd
0x01 af
0
a7
dO
0x0110
A
a8
e3
0x0103
A
a9
0x00e2
e
0
ớ
aa
ab
e2
ea
f4
0x00f4
0x01a1
ư
ad
f5
fd
Đ
ae
f0
0x1 bO
0x0111
Không có
fe
0x20ab
Dồng
ac
VN
OxOOea
JSL
Hình 1.4 liệt kê bảng mã (code table) 1258 của Microsoft dùng trong phiên
bán tiếng Việt của Windows 95/98.
14
1 KHÁ ỉ NIỆM e ơ BẢN
— --0 1 10 1 20
1
1
1
1
0
7
A
B
c
D
E
F
p
1
Q
a
R
b
2
:1
■
1' #
3
c
S
c
;
; $
4
D T
d
;%
5
E
e
u
•••
•
¥
: &
1
1
6 F V f
7 G w fl
V
t
—
1
w
t
----
8
H
X
h
X
:
1
1
8
9
@
1
5
6
0
A
B
2
4
50
! !
1 II
1
;
i
40
70 1 80 1 90 1A0
1-----,„UW
1 rn,«« NBSP
p
<
n<4
q
i
1
r
>
0
u
s
£
/
II
□
t
II
1
3
30
u
60
'
-
~
B0 co
o
A
D0 E0 I FO
k— —
Đ à a
±
Á
N
á
ri
•
A
Ó
â
V
á
A
ô
ô
A
Ơ
a
o
2
3
0
M
Â
È
0
è
0
É
ù
é
ù
E
Ú
ẽ
Cl
E
u
ë
û
••
9
1
Y
1
y
%0 TM ©
1
•
J
z
j
z
nof
uS-'l a
o
!
1
; +
1*
1 »
1
1
K
[
k
{
<
>
«
»
<
L
\
1
1
Œ
œ
~1
1/4
M
]
A
m
-
1/ 2
i
3/4
î
6
ï
1
1
1
:
1
1
1
: /
>
N
?
0
_
n
0
nofịiM
H
Ỷ.
y
a
Ö
: )
: *
1
n'Ht
}
•*>** n.-i
Ò
1 11 Æ Ö æ
§ • ç X ç
:
:
1
1
---
~
ü r
Ư
ß
->
ü
Í
Ư
î
a
ï
y
Hình 1.4 Bảng mả tiếng Việt 1258 của Microsoft
1.5.2 Biểu diễn các dạng thông tin khác
Biểu diến ảnh
Trong máy vi tính, thông tin về hình ánh, dồ họa dược biểu diễn theío hai
nguyên tắc chính: đồ họa điểm (pixel graphics) và đồ họa véc 4 (1 (vvector
graphics) hay còn gọi là đồ họa hưring đôi tượng (object oriented graphics).
Đổ họa điểm biểu diễn hình anil hằng một ma trận điểm ảnh (pixel maatrix).