《微機(jī)原理與接口技術(shù)》課件第1章_第1頁(yè)
《微機(jī)原理與接口技術(shù)》課件第1章_第2頁(yè)
《微機(jī)原理與接口技術(shù)》課件第1章_第3頁(yè)
《微機(jī)原理與接口技術(shù)》課件第1章_第4頁(yè)
《微機(jī)原理與接口技術(shù)》課件第1章_第5頁(yè)
已閱讀5頁(yè),還剩146頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章概述1.1計(jì)算機(jī)的數(shù)制及其轉(zhuǎn)換1.2計(jì)算機(jī)中數(shù)與字符的編碼1.3微型計(jì)算機(jī)系統(tǒng)組成1.4微型計(jì)算機(jī)的性能指標(biāo)及分類1.5多媒體計(jì)算機(jī)1.1計(jì)算機(jī)的數(shù)制及其轉(zhuǎn)換

1.1.1數(shù)與數(shù)制進(jìn)位計(jì)數(shù)制是一種計(jì)數(shù)的方法。在日常生活中,人們使用各種進(jìn)位計(jì)數(shù)制。例如,六十進(jìn)制(1小時(shí)=60分,1分=60秒),十二進(jìn)制(1英尺=12英寸,1年=12月)等。但最熟悉和最常用的是十進(jìn)制計(jì)數(shù)。如前所述,在計(jì)算機(jī)中使用的是二進(jìn)制計(jì)數(shù)。另外,為便于人們閱讀及書(shū)寫(xiě),常常還要用到八進(jìn)制計(jì)數(shù)及十六進(jìn)制計(jì)數(shù)來(lái)表示二進(jìn)制計(jì)數(shù)。十進(jìn)制數(shù)的特點(diǎn)是“逢十進(jìn)一,借一當(dāng)十”,需要用到的數(shù)字符號(hào)為10個(gè),分別是0~9。二進(jìn)制數(shù)的特點(diǎn)是“逢二進(jìn)一,借一當(dāng)二”,需要用到的數(shù)字符號(hào)為2個(gè),分別是0、1。八進(jìn)制數(shù)的特點(diǎn)是“逢八進(jìn)一,借一當(dāng)八”,需要用到的數(shù)字符號(hào)為8個(gè),分別是0~7。十六進(jìn)制數(shù)的特點(diǎn)是“逢十六進(jìn)一,借一當(dāng)十六”,需要用到的數(shù)字符號(hào)為16個(gè),分別是0~9、A~F。

任意一個(gè)十進(jìn)制數(shù)可以用位權(quán)表示,位權(quán)就是某個(gè)固定位置上的計(jì)數(shù)單位。在十進(jìn)制數(shù)中,個(gè)位的位權(quán)為100,十位的位權(quán)為101,百位的位權(quán)為102,千位的位權(quán)為103,而在小數(shù)點(diǎn)后第一位上的位權(quán)為10-1,小數(shù)點(diǎn)后第二位的位權(quán)為10-2等等。因此,如果有十進(jìn)制數(shù)234.13,則百位上的2表示兩個(gè)100,十位上的3表示三個(gè)10,個(gè)位上的4表示四個(gè)1,小數(shù)點(diǎn)后第一位上的1表示一個(gè)0.1,小數(shù)點(diǎn)后第二位上的3表示三個(gè)0.01,用位權(quán)表示為

(234.13)10?=2×102+3×101+4×100?+1×10-1+3×10-2

同理,任意一個(gè)二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)也可用位權(quán)表示。例如:1.1.2不同數(shù)制之間的轉(zhuǎn)換

1.十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)方法:除2取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以2,得到一個(gè)商和一個(gè)余數(shù);再將商除以2,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是0或1)就是對(duì)應(yīng)的二進(jìn)制數(shù)的各位數(shù)字。注意:第一次得到的余數(shù)為二進(jìn)制數(shù)的最低位,最后得到的余數(shù)為二進(jìn)制數(shù)的最高位?!纠?-1】將十進(jìn)制數(shù)97轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:最后結(jié)果為為了將一個(gè)既有整數(shù)又有小數(shù)部分的十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),可以將其整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后再組合起來(lái)。例如把97.6875轉(zhuǎn)換成對(duì)應(yīng)二進(jìn)制數(shù)的過(guò)程如下:

2.十進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)方法:除8取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以8,得到一個(gè)商和一個(gè)余數(shù);再將商除以8,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是小于8的數(shù))就是對(duì)應(yīng)八進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為八進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為八進(jìn)制數(shù)的最高位。

2)十進(jìn)制小數(shù)轉(zhuǎn)換成八進(jìn)制小數(shù)方法:乘8取整數(shù),結(jié)果順排列。具體做法:用8乘以十進(jìn)制小數(shù),得到一個(gè)整數(shù)和一個(gè)小數(shù);再用8乘以小數(shù)部分,又得到一個(gè)整數(shù)和一個(gè)小數(shù);繼續(xù)這一過(guò)程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于8的數(shù))按先后順序從左到右排列,即得到所對(duì)應(yīng)的二進(jìn)制小數(shù)。

3.十進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)方法:除16取余數(shù),結(jié)果倒排列。具體做法:將十進(jìn)制數(shù)除以16,得到一個(gè)商和一個(gè)余數(shù);再將商除以16,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是小于F的數(shù))就是對(duì)應(yīng)十六進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為十六進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為十六進(jìn)制數(shù)的最高位。

2)十進(jìn)制小數(shù)轉(zhuǎn)換成十六進(jìn)制小數(shù)方法:乘16取整數(shù),結(jié)果順排列。具體做法:用16乘以十進(jìn)制小數(shù),得到一個(gè)整數(shù)和一個(gè)小數(shù);再用16乘以小數(shù)部分,又得到一個(gè)整數(shù)和一個(gè)小數(shù);繼續(xù)這一過(guò)程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于F的數(shù))按先后順序從左到右排列,即得到所對(duì)應(yīng)的十六進(jìn)制小數(shù)。4.二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因?yàn)?3=8,所以每三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù);24=16,所以每四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制。表1-1列出了十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制最基本數(shù)字的對(duì)應(yīng)關(guān)系,這些對(duì)應(yīng)關(guān)系在后面的二進(jìn)制、八進(jìn)制、十六進(jìn)制相互轉(zhuǎn)換中要經(jīng)常用到。

1)二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)方法:從小數(shù)點(diǎn)所在位置分別向左、向右每三位一組進(jìn)行劃分。若小數(shù)點(diǎn)左側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點(diǎn)右側(cè)的位數(shù)不是3的整數(shù)倍,則在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每三位二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的一位八進(jìn)制數(shù),排列后即為二進(jìn)制數(shù)對(duì)應(yīng)的八進(jìn)制數(shù)。表1-1十、二、八、十六進(jìn)制數(shù)碼的對(duì)應(yīng)關(guān)系

【例1-10】直接將二進(jìn)制數(shù)11110.11轉(zhuǎn)換成八進(jìn)制數(shù)。其過(guò)程如下:

011 110 . 110 3 6 . 6所以

(11110.11)2=(36.6)8

2)八進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位八進(jìn)制數(shù)分解成對(duì)應(yīng)的三位二進(jìn)制數(shù),排列后即為八進(jìn)制數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)。

【例1-11】直接將八進(jìn)制數(shù)35.6轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:

3)二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)方法:從小數(shù)點(diǎn)所在位置分別向左、向右每四位一組進(jìn)行劃分。若小數(shù)點(diǎn)左側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點(diǎn)右側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每四位二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的一位十六進(jìn)制數(shù),排列后即為二進(jìn)制數(shù)對(duì)應(yīng)的十六進(jìn)制數(shù)。 0001 1110 . 1100 1 E . C所以

(11110.11)2=(1E.C)16

【例1-12】直接將二進(jìn)制11110.11轉(zhuǎn)換成十六進(jìn)制數(shù)。其過(guò)程如下:4)十六進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位十六進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的四位二進(jìn)制數(shù),排列后即為十六進(jìn)制數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)。

【例1-13】直接將十六進(jìn)制數(shù)EF.C轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:

E F C 1110 1111. 1100所以

(EF.C)16=(11101111.11)2由以上方法可以看出,(25)10=(11001)2=(19)16=(31)8,(0.5)10=(0.1)2=(0.8)16=(0.4)8。在計(jì)算機(jī)里,通常用數(shù)字后面跟一個(gè)英文字母來(lái)表示該數(shù)的數(shù)制,十進(jìn)制數(shù)用D(Decimal)、二進(jìn)制數(shù)用B(Binary)、八進(jìn)制數(shù)用O(Octal)、十六進(jìn)制數(shù)用H(Hexadecimal)來(lái)表示。由于英文字母O容易和零混淆,所以也可以用Q來(lái)表示八進(jìn)制數(shù)。另外,在計(jì)算機(jī)操作中一般默認(rèn)使用十進(jìn)制數(shù),所以十進(jìn)制數(shù)可以不標(biāo)進(jìn)制。例如,25D=11001B=19H=31Q,0.5D=0.1B=0.8H=0.4Q。當(dāng)然,也可以用這些字母的小寫(xiě)形式來(lái)表示數(shù)制。例如:25d=11001b=19h=31q,0.5d=0.1b=0.8h=0.4q。本書(shū)約定采用大寫(xiě)字母形式。八進(jìn)制數(shù)和十六進(jìn)制數(shù)主要用來(lái)簡(jiǎn)化二進(jìn)制數(shù)的書(shū)寫(xiě),因?yàn)榫哂?3=8,24=16的關(guān)系,所以使用八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示的二進(jìn)制數(shù)較短,便于記憶。IBM-PC機(jī)中主要使用十六進(jìn)制數(shù)表示二進(jìn)制數(shù)和編碼,所以必須十分熟悉二進(jìn)制數(shù)與十六進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系。

同理,任意一個(gè)二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)也可用位權(quán)表示。例如:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2(124.36)8=1×82+2×81+4×80+3×8-1+6×8-2(AC.B5)16=A×161+C×160+B×16-1+5×16-2

根據(jù)上述概念,可推廣出表示任意進(jìn)制數(shù)的通式:其中為整數(shù)部分,為小數(shù)部分,r為基數(shù)。每一項(xiàng)的數(shù)字可用0~r-1數(shù)字中的一個(gè)數(shù)字來(lái)表示。1.3.2不同數(shù)制之間的轉(zhuǎn)換

1.十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)

方法:除2取余法。具體做法:將十進(jìn)制數(shù)除以2,得到一個(gè)商和一個(gè)余數(shù);再將商除以2,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是0或1)就是對(duì)應(yīng)的二進(jìn)制數(shù)的各位數(shù)字。注意:第一次得到的余數(shù)為二進(jìn)制數(shù)的最低位,最后得到的余數(shù)為二進(jìn)制數(shù)的最高位?!纠?-1】將十進(jìn)制數(shù)97轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:最后結(jié)果為(97)10=(A6A5A4A3A2A1A0)2=(1100001)22972482242122623210余數(shù)為1,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為0,余數(shù)為1,余數(shù)為1,余數(shù)為0,即A0=1即A1=0即A2=0即A3=0即A4=0即A5=1即A6=1結(jié)束2)十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)方法:乘2取整法。具體做法:用2乘以十進(jìn)制小數(shù),得到整數(shù)和小數(shù)部分;再用2乘以小數(shù)部分,又得到一個(gè)整數(shù)和一個(gè)小數(shù)部分;繼續(xù)這一過(guò)程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是0或1)按先后順序從左到右排列,即得到所對(duì)應(yīng)的二進(jìn)制小數(shù)?!纠?-2】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成二進(jìn)制小數(shù)。其過(guò)程如下:0.6875× ?21.3750 整數(shù)部分為1,即A-1=10.3750 余下的小數(shù)部分×20.7500 整數(shù)部分為0,即A-2=00.7500 余下的小數(shù)部分×?21.5000 整數(shù)部分為1,即A-3=10.5000 余下的小數(shù)部分×?21.0000 整數(shù)部分為1,即A-4=10.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2A-3A-4)2=(0.1011)2

為了將一個(gè)既有整數(shù)又有小數(shù)部分的十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),可以將其整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后再組合起來(lái)。例如:(97)10=(1100001)2(0.6875)10=(0.1011)2由此可得:(97.6875)10=(1100001.1011)23)二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開(kāi)后相加。【例1-3】將二進(jìn)制數(shù)111.11轉(zhuǎn)換成十進(jìn)制數(shù)。其過(guò)程如下:(111.11)2=1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25=(7.75)10

2.十進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)方法:除8取余法。具體做法:將十進(jìn)制數(shù)除以8,得到一個(gè)商和一個(gè)余數(shù);再將商除以8,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是小于8的數(shù))就是對(duì)應(yīng)八進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為八進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為八進(jìn)制數(shù)的最高位?!纠?-4】將十進(jìn)制數(shù)97轉(zhuǎn)換成八進(jìn)制數(shù)。其過(guò)程如下:最后結(jié)果為(97)10=(A2A1A0)8=(141)8余數(shù)為1,余數(shù)為4,余數(shù)為1,即A0=1即A1=4即A2=1結(jié)束89781281商為0余數(shù)為0,2)十進(jìn)制小數(shù)轉(zhuǎn)換成八進(jìn)制小數(shù)

方法:乘8取整法。具體做法:用8乘以十進(jìn)制小數(shù),得到一個(gè)整數(shù)和一個(gè)小數(shù)部分;再用8乘以小數(shù)部分,又得到一個(gè)整數(shù)和一個(gè)小數(shù)部分;繼續(xù)這一過(guò)程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于8的數(shù))按先后順序從左到右排列,即得到所對(duì)應(yīng)的二進(jìn)制小數(shù)。【例1-5】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成八進(jìn)制小數(shù)。其過(guò)程如下:

0.6875 ×8 5.5000 整數(shù)部分為5,即A-1=5 0.5000 余下的小數(shù)部分

×8 4.0000 整數(shù)部分為4,即A-2=4 0.0000 余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1A-2)8=(0.54)8同理,一個(gè)八進(jìn)制數(shù)可分解成整數(shù)和小數(shù)部分,分別轉(zhuǎn)換后合成即可。3)八進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開(kāi)后相加【例1-6】

將八進(jìn)制數(shù)141.54轉(zhuǎn)換成十進(jìn)制數(shù)。其過(guò)程如下:(141.54)8=1×82+4×81+1×80+5×8-1+4×8-2 =64+32+1+0.625+0.0625 =97.6875最后結(jié)果為

(141.54)8=(97.6875)10

3.十進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換

1)十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)

方法:除16取余法。具體做法:將十進(jìn)制數(shù)除以16,得到一個(gè)商和一個(gè)余數(shù);再將商除以16,又得到一個(gè)商和一個(gè)余數(shù);繼續(xù)這一過(guò)程,直到商等于0為止。每次得到的余數(shù)(必定是小于F的數(shù))就是對(duì)應(yīng)十六進(jìn)制數(shù)的各位數(shù)字。第一次得到的余數(shù)為十六進(jìn)制數(shù)的最低位,最后一次得到的余數(shù)為十六進(jìn)制數(shù)的最高位。【例1-7】將十進(jìn)制數(shù)97轉(zhuǎn)換成十六進(jìn)制數(shù)。其過(guò)程如下:最后結(jié)果為(97)10=(A2A1A0)16=(61)16余數(shù)為1,余數(shù)為6,即A0=1即A1=6結(jié)束1697166商為0余數(shù)為0,2)十進(jìn)制小數(shù)轉(zhuǎn)換成十六進(jìn)制小數(shù)方法:乘16取整法。具體做法:用16乘以十進(jìn)制小數(shù),得到一個(gè)整數(shù)和一個(gè)小數(shù)部分;再用16乘以小數(shù)部分,又得到一個(gè)整數(shù)和一個(gè)小數(shù)部分;繼續(xù)這一過(guò)程,直到余下的小數(shù)部分為0或滿足精度要求為止;最后將每次得到的整數(shù)部分(必定是小于F的數(shù))按先后順序從左到右排列,即得到所對(duì)應(yīng)的十六進(jìn)制小數(shù)?!纠?-8】將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成十六進(jìn)制小數(shù)。其過(guò)程如下:0.68751611.00000.0000整數(shù)部分為11,即A-1=B余下的小數(shù)部分為0,結(jié)束最后結(jié)果為(0.6875)10=(0.A-1)16=(0.B)163)十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)方法:按位權(quán)展開(kāi)后相加?!纠?-9】

將十六進(jìn)制數(shù)61.B轉(zhuǎn)換成十進(jìn)制數(shù)。其過(guò)程如下:

(61.B)8 =6×161+1×160+B×16-1 =96+1+11×16-1 =97+0.6875 =97.6875最后結(jié)果為

(61.B)16=(97.6875)10

4.二進(jìn)制與八進(jìn)制、十六進(jìn)制數(shù)之間的轉(zhuǎn)換因?yàn)?3=8,所以每三位二進(jìn)制數(shù)對(duì)應(yīng)一位八進(jìn)制數(shù);24=16,所以每四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制。表1-1列出了十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制最基本數(shù)字的對(duì)應(yīng)關(guān)系,這些對(duì)應(yīng)關(guān)系在后面的二進(jìn)制、八進(jìn)制、十六進(jìn)制相互轉(zhuǎn)換中要經(jīng)常用到。

1)二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)

方法:從小數(shù)點(diǎn)所在位置分別向左向右每三位一組進(jìn)行劃分。若小數(shù)點(diǎn)左側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點(diǎn)右側(cè)的位數(shù)不是3的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每三位二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的一位八進(jìn)制數(shù),即為二進(jìn)制數(shù)對(duì)應(yīng)的八進(jìn)制數(shù)。表1-1十、二、八、十六進(jìn)制數(shù)碼的對(duì)應(yīng)關(guān)系十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F表1-1十、二、八、十六進(jìn)制數(shù)碼的對(duì)應(yīng)關(guān)系【例1-10】直接將二進(jìn)制數(shù)11110.11轉(zhuǎn)換成八進(jìn)制數(shù)。其過(guò)程如下:011 110 . 1103 6 . 6所以(11110.11)2=(36.6)82)八進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位八進(jìn)制數(shù)分解成對(duì)應(yīng)的三位二進(jìn)制數(shù),即為八進(jìn)制數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)。

【例1-11】直接將八進(jìn)制數(shù)35.6轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:3 5 . 6011 101 . 110

所以(35.6)8=(11101.11)2

3)二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)方法:從小數(shù)點(diǎn)所在位置分別向左向右每四位一組進(jìn)行劃分。若小數(shù)點(diǎn)左側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最左側(cè)補(bǔ)零;若小數(shù)點(diǎn)右側(cè)的位數(shù)不是4的整數(shù)倍,在數(shù)的最右側(cè)補(bǔ)零。然后參照表1-1,將每四位二進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的一位十六進(jìn)制數(shù),即為二進(jìn)制數(shù)對(duì)應(yīng)的十六進(jìn)制數(shù)。

【例1-12】直接將二進(jìn)制11110.11轉(zhuǎn)換成十六進(jìn)制數(shù)。其過(guò)程如下:0001 1110 . 11001 E . C所以(11110.11)2=(1E.C)164)十六進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)方法:參照表1-1,將每一位十六進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的四位二進(jìn)制數(shù),即為十六進(jìn)制數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)。

【例1-13】直接將十六進(jìn)制數(shù)EF.C轉(zhuǎn)換成二進(jìn)制數(shù)。其過(guò)程如下:

E F . C1110 1111 . 1100所以(EF.C)16=(11101111.11)2

由以上方法可以看出,(25)10=(11001)2=(19)16=(31)8,(0.5)10=(0.1)2=(0.8)16=(0.4)8。在計(jì)算機(jī)里,通常用數(shù)字后面跟一個(gè)英文字母來(lái)表示該數(shù)的數(shù)制,十進(jìn)制數(shù)用D(Decimal)、二進(jìn)制數(shù)用B(Binary)、八進(jìn)制數(shù)用O(Octal)、十六進(jìn)制數(shù)用H(Hexadecimal)來(lái)表示。由于英文字母O容易和零誤會(huì),所以也可以用Q來(lái)表示八進(jìn)制數(shù)。另外,在計(jì)算機(jī)操作中一般默認(rèn)使用十進(jìn)制數(shù),所以十進(jìn)制數(shù)可以不標(biāo)進(jìn)制。

例如,25D=1100B=19H=31Q,0.5D=0.1B=0.8H=0.4Q。當(dāng)然,也可以用這些字母的小寫(xiě)形式來(lái)表示數(shù)制。例如:25d=1100b=19h=31q,0.5d=0.1b=0.8h=0.4q。本書(shū)約定采用大寫(xiě)字母形式。八進(jìn)制數(shù)和十六進(jìn)制數(shù)主要用來(lái)簡(jiǎn)化二進(jìn)制數(shù)的書(shū)寫(xiě),因?yàn)榫哂?3=8,24=16的關(guān)系,所以使用八進(jìn)制數(shù)和十六進(jìn)制數(shù)表示的二進(jìn)制數(shù)較短,便于記憶。IBM-PC機(jī)中主要使用十六進(jìn)制數(shù)表示二進(jìn)制數(shù)和編碼,所以必須十分熟悉二進(jìn)制數(shù)與十六進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系。1.2計(jì)算機(jī)中數(shù)與字符的編碼1.2.1數(shù)值數(shù)據(jù)的編碼及其運(yùn)算

1.二進(jìn)制數(shù)據(jù)的編碼及運(yùn)算在二進(jìn)制數(shù)制中,數(shù)據(jù)的正負(fù)號(hào)可以用一位二進(jìn)制的“0”和“1”兩個(gè)狀態(tài)來(lái)表示,這樣,二進(jìn)制數(shù)值數(shù)據(jù)在計(jì)算機(jī)中就能方便表示了。為了盡可能簡(jiǎn)化對(duì)二進(jìn)制數(shù)值數(shù)據(jù)實(shí)現(xiàn)算術(shù)運(yùn)算的規(guī)則,機(jī)器將二進(jìn)制數(shù)值數(shù)據(jù)進(jìn)行編碼表示,常用的編碼有原碼、反碼和補(bǔ)碼。由于補(bǔ)碼編碼有許多優(yōu)點(diǎn),因此大多數(shù)微機(jī)數(shù)字與字符采用補(bǔ)碼編碼。

為了討論方便,有必要引入兩個(gè)概念:機(jī)器數(shù)和機(jī)器數(shù)的真值(簡(jiǎn)稱真值)。

.機(jī)器數(shù):帶符號(hào)的二進(jìn)制數(shù)值數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的編碼。

.真值:機(jī)器數(shù)所代表的實(shí)際值。一般機(jī)器數(shù)的最高有效位用來(lái)表示數(shù)的正負(fù)號(hào),“0”表示正數(shù),“1”表示負(fù)數(shù)。1)二進(jìn)制數(shù)原碼編碼方法原碼編碼的方法如下:設(shè)真值為X,機(jī)器字長(zhǎng)為n位,則當(dāng)X≥0時(shí),[X]原的最高位填0,其余n-1位填X的各數(shù)值位的位值。例如,n=8時(shí),[+0]原=00000000,[+1]原=00000001,[+127]原=01111111。當(dāng)X≤0時(shí),[X]原的最高位填1,其余n-1位填X的各數(shù)值位的位值。例如,n=8時(shí),[-0]原=10000000,[-1]原=10000001,[-127]原=11111111。結(jié)論:二進(jìn)制正、負(fù)數(shù)的原碼就是符號(hào)化的機(jī)器數(shù)真值本身。

注意:在原碼的表示中,真值0的原碼可表示為兩種不同的形式,+0和-0。原碼表示法的優(yōu)點(diǎn)是簡(jiǎn)單易于理解,與真值間的轉(zhuǎn)換較為方便。它的缺點(diǎn)是進(jìn)行加減運(yùn)算時(shí)較麻煩,既要考慮是做加法還是做減法運(yùn)算,還要考慮數(shù)的符號(hào)和絕對(duì)值的大小。這不僅使運(yùn)算器的設(shè)計(jì)較為復(fù)雜,而且降低了運(yùn)算器的運(yùn)算速度。若有二進(jìn)制數(shù)X=Xn-1Xn-2…X1X0,則原碼表示法的定義為2n-1>X≥00≥X>-2n-12)二進(jìn)制數(shù)反碼編碼方法反碼編碼的方法如下:設(shè)真值為X,機(jī)器字長(zhǎng)為n位,則當(dāng)X≥0時(shí),[X]反的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號(hào)—絕對(duì)值表示。例如,n=8時(shí),[+0]反=00000000,[+1]反=00000001,[+127]反=01111111。當(dāng)X≤0時(shí),[X]反=2n-1+X(MOD2n)。例如,n=8時(shí),[-0]反=11111111,[-1]反=11111110,[-127]反=10000000。

結(jié)論:二進(jìn)制正數(shù)的反碼就是其原碼。二進(jìn)制負(fù)數(shù)的反碼就是機(jī)器數(shù)符號(hào)位保持不變,其余按位取反。

注意:在反碼的表示中,真值0的反碼也可表示為兩種不同的形式,+0和-0。若二進(jìn)制數(shù)X=Xn-1Xn-2…X1X0,則反碼表示法的定義為2n-1>X≥00≥X>-2n-13)二進(jìn)制數(shù)補(bǔ)碼編碼方法補(bǔ)碼編碼的方法如下:設(shè)真值為X,機(jī)器字長(zhǎng)為n位,則當(dāng)X≥0時(shí),[X]補(bǔ)的最高位填0,其余n-1位填X的各數(shù)值位的位值,即采用符號(hào)—絕對(duì)值表示。例如,n=8時(shí),[+0]補(bǔ)=00000000,[+1]補(bǔ)=00000001,[+127]補(bǔ)=01111111。當(dāng)X≤0時(shí),[X]補(bǔ)=2n-|X|(MOD2n)。例如,n=8時(shí),[-0]補(bǔ)=00000000,[-1]補(bǔ)=11111111,[-127]補(bǔ)=10000001。結(jié)論:二進(jìn)制正數(shù)的補(bǔ)碼就是其原碼。二進(jìn)制負(fù)數(shù)的補(bǔ)碼就是機(jī)器數(shù)符號(hào)位保持不變,其余位取反碼后末位加1。

求負(fù)數(shù)的補(bǔ)碼有一種更簡(jiǎn)便的方法:當(dāng)X≤0時(shí),[X]補(bǔ)的最高位填1,其余n-1位填X的各數(shù)值位按位取反(0變1,1變0)后在末位加1的數(shù)值。

注意:①在補(bǔ)碼表示法中,0只有一種表示,即000…000。②對(duì)于10000000這個(gè)補(bǔ)碼編碼,其真值被定義為-128。

【例1-14】

機(jī)器字長(zhǎng)n=8位,X=+48D,求[X]補(bǔ)。首先將+48D轉(zhuǎn)換為二進(jìn)制數(shù):+110000B。因?yàn)闄C(jī)器字長(zhǎng)是8位,其中符號(hào)占了1位,所以數(shù)值只占7位。將+110000B寫(xiě)成+0110000B,[+48]補(bǔ)

=00110000B,寫(xiě)成十六進(jìn)制數(shù)為30H,即[+48]補(bǔ)

=30H?!纠?-15】機(jī)器字長(zhǎng)n=8位,X=-48D,求[X]補(bǔ)。首先將-48D轉(zhuǎn)換為二進(jìn)制數(shù):-110000B。因?yàn)闄C(jī)器字長(zhǎng)是8位,其中符號(hào)占了1位,所以數(shù)值只占7位。將-110000B寫(xiě)成-10110000B。再將數(shù)值位0110000B按位求反后為1001111B,末位加1后為1010000B。所以,[-48]補(bǔ)

=11010000B,寫(xiě)成十六進(jìn)制數(shù)為0D0H,即[-48]補(bǔ)

=0D0H。注意:在匯編語(yǔ)言中,為了區(qū)別指令碼和數(shù)據(jù),規(guī)定以A~F開(kāi)始的數(shù)據(jù)前面加零,如0D0H。

【例1-16】機(jī)器字長(zhǎng)n=16位,X=+48D,求[X]補(bǔ)

+48D轉(zhuǎn)換為二進(jìn)制數(shù):+110000B。因?yàn)闄C(jī)器字長(zhǎng)是16位,其中符號(hào)占了一位,所以數(shù)值占15位。將+110000B寫(xiě)成+000000000110000B,[+48]補(bǔ)

=0000000000110000B,寫(xiě)成十六進(jìn)制數(shù)為0030H,即[+48]補(bǔ)

=0030H。

【例1-17】

機(jī)器字長(zhǎng)n=16位,X=-48D,求[X]補(bǔ)。-48D轉(zhuǎn)換為二進(jìn)制數(shù):-110000B。因?yàn)闄C(jī)器字長(zhǎng)是16位,其中符號(hào)占了1位,所以數(shù)值占15位。將-110000B寫(xiě)成-000000000110000B。000000000110000B按位求反后為1111111111001111B,末位加1后為1111111111010000B。所以,[-48]補(bǔ)

=1111111111010000B,寫(xiě)成十六進(jìn)制數(shù)為0FFD0H,即[-48]補(bǔ)

=0FFD0H。

由此可看出,補(bǔ)碼數(shù)要擴(kuò)展時(shí),正數(shù)是在符號(hào)的前面補(bǔ)0,負(fù)數(shù)是在符號(hào)的前面補(bǔ)1。也就是說(shuō),補(bǔ)碼數(shù)擴(kuò)展實(shí)際上是符號(hào)擴(kuò)展。已知補(bǔ)碼求真值的方法是:當(dāng)機(jī)器數(shù)的最高位(符號(hào)位)為0時(shí),表示真值是正數(shù),其值等于其余n-1位的值;當(dāng)機(jī)器數(shù)的最高位(符號(hào)位)為1時(shí),表示真值是負(fù)數(shù),其值等于其余n-1位按位取反后末位加1的值。

例如:若[X]補(bǔ)

=01111111,則X=(+1111111)2=(+127)10。若[X]補(bǔ)

=11111111,則X=(-0000001)2=(-1)10。下面討論補(bǔ)碼表示數(shù)的范圍。一般來(lái)說(shuō),如果機(jī)器字長(zhǎng)為n位,則補(bǔ)碼能表示的整數(shù)范圍是-2n-1≤N≤2n-1-1。例如,當(dāng)n=8時(shí),-128≤N≤+127,其二進(jìn)制補(bǔ)碼數(shù)范圍如表1-2所示。表1-28位二進(jìn)制補(bǔ)碼數(shù)范圍補(bǔ)碼編碼(機(jī)器數(shù))十進(jìn)制數(shù)(真值)01111111+12701111110+12600000010+200000001+100000000011111111-111111110-210000010-12610000001-12710000000-1284)二進(jìn)制數(shù)補(bǔ)碼的運(yùn)算補(bǔ)碼的運(yùn)算規(guī)則是:[X+Y]補(bǔ)

=[X]補(bǔ)

+[Y]補(bǔ)[X-Y]補(bǔ)

=[X]補(bǔ)

+[-Y]補(bǔ)已知[Y]補(bǔ),求[-Y]補(bǔ)的方法是將[Y]補(bǔ)各位按位取反(包括符號(hào)位在內(nèi))末位加1?,F(xiàn)舉例說(shuō)明以上兩個(gè)公式的正確性?!纠?-18】設(shè) X1=+0001100X2=-0001100 Y1=+0000101Y2=-0000101則 [X1]補(bǔ)

=00001100 [X2]補(bǔ)

=11110100[Y1]補(bǔ)

=00000101 [Y2]補(bǔ)

=11111011①計(jì)算X1+Y1。+0001100X1 00001100 [X1]補(bǔ)+)+0000101Y1 +)00000101 [Y1]補(bǔ)

+0010001X1+Y1 00010001 [X1]補(bǔ)+[Y1]補(bǔ)因?yàn)椋?/p>

[X1+Y1]補(bǔ)

=[+0010001]補(bǔ)

=00010001=[X1]補(bǔ)+[Y1]補(bǔ)所以:

[X1+Y1]補(bǔ)

=[X1]補(bǔ)

+[Y1]補(bǔ)②計(jì)算X1-Y1。+0001100 X1 00001100 [X1]補(bǔ)-)+0000101 Y1 +)11111011 [-Y1]補(bǔ)

+0000111 X1-Y1100000111 [X1]補(bǔ)+[-Y1]補(bǔ)自然丟失

因?yàn)椋?/p>

[X1-Y1]補(bǔ)

=[+0000111]補(bǔ)

=00000111=[X1]補(bǔ)+[-Y1]補(bǔ)所以:

[X1-Y1]補(bǔ)

=[X1]補(bǔ)

+[-Y1]補(bǔ)③計(jì)算X2+Y2。-0001100 X2 11110100 [X2]補(bǔ)+)-0000101 Y2 +)11111011 [Y2]補(bǔ) -0010001 X2+Y2 11101111 [X2]補(bǔ)+[Y2]補(bǔ)自然丟失因?yàn)椋?/p>

[X2+Y2]補(bǔ)

=[-0010001]補(bǔ)

=11101111=[X2]補(bǔ)+[Y2]補(bǔ)所以:

[X2+Y2]補(bǔ)

=[X2]補(bǔ)

+[Y2]補(bǔ)④計(jì)算X2-Y2。-0001100 X2 11110100 [X2]補(bǔ)-)-0000101 Y2 +) 00000101 [-Y2]補(bǔ)

-0000111 X2-Y2 11111001 [X2]補(bǔ)+[-Y2]補(bǔ)因?yàn)椋?/p>

[X2-Y2]補(bǔ)

=[-0000111]補(bǔ)

=11111001=[X2]補(bǔ)+[-Y2]補(bǔ)所以:

[X2-Y2]補(bǔ)

=[X2]補(bǔ)

+[-Y2]補(bǔ)

由此可看出,計(jì)算機(jī)引入了補(bǔ)碼編碼后,帶來(lái)了以下幾個(gè)優(yōu)點(diǎn):

(1)減法轉(zhuǎn)化成了加法,這樣大大簡(jiǎn)化了運(yùn)算器硬件電路的設(shè)計(jì),加減法可用同一硬件電路進(jìn)行處理。

(2)運(yùn)算時(shí),符號(hào)位與數(shù)值位同等對(duì)待,都按二進(jìn)制數(shù)參加運(yùn)算,符號(hào)位產(chǎn)生的進(jìn)位丟掉不管,其結(jié)果是正確的。這大大簡(jiǎn)化了運(yùn)算規(guī)則。

運(yùn)用以上兩個(gè)公式時(shí),要注意以下兩點(diǎn):

(1)公式成立有個(gè)前提條件,就是運(yùn)算結(jié)果不能超出機(jī)器數(shù)所能表示的范圍,否則運(yùn)算結(jié)果不正確,按“溢出”處理。例如,設(shè)機(jī)器字長(zhǎng)為8位,則-128≤N≤+127,計(jì)算(+64)+(+65)。+64 01000000+)+65 +) 01000001+129 10000001—→-127

顯然這個(gè)結(jié)果是錯(cuò)誤的。究其原因是:(+64)+(+65)=+129>+127,超出了字長(zhǎng)為8位所能表示的最大值,產(chǎn)生了“溢出”,所以結(jié)果值出錯(cuò)。再如,計(jì)算(-125)+(-10)。

-125 10000011+)-10 +) 11110110

-135 101111001—→+121顯然,計(jì)算結(jié)果也是錯(cuò)誤的。其原因是:(-125)+(-10)=-135<-128,超出了字長(zhǎng)為8位所能表示的最小值,產(chǎn)生了“溢出”,所以結(jié)果出錯(cuò)。(2)采用補(bǔ)碼運(yùn)算后,結(jié)果也是補(bǔ)碼,欲得運(yùn)算結(jié)果的真值,還需進(jìn)行轉(zhuǎn)換。

2.無(wú)符號(hào)整數(shù)的編碼及運(yùn)算規(guī)則在某些情況下,計(jì)算機(jī)要處理的數(shù)據(jù)全是正數(shù),此時(shí)機(jī)器數(shù)再保留符號(hào)位就沒(méi)有意義了。這時(shí),將機(jī)器數(shù)最高有效位也作為數(shù)值位處理,也就是說(shuō),假設(shè)機(jī)器字長(zhǎng)為n位,則有符號(hào)整數(shù)的編碼可表示為符號(hào)位數(shù)值位1位n-1位無(wú)符號(hào)整數(shù)的編碼可表示為數(shù)值位n位

無(wú)符號(hào)整數(shù)的表示范圍是:0≤N≤2n-1。例如,當(dāng)n=8位時(shí),表示范圍是:0≤N≤255;當(dāng)n=16位時(shí),表示范圍是:0≤N≤65535。計(jì)算機(jī)中最常見(jiàn)的無(wú)符號(hào)整數(shù)是地址,另外,雙字長(zhǎng)數(shù)據(jù)的低位字也是無(wú)符號(hào)整數(shù)。要注意的是,計(jì)算機(jī)本身不論是對(duì)有符號(hào)數(shù)還是無(wú)符號(hào)數(shù),總是按照補(bǔ)碼的運(yùn)算規(guī)則做運(yùn)算。例如,機(jī)器做這樣一個(gè)運(yùn)算:10001010+) 00000111 10010001可以把它看作是兩個(gè)無(wú)符號(hào)整數(shù)相加:也可以把它看作是兩個(gè)有符號(hào)整數(shù)相加:138+) 70145

-118+)7

-111

也就是說(shuō),不論把二進(jìn)制數(shù)解釋成有符號(hào)數(shù)還是無(wú)符號(hào)數(shù),其結(jié)果都是正確的。因此,機(jī)器采用補(bǔ)碼編碼以后,不必針對(duì)無(wú)符號(hào)數(shù)和有符號(hào)數(shù)設(shè)計(jì)兩套不同的電路,無(wú)符號(hào)數(shù)和有符號(hào)數(shù)的運(yùn)算是兼容的。這也是采用補(bǔ)碼后帶來(lái)的一大優(yōu)點(diǎn)。

3.十進(jìn)制數(shù)的編碼及運(yùn)算人們?cè)谌粘I钪辛?xí)慣使用十進(jìn)制數(shù),而在計(jì)算機(jī)內(nèi),采用二進(jìn)制表示和處理數(shù)據(jù)更方便。因此,計(jì)算機(jī)在輸入和輸出數(shù)據(jù)時(shí),要進(jìn)行十→二和二→十的進(jìn)制數(shù)轉(zhuǎn)換。但是,在某些特定的應(yīng)用領(lǐng)域中(如商業(yè)統(tǒng)計(jì)),數(shù)據(jù)的運(yùn)算很簡(jiǎn)單,但數(shù)據(jù)的輸入和輸出量很大,這樣,進(jìn)制轉(zhuǎn)換所占的時(shí)間比例就會(huì)很大。從提高計(jì)算機(jī)的運(yùn)行效率考慮,可以采用在計(jì)算機(jī)內(nèi)部直接用十進(jìn)制表示和處理數(shù)據(jù)的方法。以下介紹在計(jì)算機(jī)內(nèi)部的十進(jìn)制數(shù)的編碼方法及運(yùn)算方法。

十進(jìn)制數(shù)的每一個(gè)數(shù)位的基為10,但到了計(jì)算機(jī)內(nèi)部,必須用基2碼對(duì)每個(gè)十進(jìn)制數(shù)位進(jìn)行編碼,所需要的最少的基碼的位數(shù)為lb10(即log210),取整數(shù)為4。4位基2碼有16種不同的組合,怎樣從中選擇出10個(gè)組合來(lái)表示十進(jìn)制數(shù)位的0~9,有非常多的方案,最常見(jiàn)的是8421碼。8421碼是指4個(gè)基2碼的位權(quán)從高到低分別為8、4、2、1,選擇的是0000,0001,0010,…,1001這10種組合,用來(lái)表示0~9這10個(gè)數(shù)位,如表1-3所示。表1-3BCD碼表

這種編碼的特點(diǎn)是:這4個(gè)基2碼之間滿足二進(jìn)制規(guī)則,而十進(jìn)制數(shù)位之間是十進(jìn)制計(jì)數(shù)規(guī)則。因此,這種編碼實(shí)質(zhì)上是二進(jìn)制編碼的十進(jìn)制數(shù)(BinaryCodedDecimal),因此,簡(jiǎn)稱BCD碼或二—十進(jìn)制碼。十進(jìn)制數(shù)碼01234567898421碼0000000100100011010001010110011110001001【例1-19】將十進(jìn)制數(shù)67.9轉(zhuǎn)換成BCD碼。其過(guò)程如下:

6 7 . 90110 0111 . 1001所以(67.9)10=(01100111.0111)BCD【例1-20】將BCD碼10010110.0110轉(zhuǎn)換成十進(jìn)制數(shù),其過(guò)程如下:10010110 . 01109 6 . 6所以(10010110.0110)BCD=(96.6)10BCD碼的運(yùn)算規(guī)則:BCD碼是十進(jìn)制數(shù),而運(yùn)算器對(duì)數(shù)據(jù)做加減運(yùn)算時(shí),都是按二進(jìn)制運(yùn)算規(guī)則進(jìn)行處理的。這樣,當(dāng)將BCD碼傳送給運(yùn)算器進(jìn)行運(yùn)算時(shí),其結(jié)果需要修正。修正的規(guī)則是:當(dāng)兩個(gè)BCD碼相加,如果和等于或小于1001(即9H),不需要修正;如果相加之和在1010到1111(即0AH~0FH)之間,則需加6H進(jìn)行修正;如果相加時(shí)本位產(chǎn)生了進(jìn)位,也需加6H進(jìn)行修正。這樣做的原因是,機(jī)器按二進(jìn)制相加,所以4位二進(jìn)制數(shù)相加時(shí),是按“逢十六進(jìn)一”的原則進(jìn)行運(yùn)算的,而實(shí)質(zhì)上是2個(gè)十進(jìn)制數(shù)相加,應(yīng)該按“逢十進(jìn)一”的原則相加,16與10相差6,所以當(dāng)和超過(guò)9或有進(jìn)位時(shí),都要加6進(jìn)行修正。下面舉例說(shuō)明。【例1-21】計(jì)算1+8的值。如果將1和8送給機(jī)器進(jìn)行加法運(yùn)算,其運(yùn)算過(guò)程如下:0001+)10001001結(jié)果是1001,即十進(jìn)制數(shù)9,1+8=9正確?!纠?-22】需要修正BCD碼運(yùn)算值的舉例。①計(jì)算5+7的值。0101+)01111100結(jié)果大于9+)0110加6修正

10010結(jié)果是0010,即十進(jìn)制數(shù)2,還產(chǎn)生了進(jìn)位。5+7=12,結(jié)論正確。②計(jì)算9+9的值。

結(jié)果是1000,即十進(jìn)制的8,還產(chǎn)生進(jìn)位,故加6修正。9+9=18,結(jié)論正確。1001+)100110010+)011011000加6修正

若做減法運(yùn)算,其修正規(guī)則為:當(dāng)兩個(gè)BCD碼相減,如果差等于或小于1001,不需要修正;如果相減時(shí)本位產(chǎn)生了借位,則應(yīng)減6H加以修正。原因是:如果有借位,機(jī)器將這個(gè)借位當(dāng)十六看待,而實(shí)際上應(yīng)該當(dāng)十看待,因此,應(yīng)該將差值再減6H才是BCD碼的正確結(jié)果值。下面舉例進(jìn)行說(shuō)明?!纠?-23】

需要修正BCD碼運(yùn)算值的舉例。①計(jì)算9-7的值。1001-)01110010結(jié)果值是0010,即十進(jìn)制數(shù)2。9-7=2,結(jié)論正確。②計(jì)算7-9的值?!l(fā)生借位10111-)10011110-)0110減6修正

1000

結(jié)果值是1000,即十進(jìn)制數(shù)8,有借位。7-9=8,結(jié)論正確。(8是-2以10為模的補(bǔ)碼,在機(jī)器中,負(fù)數(shù)都以補(bǔ)碼形式表示)

在計(jì)算機(jī)中BCD碼有兩種格式:壓縮BCD碼和非壓縮BCD碼:

(1)非壓縮BCD碼:1字節(jié)(8位二進(jìn)制)中僅表示一位BCD數(shù),例如:(00000110)BCD=6。

(2)壓縮BCD碼:1字節(jié)中僅表示兩位BCD數(shù),例如:(01100110)BCD=66。另外,BCD碼除了采用上述方法調(diào)整以外,也可以在交付計(jì)算機(jī)運(yùn)算之前,先將BCD碼轉(zhuǎn)換為二進(jìn)制數(shù),然后交付計(jì)算機(jī)運(yùn)算,運(yùn)算以后再將二進(jìn)制結(jié)果轉(zhuǎn)換為BCD碼。1.2.2非數(shù)值數(shù)據(jù)的二進(jìn)制編碼現(xiàn)代計(jì)算機(jī)不僅要處理數(shù)值數(shù)據(jù),而且還要處理大量的非數(shù)值數(shù)據(jù),像英文字母、標(biāo)點(diǎn)符號(hào)、專用符號(hào)、漢字等等。前面已說(shuō)過(guò),不論什么數(shù)據(jù),都必須用基2碼編碼后才能存儲(chǔ)、傳送及處理,非數(shù)值數(shù)據(jù)也不例外。下面分別討論常見(jiàn)的非數(shù)值數(shù)據(jù)的二進(jìn)制編碼方法。

1.字符編碼使用最多、最普遍的是ASCII字符編碼,即美國(guó)標(biāo)準(zhǔn)信息交換代碼(AmericanStandardCodeforInformationInterchange),具體見(jiàn)表1-4。表1-4ASCII字符編碼B6B5B4

B3B2B1B0000(0)001(1)010(2)011(3)100(4)101(5)110(6)111(7)0000(0)NULDLESP0@P`p0001(1)SOHDC1!1AQaq0010(2)STXDC2″2BRbr0011(3)ETXDC3#3CScs0100(4)EOTDC4$4DTdt0101(5)ENQNAK%5EUeu0110(6)ACKSYN&6FVfv0111(7)BELETB?7GWgw1000(8)BSCAN(8HXhx1001(9)HTEM)9IYiy1010(A)LFSUB*:JZjz1011(B)VTESC+;K[k{1100(C)FFFS,<L\l|1101(D)CRGS-=M]m}1110(E)SORS.>N^n~1111(F)SIUS/?O_oDELASCII碼表有以下幾個(gè)特點(diǎn):

(1)每個(gè)字符用7位基2碼表示,其排列次序?yàn)锽6B5B4B3B2B1B0。實(shí)際上,在計(jì)算機(jī)內(nèi)部,每個(gè)字符是用8位(即一個(gè)字節(jié))表示的。一般情況下,將最高位置為“0”,即B7為“0”。需要奇偶校驗(yàn)時(shí),最高位用做校驗(yàn)位。(2)ASCII碼共編碼了128個(gè)字符,它們分別是:*32個(gè)控制字符,主要用于通信中的通信控制或?qū)τ?jì)算機(jī)設(shè)備的功能控制,編碼值為0~31(十進(jìn)制)。*間隔字符(也稱空格字符)SP,編碼值為20H。*刪除控制碼DEL,編碼值為7FH。*94個(gè)可印刷字符(或稱有形字符)。這94個(gè)可印刷字符編碼有如下兩個(gè)規(guī)律:①字符0~9這10個(gè)數(shù)字符的高3位編碼都為011,低4位為0000~1001,屏蔽掉高3位的值,低4位正好是數(shù)據(jù)0~9的二進(jìn)制形式。這樣編碼的好處是既滿足正常的數(shù)值排序關(guān)系,又有利于ASCII碼與二進(jìn)制碼之間的轉(zhuǎn)換。②英文字母的編碼值滿足A~Z或a~z正常的字母排序關(guān)系。另外,大小寫(xiě)英文字母編碼僅是B5位值不相同,B5為1是小寫(xiě)字母,這樣編碼有利于大、小寫(xiě)字母之間的編碼轉(zhuǎn)換。

2.漢字的編碼計(jì)算機(jī)在處理漢字時(shí),漢字字符也必須用基2碼編碼表示,一般漢字編碼采用兩個(gè)字節(jié)即16位二進(jìn)制數(shù)。但由于漢字的特殊性,在漢字的輸入、存儲(chǔ)、輸出過(guò)程中所使用的漢字編碼是不一樣的,輸入時(shí)有輸入編碼,存儲(chǔ)時(shí)有漢字機(jī)內(nèi)碼,輸出時(shí)有漢字字形編碼。1)漢字輸入編碼為了能把漢字這種象形文字通過(guò)西文標(biāo)準(zhǔn)鍵盤(pán)輸入到計(jì)算機(jī)內(nèi),就必須對(duì)漢字用鍵盤(pán)已有的字符設(shè)計(jì)編碼,這種編碼稱為漢字的輸入編碼。同一漢字有不同的輸入編碼,這取決于用戶采用哪種輸入法。不同的輸入法對(duì)同一漢字有不同的編碼方案。常見(jiàn)的有數(shù)字碼、音碼、形碼及混合碼。2)漢字機(jī)內(nèi)碼漢字機(jī)內(nèi)碼也稱漢字內(nèi)部碼,簡(jiǎn)稱內(nèi)碼,它是機(jī)器存儲(chǔ)和處理漢字時(shí)采用的統(tǒng)一編碼。每個(gè)漢字的機(jī)內(nèi)碼是惟一的,用兩個(gè)字節(jié)表示。為了避免與西文字符的ASCII碼之間產(chǎn)生二義性,漢字機(jī)內(nèi)碼中兩個(gè)字節(jié)的最高位均規(guī)定為“1”。

3)漢字字形碼漢字字形碼也叫漢字字模點(diǎn)陣碼,是漢字輸出時(shí)的字形點(diǎn)陣代碼,是一串基2碼編碼。

3.邏輯數(shù)據(jù)的編碼邏輯數(shù)據(jù)是用來(lái)表示“是”與“否”,或稱“真”與“假”兩個(gè)狀態(tài)的數(shù)據(jù)。在計(jì)算機(jī)中,用“1”表示“真”或“是”,用“0”表示“假”或“否”。需要注意的是,這里的“1”和“0”沒(méi)有數(shù)值和大小概念,只有邏輯意義。對(duì)邏輯數(shù)據(jù)只能進(jìn)行邏輯運(yùn)算,例如,邏輯非、邏輯加、邏輯乘等基本邏輯運(yùn)算和由基本邏輯運(yùn)算構(gòu)成的各種組合邏輯運(yùn)算,運(yùn)算結(jié)果仍是邏輯數(shù)據(jù)。下面介紹一下基本邏輯運(yùn)算的運(yùn)算規(guī)則。1)“與”運(yùn)算(AND)“與”運(yùn)算又稱邏輯乘,用符號(hào)·或∧表示。其運(yùn)算規(guī)則為0·0=00·1=01·0=01·1=1當(dāng)兩個(gè)邏輯變量取值均為1時(shí),它們“與”的結(jié)果才為1。2)“或”運(yùn)算(OR)“或”運(yùn)算又稱邏輯加,用符號(hào)+或∨表示。其運(yùn)算規(guī)則為0+0=00+1=11+0=11+1=1當(dāng)兩個(gè)邏輯變量的取值只要一個(gè)為1,它們“或”的結(jié)果就會(huì)為1。3)“非”運(yùn)算(NOT)“非”運(yùn)算用符號(hào)—來(lái)表示。其運(yùn)算規(guī)則為1=00=14)“異或”運(yùn)算(XOR)“異或”運(yùn)算用符號(hào)⊕或∨來(lái)表示。其運(yùn)算規(guī)則為0⊕0=00⊕1=11⊕0=11⊕1=0當(dāng)兩個(gè)邏輯變量取值不相同時(shí),它們“異或”的結(jié)果才為1。要注意的是,一個(gè)邏輯數(shù)據(jù)用一位基2碼表示,這樣,8個(gè)邏輯數(shù)據(jù)用8位基2碼表示,這8位基2碼可存放在一個(gè)字節(jié)中。反過(guò)來(lái)說(shuō),一個(gè)32位的字就可以表示32個(gè)邏輯數(shù)據(jù)。表1-5邏輯數(shù)運(yùn)算規(guī)則

下面舉例說(shuō)明邏輯運(yùn)算方法。例如,X=00F0H,Y=7777H,求X∧Y,X∨Y,X∨Y。其運(yùn)算結(jié)果如下:X∧Y=0070H,X∨Y=77F7H,X∨Y=7787H1.3微型計(jì)算機(jī)系統(tǒng)組成1.3.1微型計(jì)算機(jī)硬件系統(tǒng)組成微型計(jì)算機(jī)主要由以下幾個(gè)部分組成:微處理器或稱中央處理單元(CPU)、內(nèi)部存儲(chǔ)器(簡(jiǎn)稱內(nèi)存)、輸入/輸出接口(簡(jiǎn)稱I/O接口)及系統(tǒng)總線。當(dāng)微型計(jì)算機(jī)配備上相應(yīng)的輸入/輸出設(shè)備和軟件,就構(gòu)成了一套完整的微型計(jì)算機(jī)系統(tǒng)。一臺(tái)微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)如圖1.1所示。在這里我們將簡(jiǎn)單介紹微型計(jì)算機(jī)的硬件組成及各部分的基本功能,至于各部分的細(xì)節(jié),將在本書(shū)后續(xù)章節(jié)詳細(xì)介紹。1.3.1微型計(jì)算機(jī)硬件系統(tǒng)組成微型計(jì)算機(jī)主要由以下幾個(gè)部分組成:微處理器或稱中央處理單元(CPU)、內(nèi)部存儲(chǔ)器(簡(jiǎn)稱內(nèi)存)、輸入/輸出接口(簡(jiǎn)稱I/O接口)及系統(tǒng)總線。當(dāng)微型計(jì)算機(jī)配備上相應(yīng)的輸入/輸出設(shè)備和軟件,就構(gòu)成了一套完整的微型計(jì)算機(jī)系統(tǒng)。一臺(tái)微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)如圖1.1所示。在這里我們將簡(jiǎn)單介紹微型計(jì)算機(jī)的硬件組成及各部分的基本功能,至于各部分的細(xì)節(jié),將在本書(shū)后續(xù)章節(jié)詳細(xì)介紹。圖l.1微型計(jì)算機(jī)的硬件結(jié)構(gòu)

1.中央處理單元CPU

中央處理單元CPU(CentralProcessingUnit)是微型計(jì)算機(jī)的心臟,它包含了早期計(jì)算機(jī)中的運(yùn)算器、控制器和其他功能部件,它是用來(lái)解釋執(zhí)行指令并進(jìn)行運(yùn)算的部件。CPU是一塊超大規(guī)模集成電路,它集成了成千上萬(wàn)的邏輯門(mén)陣列電路,這些邏輯門(mén)陣列電路組成了用于進(jìn)行運(yùn)算的加法器、算術(shù)邏輯單元、譯碼器、數(shù)據(jù)選擇器、觸發(fā)器、寄存器、計(jì)數(shù)器等基本運(yùn)算單元。無(wú)論多么復(fù)雜的工作,都是由計(jì)算機(jī)程序來(lái)完成的,而計(jì)算機(jī)高級(jí)語(yǔ)言程序被一級(jí)一級(jí)地最終翻譯成機(jī)器認(rèn)識(shí)的由“0”和“1”組成的二進(jìn)制機(jī)器碼,這些機(jī)器碼就是由上述基本運(yùn)算單元進(jìn)行處理的,所以人們把計(jì)算機(jī)又稱為“電腦”,實(shí)際指的就是CPU的功能。目前生產(chǎn)微機(jī)CPU的最大的代表廠商是美國(guó)的Intel公司和AMD公司。早期的8086、80286、80386到近期的Pentium、Pentium-Ⅱ、Pentium-Ⅲ、Pentium-4等就是Intel公司的主導(dǎo)產(chǎn)品。在評(píng)價(jià)CPU的指標(biāo)時(shí),最主要的是看它的主頻,主頻越高,其運(yùn)算速度越快;字長(zhǎng)代表了CPU對(duì)數(shù)據(jù)處理的能力和精度;其次還要看CPU的緩存有多大,一般來(lái)講,緩存的大小也對(duì)CPU的運(yùn)算速度有很大的影響;當(dāng)然工作溫度也很重要,溫度涉及到CPU的工作壽命。

2.內(nèi)存存儲(chǔ)器的主要任務(wù)是臨時(shí)或永久性保存計(jì)算機(jī)的軟件資源。存儲(chǔ)器分為內(nèi)存儲(chǔ)器和外存儲(chǔ)器,內(nèi)存儲(chǔ)器指內(nèi)存,用于臨時(shí)性保存軟件資源,而外存儲(chǔ)器則包括了硬盤(pán)、軟盤(pán)、光驅(qū)、磁帶機(jī)等許多設(shè)備,用來(lái)永久性保存軟件資源。在現(xiàn)代微機(jī)中內(nèi)存用內(nèi)存條的形狀提供,在計(jì)算機(jī)主板上有一個(gè)一個(gè)的內(nèi)存擴(kuò)展插槽,內(nèi)存條就是插在這些內(nèi)存擴(kuò)展槽上的,內(nèi)存條現(xiàn)在常用的有128MB、256MB、512MB和1GB甚至更大容量。每臺(tái)計(jì)算機(jī)有多個(gè)內(nèi)存擴(kuò)展槽,每個(gè)內(nèi)存擴(kuò)展槽又可以插入不同容量的內(nèi)存條,可見(jiàn)一臺(tái)機(jī)器的內(nèi)存配置是可由用戶自己決定的。如果想提高機(jī)器的運(yùn)行速度,并且資金充裕,則可以配置大的內(nèi)存,反之,內(nèi)存也可以配置小一點(diǎn),并可以根據(jù)實(shí)際需要,隨時(shí)擴(kuò)充內(nèi)存。

3.系統(tǒng)總線目前,微型計(jì)算機(jī)硬件連接都采用總線結(jié)構(gòu)。所謂總線,是指能為多個(gè)功能部件服務(wù)的一組公用通信線路。借助總線連接,計(jì)算機(jī)在各系統(tǒng)部件之間實(shí)現(xiàn)傳送地址、數(shù)據(jù)和控制信息的操作。采用總線結(jié)構(gòu)有兩個(gè)優(yōu)點(diǎn):一是各部件可通過(guò)總線交換信息,相互之間不必直接連線,減少了傳輸線的根數(shù),從而提高了微機(jī)的可靠性;二是在擴(kuò)展微機(jī)功能時(shí),只需把要擴(kuò)展的部件連接到總線上即可,使微機(jī)功能擴(kuò)展十分方便。一個(gè)微型計(jì)算機(jī)系統(tǒng)中的總線,大致分為三類:

(1)內(nèi)部總線:CPU內(nèi)部連接各寄存器及運(yùn)算部件之間的總線。

(2)系統(tǒng)總線:CPU同計(jì)算機(jī)系統(tǒng)的其他高速功能部件,如存儲(chǔ)器、通道等互相連接的總線。

(3)?I/O總線:中、低速I(mǎi)/O設(shè)備之間互相連接的總線。系統(tǒng)總線一般由三部分組成:

(1)數(shù)據(jù)總線(DB):一般是三態(tài)邏輯控制的若干位(如8、16等)數(shù)據(jù)線寬的雙向數(shù)據(jù)總線。用以實(shí)現(xiàn)微處理器、存儲(chǔ)器及I/O接口間的數(shù)據(jù)交換。

(2)地址總線(AB):用于微處理器輸出地址,以確定存儲(chǔ)器單元地址及I/O接口部件地址。一般都是三態(tài)邏輯控制的若干位(如16、24等)線寬的單向傳送地址總線。

(3)控制總線(CB):控制總線用來(lái)傳送保證計(jì)算機(jī)同步和協(xié)調(diào)地定時(shí)、控制信號(hào),使微機(jī)各部件協(xié)調(diào)動(dòng)作,從而保證正確地通過(guò)數(shù)據(jù)總線傳送各項(xiàng)信息的操作。其中有些控制信號(hào)由微處理器向其他部件輸出,如讀寫(xiě)等信號(hào);另一些控制信號(hào)則由其他部件輸入到微處理器中,如中斷請(qǐng)求、復(fù)位等信號(hào)??刂瓶偩€不需用三態(tài)邏輯。

4.接口一般而言,接口泛指任何兩個(gè)系統(tǒng)之間的交接部分,或兩個(gè)系統(tǒng)間的連接部分。在計(jì)算機(jī)系統(tǒng)里,接口指中央處理機(jī)與外部設(shè)備之間的連接通道及有關(guān)的控制電路。微型計(jì)算機(jī)要對(duì)性能各異的外設(shè)進(jìn)行操作與控制,實(shí)現(xiàn)彼此之間的信息交換,就必須在主機(jī)與外設(shè)之間設(shè)置一組中間部件,該部件將CPU發(fā)出的控制信號(hào)和數(shù)字信號(hào)轉(zhuǎn)換成外設(shè)所能識(shí)別的數(shù)字符號(hào)或執(zhí)行的具體命令,或?qū)⑼庠O(shè)發(fā)送給CPU的數(shù)據(jù)和狀態(tài)信息轉(zhuǎn)換成CPU所能接受的數(shù)字信息。這組位于主機(jī)和外部設(shè)備之間的緩沖電路就是接口。微機(jī)接口技術(shù)包括接口電路和相關(guān)編程技術(shù)。1.3.2微型計(jì)算機(jī)軟件系統(tǒng)組成

1.系統(tǒng)軟件起初,這種翻譯工作是程序員用手工完成的,逐漸地,人們就編一個(gè)程序讓機(jī)器來(lái)完成上述的翻譯工作,具有這樣功能的程序就稱為匯編程序(Assembler)。但是匯編語(yǔ)言的語(yǔ)句與機(jī)器指令是一一對(duì)應(yīng)的,程序的語(yǔ)句數(shù)仍然很多,編程仍然是一件十分繁瑣、困難的工作,而且用匯編語(yǔ)言編寫(xiě)程序必須對(duì)機(jī)器的指令系統(tǒng)十分熟悉,即不能脫離具體的機(jī)器,因而匯編語(yǔ)言的程序還不能在不同的機(jī)器上通用。為了使用戶編程更容易,程序中所用的語(yǔ)句與實(shí)際問(wèn)題更接近,而且使用戶可以不必了解具體的機(jī)器,就能編寫(xiě)程序,同時(shí)這樣的程序的通用性更強(qiáng),于是就出現(xiàn)了各種高級(jí)語(yǔ)言(Highlevellanguage),例如:BASIC、FORTRAN、PASCAL、COBOL、C等。高級(jí)語(yǔ)言易于理解、學(xué)習(xí)和掌握;用戶用高級(jí)語(yǔ)言編程也就方便多了,大大減少了工作量。但是計(jì)算機(jī)在執(zhí)行時(shí),仍必須把用高級(jí)語(yǔ)言編寫(xiě)的源程序翻譯成用機(jī)器指令表示的目標(biāo)程序才能執(zhí)行,這樣就需要有各種解釋程序(Interpreter),(針對(duì)BASIC)或編譯程序(Compiler)(針對(duì)FORTRAN、C、COBOL)等。

2.應(yīng)用軟件用戶利用計(jì)算機(jī)以及它所提供的各種系統(tǒng)軟件,編制解決用戶各種實(shí)際問(wèn)題的程序,這些程序、數(shù)據(jù)和資料就稱為應(yīng)用軟件。應(yīng)用軟件也可以逐步標(biāo)準(zhǔn)化、模塊化,逐步形成了解決各種典型問(wèn)題的應(yīng)用程序的組合,稱其為應(yīng)用軟件包(Package)。

3.支撐(或稱為支持)軟件隨著計(jì)算機(jī)硬件和軟件的發(fā)展,計(jì)算機(jī)在信息處理、情報(bào)檢索以及各種管理系統(tǒng)中的應(yīng)用越來(lái)越普及。計(jì)算機(jī)需要處理大量的數(shù)據(jù),檢索和建立大量的各種表格,而且這些數(shù)據(jù)和表格應(yīng)按一定規(guī)律組織起來(lái),使得檢索更迅速,處理更方便,也更便于用戶使用,于是就建立了數(shù)據(jù)庫(kù)。為便于用戶根據(jù)需要建立自己的數(shù)據(jù)庫(kù),查詢、顯示、修改數(shù)據(jù)庫(kù)的內(nèi)容,輸出打印各種表格等,就建立了數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem)等支撐軟件。上述都是各種形式的程序,它們存儲(chǔ)在各種存儲(chǔ)介質(zhì)中,例如磁盤(pán)、磁帶、光盤(pán)等,統(tǒng)稱為計(jì)算機(jī)的軟件。總之,計(jì)算機(jī)的硬件建立了計(jì)算機(jī)應(yīng)用的物質(zhì)基礎(chǔ);而各種軟件激活了計(jì)算機(jī)且擴(kuò)大了計(jì)算機(jī)的功能,擴(kuò)大了它的應(yīng)用范圍,以便于用戶使用。硬件與軟件的結(jié)合才是一個(gè)完整的計(jì)算機(jī)系統(tǒng)。1.3.3微型計(jì)算機(jī)的工作過(guò)程微型計(jì)算機(jī)必須在硬件和軟件的相互配合下才能工作。每種型號(hào)的CPU都有自己的指令系統(tǒng),每條指令一般都由指令操作碼(規(guī)定指令的操作類型)和操作數(shù)(規(guī)定指令的操作對(duì)象)兩部分組成。用戶根據(jù)要完成的任務(wù)預(yù)先分解成一系列的基本動(dòng)作(又稱為算法)并且編好程序,再通過(guò)輸入設(shè)備(如鍵盤(pán))將程序送入存儲(chǔ)器中。微型計(jì)算機(jī)開(kāi)始工作后,首先將該程序在存儲(chǔ)器中的起始地址送入微處理器中的程序計(jì)數(shù)器(PC)中,微處理器根據(jù)PC中的地址值找到對(duì)應(yīng)的存儲(chǔ)單元,并取出存放在其中的指令操作碼送入微處理器中的指令寄存器(IR)中,由指令譯碼器(ID)對(duì)操作碼進(jìn)行譯碼,并由微操作控制電路發(fā)出相應(yīng)的微操作控制脈沖序列去取出指令的剩余部分(如果指令不止1個(gè)字節(jié)的長(zhǎng)度),同時(shí)執(zhí)行指令賦予的操作功能。在取指過(guò)程中,每取出1個(gè)單元的指令,PC自動(dòng)加1,形成下一個(gè)存儲(chǔ)單元的地址。以上為一條指令的執(zhí)行過(guò)程,如此不斷重復(fù)上述過(guò)程,直至執(zhí)行完最后一條指令的動(dòng)作為止。綜上所述,微型計(jì)算機(jī)的基本工作過(guò)程是執(zhí)行程序的過(guò)程,也就是CPU自動(dòng)從程序存放的第1個(gè)存儲(chǔ)單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對(duì)象,執(zhí)行指令規(guī)定的相關(guān)操作。如此周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的基本功能,這就是微型計(jì)算機(jī)的基本工作過(guò)程。

1.4微型計(jì)算機(jī)的性能指標(biāo)及分類1.4.1微型計(jì)算機(jī)的性能指標(biāo)

1.位(bit)、字節(jié)(Byte)和字長(zhǎng)(Word)位(bit)是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲(chǔ)存的最小單位,表示數(shù)據(jù)“1”或“0”,音譯為“比特”,習(xí)慣上用小寫(xiě)字母的“b”表示。字節(jié)(Byte)是計(jì)算機(jī)中數(shù)據(jù)處理的基本單位,習(xí)慣上用大寫(xiě)字母“B”表示。計(jì)算機(jī)中以字節(jié)為單位存儲(chǔ)和解釋信息,規(guī)定1個(gè)字節(jié)由8個(gè)二進(jìn)制位構(gòu)成,即1個(gè)字節(jié)等于8個(gè)比特(1Byte=8bit)。八位二進(jìn)制數(shù)最小為00000000,最大為11111111;通常1個(gè)字節(jié)可以存入一個(gè)ASCII碼,2個(gè)字節(jié)可以存放一個(gè)漢字國(guó)標(biāo)碼。字長(zhǎng)(Word)是指微處理器內(nèi)部一次可以并行處理二進(jìn)制代碼的位數(shù)。它與微處理器內(nèi)部寄存器以及CPU內(nèi)部數(shù)據(jù)總線寬度是一致的,字長(zhǎng)越長(zhǎng),所表示的數(shù)據(jù)精度就越高。在完成同樣精度的運(yùn)算時(shí),字長(zhǎng)較長(zhǎng)的微處理器比字長(zhǎng)較短的微處理器運(yùn)算速度快。大多數(shù)微處理器內(nèi)部的數(shù)據(jù)總線與微處理器的外部數(shù)據(jù)引腳寬度是相同的。字長(zhǎng)是微型機(jī)重要的性能指標(biāo),也是微型機(jī)分類的主要依據(jù)之一。如把微型機(jī)分為8位、15位、32位、64位機(jī)等。

2.存儲(chǔ)容量存儲(chǔ)容量是衡量微機(jī)內(nèi)部存儲(chǔ)器能夠存儲(chǔ)二進(jìn)制信息量大小的一個(gè)技術(shù)指標(biāo)。內(nèi)存儲(chǔ)器由若干個(gè)存儲(chǔ)單元組成,每個(gè)單元分配一個(gè)固定的地址并且存放一個(gè)字節(jié)的數(shù)據(jù),存儲(chǔ)單元的地址數(shù)由CPU的地址總線條數(shù)決定,同時(shí)也確定了內(nèi)存的容量大小。存儲(chǔ)器容量一般以字節(jié)為最基本的計(jì)量單位。一個(gè)字節(jié)記為1B,1024個(gè)字節(jié)記為1KB(千字節(jié),KiloByte),1024KB字節(jié)記為1MB(兆字節(jié),MegaByte),1024MB字節(jié)記為1GB(吉字節(jié),GigaByte),而1024GB字節(jié)記為1TB(太字節(jié),TeraByte)。

3.指令系統(tǒng)任

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論