書名: 匯編語言、微機(jī)原理及接口技術(shù)(第3版)作者名: 鄭初華主編本章字?jǐn)?shù): 2768字更新時(shí)間: 2018-12-27 19:08:02
1.2 碼制及其轉(zhuǎn)換
本節(jié)介紹計(jì)算機(jī)主要使用的二進(jìn)制編碼,重點(diǎn)講解真值(有符號數(shù))與補(bǔ)碼(或無符號數(shù))間的快速轉(zhuǎn)換方法。此方法使得8位或16位二進(jìn)制補(bǔ)碼的求解及有無符號數(shù)之間的轉(zhuǎn)換變得輕而易舉。
1.2.1 BCD碼
常見的BCD碼有8421碼、2421碼以及余3碼等,一般使用8421碼,它又分為壓縮BCD碼和非壓縮BCD碼。壓縮BCD碼是用4位二進(jìn)制代碼表示一位十進(jìn)制,一個(gè)字節(jié)可以表示兩位十進(jìn)制(00~9 9);而非壓縮BCD碼是用8位二進(jìn)制代碼表示一位十進(jìn)制,高4位無效,一個(gè)字節(jié)只能表示一位十進(jìn)制(0~9),高4位為0時(shí)則叫標(biāo)準(zhǔn)非壓縮BCD碼。例如,十進(jìn)制數(shù)35的壓縮BCD碼為35H,其標(biāo)準(zhǔn)非壓縮BCD碼為0305H。它們的比較示意圖如圖1.5所示。

圖1.5 三種 8421 BCD碼的比較
1.2.2 ASCII碼
基本ASCII碼使用7位二進(jìn)制編碼,占一個(gè)字節(jié),最高位為0。重要的7個(gè)字符的ASCII碼值如表1.2所示,其他字符參看附錄E。
表1.2 重要的ASCII字符

'0'~'9'的ASCII碼依次加1,'A'~'Z'的ASCII碼依次加1,'a'~'z'的ASCII碼也是依次加1,所以記住'0'、'A'以及'a'的ASCII碼,也就記住了6 2個(gè)字符的ASCII碼。'0'~'9'的ASCII碼是一種特殊的非壓縮BCD碼。例如'3 5'是十進(jìn)制數(shù)3 5的非壓縮BCD碼即3335H。
1.2.3 漢字內(nèi)碼
漢字在計(jì)算機(jī)及相關(guān)設(shè)備內(nèi)存儲、處理以及傳輸所用的編碼稱為漢字內(nèi)碼。我國目前主要采用的是國標(biāo)內(nèi)碼(GB2312),它在計(jì)算機(jī)內(nèi)占用兩個(gè)字節(jié),每個(gè)字節(jié)的最高位為1,最多可表示214=16384個(gè)可區(qū)別代碼。它與國標(biāo)區(qū)位碼的計(jì)算關(guān)系為:國標(biāo)內(nèi)碼=國標(biāo)碼(十六進(jìn)制)+8080H=國標(biāo)區(qū)位碼(十六進(jìn)制)+A0A0H。GB2312—80中有:一級漢字3755個(gè)、按拼音順序排列,二級漢字3008個(gè)、按偏旁筆畫數(shù)排列,字符682個(gè)。中國香港地區(qū)、中國臺灣地區(qū)以及新加坡等繁體漢字區(qū)主要采用大五碼(BIG5),它在計(jì)算機(jī)內(nèi)也4是占用兩個(gè)字節(jié),每個(gè)字節(jié)的最高位也為1。
為了統(tǒng)一表示世界上各國的文字,1993年國際標(biāo)準(zhǔn)化組織公布了“通用多八位編碼字符集”的國際標(biāo)準(zhǔn)ISO/IEC10646,簡稱UCS(Universal Code Set),有時(shí)也叫CJK(中、日、韓)統(tǒng)一漢字集。目前世界上逐漸趨于采用國際上通用的UCS中的CJK統(tǒng)一漢字編碼技術(shù)。UCS用4字節(jié)足以表示世界上所有的文字包括英文、中文、日文、韓文、俄文以及法文等。我國的相應(yīng)標(biāo)準(zhǔn)為GB13000。詳細(xì)內(nèi)容請查閱網(wǎng)址http://www.unicode.org。
1.2.4 原碼、反碼和補(bǔ)碼
原碼、反碼和補(bǔ)碼均為有符號數(shù)的編碼,正、負(fù)號也用二進(jìn)制編碼來表示,它們所代表的實(shí)際數(shù)值稱為“真值或原值”。
原碼是直接在真值的絕對值之前增加一個(gè)符號位,并取正數(shù)的符號為0,負(fù)數(shù)的符號為1。正數(shù)的反碼、補(bǔ)碼與原碼相同,負(fù)數(shù)的反碼為原碼的符號位不變其他位變反而得,負(fù)數(shù)的補(bǔ)碼為原碼的符號位不變其他位變反+1 而得。負(fù)數(shù)的三種編碼之間的轉(zhuǎn)換關(guān)系如圖1.6所示。

圖1.6 負(fù)數(shù)的原、反、補(bǔ)碼之間轉(zhuǎn)換關(guān)系圖
補(bǔ)碼是計(jì)算機(jī)中最基本的有符號數(shù)編碼方案,最主要原因是因?yàn)椴捎醚a(bǔ)碼后:減法可變加法如5-3=5+(-3);加減時(shí)符號位如同數(shù)值位一樣參加計(jì)算,具體例子請參看第3章加減運(yùn)算指令。
例1.11(8位二進(jìn)制數(shù)的原、反和補(bǔ)碼)
-107=-6BH=-1101011B=11101011B(原)=10010100B(反)=10010101B(補(bǔ))=EBH(原)=94H(反)=95H(補(bǔ))
107=6BH(原)=6BH(反)=6BH(補(bǔ))
1.2.5 二進(jìn)制數(shù)據(jù)的表示范圍
二進(jìn)制數(shù)據(jù)的表示范圍要分有符號數(shù)還是無符號數(shù)。無符號數(shù)的所有二進(jìn)制位(bit)均作為數(shù)值位;有符號數(shù)的最高位代表符號位,1 代表負(fù)、0代表正,其余位才是數(shù)值位。n位二進(jìn)制無符號數(shù)的表示范圍為0~(2n-1)。n位二進(jìn)制有符號數(shù)的表示范圍還取決于編碼方案,補(bǔ)碼為-2n-1~+(2n-1-1);原碼、反碼的表示范圍為-(2n-1-1)~+(2n-1-1)。計(jì)算機(jī)中內(nèi)外存容量以字節(jié)(B,Byte)為單位,一個(gè)字節(jié)由8個(gè)二進(jìn)制位構(gòu)成(即1 B=8 b)。8位二進(jìn)制數(shù)(1字節(jié))的無符號數(shù)表示范圍為0~255,有符號補(bǔ)碼表示范圍為-128~+127;16位二進(jìn)制(2字節(jié))的無符號數(shù)表示范圍為0~65535,有符號補(bǔ)碼表示范圍為-32768~+32767。
1.2.6 真值與補(bǔ)碼(無符號數(shù))之間的直接轉(zhuǎn)換
正數(shù)的真值與補(bǔ)碼(無符號數(shù))完全相同,負(fù)數(shù)的真值與補(bǔ)碼(無符號數(shù))之間的直接轉(zhuǎn)換方法如圖1.7所示(0在用n位二進(jìn)制補(bǔ)碼表示時(shí)也代表2n)。
例1.12 8位二進(jìn)制時(shí):
20=14H(補(bǔ))=20(無)
-5=0-5=00H-05H=FBH(補(bǔ))=251(無)
-120=0-120=00H-78H=88H(補(bǔ))=136(無)
F8H(補(bǔ))=248(無)=-(00H-F8H)=-08H=-(256-248)=-8(有)
5CH(補(bǔ))=92(無)=92(有)
16位二進(jìn)制時(shí):
20=0014H(補(bǔ))=20(無)
-5=0-5=0000H-0005H=FFFBH(補(bǔ))=65531(無)
-120=0-120=0000H-78H=FF88H(補(bǔ))=65416(無)
FFC6H(補(bǔ))=0000H-(0000H-FFC6H)=65536-58=65478(無)=-(0-FFC6H)=-3AH=-58(有)=-(65536-65478)=-58(有)
048FH=1024+128+15=1165(無)=1165(有)
1.2.7 定點(diǎn)數(shù)和浮點(diǎn)數(shù)
機(jī)器數(shù)的表示是受設(shè)備限制的。計(jì)算機(jī)一般是以字為單位進(jìn)行數(shù)據(jù)的處理、存儲和傳遞的。所以運(yùn)算器中的加法器,累加器以及其他一些寄存器,都選擇與字長相同的位數(shù)。字長一定,則計(jì)算機(jī)所能表示數(shù)的范圍也就確定了。例如,使用8位字長的計(jì)算機(jī),它可以表示無符號整數(shù)的表示范圍在0~255,補(bǔ)碼表示的有符號數(shù)表示范圍-128~127。如果運(yùn)算數(shù)值超出機(jī)器數(shù)所能表示的范圍,機(jī)器就需要進(jìn)行相應(yīng)處理。這種現(xiàn)象稱為溢出。
計(jì)算機(jī)中的數(shù),既有整數(shù),也有小數(shù)。如何確定小數(shù)點(diǎn)的位置呢?通常有兩種約定:一種是規(guī)定小數(shù)點(diǎn)位置固定不變,這時(shí)的機(jī)器數(shù)稱為定點(diǎn)數(shù),另一種是小數(shù)點(diǎn)位置可以浮動的,這樣的機(jī)器數(shù)稱為浮點(diǎn)數(shù)。
1.定點(diǎn)數(shù)。對于定點(diǎn)數(shù),小數(shù)點(diǎn)位置可以固定在符號位之后,這樣的機(jī)器表示的全是定點(diǎn)小數(shù)。例如,假定機(jī)器字長為16位,符號位占1位,數(shù)值占有15位,于是機(jī)器數(shù)的原碼表示如圖1.8所示。

圖1.7 負(fù)數(shù)的真值與補(bǔ)碼之間轉(zhuǎn)換關(guān)系圖

圖1.8 定點(diǎn)小數(shù)示意圖
其相當(dāng)于十進(jìn)制數(shù)為-2-15。
小數(shù)點(diǎn)位置固定在數(shù)的最后,則該機(jī)器表示的全是定點(diǎn)整數(shù)。例如,假設(shè)機(jī)器字長為16位,符號位占有1位,數(shù)值部分占15位,圖1.9表示的機(jī)器數(shù)相當(dāng)于十進(jìn)制數(shù)為+32767。

圖1.9 定點(diǎn)整數(shù)示意圖
定點(diǎn)表示法表示的數(shù)值范圍及精度有限,為了擴(kuò)大定點(diǎn)數(shù)的表示范圍或提高精度,可以采用多個(gè)字節(jié)來表示一個(gè)定點(diǎn)數(shù),例如,采用4字節(jié)或8字節(jié)來表示。
2.浮點(diǎn)數(shù)。浮點(diǎn)數(shù)表示法就是小數(shù)點(diǎn)在數(shù)中的位置是浮動的。由于定點(diǎn)數(shù)表示的數(shù)的范圍較窄,不能滿足實(shí)際問題的需要,因此要采用浮點(diǎn)表示法。在同樣字長情況下,浮點(diǎn)表示法能表示數(shù)的范圍擴(kuò)大了。
浮點(diǎn)表示法包括兩部分:一部分是階碼,另一部分是尾數(shù)。浮點(diǎn)數(shù)在機(jī)器中的表示方法如圖1.10所示。

圖1.10 浮點(diǎn)數(shù)示意圖
由尾數(shù)部分隱含的小數(shù)點(diǎn)位置可知,尾數(shù)的絕對值總是小于1的數(shù),它給出該浮點(diǎn)數(shù)的有效數(shù)字,為了有更多位有效數(shù)字,一般用規(guī)范化小數(shù)表示,即尾數(shù)的絕對值大于等于0.5、小于1。尾數(shù)部分的數(shù)符確定該浮點(diǎn)數(shù)的正負(fù)。階碼總是整數(shù),它確定小數(shù)點(diǎn)浮動的位數(shù)。若階符為正,尾數(shù)的小數(shù)點(diǎn)向右移動;若階符為負(fù),則向左移動。即浮點(diǎn)數(shù)的值為:尾數(shù)×2階碼。
當(dāng)浮點(diǎn)數(shù)的尾數(shù)為零或者階碼為最小值時(shí),機(jī)器通常規(guī)定,把該數(shù)看做0,稱為“機(jī)器零”。在浮點(diǎn)數(shù)的表示和運(yùn)算中,當(dāng)一個(gè)數(shù)的階碼大于機(jī)器所能表示的最大階碼時(shí),產(chǎn)生“上溢”,當(dāng)一個(gè)數(shù)的階碼小于機(jī)器所能表示的最小階碼時(shí),產(chǎn)生“下溢”。
浮點(diǎn)數(shù)的取值范圍如圖1.11所示。

圖1.11 浮點(diǎn)數(shù)表示范圍示意圖
例1.13 設(shè)階碼用8位補(bǔ)碼表示,尾數(shù)部分用16位補(bǔ)碼表示,則-128.0625=-(27+2-4)= -(2-1+2-12)×28=-0.100000000001000B×28的尾數(shù)部分為-0.100000000001000B,補(bǔ)碼為1011111111111000B;階碼部分為8,即00001000B,對應(yīng)的十六進(jìn)制數(shù)為08BFF8H。
- 有機(jī)化學(xué)實(shí)驗(yàn)
- 黑龍江大學(xué)俄語系《俄語2》(第二次修訂版)學(xué)習(xí)指南【詞匯短語+課文精解+單元語法+全文翻譯+練習(xí)答案】
- 高級財(cái)務(wù)管理
- 2020年英語專業(yè)八級漢譯英高分特訓(xùn)100篇【命題分析+答題攻略+強(qiáng)化訓(xùn)練】
- 井壁穩(wěn)定預(yù)測技術(shù)
- 注塑模具設(shè)計(jì)基礎(chǔ)(第2版)
- 商務(wù)談判
- 湖南師范大學(xué)外國語學(xué)院357英語翻譯基礎(chǔ)[專業(yè)碩士]歷年考研真題及詳解
- 首飾藝術(shù)設(shè)計(jì)(第2版)
- 計(jì)算機(jī)網(wǎng)絡(luò)教程(微課版)
- 高級女裝制板技術(shù) 基礎(chǔ)篇
- 先進(jìn)聚酰亞胺材料:合成、表征及應(yīng)用
- 2020年寧夏回族自治區(qū)選聘大學(xué)生村官考試《綜合知識》題庫【真題精選+章節(jié)題庫+模擬試題】
- Photoshop圖形圖像處理實(shí)用教程
- 高等數(shù)學(xué)習(xí)題全解與學(xué)習(xí)指導(dǎo)(上冊)