數(shù)據(jù)表示方法實用教案_第1頁
數(shù)據(jù)表示方法實用教案_第2頁
數(shù)據(jù)表示方法實用教案_第3頁
數(shù)據(jù)表示方法實用教案_第4頁
數(shù)據(jù)表示方法實用教案_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、21 數(shù)據(jù)表示方法數(shù)據(jù)表示方法(fngf)和運算器和運算器 2 21 11 1計算機中數(shù)據(jù)的表示方法計算機中數(shù)據(jù)的表示方法 當(dāng)前的計算機所采用的存儲器件都是兩態(tài)器件,所以適合于存放二進(jìn)制數(shù)據(jù)當(dāng)前的計算機所采用的存儲器件都是兩態(tài)器件,所以適合于存放二進(jìn)制數(shù)據(jù)。盡管為了方便起見,也使用其他進(jìn)制,如十進(jìn)制、十六進(jìn)制,但是在計算機內(nèi)。盡管為了方便起見,也使用其他進(jìn)制,如十進(jìn)制、十六進(jìn)制,但是在計算機內(nèi)部數(shù)據(jù)還是以二進(jìn)制的形式存放和處理。二進(jìn)制只使用了兩個不同的數(shù)字符號,部數(shù)據(jù)還是以二進(jìn)制的形式存放和處理。二進(jìn)制只使用了兩個不同的數(shù)字符號,易于用物理器件來實現(xiàn):在物理世界中具有兩個穩(wěn)定狀態(tài)的物理器件很多

2、,如晶易于用物理器件來實現(xiàn):在物理世界中具有兩個穩(wěn)定狀態(tài)的物理器件很多,如晶體管的體管的“截止截止”與與“導(dǎo)通導(dǎo)通”、電容的、電容的“充電充電”與與“放電放電”、電壓信號的、電壓信號的“高高”與與“低低”、脈沖的、脈沖的“有有”與與“無無”,電磁單元的,電磁單元的“正向磁化正向磁化”與與“反向反向(fn xin)(fn xin)磁化磁化”等等,只要規(guī)定其中一種穩(wěn)定狀態(tài)表示等等,只要規(guī)定其中一種穩(wěn)定狀態(tài)表示“1 1”,另一種穩(wěn)定狀態(tài)表示,另一種穩(wěn)定狀態(tài)表示“0 0”,就可以用來表示二進(jìn)制數(shù)位了。其次,二進(jìn)制的運算規(guī)則非常簡單,易于用電,就可以用來表示二進(jìn)制數(shù)位了。其次,二進(jìn)制的運算規(guī)則非常簡單,

3、易于用電子器件來實現(xiàn)。數(shù)據(jù)的類型多種多樣,如文件、圖、表、樹、陣列、鏈表、棧、子器件來實現(xiàn)。數(shù)據(jù)的類型多種多樣,如文件、圖、表、樹、陣列、鏈表、棧、向量、串、實數(shù)、整數(shù)、布爾數(shù)、字符等。計算機里用到的數(shù)據(jù)類型主要可分為向量、串、實數(shù)、整數(shù)、布爾數(shù)、字符等。計算機里用到的數(shù)據(jù)類型主要可分為兩類:表示數(shù)量的數(shù)值數(shù)據(jù)和非數(shù)值性的符號數(shù)據(jù)。所有的數(shù)據(jù)都是以二進(jìn)制的兩類:表示數(shù)量的數(shù)值數(shù)據(jù)和非數(shù)值性的符號數(shù)據(jù)。所有的數(shù)據(jù)都是以二進(jìn)制的形式在計算機里處理和存儲。本節(jié)主要講述數(shù)值數(shù)據(jù)在計算機里的表示方法。形式在計算機里處理和存儲。本節(jié)主要講述數(shù)值數(shù)據(jù)在計算機里的表示方法。 第1頁/共73頁第一頁,共73頁。

4、 1數(shù)值數(shù)據(jù)表示方法 在計算機中表示數(shù)時,需要考慮以下幾個因素:要表示的數(shù)的類型(小數(shù)、整數(shù)、實數(shù)和復(fù)數(shù))、符號如何表示以及小數(shù)點的位置;可能遇到的數(shù)值范圍;數(shù)值精確度;數(shù)據(jù)存儲和處理所需要的硬件代價。計算機中表示數(shù)值符號的方法是占用一位二進(jìn)制位,1表示負(fù)號、0表示正號。常用的數(shù)值數(shù)據(jù)表示格式有兩種,根據(jù)小數(shù)點的位置是固定不變還是浮動變化的分為定點(dn din)格式和浮點格式。一般來說,定點(dn din)格式容許的數(shù)值范圍有限,但要求的處理硬件比較簡單。而浮點格式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜。 (1) 定點(dn din)數(shù)的表示方法 所謂定點(dn din)格式,即約定機

5、器中所有數(shù)據(jù)的小數(shù)點位置是固定不變的。由于約定在固定的位置,小數(shù)點就不再使用記號“”來表示。原理上講,小數(shù)點位置固定在哪一位都可以,但是通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)。 第2頁/共73頁第二頁,共73頁。 例如用一個n1位字來表示一個定點數(shù)x,其中一位x0用來表示數(shù)的符號,其余位數(shù)代表它的量值。為了將整個n1位統(tǒng)一處理起見,符號位x0放在最左位置,并用數(shù)值 0和1分別代表正號和負(fù)號,這樣(zhyng),對于任意定點數(shù)x=x0 x1x2xn,在定點機中可表示為如下形式: x0 x1 x2 xn-1 xn符號 數(shù)量值 第3頁/共73頁第三頁,共73頁。 如果數(shù)x表示的是純小數(shù),那么小數(shù)點位于x0和

6、x1之間。當(dāng)x0 x1x2xn各位均為0時,數(shù)x的絕對值最小,當(dāng)各位均為1時,x的絕對值最大,故數(shù)的表示范圍為 0 x12n 如果數(shù)x表示的是純整數(shù),那么小數(shù)點位于最低位xn的右邊,此時數(shù)x的表示范圍為 0 x2n1,目前計算機中多采用定點純整數(shù)表示,因此(ync)將定點數(shù)表示的運算簡稱為整數(shù)運算。 (2) 浮點數(shù)的表示方法 采用浮點表示法表示的數(shù)據(jù)叫做浮點數(shù),采用浮點數(shù)進(jìn)行運算的機器叫做“浮點機”。浮點數(shù)是指小數(shù)點位置可以改變的數(shù),顯然浮點數(shù)可用來表示帶符號的實數(shù)。例如:表示8位字長的二進(jìn)制浮點數(shù)可以寫成 0.10110101 2111 尾 數(shù) 階碼 第4頁/共73頁第四頁,共73頁。 任意

7、一個十進(jìn)制數(shù)N可以寫成 N = 10ZX ,同樣,在計算機中一個任意進(jìn)制數(shù)N可以寫成 N = Bz X其中X稱為(chn wi)浮點數(shù)的尾數(shù),是一個純小數(shù)。z是比例因子的指數(shù),稱為(chn wi)浮點的指數(shù),是一個整數(shù)。比例因子的基數(shù)B是一個常數(shù),一般規(guī)定只為2,8或16。在機器中表示一個浮點數(shù)時,一是要給出尾數(shù),用定點小數(shù)形式表示。尾數(shù)部分給出有效數(shù)字的位數(shù),因而決定了浮點數(shù)的表示精度。二是要給出指數(shù),用整數(shù)形式表示,常稱為(chn wi)階碼,階碼指明小數(shù)點在數(shù)據(jù)中的位置,因而決定了浮點數(shù)的表示范圍。浮點數(shù)也要有符號位。因此一個機器浮點數(shù)應(yīng)當(dāng)由階碼和尾數(shù)及其符號位組成: 第5頁/共73頁第

8、五頁,共73頁。 32位浮點數(shù)的標(biāo)準(zhǔn)(biozhn)格式為: Z0Z1 Z2 Zn-1 ZnX0X1 X2 Xn-1 Xn階符 階碼 數(shù)符 尾數(shù) 3130 2322 032位浮點數(shù)F Z X 64位浮點數(shù)的標(biāo)準(zhǔn)(biozhn)格式為:6362 5251 064位浮點數(shù)F Z X 第6頁/共73頁第六頁,共73頁。 不論是32位浮點數(shù)還是64位浮點數(shù),規(guī)定基數(shù)B2。由于基數(shù)2是固定常數(shù),不必用顯示方式來表示它。 32位的浮點數(shù)中,F(xiàn)是浮點數(shù)的符號位,占1位,安排在最高位,F(xiàn)0表示正數(shù),F(xiàn)1表示負(fù)數(shù)。X是尾數(shù),放在低位部分,占用23位,用小數(shù)表示,小數(shù)點放在尾數(shù)域的最前面。Z是階碼,占用8位,階符

9、采用隱含方式,即采用移碼方法來表示正負(fù)指數(shù)。移碼方法對兩個指數(shù)大小的比較和對階操作都比較方便,因為階碼域值大者其指數(shù)值也大。采用這種方式時,將浮點數(shù)的指數(shù)值z變成階碼Z時,應(yīng)將指數(shù)z加上一個固定的偏移值127(01111111),即Zz127。一個規(guī)格化的32位浮點數(shù)X的值可表示為X(1)F(1X) 2E127 其中尾數(shù)域所表示的值是1X。因為規(guī)格化的浮點數(shù)的尾數(shù)域最左位也即最高有效位總是1,故這一位經(jīng)常不予存儲(cn ch),而認(rèn)為隱藏在小數(shù)點的左邊。 第7頁/共73頁第七頁,共73頁。 64位的浮點數(shù)中符號位1位,階碼域11位,尾數(shù)域52位,指數(shù)偏移值是1023。因此規(guī)格化的64位浮點數(shù)X

10、的真值為X=(1)F (1X) 2E1O23 zE1023 若不對浮點數(shù)的表示作出明確規(guī)定,同一個浮點數(shù)的表示就不是惟一的。例如05也可以表示成005101,50102等等。為了(wi le)提高數(shù)據(jù)的表示精度,當(dāng)尾數(shù)的值不為0時,其絕對值應(yīng)05,即尾數(shù)域的最高有效位應(yīng)為1,否則要以修改階碼同時左右移小數(shù)點的辦法,使其變成這一要求的表示形式,這稱為浮點數(shù)的規(guī)格化表示。當(dāng)一個浮點數(shù)的尾數(shù)為0,不論其階碼為何值,或者當(dāng)階碼的值遇到比它能表示的最小值還小時,不管其尾數(shù)為何值,計算機都把該浮點數(shù)看成零值,稱為機器零。 浮點數(shù)所表示的范圍遠(yuǎn)比定點數(shù)大的多。假設(shè)(考慮符號位)機器中的數(shù)由8位二進(jìn)制數(shù)表示時

11、:在定點機中這8位全部用來表示有效數(shù)字(包括符號);在浮點機中若階符階碼占3位,數(shù)符尾數(shù)占5位。在此情況下,若只考慮正數(shù)值,定點機小數(shù)表示的數(shù)的范圍是00000000到01111111,相當(dāng)于十進(jìn)制數(shù)的0到127,而浮點機所能表示的數(shù)的范圍是21100001到21101111,相當(dāng)于十進(jìn)制數(shù)的112875。顯然,都用8位,浮點機能表示的數(shù)的范圍比定點機大得多。 第8頁/共73頁第八頁,共73頁。 一臺計算機中究竟采用(ciyng)定點表示還是浮點表示,要根據(jù)計算機的使用條件來確定。一般在高檔微機以上的計算機中同時采用(ciyng)定點、浮點表示,由使用者進(jìn)行選擇。而單片機中多采用(ciyng)

12、定點表示。 【例21】若浮點數(shù)X0的二進(jìn)制存儲格式為(43240000)16,求其32位浮點數(shù)的十進(jìn)制值。 解: 將16進(jìn)制數(shù)展開后,可得二制數(shù)格式為 0 100 0011 0 010 0100 0000 0000 0000 0000 F 階碼(8位) 尾數(shù)(23位) 指數(shù)z階碼127100001100111111100000111(7)10。包括隱藏位1的尾數(shù)1X1010 0100 0000 0000 0000 00001010010 于是有 X0(1)F 1X 2z(1010010) 2710100100(187)10。 第9頁/共73頁第九頁,共73頁。 【例22】將十進(jìn)制數(shù)165937

13、5轉(zhuǎn)換成32位浮點數(shù)的二進(jìn)制格式來存儲。 解 : 首 先 分 別 將 整 數(shù) ( z h n g s h ) 和 分 數(shù) 部 分 轉(zhuǎn) 換 成 二 進(jìn) 制 數(shù) : 1 6 5 9 3 7 5 1000010011移動小數(shù)點,使其在第1位和第2位之間10000100111000010011 24 z4 所以:F=0,E=4127 =131,X=000010011 則得到的32位浮點數(shù)的二進(jìn)制存儲格式為: 0100 0001 1000 0100 1100 0000 0000 0000 = (4184C000)16 第10頁/共73頁第十頁,共73頁。 (3)定點數(shù)據(jù)的編碼方法 真值與機器碼機器碼是數(shù)

14、在計算機中的表示形式。對于數(shù)值數(shù)據(jù)而言,無論以定點形式表示或是以浮點形式表示,都需要通過某種編碼 方法,以計算機所能處理的0和1二進(jìn)制位來表示其數(shù)值大小。通常一個數(shù)值數(shù)據(jù)的機內(nèi)表示形式稱為其機器碼,而一個機器碼所代表的數(shù)值稱為該機器碼的真值。計算機中只有機器碼,不存在數(shù)的真值。假設(shè)機器碼的寬度為n,最高位為符號位,下面分別介紹實際應(yīng)用中常見的4種機器碼編碼方法:原碼、反碼、補碼和移碼。 原碼表示法定點整數(shù)(zhngsh)原碼表示法定點整數(shù)(zhngsh)原碼的定義如下所示: 第11頁/共73頁第十一頁,共73頁。 X 原= X 0X2n1 X 原=2n1X 2n1X0 由定義可以看出,正整數(shù)的

15、原碼就是其自身,負(fù)整數(shù)的原碼只需把其絕對值的原碼的符號位置為1即可。( 用0表示正號,用1表示負(fù)號)。原碼表示方法的定點整數(shù)的取值范圍(fnwi)為(2n1)X2n11。注意在原碼表示法中,零有正零和負(fù)零之分。000000,010000。定點小數(shù)的原碼表示法定點小數(shù)原碼的定義如下所示:X 原 X 0X1X 原1X 1X0第12頁/共73頁第十二頁,共73頁。 正的純小數(shù)的原碼就是其自身,而負(fù)的純小數(shù)的原碼可以通過把其絕對值的原碼的符號位置1來得到。其取值范圍為(12(n1)X(12(n1)。綜上可以看出一個數(shù)的原碼是由符號位加上數(shù)值位絕對值組成,符號位為0代表正數(shù),符號位為1代表負(fù)數(shù)。由于0有

16、0和0兩種表示方法,n位二進(jìn)制數(shù)可以表示2n1個原碼。 用原碼實現(xiàn)乘除運算規(guī)則較簡單,但做加減運算不方便。原碼表示法的一個主要優(yōu)點在于其真值和機器碼表示之間對應(yīng)關(guān)系很直觀,容易轉(zhuǎn)換(zhunhun)。補碼表示法定點整數(shù)的補碼表示定點整數(shù)補碼的定義如下所示:X 補 X 0X2n1X 補2nX 2n1X0第13頁/共73頁第十三頁,共73頁。 正整數(shù)的補碼就是其自身,負(fù)整數(shù)的補碼可以通過對其絕對值部分逐位求反,并在最低位加1求得。同樣,在補碼表示法中,符號位為0表示正號,為1表示負(fù)號。其表示的真值X的范圍為 2n1X2n11。在補碼表示中,0的機器碼是惟一的,沒有(mi yu)0和0之分。定點小數(shù)

17、的補碼表示定點小數(shù)補碼的定義如下所示:X 補 X 0X1X 補2X 1X0定點小數(shù)的補碼求解方法與定點整數(shù)的補碼求解方法相類似。其表示的真值X的范圍為1X12-(n-1)。當(dāng)n8時,1的定點小數(shù)補碼表示為:10000000,而用定點整數(shù)的補碼表示1,則為11111111。 在補碼表示方法中,0的編碼是惟一的,所以n位二進(jìn) 制數(shù)可以表示2n個補碼。 第14頁/共73頁第十四頁,共73頁。 反碼表示法定點整數(shù)的反碼表示定點整數(shù)反碼的定義如下所示: X 反 X 0X2n1 X 反(2n1)X 2n1X0同樣,正整數(shù)的反碼就是(jish)其自身,而負(fù)整數(shù)的反碼可以通過對其絕對值逐位求反來求得。在反碼表

18、示法中,符號位仍然用0表示正號,1表示負(fù)號。其表示的真值范圍與原碼相同:(2n11)X2n-11。數(shù)值0用反碼表示亦有0和0之分。當(dāng)n8時,0反00000000,0反11111111。定點小數(shù)的反碼表示定點小數(shù)反碼的定義如下所示:X 反 X 0X1X 反(22n1)X 1X0第15頁/共73頁第十五頁,共73頁。定點小數(shù)的反碼求解方法類似定點整數(shù)的反碼求解方法。其表示的真值的取值范圍為:(12(n1)X(12(n1)。反碼表示法中,由于0占有了兩個不同的編碼,所以,n位二進(jìn)制數(shù)可以表示2n1個反碼。移碼表示法定點整數(shù)的移碼表示 X 移2n1X 2n-1X2n1 定點小數(shù)的移碼表示 X 移1X

19、1X1移碼的符號位與其他三種(sn zhn)編碼不同,用1表示正號而0表示負(fù)號。移碼的求法其實也很簡單,把其補碼的符號位直接變反即可。所以在移碼表示法中,0也有惟一的表示方法:10000000(n8) 【例】 設(shè)機器碼長度為8,求X(6)10的原碼、補碼、反碼和移碼。 第16頁/共73頁第十六頁,共73頁。 解:X原碼27(110)1000000011010000110 X補碼(b m)28(110)1000000011011111010 X反碼(281)(110)1111111111011111001 X移碼27(110)1000000011001111010【例】 設(shè)機器碼長度為8,求X(

20、03125)10(00101)2的原碼、補碼(b m)、反碼和移碼。 解:X原碼1X10(00101)1010110101000 X補碼(b m)2X100(00101)1101111011000 X反碼(227)X(10000000001)(00101)11010111 X移碼1X10(00101)0101101011000 第17頁/共73頁第十七頁,共73頁。實際上求某個數(shù)的原碼、補碼、反碼和移碼時不僅可以(ky)利用其定義式采求解,也可以(ky)通過這4個編碼間的相互關(guān)系來求得。比如移碼就可以(ky)通過把補碼的符號位變反來求,而對于正數(shù)來講其原碼、補碼和反碼是完全相同的;一個負(fù)數(shù)的補

21、碼也可以(ky)很容易地從其原碼推知:除符號位外,各位取反,末位再加1即可。(4)浮點數(shù)據(jù)的編碼方法計算機內(nèi)部浮點數(shù)據(jù)表示成如下形式:FXZX第18頁/共73頁第十八頁,共73頁。 FX是尾數(shù)的符號位,0表示正號而l表示負(fù)號;Z是階碼,通常用移碼表示;X是定點小數(shù)形式的尾數(shù),一般(ybn)用補碼或原碼表示。【例2】 某浮點數(shù)機器碼10位,基數(shù)為2,階碼用4位移碼表示,尾數(shù)5位用補碼表示,符號位1位。求2100110l的編碼。解: 符號位FX0 階碼Z(10)移碼1010 尾數(shù)X(01101)補碼11010 則其編碼為0101011010【例 】 某浮點數(shù)機器碼為17位,基數(shù)為2,階碼用4位移碼

22、表示,尾數(shù)用12位補碼表示,符號位1位。求275的浮點編碼形式。解:首先把275表示成浮點形式: (275)10(0687522)10(01011)22(10) FX1 第19頁/共73頁第十九頁,共73頁。 Z(10)移碼1010 X(01011)補碼 同一個浮點數(shù)可以有許多種不同的編碼表示(改變其階碼),所以需要對浮點數(shù)進(jìn)行規(guī)格化處理,以統(tǒng)一其形式,同時提高數(shù)據(jù)的表示精度。規(guī)格化處理(基數(shù)為2)尾數(shù)(wish)部分以純小數(shù)形式表示,其絕對值應(yīng)滿足05X1。若不滿足該條件,則需要修改階碼并對尾數(shù)(wish)進(jìn)行移位,以使尾數(shù)(wish)滿足該條件; 當(dāng)尾數(shù)(wish)為正時,無論其使用原碼還

23、是補碼表示,X應(yīng)滿足條件:05X1。以二進(jìn)制形式表示為X01xx x(x為0或1); 用原碼表示的負(fù)尾數(shù)(wish),X滿足1X05,以二進(jìn)制形式表示為M11 xx x(x為0或1);以補碼表示的負(fù)尾數(shù)(wish),X滿足1M05,以二進(jìn)制形式表示為X10 xx x(x為0或1); 從上面的討論可以看出,如果規(guī)格化的尾數(shù)(wish)用原碼表示,則其最高位一定為1如果改用補碼表示,則尾數(shù)(wish)的最高位與其符號位相反,即為0。 第20頁/共73頁第二十頁,共73頁。 2符號數(shù)據(jù)的表示方法 現(xiàn)代計算機不僅處理數(shù)值領(lǐng)域的問題,而且處理大量非數(shù)值領(lǐng)域的問題。這樣一來,必然要引入文字、字母以及某些專

24、用符號,以便表示文字語言、邏輯語言等信息。例如人機交換信息時使用英文字母、標(biāo)點符號、十進(jìn)制數(shù)以及諸如$,等符號。然而數(shù)字計算機只能處理二進(jìn)制數(shù)據(jù),因此,上述信息應(yīng)用到計算機中時,都必須編寫成二進(jìn)制格式的代碼,也就是字符信息用數(shù)據(jù)表示,稱為符號數(shù)據(jù)。最常見的編碼格式為ASC碼和EBCDIC碼。(1)ASC碼目前國際上普遍采用的一種字符系統(tǒng)是七單位的ASCII碼(美國國家信息交換標(biāo)準(zhǔn)字符碼),它包括10個十進(jìn)制數(shù)碼,26個英文字母和一定數(shù)量(shling)的專用符號,如$,等,總共128個元素,因此二進(jìn)制編碼需要7位,加上一個偶校驗位,共8位,剛好為一個字節(jié)。表21列出了七單位的ASCII碼字符編

25、碼表。 ASCII碼規(guī)定8個二進(jìn)制位的最高一位為0,余下的7位可以給出128個編碼,表示128個不同的字符。其中95個編碼,對應(yīng)著計算機終端能輸人并且可以顯示的95個字符,打印機設(shè)備也能打印這95個字符,如大小寫各26個英文字母,09這10個數(shù)字符,通用的運算符和標(biāo)點符號,*,等等。 另外的33個字符,其編碼值為031和127,則不對應(yīng)任何一個可以顯示或打印的實際字符,它們被用作控制碼,控制計算機某些外圍設(shè)備的工作特性和某些計算機軟件的運行情況。第21頁/共73頁第二十一頁,共73頁。 計算機里的存儲和傳送單位通常使用Byte(1Byte8 bit),所以7位的ASCII碼也用一個字節(jié)(z j

26、i)來表示。ASCII編碼和128個字符的對應(yīng)關(guān)系如表21所示。表中編碼符號的排列次序為,最高1位沒有使用,通常填0;也可以把它用作校驗位或者用來擴展字符集。表中未給出,列為高位部分,行為低位部分。 ASCII的字符編碼表一共有2416行,238列。低4位編碼用作行編碼,而高3位用作列編碼。值得注意的一點是數(shù)字“0”到“9”的編碼:它們都位于3列 (011),從0行(0000)排列到9行(1001),即“0”的ASCII碼為(0110000)2(30)16,“9”的 ASCII碼為(0111001)2(39)16。把高3位屏蔽掉,低4位恰是“0”“9”的二進(jìn)制碼??梢钥闯?,十進(jìn)制的8421碼可

27、以去掉(011)而得到。這個特點使得在數(shù)字符號(ASCII碼)與數(shù)字值(二進(jìn)制碼)之間進(jìn)行轉(zhuǎn)換非常方便。 第22頁/共73頁第二十二頁,共73頁。表21 ASC字符(z f)編碼表 0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111DELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk110

28、0FFFS,Nn1111SIUS/?OoDEL第23頁/共73頁第二十三頁,共73頁。字符串是指連續(xù)的一串字符,通常方式下,它們占用主存中連續(xù)的多個字節(jié),每個字節(jié)存一個(y )(y )字符。當(dāng)主存字由2 2個或4 4個字節(jié)組成時,在同一個(y )(y )主存字中,既可按從低位字節(jié)向高位字節(jié)的順序存放字符串內(nèi)容,也可按從高位字節(jié)向低位字節(jié)的次序順序存放字符串內(nèi)容。這兩種存放方式都是常用方式,不同的計算機可以選用其中任何一種。例如下述字符串: 圖2-1字符串在主存中的存放(cnfng) 第24頁/共73頁第二十四頁,共73頁。 IF AB ELSEREAD (C) 就可以按圖21所示從高位字節(jié)到低

29、位字節(jié)依次存放在主存中。其中主存單元長度由4個字節(jié)組成。每個字節(jié)中存放相應(yīng)字符的ASCII值,文字表達(dá)式中的空格“”在主存中也占一個字節(jié)的位置。因而每個字節(jié)分別存放十進(jìn)制的73,70,32,65,62,66,32,69,76,83,69,32,82,69,65,68,40,67,41,32。(2)EBCDIC碼EBCDIC(Extended Binary Coded Decimal Interchange Code)即所謂擴展的二十進(jìn)制交換碼。采用8 bit編碼來表示(biosh)一個字符,共可以表示(biosh)28256個不同符號,但EBCDIC中并沒有使用全部編碼,只選用了其中一部分,剩

30、下的保留作擴充用。EBCDIC碼常用于IBM大型機中。在EBCDIC碼制中,數(shù)字“0”“9”的高4位編碼都是1111,而低4位編碼則依次為0000到1001。把高四位屏蔽掉,也很容易實現(xiàn)從EBCDIC碼到二進(jìn)制數(shù)字值的轉(zhuǎn)換。 第25頁/共73頁第二十五頁,共73頁。3 3漢字的表示方法漢字的表示方法(1 1) 漢字的輸入編碼漢字的輸入編碼(bin m)(bin m)為了能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計算機,就必須為漢為了能直接使用西文標(biāo)準(zhǔn)鍵盤把漢字輸入到計算機,就必須為漢字設(shè)計相應(yīng)的輸入編碼字設(shè)計相應(yīng)的輸入編碼(bin m)(bin m)方法。當(dāng)前采用的方法主要有方法。當(dāng)前采用的方法主要有

31、以下三類:以下三類: 數(shù)字編碼數(shù)字編碼(bin m) (bin m) 常用的是國標(biāo)區(qū)位碼,用數(shù)字串代常用的是國標(biāo)區(qū)位碼,用數(shù)字串代表一個漢字輸入。區(qū)位碼是將國家表一個漢字輸入。區(qū)位碼是將國家 標(biāo)準(zhǔn)局公布的標(biāo)準(zhǔn)局公布的67636763個兩級漢個兩級漢字分為字分為9494個區(qū),每個區(qū)分個區(qū),每個區(qū)分9494位,實際上把漢字表示成二維數(shù)組,位,實際上把漢字表示成二維數(shù)組,每個漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制每個漢字在數(shù)組中的下標(biāo)就是區(qū)位碼。區(qū)碼和位碼各兩位十進(jìn)制數(shù)字,因此輸入一個漢字需按鍵四次。例如數(shù)字,因此輸入一個漢字需按鍵四次。例如“中中”字位于第字位于第5454區(qū)區(qū)4848

32、位,區(qū)位碼為位,區(qū)位碼為54485448。數(shù)字編碼數(shù)字編碼(bin m)(bin m)輸入的優(yōu)點是無重碼,且輸入碼與內(nèi)部編碼輸入的優(yōu)點是無重碼,且輸入碼與內(nèi)部編碼(bin m)(bin m)的轉(zhuǎn)換比較方便,缺點是代碼難以記憶。的轉(zhuǎn)換比較方便,缺點是代碼難以記憶。 拼音碼拼音碼 拼音碼是以漢語拼音為基礎(chǔ)的輸入方法。凡掌握拼音碼是以漢語拼音為基礎(chǔ)的輸入方法。凡掌握漢語拼音的人,不需訓(xùn)漢語拼音的人,不需訓(xùn) 練和記憶,即可使用。但漢字同音字太練和記憶,即可使用。但漢字同音字太多,輸入重碼率很高,因此按拼音輸入后還必須進(jìn)行同音字選擇,多,輸入重碼率很高,因此按拼音輸入后還必須進(jìn)行同音字選擇,影響了輸入速

33、度。影響了輸入速度。 第26頁/共73頁第二十六頁,共73頁。 字形編碼 字形編碼是用漢字的形狀來進(jìn)行的編碼。漢字總數(shù)雖多,但是由一筆 一劃組成,全部漢字的部件和筆劃是有限的。因此,把漢字的筆劃部件用字母或數(shù)字進(jìn)行編碼,按筆劃的順序依次輸入,就能表示一個漢字。例如五筆字型編碼是最有影響的一種字形編碼方法。 除了上述三種編碼方法之外,為了加快輸入速度,在上述方法基礎(chǔ)上,發(fā)展了詞組 輸入、聯(lián)想輸入等多種快速輸入方法。但是都利用了鍵盤進(jìn)行“手動”輸入。理想的輸入方式是利用語音或圖像識別技術(shù)“自動”將拼音或文本輸入到計算機內(nèi),使計算機能認(rèn)識漢字,聽懂漢語,并將其自動轉(zhuǎn)換為機內(nèi)代碼表示。目前這種理想已經(jīng)

34、成為現(xiàn)實(xinsh)。(2) 漢字的存儲(漢字內(nèi)碼) 漢字內(nèi)碼是用于漢字信息的存儲、交換、檢索等操作的機內(nèi)代碼,一般采用兩個字節(jié)表示。英文字符的機內(nèi)代碼是七位的ASCII碼,當(dāng)用一個字節(jié)表示時,最高位為“0”。為了與英文字符能相互區(qū)別,漢字機內(nèi)代碼中兩個字節(jié)的最高位均規(guī)定為“1”。例如漢字操作系統(tǒng)CCDOS中使用的漢字內(nèi)碼是一種最高位為“l(fā)”的兩字節(jié)內(nèi)碼。 有些系統(tǒng)中字節(jié)的最高位用于奇偶校驗位,這種情況下用三個字節(jié)表示漢字內(nèi)碼。 第27頁/共73頁第二十七頁,共73頁。 (3) 漢字的輸出(漢字字模碼) 字模碼是用點陣表示的漢字字形代碼,它是漢字的輸出形式。根據(jù)漢字輸出的要求不同,點陣的多少

35、也不同。簡易型漢字為16 16點陣,提高型漢字為24 24點陣、32 32點陣,甚至更高。因此字模點陣的信息量是很大的,所占存儲空間也很大。以16 16點陣為例,每個漢字要占用32個字節(jié),國標(biāo)兩級漢字要占用 256K字節(jié)。因此字模點陣只能用來構(gòu)成漢字庫,而不能用于機內(nèi)存儲。字庫中存儲了每個漢字的點陣代碼。當(dāng)顯示輸出或打印輸出時才檢索字庫,輸出字模點陣,得到字形。圖 22示出了“大”字的點陣及編碼。注意,漢字的輸入編碼、漢字內(nèi)碼、字模碼是計算機中用于輸入、內(nèi)部處理、輸出三種(sn zhn)不同用途的編碼,不要混為一談。 第28頁/共73頁第二十八頁,共73頁。圖22漢字的字模(zm)點陣及編碼

36、第29頁/共73頁第二十九頁,共73頁。4校驗碼校驗碼 元件故障、噪聲干擾等各種因素常常導(dǎo)致計算機在處理信息過程中出現(xiàn)錯誤。元件故障、噪聲干擾等各種因素常常導(dǎo)致計算機在處理信息過程中出現(xiàn)錯誤。例如將例如將1位位x從部件從部件A傳送到部件傳送到部件B,可能由于傳送信道中的噪聲干擾而受到破,可能由于傳送信道中的噪聲干擾而受到破壞,以至于在接收部件壞,以至于在接收部件B收到的是而不是收到的是而不是x。為了防止這種錯誤,可將信號采用。為了防止這種錯誤,可將信號采用專門的邏輯線路進(jìn)行編碼以檢測錯誤,甚至校正錯誤。通常的方法是,在每個專門的邏輯線路進(jìn)行編碼以檢測錯誤,甚至校正錯誤。通常的方法是,在每個字上

37、添加一些校驗位,用來確定字上添加一些校驗位,用來確定(qudng)字中出現(xiàn)錯誤的位置。計算機中常字中出現(xiàn)錯誤的位置。計算機中常用這種檢錯或糾錯技術(shù)進(jìn)行存儲器讀寫正確性或傳輸信息的檢驗。這里僅介紹用這種檢錯或糾錯技術(shù)進(jìn)行存儲器讀寫正確性或傳輸信息的檢驗。這里僅介紹檢錯碼中的奇偶校驗碼。檢錯碼中的奇偶校驗碼。最簡單且應(yīng)用廣泛的檢錯碼是采用一位校驗位的奇校驗或偶校驗。設(shè)最簡單且應(yīng)用廣泛的檢錯碼是采用一位校驗位的奇校驗或偶校驗。設(shè)X(x0 x1 xn-1)是一個是一個n位字,則奇校驗位位字,則奇校驗位 定義為定義為 C x0 x1xn-1 式中式中 代表按位加,表明只有當(dāng)代表按位加,表明只有當(dāng)X中包含

38、有奇數(shù)個中包含有奇數(shù)個1時,才能使時,才能使 1,即,即C0。 同理,偶校驗位同理,偶校驗位C定義為定義為Cx0 x1xn-1 即即X中包含偶數(shù)個中包含偶數(shù)個1時,才使時,才使C0。 假設(shè)一個字假設(shè)一個字X從部件從部件A傳送到部件傳送到部件B。在源點。在源點A,校驗位,校驗位C可用上面公式算出來,可用上面公式算出來,并合在一起將并合在一起將( x0 x1 xn-1 C )送到送到B。假設(shè)在。假設(shè)在B點真正接收到的是點真正接收到的是X( x0 x1 xn-1 C ),然后計算,然后計算 F( x0 x1 xn-1 C )若若F1,意味著收到的信息有錯,例如,意味著收到的信息有錯,例如(x0 x1

39、 xn-1)中正巧有一中正巧有一位變位變“反反”時就會出現(xiàn)這種情況。若時就會出現(xiàn)這種情況。若F0,表明,表明X字傳送正確。奇偶校驗可提字傳送正確。奇偶校驗可提供單個錯誤檢測,但無法檢測多個錯誤,更無法識別錯誤信息的位置。供單個錯誤檢測,但無法檢測多個錯誤,更無法識別錯誤信息的位置。 第30頁/共73頁第三十頁,共73頁。 【例】 已知下表中左面一欄有5個字節(jié)的數(shù)據(jù)。請分別是用奇校驗和偶校驗進(jìn)行(jnxng)編碼,填在中間一欄和右面一欄。 解:假定最低一位為校驗位,其余高8位為數(shù)據(jù)位,列表如下。從中看出,校驗位的值取。還是取1,是由數(shù)據(jù)位中1的個數(shù)決定的。 數(shù)據(jù)偶校驗編碼奇校驗編碼1010101

40、010101010010101010101010100010101001010101000000000000000000000000000010111111101111111101111111011111111111111110111111111第31頁/共73頁第三十一頁,共73頁。2 21 12 2 計算機中算術(shù)運算和邏輯運算計算機中算術(shù)運算和邏輯運算1 1二進(jìn)制數(shù)的算術(shù)運算二進(jìn)制數(shù)的算術(shù)運算(1 1) 定點數(shù)運算定點數(shù)運算 定點數(shù)加法減法定點數(shù)加法減法(jinf)(jinf)運算運算定點數(shù)的加法和減法定點數(shù)的加法和減法(jinf)(jinf)運算使用補碼較為方便。對于運算使用補碼較為方便

41、。對于定點小數(shù)的運算規(guī)則如下:定點小數(shù)的運算規(guī)則如下: 加法:加法:XXYY補補XX補補yy補補 mod 2 mod 2 減法減法(jinf)(jinf):XXYY補補XX補補 yy補補 mod 2 mod 2當(dāng) 運 算 結(jié) 果 超 過 了 定 點 數(shù) 的 表 示 范 圍 時 , 則 產(chǎn) 生 溢 出當(dāng) 運 算 結(jié) 果 超 過 了 定 點 數(shù) 的 表 示 范 圍 時 , 則 產(chǎn) 生 溢 出(Overflow)(Overflow),常用的溢出檢測機制主要有以下兩種:,常用的溢出檢測機制主要有以下兩種:進(jìn)位判決法:進(jìn)位判決法: 令令Cn1Cn1表示次高位表示次高位( (最高數(shù)值位最高數(shù)值位) )向最

42、高位向最高位( (符號位符號位) )的的進(jìn)位,進(jìn)位,CnCn則表示符號位的進(jìn)位,則結(jié)果是否溢出的判決表則表示符號位的進(jìn)位,則結(jié)果是否溢出的判決表如表如表2 22 2所示,即所示,即CnCn1CnCn11 1時溢出。這里,表示異或。時溢出。這里,表示異或。 第32頁/共73頁第三十二頁,共73頁。表22 溢出(y ch)的判決表 CnCn1OverflowCnCn100無溢出01溢出10溢出11無溢出第33頁/共73頁第三十三頁,共73頁。 【例.】X(100)10(01100100)2,Y(50)10(00110010)2,求XY。解: X補01100100,y補00110010 XY補X補y

43、補10010110 CnCn11,表示結(jié)果溢出。【例.】X(100)l0(01100100)2,Y(50)l0(00110010)2,求XY。解: X補10011100,y補00110010 XY補X補Y補11001110 CnCn10,因此沒有溢出。雙符號位判決法: 采用兩位二進(jìn)制位來表示符號位:00正號,11負(fù)號(f ho),根據(jù)運算結(jié)果的符號位也可以判定其是否溢出,其判決表如表23所示。 第34頁/共73頁第三十四頁,共73頁。表23 雙符號(fho)位判決表 運算結(jié)果的符號位Overflow運算結(jié)果的符號位Overflow00無溢出10溢出01溢出11無溢出第35頁/共73頁第三十五頁

44、,共73頁。 【例2.1】X(100)l0(01100100)2,Y(50)l0(00110010)2,求XY。解: X補001100100 Y補000110010 XY補X補y補010010110 其符號位為0 1,說明結(jié)果溢出(y ch)。 定點數(shù)乘法運算在作定點數(shù)的乘法運算時采用原碼比較方便。通常使用原碼一位乘法來求兩個定點數(shù)的乘積。 運算規(guī)則:乘積的符號位等于乘數(shù)和被乘數(shù)的符號位進(jìn)行異或;乘積的值等于兩數(shù)絕對值之積,即乘數(shù)和被乘數(shù)的絕對值進(jìn)行移位相加。算法:(用絕對值進(jìn)行運算) 令X表示被乘數(shù),Y表示乘數(shù),P表示部分積以存放中間結(jié)果,flag用作判別位,count用作計數(shù)。 第36頁/

45、共73頁第三十六頁,共73頁。令P0;count0;flag0; P和Y一起右移一位(P為高位部分,Y為低位部分),右移時P的最高位補0,P的最低位移入Y的最高位,Y的最低位移入到flag中; 如果flag1同PPX,否則P不變; countcount1,如果count超過(chogu)Y的位數(shù)則運算停止,否則轉(zhuǎn)到上述第2步繼續(xù)執(zhí)行; P和Y的內(nèi)容就是所求乘積的絕對值,其中P存放積的高位,而Y存放積的低位?!纠?X(10)l0(1010)2,Y(6)10(0110)2,求X,Y。解: X原1010,Y原0110乘積的符號位S 0 1 1。 第37頁/共73頁第三十七頁,共73頁。表24 定點

46、數(shù)乘法(chngf)運算表 執(zhí)行動作部分積P乘數(shù)Y判別位Flagcounter初始化0000011000右移0000001101右移0000000112P+X1010右移0101000013P+X1111右移0111100004右移0011110005第38頁/共73頁第三十八頁,共73頁。則所得乘積為(00111100)2(60)l0 定點數(shù)除法運算定點數(shù)的除法通常也常用原碼進(jìn)行。下面介紹常用的加減交替法求兩個數(shù)X和Y 的商。運算規(guī)則(guz):商的符號位同定點數(shù)原碼乘法的處理方法,由兩數(shù)的符號位進(jìn)行異或;兩數(shù)的絕對值部分進(jìn)行相除;算法:(求XY,設(shè)X、Y的數(shù)值部分長度為N) 令及RX,co

47、unter0; RRY;若R為正則商1,否則商0; R左移一位,countercounter1; 若上一次商為1則RRY,否則RRY; R為正則商1,否則商0; 若R0或者counterN則結(jié)束,否則轉(zhuǎn)到上述第3步執(zhí)行。 第39頁/共73頁第三十九頁,共73頁。 (2) 浮點數(shù)運算在進(jìn)行浮點運算之前,應(yīng)先對浮點數(shù)進(jìn)行規(guī)格化。浮點數(shù)的加減運算設(shè)有浮點數(shù)XM2i,YN2j,求XY或XY,其運算過程如下(rxi): 對階:使兩個數(shù)的階碼相同。令Kij,把階碼小的數(shù)的尾數(shù)右移K位,其階碼加上K。當(dāng)右移尾數(shù)時,若尾數(shù)用補碼表示則符號位參加移位,符號位不變,如果是原碼,則符號位不參加移位,尾數(shù)的最高位補0

48、。 尾數(shù)進(jìn)行加、減運算: 規(guī)格化處理:若尾數(shù)所得結(jié)果不是規(guī)格化的數(shù),則需對其進(jìn)行規(guī)格化處理。當(dāng)尾數(shù)溢出時,尾數(shù)向右規(guī)格化位,階碼加1;當(dāng)尾數(shù)用補碼表示,尾數(shù)的最高位與符號位相同時,應(yīng)向左規(guī)格化,尾數(shù)每向左移一位,階碼減1,直到尾數(shù)最高位與符號位相反。 第40頁/共73頁第四十頁,共73頁。 舍入操作:舍入的方法常用0舍1入,即當(dāng)向右規(guī)格化時,若移掉的最高位為1,則在尾數(shù)末位加1,否則舍去。另一種則是“恒1”法,即不管移走的數(shù)據(jù)(shj)為何值,尾數(shù)最末位恒置1。 溢出判斷:以階碼為準(zhǔn)。若階碼上溢,則結(jié)果溢出;若階碼下溢,則結(jié)果為0;否則結(jié)果正確無溢出。 浮點數(shù)的乘除運算 浮點數(shù)相乘,其積的階碼

49、為兩數(shù)階碼相加,積的尾數(shù)為兩尾數(shù)相乘。浮點數(shù)相除,其商的階碼為兩數(shù)階碼之差,商的尾數(shù)為兩尾數(shù)相除。其結(jié)果都需要進(jìn)行規(guī)格化處理,同時還需要判斷其階碼是否溢出。 2邏輯代數(shù)及邏輯運算 邏輯代數(shù)是1849年英國數(shù)學(xué)家喬治布爾提出的以代數(shù)的方式對邏輯變量進(jìn)行描述和分析的數(shù)學(xué)工具,又稱布爾代數(shù)。邏輯變量的取值只有“真”和“假”,通常以1和0表示。 第41頁/共73頁第四十一頁,共73頁。(1) 基本的邏輯運算 “與”(AND)運算 又稱為邏輯乘運算,其運算符號通常用AND、或等表示(biosh)。兩個變量的“與”運算的運算規(guī)則如表24所示。即當(dāng)A、B中任一變量取0值時,其運算結(jié)果為0。 表25 “與”運

50、算表 表26 “或”運算表ABZ=AB000010100111ABZ=A+B000011101111第42頁/共73頁第四十二頁,共73頁?!盎颉?OR)運算 又稱為邏輯加運算,其運算符號為OR、U、V或等。兩個變量的“或”運算規(guī)則如表25所示。即當(dāng)A、B中任意(rny)一個取1值時,其運算結(jié)果為l?!胺恰?NOT)運算 又稱為邏輯求反運算。常用表示對變量A進(jìn)行求反。其運算規(guī)則很簡單:0,。 “異或”運算 常用的還有“異或”運算,又稱為半加運算,其運算符號為XOR或。異或運算是一種復(fù)合邏輯運算,可用上述基本邏輯運算表示如下:AB A BA B 第43頁/共73頁第四十三頁,共73頁。22 邏輯

51、邏輯(lu j)部件部件 221 寄存器寄存器 1寄存器組寄存器組(register block)概述概述CPU中的寄存器通??梢苑譃閮深悾河脩艨梢姷募拇嫫髦械募拇嫫魍ǔ?梢苑譃閮深悾河脩艨梢姷募拇嫫?user-visible registers)和狀態(tài)控制寄存器和狀態(tài)控制寄存器(control and status registers)。 (1) 用戶可見的寄存器用戶可見的寄存器用戶能夠通過用戶能夠通過(tnggu)機器語言來訪問這些寄存器。合理機器語言來訪問這些寄存器。合理優(yōu)化地使用這些寄存器可以減少對主存的訪問次數(shù),從而優(yōu)化地使用這些寄存器可以減少對主存的訪問次數(shù),從而提高程序的執(zhí)行速度

52、。按其功能可以分為提高程序的執(zhí)行速度。按其功能可以分為4類:類:通用寄存器通用寄存器(general purpose register)通用寄存器的用途由程序員編程決定,例如可以用來存放通用寄存器的用途由程序員編程決定,例如可以用來存放操作數(shù),也可以用作尋址寄存器。操作數(shù),也可以用作尋址寄存器。數(shù)據(jù)寄存器數(shù)據(jù)寄存器(dataregister)數(shù)據(jù)寄存器僅能用來存放數(shù)據(jù)而不能用來對操作數(shù)的地址數(shù)據(jù)寄存器僅能用來存放數(shù)據(jù)而不能用來對操作數(shù)的地址進(jìn)行計算。進(jìn)行計算。 第44頁/共73頁第四十四頁,共73頁。地址寄存器(addressregister) 地址寄存器用來存放操作數(shù)的地址,一般而言地址寄存

53、器又可以分為段地址寄存器(segment pointer register)、間址寄存器(index register)和堆棧寄存器(stack pointer register)。段地址寄存器用在采用段式內(nèi)存管理的計算機中,存放著某一段內(nèi)存區(qū)域的基地址。間址寄存器用在間接尋址(indexed addressing)方式下。堆棧寄存器用以存放堆棧棧頂?shù)牡刂罚沟迷谑褂枚褩2僮?如push,pop)時無須顯式地給出操作數(shù)的地址(即其地址是隱含的)。標(biāo)志(biozh)寄存器(flagcondition codes register)標(biāo)志(biozh)寄存器中的位是由CPU硬件根據(jù)運算的結(jié)果而設(shè)立的

54、一些指示位,以反映該次運算的某些特征:結(jié)果為正、負(fù)、零、溢出等等,并可以用作分支跳轉(zhuǎn)的依據(jù)。一般而言,標(biāo)志(biozh)寄存器允許編程者進(jìn)行讀操作,但不允許對其直接進(jìn)行寫操作。 第45頁/共73頁第四十五頁,共73頁。(2)狀態(tài)控制寄存器(CSR)這些寄存器被控制器(control unit)用來控制CPU的操作。通常是程序員不可見的,但也有某些寄存器在某種特定的狀態(tài)下可以由 某 些 特 權(quán) 指 令 進(jìn) 行 訪 問 。 常 見 的 C S R 有 : 程 序 計 數(shù) 器(program counter,PC)、指令寄存器(instruction register,IR)、存儲器地址寄存器(me

55、moryaddress,register,MAR)、存儲器緩沖寄存器(memory buffer register,MBR)以及程序狀態(tài)字(programstatusword,PSW)。PC中存放著下一條待取指令的地址。當(dāng)程序順序執(zhí)行時,CPU在取回一條指令后,會自動修改PC中的值以使其指向(zh xin)下一條指令。而程序中的分支或跳轉(zhuǎn)指令也是通過修改PC中的值來達(dá)到改變流程的目的。IR中存放著CPU剛?cè)』氐闹噶?,以供指令譯碼使用。CPU和存儲器之間的數(shù)據(jù)交換通過MAR和MBR來實現(xiàn)。MAR中存放著待訪問的內(nèi)存單元的地址而MBR則存放從內(nèi)存中讀人的數(shù)據(jù)或要寫回內(nèi)存單元的數(shù)據(jù)。這4個寄存器(P

56、C、IR、MAR、MBR)用來實現(xiàn)在CPU和存儲器(memory)之間的數(shù)據(jù)交換。另外CPU內(nèi)部,在ALU與MBR、用戶可見的寄存器之間也可能存在用作輸入/輸出緩沖寄存器。 第46頁/共73頁第四十六頁,共73頁。2寄存器邏輯組成寄存器邏輯組成 寄存器是計算機的一個重要部件,用于暫存數(shù)據(jù)、寄存器是計算機的一個重要部件,用于暫存數(shù)據(jù)、指令等。它由觸發(fā)器和一些控制門組成。在寄存指令等。它由觸發(fā)器和一些控制門組成。在寄存器中,常用器中,常用(chn yn)的是正邊沿觸發(fā)的是正邊沿觸發(fā)D觸發(fā)觸發(fā)器和鎖存器。器和鎖存器。 圖圖23所示是由正沿觸發(fā)的所示是由正沿觸發(fā)的D觸發(fā)器組成的四觸發(fā)器組成的四位寄存器

57、。在位寄存器。在CP正沿作用下,外部數(shù)據(jù)才能進(jìn)入正沿作用下,外部數(shù)據(jù)才能進(jìn)入寄存器。寄存器。D是復(fù)位端,是復(fù)位端,CP 是是 D觸發(fā)器的脈沖端,觸發(fā)器的脈沖端,CK 是增加了個與邏輯門電路來取正沿脈沖的輸是增加了個與邏輯門電路來取正沿脈沖的輸入端。四入端。四D寄存器的功能見表寄存器的功能見表27,其中,其中代表正代表正脈沖,也即正沿。脈沖,也即正沿。 第47頁/共73頁第四十七頁,共73頁。圖23四D寄存器 第48頁/共73頁第四十八頁,共73頁。表27 四D寄存器功能表 控制和輸入輸出R DCK1D2D3D4D1Q2Q3Q4Q11D2D3D4D1D2D3D4D00000第49頁/共73頁第四

58、十九頁,共73頁。事實上,在計算機中常要求寄存器有移位功能。如在進(jìn)行乘法時,要求將部分積右移;在將并行傳送的數(shù)轉(zhuǎn)換成串行數(shù)時也需移位。有移位功能的寄存器稱為移位寄存器。222 計數(shù)器計數(shù)器是計算機、數(shù)字(shz)儀表中常用的一種電路。計數(shù)器按時鐘作用方式來分,有同步計數(shù)器和異步計數(shù)器兩大類。在異步計數(shù)器中,由于高位觸發(fā)器的時鐘信號是由低一位觸發(fā)器的輸出來提供的,但是結(jié)構(gòu)簡單。同步計數(shù)器中各觸發(fā)器的時鐘信號是由同一脈沖來提供的,因此,各觸發(fā)器是同時翻轉(zhuǎn)的,它的工作頻率比異步計數(shù)器高,但結(jié)構(gòu)較復(fù)雜。計數(shù)器按計數(shù)順序來分,有二進(jìn)制、十進(jìn)制兩大類。在計算機中較少使用異步計數(shù)器,這里著重介紹有并行輸入數(shù)

59、據(jù)功能的正向同步十進(jìn)制計數(shù)器。圖24是用主從JK觸發(fā)器構(gòu)成的同步十進(jìn)制集成化計數(shù)器。同步計數(shù)器是采用快速進(jìn)位方式來計數(shù)的,觸發(fā)器及實現(xiàn)快速進(jìn)位的邏輯電路是它的核心。 第50頁/共73頁第五十頁,共73頁。圖2 24 4十進(jìn)制同步(tngb)(tngb)計數(shù)器 第51頁/共73頁第五十一頁,共73頁?!邦A(yù)置數(shù)”是集成化同步計數(shù)器的一個重要功能。一般設(shè)置控制端L,用來選擇電路是執(zhí)行計數(shù)還是執(zhí)行預(yù)置數(shù):當(dāng)L1,執(zhí)行同步計數(shù);L0,執(zhí)行預(yù)置數(shù)。由于JK觸發(fā)器數(shù)據(jù)輸入是雙端的,所以要將單端的預(yù)置數(shù)AD經(jīng)兩級“與非”門變成互補(h b)信號,再加在J,K端。圖24所示與非門411就是為此目的而設(shè)置的。當(dāng)L

60、1時,這些與非門被封鎖,快速進(jìn)位電路輸出經(jīng)或門1215進(jìn)入觸發(fā)器,電路執(zhí)行計數(shù);當(dāng)L0,門411打開,快速進(jìn)位被封鎖,電路執(zhí)行置數(shù)。 能夠方便地擴展位數(shù)是集成化計數(shù)器的一個特點。下面介紹擴展方法。計數(shù)器擴展應(yīng)滿足以下條件。 首先,要有標(biāo)志計數(shù)器已計至最大數(shù)的進(jìn)位輸出端RC,對二進(jìn)制、十進(jìn)制計數(shù)器,RC分別為: 二進(jìn)制計數(shù)器:RCQAQBQCQD 十進(jìn)制計數(shù)器:RCQAQD第52頁/共73頁第五十二頁,共73頁。其次,計數(shù)器應(yīng)有保持功能。圖24計數(shù)器中設(shè)置了“計數(shù)允許”端P和T,用來控制計數(shù)器快速進(jìn)位電路和RC形成門:當(dāng)P,T均為“1”,快速進(jìn)位電路才能打開(見表28),此時若L1,則電路處于計

溫馨提示

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

評論

0/150

提交評論