Chương 1. Các hệ đếm và mã hoá thông tin trong máy tính Chương 2. Máy vi tính và hệ thống vi xử lý Chương 3. Bộ vi xử lý Intel 8088 Chương 4. Lập trình bằng hợp ngữ với 8088 Chương 5. Ghép 8088 với bộ nhớ và tổ chức vào/ra dữ liệu Chương 6. Vào/Ra dữ liệu bằng cách thăm dò Chương 7. Ngắt và xử lý ngắt trong hệ 8088 Chương 8. Vào/Ra dữ liệu bằng DMA Chương 9. một số phối ghép cơ bản
12 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2138 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Kỹ thuật Vi xử lý, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHÆÅNG I
CAÏC HÃÛ ÂÃÚM VAÌ VIÃÛC MAÎ HOÏA THÄNG TIN TRONG MAÏY TÊNH
1. Các hệ đếm dùng trong máy tính
1.1. Hệ mười và hệ hai
Trong cuộc sống hàng ngày chúng ta dùng hệ cơ số mười hoặc nói gọn hơn hệ mười để biểu diễn các giá trị số. Điều này là rất tự nhiên vì từ khi xưa một con người bình thường đã biết dùng 10 ngón tay của mình như là “công cụ tính toán sơ đẳng. Trong hệ thống này chúng ta dùng tổ hợp của các chữ số 0..9 để biểu diễn các giá trị số, đi kèm theo tập hợp đó có thể dùng thêm chữ D đi mà vẫn ngầm hiểu rằng đó là số hệ mười
Trong thế giới máy tính thì khác, để biểu diễn 1 giá trị số chúng ta dùng hệ cơ số hai hoặc nói gọn hơn hệ hai, trong đó chỉ tồn tại hai chữ số 0 và 1để biểu diễn các giá trị số (ứng với hai trạng thái có điện và không có điện của các mạch điện tử cấu tạo trên máy). 0 và 1 cũng là các giá trị có thể có của một chữ số hệ hai. Hệ hai là hệ dùng trong các máy tính. Một số hệ hai thường được đánh dấu bằng chữ B đi kèm ở cuối để phân biệt với các hệ khác khi ta làm việc cùng một lúc với nhiều hệ đếm khác nhau. Một cụm 4 bit sẽ tạo thành 1 nibble, cụm 8 bit sẽ tạo thành 1 byte, cụm 16 bit thông thường sẽ trạo thành một từ(word), cụm 32 bit sẽ tạo thành một từ kép. Chữ số đầu tiên bên trái trong dãy các số hệ hai gọi là bít có ý nghĩa lớn nhất, còn bit cuối cùng bên phải trong dãy gọi là bit có ý nghĩa bé nhất. Ứng với việc đếm thứ tự 1,2,3…ở hệ 10 thì ở hệ 2 ta có 1,10,11…
Nibble
byte
word
Double
Word
Hình1.1. Các đơn vị đo độ dài của số hệ hai dẫn xuất từ bit
Vì con người chỉ quen tính toán với hệ mười, trong khi các bộ phận tính toán của máy tính chỉ biết làm việc với hệ hai, nên để đảm bảo sự giao tiếp thuận tiện giữa người và máy (khi đưa số liệu vào và lúc lấy ra kết quả tính toán) thường xuyên phải có việc chuyển đổi qua lại giữa hai hệ đếm này. Chúng ta cùng xem xét nhanh các vấn đề trên thông qua các ví dụ đơn giản dưới đây.
Một số hệ mười viết như sau: 12345,67
Sẽ có giá trị số bằng tổng của các tích giữa các hệ số 1,2,3,4,5,6,7 với các trọng số 10i như sau:
12345,67=1.104 +2.103 +3.102 +4.101 +5.100 +6.10-1 +7.10-2
Tương tự như vậy, một số hệ hai viết như sau: 10111,01
Sẽ có giá trị số bằng tổng của các tích giữa các hệ số 1,0,1,1,1,01,1 với các trọng số 2i tương ứng lần lược như sau:
=1.24 +0.23 +1.22 +1.21 +1.20 +0.2-1 +1.2-2
Các thuật toán thường dùng để chuyển đổi giữa hai hệ trên:
. Đổi số hệ hai sang hệ mười
Muốn đổi một số từ hệ hai sang hệ mười chỉ cần tính các giá trị 2i tương ứng với các chữ số khác không thứ i của hệ số hai rồi cộng lại như đã nói ở trên:
Ví dụ
10111,11B =24 +22 +21 +20 +2-1 +2-2 =25,75
Ngược lại muốn chuyển một số từ hệ mười sang hệ hai ta có thể làm theo hai cách:
. Cách một để đổi số hệ mười sang hệ hai
Quy tắc: Lấy số hệ mười cần đổi trừ đi 2x (x là giá trị lớn nhất của số mũ chọn sao cho 2x nhỏ hơn hoặc bằng so với số hệ 10 cần đổi), ghi lại giá trị 1 cho chữ số hệ hai ứng với 2x. Tiếp tục làm như vậy đối với số dư do phép trừ trên tạo ra và các số 2i bậc thấp hơn cho tới đạt tới 20 và ghi lại các gia trị (0 hoặc 1) cho chữ số hệ hai thứ i tùy theo quan hệ giữa số dư và lũy thừa tương ứng:
1, khi số dư lớn hơn hoặc bằng 2i
0, khi số dư nhỏ hơn hoặc bằng 2i (và phép trừ không được thực hiện)
ví dụ đổi số 34 sang hệ hai.
Các giá trị 2i cần tính dến (25 =32 là giá trị 2x sát dưới nhất so với số 34)
25 24 23 22 21 20
Các chữ số hệ hai tính được:
1 0 0 0 1 0
Như vậy 34=100010B.
Caïch 2 âãø âäøi säú hãû mæåìi sang hãû hai
Quy tàõc: Láúy säú cáön âäøi chia cho 2 vaì ghi nhåï pháön dæ, tiãúp theo láúy thæång cuía pheïp chia træåïc âoï chia cho 2 vaì ghi nhåï pháön dæ. Laìm nhæ váûy cho tåïi khi âæåüc thæång bàòng 0. Âaío ngæåüc thæï tæû daîy caïc säú dæ seî âæåüc caïc chæî säú cuía säú hãû hai cáön tçm.
Vê duû : Âäøi säú 34 sang hãû hai (hçnh 1.1.). Kãút quaí âæåüc 100010B.
34 2
0 17 2
1 8 2
0 4 2
0 2 2
0 1 2
0
Caïc säú dæ trong khung seî âæåüc sàõp xãúp theo chiãöu muîi tãn
HÇnh 1.1. Mäüt caïch âäøi säú hãû mæåìi sang hãû hai..
Trong træåìng håüp säú hãû mæåìi cáön âäøi coï thãm caí pháön leí sau dáúu pháøy thç âáöu tiãn ta phaíi âäøi riãng reî tæìng pháön räöi sau âoï cäüng caïc kãút quaí laûi. Âäúi våïi pháön nguyãn ta coï thãø laìm theo 2 caïch âaî noïi åí trãn. Riãng âäúi våïi pháön sau dáúu pháøy ta âäøi theo quy tàõc trçnh baìy sau âáy.
Quy tàõc âäøi säú tháûp phán hãû mæåìi ra hãû hai
Láúy säú cáön âäøi nhán våïi 2, têch nháûn âæåüc seî gäöm pháön nguyãn vaì pháön leí nhë phán, láúy pháön leí nhë phán cuía têch thu âæåüc nhán tiãúp våïi 2. Laìm nhæ váûy cho tåïi khi âæåüc têch chàôn bàòng 1. Choün riãng caïc pháön nguyãn (pháön træåïc dáúu pháøy) cuía caïc têch thu âæåüc vaì sàõp xãúp laûi seî âæåüc caïc chæî säú sau dáúu pháøy cuía säú hãû hai cáön tçm.
Vê duû: Âäè säú 0.125 ra säú hãû hai.
Ta thæûc hiãûn pheïp nhán láön læåüt theo caïc bæåïc trãn:
0,125 * 2 = 0 ,250
0,250 * 2 = 0 ,500
0,500 * 2 = 1 ,000
vaì thu âæåüc kãút quaí laì 0,125 = 0,001B (pháön âæåüc âoïng trong khung).
Kãút håüp caïc vê duû trãn laûi, nãúu phaíi âäøi säú 34,125 ra hãû hai ta thu âæåüc kãút quaí cuäúi cuìng laì 34,125 = 100010,001 B.
1.2. Säú BCD (säú hãû mæåìi maî hoïa bàòng hãû hai)
Giæîa hãû mæåìi vaì hãû hai coìn täön taûi mäüt hãû lai: hãû BCD cho caïc säú hãû mæåìi maî hoïa bàòng hãû hai (Binary Coded Decimal number), ráút thêch håüp cho caïc thiãút bë do coï thãm pháön hiãûn thë säú åí âáöu ra duìng caïc loaûi âeìn hiãûn säú khaïc nhau. ÅÍ âáy ta duìng 4 säú hãû hai âãø maî hoïa mäüt säú hãû mæåìi coï giaï trë nàòm trong khoaíng 0 ..9. Nhæ váûy, åí âáy ta khäng duìng hãút caïc täø håüp coï thãø coï cuía 4 bit. Vç táöm quan troüng cuía caïc säú BCD nãn caïc bäü vi xæí lyï thæåìng coï caïc lãûnh thao taïc våïi chuïng.
Vê duû: Säú 410 nãúu biãøu diãùn theo kiãøu säú BCD thç âæåüc 0100 0001 0000. Kãút quaí naìy cuîng gåüi yï cho ta caïch thæïc chuyãøn âäøi giæîa hai loaûi säú.
1.3. Hãû mæåìi saïu (Hexa-decimal, hex, H)
Nãúu ta duìng hãû hai âãø biãøu diãùn caïc säú coï giaï trë låïn ta seî gàûp âiãöu báút tiãûn laì säú hãû hai thu âæåüc quaï daìi. Vê duû âãø biãøu diãùn säú 255 ta cáön âãún 8 bit viãút nhæ sau:
255 = 1111 1111 B
Trong thæûc tãú âãø viãút kãút quaí biãøu diãùn caïc säú cho goün laûi ngæåìi ta tçm caïch nhoïm 4 säú hãû hai (1 nibble) thaình mäüt säú hãû mæåìi saïu . Khaïc våïi hãû BCD væìa noïi hãû 16 duìng hãút caïc täø håüp coï thãø cuía 4 bit âãø biãøu diãùn caïc giaï trë säú. Âãø laìm âæåüc âiãöu naìy ngæåìi ta sæí duûng caïc chæî säú sàôn coï cuía hãû mæåìi 0 .. 9 âãø biãøu diãùn caïc giaï trë säú æïng våïi 0 .. 9 vaì duìng thãm caïc chæî caïi A .. F âãø biãøu diãùn caïc giaï trë coìn laûi æïng våïi 10 .. 15. âãø phán biãût mäüt säú hãû mæåìi saïu våïi caïc säú hãû khaïc ta keìm thãm chæî H åí cuäúi. Ta cuîng dãù nháûn tháúy ràòng säú mæåìi chè laì mäüt bäü pháûn cuía hãû mæåìi saïu.
2. Caïc pheïp toaïn säú hoüc âäúi våïi säú hãû hai
2.1. Pheïp cäüng
Pheïp cäüng caïc säú hãû hai thæûc hiãûn giäúng nhæ khi ta laìm våïi säú hãû mæåìi. Quy tàõc pheïp cäüng säú hãû hai âæåüc chè ra trong baíng 1.1.
Baíng 1.1. Quy tàõc pheïp cäüng Baíng 1.2. Quy tàõc pheïp træì
y=a+b y= a-b
a
b
y
C
a
b
y
B
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
C: nhåï (Carry) B: mæåün (Borrow)
Vê duû:
Cäüng hãû mæåìi Cäüng hãû hai
nhåï 1111 1110
099 Säú haûng 1 0110 0011
095 Säú haûng 2 0101 1111
194 Täøng 1100 0010
Caïc bäü cäüng trong caïc khäúi tênh toaïn säú hoüc cuía maïy tênh seî thæûc hiãûn caïc pheïp cäüng theo caïch âaî noïi åí trãn.
2.2. Pheïp træì vaì säú buì hai
Pheïp træì
Pheïp træì caïc säú hãû hai thæûc hiãûn giäúng nhæ khi ta laìm våïi säú hãû mæåìi.
Quy tàõc pheïp træì säú hãû hai âæåüc chè ra trong baíng 1.2.
Vê duû
Træì hãû mæåìi Træì hãû hai
1 Mæåün 110 0000
109 säú bë træì 0110 1101
9 säú træì 0011 0001
060 Hiãûu 0011 1100
b) Säú buì hai
Trong khi laìm pheïo træì ta nháûn tháúy coï thãø thæûc hiãûn pheïp træì bàòng pheïp cäüng: cäüng säú bë træì våïi säú âäúi cuía säú træì. Âiãöu naìy cuîng âæåüc æïng duûng trong caïc khäúi tênh toaïn säú hoüc cuía maïy tênh âãø táûn duûng caïc bäü cäüng âaî coï sàôn. Váún âãö âàût ra âäúi våïi säú hãû hai laì ta phaíi coï caïch biãøu diãùn säú ám mäüt caïch thêch håüp sao cho ta coï thãø æïng duûng âæåüc tênh cháút noïi trãn. Coï ráút nhiãöu caïch maî hoïa caïc säú hãû hai âã biãøu diãún säú ám nhæng trong thæûc tãú hay duìng nháút laì duìng caïch maî hoïa kiãøu säú buì hai.
Baíng 1.3 chè ra caïch taûo ra caïc säú hãû hai coï dáúu vaì säú buì hai trong sæû tæång quan våïi säú hãû hai.
Baíng 1.3. Biãøu diãùn caïc säú theo hãû hai, hãû hai coï dáúu vaì maî buì hai.
Säú 8 bit säú hãû mæåìi säú hãû mæåìi theo säú hãû mæåìi tênh
hãû hai tæång âæång maî hãû hai coï dáúu theo maî buì hai
0000 0000 0 + 0 + 0
0000 0001 1 + 1 + 1
0000 0010 2 + 2 + 2
... ... ... ...
0111 1101 125 + 125 + 125
0111 1110 126 +126 +126
0111 1111 127 +127 +127
1000 0000 128 - 0 - 128
1000 0001 129 - 1 - 127
1000 0010 130 - 2 - 126
... ... ... ...
1111 1101 125 -125 - 3
1111 1110 126 -126 - 2
1111 1111 255 -127 - 1
Quan saït kyî baíng naìy chuïng ta coï thãø ruït ra caïc nháûn xeït sau:
Nãúu ta duìng 8 bit âãø biãøu diãùn säú thç ta thu âæåüc 256 täø håüp coï giaï trë tæì 0 âãún 255 (tæång æïng 00 .. FF H), tæïc laì chè biãøu diãùn âæåüc säú dæång.
Våïi täø håüp trãn nãúu ta muäún biãøu diãùn säú coï dáúu theo kiãøu dáúu vaì âäü låïn (sign and magnitude) ta phaíi máút 1 bit âãø daình cho dáúu vaì 7 bit coìn laûi âãø âënh giaï trë. Våïi caïch laìm naìy ta coï khaí nàng biãøu diãùn caí säú ám vaì säú dæång nàòm trong khoaíng -127 .. -0, +0 .. +127 (chuï yï 2 giaï trë 0 khaïc nhau).
Säú buì hai âæåüc taûo ra theo caïch gáön giäúng nhæ kiãúu dáúu vaì âäü låïn nhæng noï duìng caí 8 bit âãø biãøu diãùn giaï trë cuía säú âæåüc maî hoïa. Maî buì hai daìi 8 bit coï khaí nàng biãøu diãùn caïc säú ám vaì dæång trong khoaíng -128..0..+127. Mäüt säú dæång coï maî buì hai giäúng nhæ hãû maî hai thäng thæåìng.
Mäüt säú biãøu diãùn theo hãû hai seî coï caïc giaï trë khaïc nhau nãúu hiãøu âoï laì maî âãø biãøu diãùn säú theo kiãøu hãû hai coï dáúu hoàûc kiãøu säú buì hai. Noïi khaïc âi, mäüt cuûm caïc säú 0 vaì 1 seî âæåüc caím nháûn khaïc nhau khi noï biãøu diãùn giaï trë säú theo caïc maî khaïc nhau. Cho duì coï âæåüc biãøu diãùn bàòng säú hãû hai coï dáúu hay säú buì hai thç caïc säú ám âãöu coï bit b7 = 1, coìn caïc säú dæång coï bit b7 = 0.
Báy giåì ta noïi cuû thãø caïch tênh säú buì hai cuía mäüt säú naìo âoï. Vãö màût toaïn hoüc thç sê buì hai cuía mäüt säú chênh laì säú âäúi cuía noï. Nhæ váûy mäüt säú dæång seî coï säú buì hai laì mäüt säú ám cuìng giaï trë tuyãût âäúi vaì ngæåüc laûi.
Quy tàõc: Muäún tçm säú buì hai (coìn goüi laì buì säú hoüc) cuía mäüt säú A ta laìm theo caïc bæåïc sau:
biãøu diãùn säú A theo maî buì hai cuía noï
tçm säú buì mäüt (buì logic) cuía säú âoï (bàòng caïch âaío bit)
cäüng 1 vaìo säú buì mäüt åí trãn âãø nháûn âæåüc säú buì hai cuía säú A.
Ghi chuï: Khi coï mäüt säú ám âæåüc biãøu diãùn theo maî buì hai nãúu muäún tênh giaï trë tuyãût âäúi cuía noï ta cuîng aïp duûng quy tàõc naìy (aïp duûng caïc bæåïc 2.3).
Vê duû: Tçm säú buì hai cuía 13.
13 = 0000 1101 B (maî buì hai cuía 13)
säú buì 1 cuía 13: 1111 0010 B (âaío bit cuía säú trãn)
cäüng thãm 1: 1
säú buì hai cuía 13: 1111 0011 B (tæïc laì -13)
Coï thãø láúy mäüt vê duû khaïc âãø chæïng toí kãút quaí trãn laì âuïng vaì qua âoï cuîng tháúy âæåüc æïng duûng cuía säú buì hai trong khi laìm pheïp træì.
Vê duû: 15 - 13 = ?
Ta coï thãø viãút laûi pheïp træì trãn thaình pheïp cäüng 15 + (-13) vaì sæí duûng kãút quaí væìa tênh âæåüc åí trãn cho säú (-13):
15 ... 0000 1111
(-13) ... 1111 0011
täøng ... 0000 0010 (nhåï 1)
Nãúu khäng âãø yï âãún nhåï ta coï kãút quaí laì 2.
Vê duû: 12 - 13 = ?
12 ... 0000 1100
(-13) ... 1111 0011
täøng ... 1111 1111 (tæïc -1)
Âáy laì mäüt säú ám (bit b7=1) våïi giaï trë tuyãût âäúi laì 1 (tra theo baíng 1.2). Màût khaïc ta cuîng coï thãø tçm âæåüc giaï trë tuyãût âäúi cuía kãút quaí bàòng caïch tçm säú buì hai cuía noï:
Maî buì hai cuía kãút quaí trãn ... 1111 1111
Säú buì 1 cuía kãút quaí trãn ... 0000 0000
Cäüng - âãø tçm giaï trë tuyãût âäúi ... 0000 0001
2.3 Pheïp nhán
Pheïp nhán caïc säú hãû hai thæûc hiãûn giäúng nhæ khi ta laìm våïi hãû säú mæåìi. Quy tàõc pheïp nhán säú hãû hai âæåüc chè ra trong baíng 1.4
Baíng 1.4. Quy tàõc pheïp nhán y=a.b
a
b
y
0
0
0
0
1
0
1
0
0
1
1
1
Trãn cå såí quy tàõc væìa nãu vaì âãø cho âån giaín ta thæûc hiãûn vê duû mäüt pheïp nhán 2 säú hãû hai våïi âäü daìi 4 bit âãø laìm saïng toí thuáût toaïn nhán.
1001 Säú bë nhán (9)
0110 Säú nhán (6)
0000 Thaình pháön 1 cuía täøng têch luyî
1001 Thaình pháön 2 cuía täøng têch luyî
1001 Thaình pháön 3 cuía täøng têch luyî
0000 Thaình pháön 4 cuía täøng têch luyî
0110110 Täøng têch luyî (54)
Âäü daìi cæûc âaûi cuía kãút quaí trong træåìng håüp naìy laì 8 bit. Nãúu ta coï caïc toaïn haûng 8 (hoàûc 16) bit thç âäü daìi cæûc âaûi cuía kãút quaí laì 16 (hoàûc 32) bit. Mäùi láön nhán 1 bit khaïc 0 cuía säú nhán våïi säú bë nhán ta thu âæåüc chênh säú bë nhán. Nãúu dëch traïi noï mäüt säú láön tæång æïng våïi vë trê cuía bit khaïc 0 âoï trong säú nhán, ta taûo ra 1 thaình pháön cuía täøng têch luyî. Täøng cuía caïc thaình pháön nhæ trãn laì kãút quaí cuía pheïp nhán.
Phán têch kyî quaï trçnh trãn ta tháúy pheïp nhán coï thãø thæûc hiãûn theo thuáût toaïn cäüng vaì dëch (trãn cå såí caïc bäü cäüng vaì dëch) nhæ sau:
Thaình pháön âáöu tiãn cuía täøng têch luyî thu âæåüc laì têch cuía säú LSB trong säú nhán våïi säú bë nhán. Nãúu LSB = 0 thç thaình pháön naìy cuîng bàòng 0, coìn nãúu LSB = 1 thç thaình pháön naìy chênh bàòng säú bë nhán.
Mäùi thaình pháön thæï i tiãúp theo cuía täøng têch luyî seî tênh âæåüc bàòng caïch tæång tæû, nhæng phaíi dëch traïi i bit (coï thãø boí qua caïc thaình pháön bàòng 0).
Täøng cuía caïc täøng thaình pháön laì têch cáön tçm.
Âãø minh hoaû cho thuáût toaïn trãn, ta duìng luän noï âãø ruït goün vê duû âaî laìm træåïc âáy nhæ sau:
1001 Säú bë nhán (9)
0110 Säú nhán (6)
1001 Säú bë nhán dëch traïi 1 láön
1001 Säú bë nhán dëch traïi 2 láön
0110110 Täøng têch luyî (54)
2.4 Pheïp chia
Pheïp chia laì pheïp tênh ngæåüc cuía pheïp nhán. Tæì âoï suy ra pheïp chia coï thãø âæåüc thæûc hiãûn bàòng caïc pheïp træì vaì pheïp dëch liãn tiãúp cho tåïi khi khäng thãø træì âæåüc næîa (do khäng coìn gç âãø træì hoàûc säú bë træì nhoí hån säú chia). Sau âáy laì thuáût toaïn cuía pheïp chia thäng qua vê duû cuû thãø.
Vê duû: 35/5 = 7
Ta haîy quan saït kyî caïc bæåïc phaíi laìm khi chia bàòng tay:
100011 101
000 0111
1000
101
111
101
101
101
0
Trong caïc bæåïc tênh åí trãn liãn tuûc cáön phaíi coï caïc dæû âoaïn vaì kiãøm tra âãø tçm ra âæåüc kãút quaí âuïng. Cäng viãûc naìy laì ráút khoï khàn âäúi våïi caïc maûch âiãûn tæí cuía khäúi tênh toaïn säú hoüc (väún laì caïc pháön tæí âãø thæûc hiãûn pheïp cäüng vaì dëch trong maïy tênh). Sau âáy laì mäüt thuáût toaïn khàõc phuûc âæåüc caïc váún âãö nãu åí trãn:
1.Âäøi säú chia ra säú buì hai cuía noï (âãø bæåïc åí sau laìm tênh træì bàòng tênh cäüng).
2.Láúy säú bë chia træì âi säú chia.
Nãúu kãút quaí naìy coï bit dáúu bàòng 0 (coï nghéa laì pháön naìy cuía säú bë chia chia âæåüc cho säú chia) thç bit tæång æïng cuía thæång bàòng 1.
Nãúu kãút quaí naìy coï bit dáúu bàòng 1 (coï nghéa laì pháön naìy cuía säú bë chia khäng chia âæåüc cho säú chia) thç bit tæång æïng cuía thæång bàòng 0 vaì ta buäüc phaíi khäi phuûc laûi giaï trë ban âáöu cuía säú bë chia bàòng caïch cäüng kãút quaí naìy våïi säú chia åí maî hãû hai.
3.Dëch traïi kãút quaí thu âæåüc åí trãn vaì laìm laûi bæåïc 2 cho âãún khi nháûn âæåüc kãút quaí cuäúi cuìng laì 0 (chia hãút) hoàûc nhoí hån säú chia (chia coìn dæ).
Vê duû: 36/5 = 7, dæ 1. Thæûc hiãûn pheïp chia naìy trong hãû hai.
Âáöu tiãn ta coï 5 = 0101B vaì säú buì hai cuía noï laì 1011B.
Caïc bæåïc tênh toaïn tiãúp cuía pheïp chia theo thuáût toaïn âaî nãu åí trãn âæåüc liãût kã ra nhæ sau:
Toaïìn haûng Thæång Tãn toaïn haûng, thao taïc
0 100100 Säú bë chia
1 011000 Säú chia åí maî buì hai âãø cäüng
1 111100 0 Täøng, kãút quaí 1 (kq1)
1 111100 kq1
0 101000 Säú chia åî maî hãû hai âãø cäüng
0 100100 Säú bë chia
1 00100 Säú bë chia dëch traïi 1 láön
1 01100 Säú chia åí maî buì hai âãø cäüng
0 10000 1 Täøng, kãút quaí 2 (kq2)
1 0000 kq2 dëch traïi 2 láön
1 0110 Säú chia åí maî buì hai âãø cäüng
0 0110 1 Täøng, kãút quaí 3 (kq3)
0 110 kq3 dëch traïi 3 láön
1 011 Säú chia åí maî buì hai âãø cäüng
0 001 1 Täøng, kãút quaí 4 (kq4)
Bit dáúu
Tæì âáy ta ruït ra 36/5 = 7 vaì dæ 1.
3. Maî ASCII - maî tiãu chuáøn cho trao âäøi thäng tin
Baíng 1.5. Baíng maî ASCII tiãu chuáøn
Hexa- decimal
0
1
2
3
4
5
6
7
0
0
16
32
0
48
@
64
P
80
`
96
P
112
1
1
17
!
33
1
49
A
65
Q
81
a
97
q
113
2
2
18
“
34
2
50
B
66
R
82
b
98
r
114
3
3
19
#
35
3
51
C
67
S
83
c
99
s
115
4
4
20
$
36
4
52
D
68
T
84
d
100
t
116
5
5
21
%
37
5
53
E
69
U
85
e
101
u
117
6
6
22
&
38
6
54
F
70
V
86
f
102
v
118
7
7
23
‘
39
7
55
G
71
W
87
g
103
w
119
8
8
24
(
40
8
56
H
72
X
88
h
104
x
120
9
9
25
)
41
9
57
I
73
Y
89
i
105
y
121
A
10
26
*
42
:
58
J
74
Z
90
j
106
z
122
B
11
27
+
43
;
59
K
75
[
91
k
107
{
123
C
12
28
,
44
<
60
L
76
\
92
l
108
|
124
D
13
29
-
45
=
61
M
77
]
93
m
109
}
125
E
14
30
.
46
>
62
N
78
^
94
n
110
~
126
F
15
31
/
47
?
63
O
79
_
95
o
111
127
Trong caïc pháön træåïc ta âaî noïi âãún caïch biãøu diãùn säú trong caïc hãû âãúm. Báy giåì ta xem xeït viãûc biãøu diãùn thäng tin noïi chung trong maïy tênh. Táút caí caïc thäng tin trong maïy tênh âãöu âæåüc biãøu diãùn dæåïi daûng caïc säú 0 vaì 1. Mäùi täø håüp cuía caïc säú 0 vaì 1 âæåüc gaïn mäüt kyï tæû chæî caïi, chæï säú hoàûc mäüt kyï tæû khaïc theo mäüt caïch thæïc nháút âënh. Trogn thæûc tãú thäng tin âæåüc truyãön âi, âæåüc læu giæî trong caïc bäü nhåï hoàûc âãø hiãøn thë trãn maìn hçnh âãöu åí dæåïi daûng kyï tæû vaì tuán theo 1 loaûi maî âæåüc duìng ráút räüng raîi goüi laì maî ASCII (American Standard Code for Information Interchange, maî chuáøn cuía Myî duìng cho trao âäøi thäng tin). Viãûc duìng caïc kyï tæû âãø maî hoaï thäng tin theo baíng maî ASCII (baíng 1.5) cho ta khaí nàng trao âäøi thäng tin våïi háöu hãút caïc maïy tênh khaïc.
Trong baíng maî ASCII tiãu chuáøn, ngæåìi ta duìng 7 bit âãø maî hoïa caïc kyî tæû thäng duûng, nhæ váûy baíóng maî naìy seî coï 128 kyï tæû æïng våïi caïc maî säú tæì 0..127. Bit thæï 8 coï thãø cho liãn tuûc bàòng 0, 1 hoàûc coï thãø duìng âãø chæïa bit parity (xem yï nghéa cuía parity åí chæång 3, pháön noïi vãö caïc cåì) phuûc vuû cho viãûc phaït hiãûn läùi khi truyãön.
Bãn caûnh baíng ASCII tiãu chuáøn ngæåìi ta coìn duìng baíng ASCII måí räüng cho caïc kyï tæû âàûc biãût (khaïc caïc kyï tæû tiãu chuáøn) våïi maî tæì 128.. 255.
Khi tra caïc baíng naìy ta âoüc maî cuía kyï tæû theo thæï tæû cäüt – haìng.
Vê duû: Maî ASCII cuía mäüt säú kyï tæû thæåìng duìng trong khi láûp trçnh:
(Bell, chuäng): 7
(Back space, xoaï luìi): 8
(Horizont tab, giaîn caïch ngang): 9
(Line feed, thãm doìng måïi): OAH
(Carriage return, vãö âáöu doìng): ODH
(Space, dáúu caïch): 2OH;
‘$’: 24H; ‘0’: 30H; ‘9’: 39H; ‘A’:41H; ‘a’: 61H...
Khi xem xeït baíng 1.5 ta coï thãø ruït ra máúy nháûn xeït så bäü nhæ sau:
2 cäüt âáöu cuía baíng maî âæåüc duìng cho caïc kyï tæû âiãöu khiãøn.
Cäüt 2 daình riãng cho caïc kyï tæû ngàn caïch
Caïc kyï tæû säú nàòm åí cäüt 3. Maî cuía kyï tæû ‘0’ laì 30H. ‘9’ laì 39H. Giæîa giaï trë säú vaì maî ASCII cuía säú âoï coï khoaíng caïch laì 30H.
Caïc chæî caïi hoa nàòm åí caïc cäüt 4,5, caïc chæî caïi thæåìng åí cäüt 6,7. Khoaíng caïch giæîa chæî thæåìng vaì chæî hoa cuìng tãn laì 20H.
4. Quan hãû giæîa maî ASCII våïi säú BCD
Trong khi laìm toaïn våïi caïc säú BCD ta thæåìng kãút håüp 2 säú BCD thaình 1 byte. Daûng säú BCD viãút theo kiãøu naìy goüi laì daûng BCD chuáøn hay coìn âæåüc goüi laì daûng BCD goïi (packed BCD). Khi læu træî, khi hiãûn thë hoàûc khi truyãön giæîa caïc thiãút bë caïc giaï trë säú 0 .. 9, thæûc cháút ta laìm viãûc våïi maî ASCII cuía caïc säú âoï, tæïc laì caïc säú 30H .. 39H. Nhæ váûy ta tháúy trong 1 byte maî ASCII biãøu diãùn caïc säú 0 ..9 coï 4 bit tháúp æïng våïi maî BCD cuía chênh caïc säú âoï, 4 bit cao bao giåì cuîng æïng våïi maî BCD cuía säú 3 (tæïc laì 0011B). Nãúu trong byte maî ASCII naìy ta thay 4 bit cao bàòng OH thç ta thu âæåüc säú BCD khäng goïi. Noïi caïch khaïc säú BCD khäng goïi laì säú daìi 1 byte, trong âoï 4 bit cao bàòng khäng, 4 bit tháúp laì säú BCD chuáøn maî hoïa säú cáön biãøu diãùn.
Vê duû sau minh hoüa quan hãû giæîa säú BCD goïi, BCD khäng goïi vaì maî ASCII.
Maî ASCII cuía 5 laì 0011 0101B = 35H
Maî ASCII cuía 9 laì 0011 1001B = 39H
Maî ASCII khäng goïi cuía 5 laì 0000 0101B = 05H
Maî ASCII khäng goïi cuía 9 laì 0000 1001B = 09H
Maî ASCII goïi (chuáøn) cuía 59 laì 0101 1001B = 59H
Tæì âáy ta coï thãø ruït ra caïc bæåïc phaíi laìm âãø âäøi 2 säú åí daûng maî ASCII sang daûng säú BCD chuáøn:
Âäøi säú âáöu tiãn tæì maî ASCII ra säú BCD khäng goïi
Âäøi säú thæï 2 tæì maî ASCII ra säú BCD khäng goïi
Láúy 4 bit tháúp cuía säú âáöu gheïp våïi 4 bit tháúp cuía säú sau taûo thaình 1 byte biãøu diãùn säú BCD goïi.
Âáy laì caïc cäng viãûc hay gàûp khi thao taïc våïi caïc säú trong caïc hãû vi xæí lyï.