Bài soạn Vi xử lý - Chương 1: Các hệ đếm và việc mã hóa thông tin trong máy tính
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
(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ï.
File đính kèm:
- bai_soan_vi_xu_ly_chuong_1_cac_he_dem_va_viec_ma_hoa_thong_t.doc