掌握布爾代數(shù)和常見邏輯電路了解微型計(jì)算機(jī)的常用技術(shù)術(shù)_第1頁
掌握布爾代數(shù)和常見邏輯電路了解微型計(jì)算機(jī)的常用技術(shù)術(shù)_第2頁
掌握布爾代數(shù)和常見邏輯電路了解微型計(jì)算機(jī)的常用技術(shù)術(shù)_第3頁
掌握布爾代數(shù)和常見邏輯電路了解微型計(jì)算機(jī)的常用技術(shù)術(shù)_第4頁
掌握布爾代數(shù)和常見邏輯電路了解微型計(jì)算機(jī)的常用技術(shù)術(shù)_第5頁
已閱讀5頁,還剩125頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 微型計(jì)算機(jī)基礎(chǔ)知識(shí)本章學(xué)習(xí)目標(biāo)掌握微型計(jì)算機(jī)中的數(shù)制及其編碼 掌握布爾代數(shù)和常見邏輯電路 了解微型計(jì)算機(jī)的常用技術(shù)術(shù)語和技術(shù)11微型機(jī)中的數(shù)制及其編碼一、數(shù)與數(shù)制 進(jìn)位計(jì)數(shù)制,簡稱數(shù)制。十進(jìn)制:人們習(xí)慣采用的計(jì)數(shù)制是十進(jìn)制。 09 十個(gè)不同的基數(shù),逢十進(jìn)一。 用D表示或省略。二進(jìn)制:計(jì)算機(jī)所采用的計(jì)數(shù)制是二進(jìn)制。 只有0、1兩個(gè)不同的基數(shù),逢二進(jìn)一。 用B表示。 因?yàn)橛?jì)算機(jī)用晶體管截止、飽和兩個(gè)狀態(tài)下的輸出電平1、0表示數(shù)字。2十進(jìn)制與二進(jìn)制轉(zhuǎn)換人機(jī)交互時(shí)采用十進(jìn)制,計(jì)算機(jī)內(nèi)數(shù)據(jù)存儲(chǔ)、計(jì)算、處理用二進(jìn)制,需要需要進(jìn)行轉(zhuǎn)換。在計(jì)算機(jī)中的解決方法是,利用接口技術(shù)作轉(zhuǎn)換。 如:用鍵盤輸入數(shù)據(jù)

2、時(shí)使用十進(jìn)制數(shù),即輸入電路使用的鍵盤是十進(jìn)制數(shù),輸入接口電路將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)后送到機(jī)器內(nèi)部;3二、不同數(shù)制之間的轉(zhuǎn)換1、十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的方法整數(shù)部分轉(zhuǎn)換方法:除以2取余,直到商為0為止。最后將所有余數(shù)倒序排列,得到轉(zhuǎn)換結(jié)果。小數(shù)部分轉(zhuǎn)換方法:乘以2取整,直到滿足精度要求為止。4例1:將十進(jìn)制數(shù)100轉(zhuǎn)換為二進(jìn)制數(shù)(100)10=(01100100)2 或者表示為: 100D=01100100B5例2:將十進(jìn)制數(shù)45.613轉(zhuǎn)換成二進(jìn)制數(shù)45.613 (101101.100111)2 或45.613D101101.100111B62、二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)轉(zhuǎn)

3、換方法:按權(quán)展開相加。 例如,一個(gè)8位的二進(jìn)制數(shù)的各位的權(quán)值依次是27 、 26 、 25 、 、20 。 如將10110110B轉(zhuǎn)換為十進(jìn)制數(shù)的方法是:即,(10110110)2 =(182)10或者表示為: 10110110B=182D 73、十六進(jìn)制數(shù)優(yōu)點(diǎn):二進(jìn)制數(shù)位數(shù)較多時(shí),讀寫不方便。而使用十六進(jìn)制表示簡明。十六進(jìn)制數(shù)表示: 09、A、B、C、D、E、F十六個(gè)不同的基數(shù) 逢十六進(jìn)一 用H表示。8二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù) 原理:四位二進(jìn)制數(shù)對(duì)應(yīng)一位十六進(jìn)制,所以二進(jìn)制整數(shù)轉(zhuǎn)換為16進(jìn)制時(shí),從最低位開始,每四位一組(不足四位時(shí)高位補(bǔ)0)轉(zhuǎn)換成一位十六進(jìn)制數(shù)據(jù)即可。 例如:1011 011

4、0B=B6H。9十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)時(shí),把每一位十六進(jìn)制數(shù)據(jù)直接寫成四位二進(jìn)制數(shù)。例如:64H=0110 0100B104位二進(jìn)制數(shù)和一位十六進(jìn)制數(shù)具有一一對(duì)應(yīng)的關(guān)系。十六進(jìn)制二進(jìn)制十六進(jìn)制二進(jìn)制0000081000100019100120010A101030011B101140100C110050101D110160110E111070111F1111表2-1 4位二進(jìn)制數(shù)和一位十六進(jìn)制數(shù)的對(duì)應(yīng)關(guān)系11十六進(jìn)制數(shù)據(jù)和十進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換通過二進(jìn)制轉(zhuǎn)換;將十進(jìn)制整數(shù)除以十六取余,小數(shù)部分乘以十六取整,可直接轉(zhuǎn)換為十六進(jìn)制數(shù);將十六進(jìn)制數(shù)按權(quán)展開相加得到十進(jìn)制數(shù)

5、。 n+1位十六進(jìn)制數(shù)的權(quán)值分別為16n、16n-1、162、161、16012三、數(shù)制數(shù)據(jù)的編碼及其運(yùn)算 在計(jì)算機(jī)中,數(shù)據(jù)分無符號(hào)數(shù)和帶符號(hào)數(shù)。無符號(hào)數(shù)用整個(gè)機(jī)器字長的全部二進(jìn)制位表示數(shù)值位, 無符號(hào)位;帶符號(hào)數(shù)用最高位表示該數(shù)的符號(hào)位。 帶符號(hào)數(shù)又有原碼、補(bǔ)碼和反碼三種形式。131、原碼表示法由于計(jì)算機(jī)中只能有0、1兩種數(shù),不僅數(shù)的數(shù)值部分在計(jì)算機(jī)中用0、1編碼的形式表示,正、負(fù)號(hào)也只能用0、1編碼表示。一般用數(shù)的最高位(Most Significant Bit,MSB)表示數(shù)的正負(fù)符號(hào)。原碼表示法:一個(gè)數(shù)連同它的符號(hào)在機(jī)器中使用0、1進(jìn)行編碼。14 例如,若用5位二進(jìn)制數(shù)表示數(shù)據(jù)時(shí),最高

6、位表示符號(hào),0表示正數(shù),1表示負(fù)數(shù),余下的四位表示數(shù)據(jù):MSB=0表示正數(shù),如1011B表示為01011B;MSB=1表示負(fù)數(shù),如1011B表示為11011B。15機(jī)器數(shù)和真值把一個(gè)數(shù)在機(jī)器內(nèi)的二進(jìn)制形式稱為機(jī)器數(shù)。把這個(gè)數(shù)本身稱為該機(jī)器數(shù)的真值。上例的“01011B”和“11011B”就是兩個(gè)機(jī)器數(shù)。它們的真值分別為1011B和1011B。16真值為純小數(shù)時(shí),其原碼形式為XSX1X2Xn,其中XS表示符號(hào)位。例如, 若X0.0110,則X原X0.0110; 若X-0.0110,則X原1.0110真值為純整數(shù)時(shí),其原碼形式為 XSXnXn-1X2X1,其中XS表示符號(hào)位。 178位二進(jìn)制原碼的

7、表示范圍為: -127 -0 +0+12716位二進(jìn)制原碼的表示范圍為: -32767 -0 +0+32767原碼表示中,真值0有兩種不同的表示形式: 0原00000, 0原1000018無符號(hào)數(shù) 沒有符號(hào)位的數(shù),稱為無符號(hào)數(shù)。 無符號(hào)數(shù)的最大值比有符號(hào)數(shù)大一倍。 如字長為8位時(shí),能表示的無符號(hào)數(shù)的最大值為11111111B,即255,而8位有符號(hào)數(shù)的最大值是01111111B,即+127。198位二進(jìn)制無符號(hào)數(shù)的表示范圍為:025516位二進(jìn)制無符號(hào)數(shù)的表示范圍為:065535原碼的優(yōu)點(diǎn)是直觀易懂,機(jī)器數(shù)和真值間的轉(zhuǎn)換很容易,用原碼實(shí)現(xiàn)乘、除運(yùn)算的規(guī)則簡單。缺點(diǎn)是加、減運(yùn)算規(guī)則較復(fù)雜。20原

8、碼計(jì)算存在的問題 直接用0、1表示正、負(fù),運(yùn)算時(shí)帶來的問題:有符號(hào)數(shù)和無符號(hào)數(shù)的表示形式并沒有任何區(qū)別,所以,CPU在進(jìn)行運(yùn)算時(shí),并不知道參與運(yùn)算的數(shù)是有符號(hào)數(shù)還是無符號(hào)數(shù),在進(jìn)行有符號(hào)數(shù)的運(yùn)算時(shí),會(huì)將符號(hào)也當(dāng)作是數(shù)值進(jìn)行運(yùn)算,因而有時(shí)會(huì)出現(xiàn)錯(cuò)誤的結(jié)果。21兩個(gè)正數(shù)相加時(shí),符號(hào)位也同時(shí)相加若兩個(gè)數(shù)之和不超出其所能表示的最大值127時(shí),符號(hào)位相加:000,即和仍然為正數(shù),結(jié)果正確。若兩個(gè)數(shù)之和超出了其所能表示的最大值127時(shí),就會(huì)產(chǎn)生數(shù)字位向符號(hào)位的進(jìn)位,兩個(gè)符號(hào)位相加000,再加上低位進(jìn)上來的1,則符號(hào)位為1,作為有符號(hào)數(shù),表示兩個(gè)正數(shù)相加的和為負(fù)數(shù),顯然是不對(duì)的。22例1,兩個(gè)有符號(hào)正數(shù)01

9、010111B(87D) 和00010110B(22D)相加。其和為1101101B,即十進(jìn)制的109127,符號(hào)位為0,表示和為正數(shù),結(jié)果正確。23例2,兩個(gè)有符號(hào)正數(shù)00110111B(55D)和01011101B(93D)相加。和應(yīng)為+148,但符號(hào)位為1,表示和是負(fù)數(shù),錯(cuò)誤。產(chǎn)生錯(cuò)誤的原因是:相加的和是148127,超出了8位有符號(hào)正數(shù)所能表示的最大值,對(duì)于有符號(hào)數(shù),這種數(shù)值運(yùn)算侵入到符號(hào)位造成結(jié)果錯(cuò)誤的情況,稱為溢出。24一個(gè)正數(shù)與一個(gè)負(fù)數(shù)相加,和的符號(hào)位不應(yīng)是兩個(gè)符號(hào)位直接運(yùn)算的值:011。 和的符號(hào)位應(yīng)由兩數(shù)中絕對(duì)值大的數(shù)所決定。兩個(gè)負(fù)數(shù)相加時(shí),由于1110,符號(hào)位只表示0,因此

10、和的符號(hào)也不應(yīng)是由兩符號(hào)位直接運(yùn)算的結(jié)果所決定。為解決機(jī)器內(nèi)有符號(hào)數(shù)的符號(hào)位參加運(yùn)算的問題,引入了反碼和補(bǔ)碼。252、反碼表示法對(duì)正數(shù)來說,其反碼和原碼相同。 即原反。對(duì)負(fù)數(shù)來說,反碼為其原碼的符號(hào)位不變,數(shù)值部分的各位取反。在反碼表示中,真值0也有兩種不同的表示 形式: 0反00000B 0反11111B 26真值、原碼、反碼的不同表示 原 反1101B01101B01101B1101B11101B10010B27反碼運(yùn)算要注意以下三個(gè)問題:符號(hào)位可與數(shù)值位一樣參加運(yùn)算。符號(hào)位運(yùn)算后如有進(jìn)位產(chǎn)生,則把這個(gè)進(jìn)位送回到最低位去相加,這叫循環(huán)進(jìn)位。反碼運(yùn)算具有性質(zhì):X反Y反XY反283、補(bǔ)碼表示法

11、同余的概念兩整數(shù)A和B除以同一正整數(shù)M,所得余數(shù)相同,則稱A和B對(duì)M同余。 可寫成:AB(mod M)例如:對(duì)鐘表來說,其模M12,故4點(diǎn)和16點(diǎn)、5點(diǎn)和17點(diǎn)均是同余的。 416(mod 12),517(mod 12)29指針式鐘表的校準(zhǔn)(快兩個(gè)小時(shí))方法一:往回?fù)軆蓚€(gè)小時(shí)方法二:往前撥10個(gè)小時(shí),結(jié)果相同。 鐘表按照12小時(shí)循環(huán)計(jì)數(shù),一旦加到大于12小時(shí)時(shí),就會(huì)將12舍棄,計(jì)為0點(diǎn)。30這種按照周期循環(huán)的數(shù)的周期叫做模,這里模是12,數(shù)一旦大于或等于其模,就會(huì)被自動(dòng)舍棄。所以,5+10-12=3,而5-2=5+10-12=5+(10-12),10可看作-2的補(bǔ)碼。 即以12為模時(shí),2和10

12、同余。同余的兩個(gè)數(shù)具有互補(bǔ)關(guān)系, 2與10對(duì)模12互補(bǔ),即2的補(bǔ)碼是10。31可見,只要確定了“?!保涂烧业揭粋€(gè)與負(fù)數(shù)等價(jià)的正數(shù)( 該正數(shù)是負(fù)數(shù)的補(bǔ)碼 )來代替此負(fù)數(shù),這個(gè)正數(shù)可用模加上負(fù)數(shù)本身求得,這樣就可把減法運(yùn)算用加法實(shí)現(xiàn)了。32補(bǔ)碼的概念:知道模的大小,求某個(gè)負(fù)數(shù)的補(bǔ)碼時(shí),只要將該負(fù)數(shù)加上其模,就得到它的補(bǔ)碼。如以“10”為模,“-7”的補(bǔ)碼為 (7)+10 3 (mod 10) 這時(shí)“3”就是“-7”的補(bǔ)碼。 33某一正數(shù)加上一個(gè)負(fù)數(shù)時(shí),實(shí)際上是做一次減法。引入補(bǔ)碼概念之后,可將該正數(shù)加上這個(gè)負(fù)數(shù)的補(bǔ)碼,最高位產(chǎn)生的進(jìn)位會(huì)自然丟失,所以得到的結(jié)果同樣是正確的。 例如,當(dāng)模為10時(shí),

13、 7(-7) 7(-7+10)=7+3 =10=10-10 = 0(mod 10) 又如, 7+(-4)=7+(-4+10)=7+6=13=13-10=3 (mod 10)34以2n為模的補(bǔ)碼 在計(jì)算機(jī)中,帶符號(hào)的數(shù)用二進(jìn)制補(bǔ)碼表示。存放數(shù)據(jù)的存儲(chǔ)器的位數(shù)都是確定的。如每個(gè)存數(shù)單元的字長為n位,則它的模就是2n。 2n是nl位的二進(jìn)制數(shù)1000B(1后面有n個(gè)0),由于機(jī)器只能表示n位數(shù),因此數(shù)2n在機(jī)器中僅能以n個(gè)0來表示,而該數(shù)最高位的數(shù)字1就被自動(dòng)舍棄了。則以2n為模時(shí)2n和0在機(jī)器中的表示形式是完全一樣的。35如果將n位字長的二進(jìn)制數(shù)的最高位留做符號(hào)位,則數(shù)字只剩下n-1位,下標(biāo)從n-

14、2到0,數(shù)字X 的補(bǔ)碼(以2n為模)的表示形式為:當(dāng)X為正數(shù)時(shí),即X+Xn-2Xn-3X1X0時(shí), X補(bǔ)=2n+X =0 Xn-2Xn-3X1X0 (mod2n) =X原36當(dāng)X為負(fù)數(shù)時(shí),即X-Xn-2Xn-3X1X0時(shí),37例如,n=8時(shí),28=100000000B,則1010111B的補(bǔ)碼為:1010111B補(bǔ)100000000B1010111B 10101001B或1010111B補(bǔ)1010111B反1 10101000B1 10101001B38正數(shù):補(bǔ)碼和原碼的形式相同: 原補(bǔ);負(fù)數(shù):補(bǔ)碼為其反碼(數(shù)值部分各位變反)加。例如: 原 反 補(bǔ)正數(shù) 0001101B 00001101B 0

15、0001101B 00001101B負(fù)數(shù) 0001101B 10001101B 11110010B 11110011B39不論是正數(shù),還是負(fù)數(shù),反碼與補(bǔ)碼具有下列相似的性質(zhì): 反反原 補(bǔ)補(bǔ)原40【例2-1】+13和-13的原碼、反碼、補(bǔ)碼以及反碼的反碼和補(bǔ)碼的補(bǔ)碼如下: X 原 反 補(bǔ) 反反 補(bǔ)補(bǔ) 0001101B 00001101B 00001101B 00001101B 00001101B 00001101B 0001101B 10001101B 11110010B 11110011B 10001101B 10001101B 41 無符號(hào)數(shù)有符號(hào)數(shù)十進(jìn)制數(shù)二進(jìn)制數(shù)真值原碼反碼補(bǔ)碼12710

16、1281292550111 1111B0000 0001B0000 0000B1000 0000B1000 0001B1111 1111B+127:+1+0-0-1:-127-1280111 1111B:0000 0001B0000 0000B1000 0000B1000 0001B:1111 1111B不能表示0111 1111B:0000 0001B0000 0000 B1111 1111 B1111 1110 B:1000 0000 B不能表示0111 1111 B:0000 0001 B0000 0000 B0000 0000 B1111 1111 B:1000 0001 B1000

17、0000 B表2-2 8位二進(jìn)制數(shù)的原碼、反碼、補(bǔ)碼的表示42 可見, 8位字長,原碼、反碼表示的數(shù)的 范圍為127127,而補(bǔ)碼表示的數(shù)的范圍為127128。下面對(duì)兩個(gè)特殊的數(shù)的補(bǔ)碼作進(jìn)一步說明:0的補(bǔ)碼 +0補(bǔ)00000000B -0原10000000B,經(jīng)求反加1,得00000000B, 所以,-0補(bǔ)00000000B。 即,對(duì)補(bǔ)碼, +0補(bǔ) -0補(bǔ)00000000B43-128的補(bǔ)碼根據(jù)補(bǔ)碼的定義,128補(bǔ)= 28(128) = 28 (127)-1 =100000000B-1111111B-1 =100000001B-1 =10000000B44數(shù)值數(shù)據(jù)的運(yùn)算采用補(bǔ)碼進(jìn)行加減運(yùn)算時(shí)要

18、注意以下幾個(gè)問題:溢出 補(bǔ)碼運(yùn)算時(shí),其符號(hào)位與數(shù)值部分一樣參加運(yùn)算,但結(jié)果不能超出其所能表示的數(shù)的范圍,否則會(huì)出現(xiàn)溢出錯(cuò)誤。 無符號(hào)數(shù)的加減運(yùn)算結(jié)果超出數(shù)的范圍的情況叫做進(jìn)位或借位,計(jì)算機(jī)中有專用的標(biāo)志位作記錄,只要適當(dāng)處理這些標(biāo)志,結(jié)果就不會(huì)出錯(cuò),所以在多字節(jié)數(shù)的加減運(yùn)算時(shí)必須考慮進(jìn)位和借位的處理。45采用了補(bǔ)碼以后,符號(hào)運(yùn)算后如出現(xiàn)進(jìn)位,則把這個(gè)進(jìn)位舍去不要,不影響運(yùn)算結(jié)果,運(yùn)算后的符號(hào)就是結(jié)果的符號(hào)。補(bǔ)碼運(yùn)算的性質(zhì): 補(bǔ)補(bǔ)補(bǔ) 補(bǔ)補(bǔ)補(bǔ)以上運(yùn)算性質(zhì),與數(shù)的位數(shù)n無關(guān)。46下面以二進(jìn)制數(shù)的補(bǔ)碼運(yùn)算為例,說明有符號(hào)數(shù)的運(yùn)算性質(zhì)【例2-2】已知:+0101101B 0000001B求?解:補(bǔ)= 0

19、0101101補(bǔ)= 11111111 補(bǔ) = 100101100 進(jìn)位舍去不要補(bǔ)補(bǔ)0101100B=X補(bǔ)+Y補(bǔ)47【例2-3】已知:0001101B 0000001B求:?解:補(bǔ) = 11110011補(bǔ) = 11111111 補(bǔ) = 111110010 進(jìn)位舍去不要所以,補(bǔ)補(bǔ)0001110B48【例2-4】已知:+1128 求:?解:補(bǔ)00000001補(bǔ)10000000 補(bǔ)10000001所以,補(bǔ)補(bǔ)11111111B 12749加法器就能完成所有的算術(shù)運(yùn)算加法算減法:因?yàn)闇p去一個(gè)正數(shù)的減法運(yùn)算可以看作是加上一個(gè)負(fù)數(shù)的加法運(yùn)算,所以在計(jì)算機(jī)中,求得補(bǔ)碼之后,就把減一個(gè)正數(shù)的運(yùn)算轉(zhuǎn)變?yōu)榧由显撠?fù)數(shù)的

20、補(bǔ)碼的加法運(yùn)算。加法算乘法:可以采用移位相加的方法完成。加法算除法:采用移位相減的方法完成,這樣只用加法器就能完成所有的算術(shù)運(yùn)算。50三種編碼小結(jié):對(duì)正數(shù)而言,上述三種碼都等于真值本身。最高位都表示符號(hào)位,補(bǔ)碼和反碼的符號(hào)位可與數(shù)值位一樣對(duì)待,和數(shù)值位一起參加運(yùn)算;但原碼的符號(hào)位必須與數(shù)值位分開處理。原碼和反碼的真值0各有兩種不同的表示方式,而補(bǔ)碼的真值0表示是唯一的。514、十進(jìn)制數(shù)的編碼常用的十進(jìn)制數(shù)編碼有: BCD碼(Binary-Coded Decimal) 余3碼 格雷碼BCD碼:是二進(jìn)制編碼形式的十進(jìn)制數(shù)。即用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù),這種編碼形式可以有多種,其中最自然、最常用

21、的一種形式為8-4-2-1BCD碼。52非壓縮BCD 用一個(gè)字節(jié)的8位二進(jìn)制數(shù)表示十進(jìn)制數(shù)時(shí),若每個(gè)字節(jié)的高四位為0,只用其低四位表示一位十進(jìn)制數(shù),則稱為非壓縮的BCD碼,表示格式如圖所示。它所表示的數(shù)的范圍是0-9。D7D6D5D4D3D2D1D00000個(gè)位圖2-3 非壓縮BCD碼的表示格式53D7D6D5D4D3D2D1D0十位個(gè)位圖2-4 壓縮BCD碼的表示格式壓縮BCD若將8位用于表示兩位十進(jìn)制數(shù),則稱為壓縮的BCD碼,表示格式如圖所示。它所表示的數(shù)的范圍是0-99。54例如,若用4個(gè)字節(jié)表示十進(jìn)制數(shù)4321用非壓縮的BCD碼表示時(shí)是00000100, 00000011, 00000

22、010, 00000001;寫成十六進(jìn)制的形式: 04H、03H、02H、01H;用壓縮的BCD碼表示時(shí),為:01000011,00100001;寫成十六進(jìn)制的形式:43H、21H。55 盡管在8421碼中09,10個(gè)數(shù)碼的表示形式與用二進(jìn)制表示的形式一樣,但這是兩個(gè)完全不同的概念,不能混淆。 如,十進(jìn)制數(shù)39可表示為(0011 1001)8421或100111B, 兩者是完全不同的。56四、非數(shù)值數(shù)據(jù)的編碼 計(jì)算機(jī)不僅能對(duì)數(shù)值數(shù)據(jù)進(jìn)行處理,還能夠?qū)ξ谋竞推渌菙?shù)值數(shù)據(jù)信息進(jìn)行處理。非數(shù)值數(shù)據(jù)是指不能進(jìn)行算術(shù)運(yùn)算的數(shù)據(jù),如:字符、字符串、圖形符號(hào)和漢字、語音與圖像等多種數(shù)據(jù)。這些信息在傳送時(shí),

23、不是直接傳送和處理其原值,而是先按照某種規(guī)則進(jìn)行一定的處理,以便使之具有通用的傳送格式。經(jīng)過這種處理的數(shù)值信息,稱為編碼。571、ASCII編碼處理文本文件時(shí),每個(gè)字符都由其相應(yīng)的標(biāo)準(zhǔn)字模構(gòu)成,文本文件本身并不包括這些字模,而只是使用其編碼來表示每個(gè)字符。例如,使用區(qū)位編碼的中文編輯時(shí),4位十進(jìn)制區(qū)位碼可以表示一萬個(gè)不同的字符。國際上通用的標(biāo)準(zhǔn)字符編碼為ASCII碼(American Standard Code for Information Interchange,ASCII),即美國標(biāo)準(zhǔn)信息交換碼。58ASCII碼共定義了256個(gè)代碼(從0-255)從0-32位為控制字符(ASCII co

24、ntrol characters)從33-127位為可打印字符(ASCII printable characters)從0-127是標(biāo)準(zhǔn)的ASCII編碼從128-255是擴(kuò)展的ASCII編碼59標(biāo)準(zhǔn)ASCII碼:用7位二進(jìn)制編碼表示87個(gè)字符 26個(gè)小寫英文字母 :41H5AH 26個(gè)大寫英文字母 :61H7AH 10個(gè)數(shù)字碼(09):30H39H 25個(gè)特殊字符:,等 共計(jì)87個(gè)字符。60 附錄A為ASCII碼字符表,它用8位二進(jìn)制數(shù)表示字符代碼。其基本代碼占7位,第8位可用作奇偶校驗(yàn),通過對(duì)奇偶校驗(yàn)位設(shè)置“1”或“0”狀態(tài),保持8位字節(jié)中的“1”的個(gè)數(shù)總是奇數(shù)(稱為奇校驗(yàn))或偶數(shù)(稱為偶校

25、驗(yàn)),一般用于字符或數(shù)字的串行傳送時(shí)檢測(cè)傳送過程中是否出錯(cuò)。612、漢字編碼漢字輸入編碼 漢字信息處理系統(tǒng)一般包括編碼、輸入、存儲(chǔ)、編輯、輸出和傳輸。編碼是關(guān)鍵。不解決這個(gè)問題,漢字就不能進(jìn)入計(jì)算機(jī)。漢字輸入編碼是用計(jì)算機(jī)標(biāo)準(zhǔn)鍵盤上按鍵的不同排列組合來對(duì)漢字進(jìn)行編碼。 62常用的輸入編碼有數(shù)字、字音、字形和音形編碼等。數(shù)字編碼:如電報(bào)碼、區(qū)位碼等。無重碼,但難記。字音編碼:以漢語拼音作為編碼基礎(chǔ)。簡單易學(xué),但重碼很高,如搜狗拼音、全拼、雙拼等。字形編碼法:如五筆字型碼、鄭碼等。具有重碼少的優(yōu)點(diǎn)。音形編碼法:音形編碼吸取了音碼和形碼的優(yōu)點(diǎn),使編碼規(guī)則簡化,重碼少。常用的有全息碼等。63漢字國標(biāo)碼

26、 漢字國標(biāo)碼即國標(biāo)碼,是不同漢字信息處理系統(tǒng)間進(jìn)行漢字交換時(shí)所使用的編碼。國標(biāo)碼以國家標(biāo)準(zhǔn)局頒布的GB2312-80規(guī)定的漢字交換碼作為標(biāo)準(zhǔn)漢字編碼。共收錄7445個(gè)。在字符集中,漢字和字符分94個(gè)區(qū),每區(qū)94位。每個(gè)漢字及字符用兩個(gè)字節(jié)表示,前一個(gè)字節(jié)為區(qū)碼,后一字節(jié)為位碼,各用兩位16進(jìn)制數(shù)字表示。這就是所謂的漢字區(qū)位碼。漢字區(qū)位碼并不等于漢字國標(biāo)碼,兩者間的關(guān)系可用以下公式表示: 國標(biāo)碼區(qū)位碼(化成16進(jìn)制)2020H64漢字機(jī)內(nèi)碼 漢字機(jī)內(nèi)碼簡稱漢字內(nèi)碼,是在計(jì)算機(jī)外設(shè)和信息系統(tǒng)內(nèi)部存儲(chǔ)、處理、傳輸漢字用的代碼。 在西文計(jì)算機(jī)中,無交換碼和內(nèi)碼之分,一般以ASCII碼作為內(nèi)碼。英文字符

27、的機(jī)內(nèi)碼是7位ASCII碼,最高位為0 (即D70)。65 漢字內(nèi)碼用兩個(gè)字節(jié)表示。為了區(qū)分漢字字符與英文字符,將漢字國標(biāo)碼的每個(gè)字節(jié)的最高位置1,作為漢字機(jī)內(nèi)碼。 如,“啊”的國標(biāo)碼為0011 0000 0010 0001(3021H),機(jī)內(nèi)碼為1011 0000 1010 0001(B0A1H) 漢字機(jī)內(nèi)碼漢字國標(biāo)碼8080H66漢字字形碼 漢字用點(diǎn)陣方式表示其外形,這個(gè)點(diǎn)陣稱為漢字字模,也稱為漢字字形碼。 不管漢字的筆劃多少,都可在同樣的方塊中書寫,把方塊分割為許多小方塊,組成一個(gè)點(diǎn)陣,每個(gè)小方塊就是點(diǎn)陣中的一個(gè)點(diǎn),即二進(jìn)制的一個(gè)位。每個(gè)點(diǎn)由0和1表示“白”和“黑”兩種顏色。用這樣的點(diǎn)陣

28、就可輸出漢字。67 不同的輸入編碼輸入到計(jì)算機(jī)中,都統(tǒng)一使用國標(biāo)碼。各種代碼間的邏輯關(guān)系如圖所示。圖2-5 各種代碼間的邏輯關(guān)系68【例2-5】漢字“春”的區(qū)位碼為20-26,計(jì)算其國標(biāo)碼和機(jī)內(nèi)碼。 區(qū)位碼: 第1字節(jié) 第2字節(jié) 十進(jìn)制 20 26 十六進(jìn)制 14H 1AH 20H 20H 國標(biāo)碼: 34H 3AH 80H 80H 機(jī)內(nèi)碼: B4H BAH69一、布爾代數(shù) 布爾代數(shù)是英國數(shù)學(xué)家喬治布爾(George Boole)發(fā)明的,布爾也是數(shù)理邏輯的創(chuàng)始人。近幾十年來,布爾代數(shù)在自動(dòng)化技術(shù)、電子計(jì)算機(jī)的邏輯設(shè)計(jì)等工程技術(shù)領(lǐng)域中有重要的應(yīng)用。2布爾代數(shù)和常見邏輯電路70布爾代數(shù)是以命題為對(duì)象

29、,包含三種基本邏輯操作(與,或,非)的完整的代數(shù)學(xué),它可以對(duì)命題進(jìn)行運(yùn)算?;镜倪\(yùn)算符有+,和。 二元運(yùn)算+ 稱為布爾加法,布爾和,布爾并等; 二元運(yùn)算稱為布爾乘法,布爾積,布爾交等; 一元運(yùn)算稱為布爾補(bǔ),有時(shí)使用“ ”表示。 71運(yùn)算的基本依據(jù)是下面的基本公式和規(guī)則:交換律:ABBA ABBA結(jié)合律:A(BC)(AB)C A(BC)(AB)C分配律:A(BC)(AB)(AC) A(BC)ABAC72吸收律:第二吸收律:反演律(又稱摩根定律):包含律:重疊律:73互補(bǔ)律:AA1 AA00-1律: 0AA 1AA 0A0 1A1 反演律即摩根定律,常用于復(fù)雜邏輯函數(shù)的化簡。74二、基本邏輯運(yùn)算和

30、邏輯門電路 邏輯運(yùn)算主要包括與、或、非、異或等。邏輯變量只有兩個(gè):邏輯0和邏輯1。 邏輯運(yùn)算只是按位進(jìn)行運(yùn)算,沒有進(jìn)位和借位關(guān)系,邏輯變量也沒有符號(hào)問題。751、基本邏輯運(yùn)算和邏輯門電路邏輯與(AND) 邏輯與也叫邏輯乘,其結(jié)果叫邏輯積。 運(yùn)算規(guī)則:邏輯與運(yùn)算的規(guī)則是按位相與,當(dāng)兩位邏輯變量都為邏輯1時(shí),邏輯積才為1,否則邏輯積為0。 邏輯與的運(yùn)算符號(hào)是:“”或者“”。表示邏輯與運(yùn)算的圓點(diǎn)也可以省略。76 若用Y表示邏輯積,A和B分別表示兩個(gè)邏輯變量時(shí),其表達(dá)式為: 兩個(gè)邏輯變量A、B及其邏輯積Y的關(guān)系的真值表如表2-3所示。例如ABY=AB000010100111和邏輯與運(yùn)算對(duì)應(yīng)的邏輯電路是

31、“與門”。表2-3 邏輯與的真值表77邏輯或(OR) 邏輯或也叫邏輯加,其結(jié)果叫邏輯和。 運(yùn)算的規(guī)則也是按位運(yùn)算,兩位邏輯變量中只要有任何一個(gè)為邏輯1時(shí),邏輯或的結(jié)果就為1,否則邏輯或的結(jié)果為0。 邏輯或的運(yùn)算符號(hào)是:“+”或者“”。78ABY=A+B000011101111表2-4 邏輯或的真值表若用Y表示邏輯和,A和B分別表示兩個(gè)邏輯變量時(shí),其表達(dá)式為: 兩個(gè)邏輯變量A、B及其邏輯和Y的關(guān)系的真值表如表2-4所示。例如,和邏輯或運(yùn)算對(duì)應(yīng)的邏輯電路是“或門”79邏輯非(NOT) 邏輯非也叫邏輯反 運(yùn)算規(guī)則:將一個(gè)變量按位求反的運(yùn)算。 表達(dá)式為: 對(duì)于任一位邏輯數(shù)據(jù), 邏輯非運(yùn)算的真值表 如表

32、2-5所示。表2-5 邏輯非的真值表80例如,若A=01100011,則,Y=A=10011100和邏輯非對(duì)應(yīng)的邏輯電路是“非門”。上述邏輯運(yùn)算中,“非”運(yùn)算的級(jí)別最高;“與”運(yùn)算次之;“或”運(yùn)算最低。812、組合邏輯電路與非門: 或非門: 異或門:異或運(yùn)算規(guī)則:兩變量相同為0,不同為1。它可進(jìn)行兩邏輯變量不相等的邏輯測(cè)試。 82邏輯異或的真值表如表2-6所示。例如,設(shè)A=10110110,B=00110101即Y=AB =10000011ABY=AB000011101110表2-6 邏輯或的真值表 83同或門三態(tài)門 在各種數(shù)字電路中,有些電路引腳的輸出狀態(tài)除了高、低電平即1、0之外,還有第三

33、種狀態(tài),即高阻狀態(tài),這種狀態(tài)叫做浮空,也叫做高阻、掛起等。具有高阻態(tài)輸出的門電路稱為三態(tài)門,常用于構(gòu)成總線接收器和發(fā)送器。YAB=ABAB 84高阻狀態(tài)是門電路輸出端的上拉、下拉兩個(gè)晶體管在控制端的作用下都處于截止?fàn)顟B(tài),而截止?fàn)顟B(tài)所呈現(xiàn)的阻抗很高。當(dāng)輸出端呈高阻狀態(tài)時(shí),輸出端不輸出任何邏輯電平,就像是開路一樣。每條線上不能同時(shí)有兩個(gè)信號(hào)是輸出狀態(tài),所以當(dāng)幾個(gè)芯片的輸出端連在一起的時(shí)候,如其中一個(gè)是輸出狀態(tài)時(shí),其他芯片的輸出端不能同時(shí)也是輸出狀態(tài),此時(shí)其他芯片既不能輸出1,也不能輸出0,就像是斷開電路一樣,這就是高阻狀態(tài),一般用符號(hào)Z來表示。85三、常用組合邏輯電路1、 鎖存器鎖存: 把信號(hào)暫存

34、以維持某種電平狀態(tài)。74LS373:具有三態(tài)緩沖輸出的8D鎖存器,當(dāng)?shù)刂肪€和數(shù)據(jù)線復(fù)用的時(shí)候,在單片機(jī)應(yīng)用系統(tǒng)中常被用作地址鎖存器。8674LS373的內(nèi)部邏輯電路圖如圖2-7所示圖2-7 74LS373內(nèi)部邏輯電路圖 8774LS373引腳圖如圖2-8所示。D0D7 為數(shù)據(jù)輸入端OC為輸出允許控制端(三態(tài),低電平有效);G為鎖存允許端(也稱為LE端);Q0Q7為輸出端。圖2-8 74LS373引腳圖882、數(shù)據(jù)選擇器在數(shù)字電路中,常常需要把多個(gè)通道的信號(hào)傳送到公共數(shù)據(jù)線上,完成這一功能的邏輯電路稱為數(shù)據(jù)選擇器。數(shù)據(jù)選擇器又稱多路選擇器或多路開關(guān),是以“與或”門或“與或非”門為主體的電路,其功

35、能是在通道選擇信號(hào)的作用下,從多個(gè)數(shù)據(jù)輸入通路中選擇某一個(gè)通道的數(shù)據(jù)作為該選擇器的輸出。數(shù)據(jù)選擇器的原理圖如圖2-9所示。89 S E 通道選擇 使能輸入數(shù)據(jù)輸入2n選一數(shù)據(jù)選擇器數(shù)據(jù)輸出YI0I1I2n-1I0I1I2n-1輸入信號(hào)數(shù)據(jù)輸出Y通道選擇信號(hào)(a)示意圖(b)邏輯原理圖圖2-9 數(shù)據(jù)選擇器原理圖90常見的8選1數(shù)據(jù)選擇器有74151、74251;16選1數(shù)據(jù)選擇器有74150,也可以用兩片74151連接起來構(gòu)成。具體的使用方法,可從互聯(lián)網(wǎng)上搜索并下載數(shù)據(jù)手冊(cè)查閱。913、譯碼器計(jì)算機(jī)的數(shù)據(jù)總線是一組公共信號(hào)線,各個(gè)芯片分時(shí)使用數(shù)據(jù)總線來傳遞各自不同的信號(hào)。從硬件的角度來看,各個(gè)芯

36、片的數(shù)據(jù)線都是對(duì)應(yīng)引腳并聯(lián)在一起的,那么數(shù)據(jù)是怎樣區(qū)分其流向的呢? 92計(jì)算機(jī)的三總線包括數(shù)據(jù)總線、地址總線和控制總線。當(dāng)計(jì)算機(jī)向一個(gè)芯片送出一個(gè)數(shù)據(jù)時(shí),還要通過地址總線送出與這個(gè)芯片對(duì)應(yīng)地址碼和相應(yīng)的控制信號(hào),這個(gè)地址碼是由硬件電路的連接確定的。計(jì)算機(jī)通過地址總線和地址譯碼器找到確定的芯片,再由控制信號(hào)配合,完成對(duì)應(yīng)的數(shù)據(jù)傳送。93譯碼器電路的功能 把一組輸入代碼的狀態(tài)組合翻譯成相應(yīng)的控制電位,若輸入信號(hào)有n個(gè),其輸出最多可以有2n個(gè)。正常輸出時(shí),2n個(gè)輸出中僅有一個(gè)輸出為低電平 (或高電平),其他2n1個(gè) 輸出均為高電平(或低電平)。74138就是常用的譯碼器電路芯片。9474138是具有

37、3個(gè)輸入、8個(gè)輸出的集成譯碼器,就是通常所說的三八譯碼器。3位二進(jìn)制數(shù)字可以有8種不同的組合,或者說,3位二進(jìn)制地址對(duì)應(yīng)23=8個(gè)不同的地址。74138譯碼器的作用就是將輸入的三位地址狀態(tài)轉(zhuǎn)換為8個(gè)不同的輸出之一,分別控制8個(gè)不同的電路的芯片。其中73LS138芯片是TTL電平的,74HC138是CMOS電平的。9574LS138譯碼器芯片的引腳圖和邏輯符號(hào)圖如圖2-10所示。 圖2-10 74LS138引腳圖和邏輯符號(hào)圖(a) 74LS138引腳圖 (b) 74LS138邏輯符號(hào)圖96表2-9 74LS138真值表 74LS138的真值表如表2-9所示。97一個(gè)正確的讀寫操作需要三總線都有信

38、號(hào),缺一不可,且時(shí)間上先后順序配合得當(dāng)。各個(gè)信號(hào)在時(shí)間上的配合順序稱為時(shí)序。一般的接口芯片都有一個(gè)片選端/CS,有的芯片標(biāo)為/CE,即芯片選擇或芯片使能的意思。標(biāo)示符上面的橫線表示低電平有效,就是說該芯片在片選信號(hào)為低電平的時(shí)候才能進(jìn)行讀寫操作。若片選端無效,即使這個(gè)芯片的引腳上有數(shù)據(jù)信號(hào),控制端也有讀寫控制信號(hào),對(duì)芯片也不能進(jìn)行數(shù)據(jù)的讀寫操作。98下面舉例說明地址譯碼器的使用74138與微控制器的簡單連接如圖2-11所示圖2-11 譯碼器與微控制器的連接99由圖2-9可知,數(shù)據(jù)線、讀寫控制信號(hào)線分別送到8個(gè)接口電路的相應(yīng)管腳上。但是每個(gè)接口芯片的片選信號(hào)/CS接到了74138不同的輸出端。7

39、4138的地址輸入端接微控制器的地址總線。根據(jù)74138的特性可知,當(dāng)3位地址為000時(shí),74138的輸出只有 (有效), 均為高電平(無效)。所以,此時(shí)只有接口芯片0被選中,外設(shè)0可以進(jìn)行接下來的讀寫操作,其他芯片未被選中,所以不會(huì)進(jìn)行讀寫操作。100盡管數(shù)據(jù)線和控制線都同時(shí)接到了每個(gè)芯片對(duì)應(yīng)的管腳上,但是片選信號(hào)無效的芯片沒有對(duì)應(yīng)的操作,只有片選信號(hào)端有效的芯片才會(huì)有操作。由此可見,接口0、接口1、接口7這8個(gè)接口的地址編碼分別為000、001、010、011111。選擇不同的地址,就可以對(duì)不同的芯片進(jìn)行操作,就是各個(gè)外設(shè)分時(shí)使用總線,也就完成了對(duì)不同的外設(shè)進(jìn)行讀寫操作了。101一、常用單

40、位及術(shù)語1、位(bit) 計(jì)算機(jī)所能表示的最小的數(shù)字單位,即,二進(jìn)制數(shù)的位。每位只有兩種狀態(tài)0、1。2、字節(jié)(Byte) 8位(bit)為一個(gè)字節(jié),是內(nèi)存的基本單位,常用B表示。3微型計(jì)算機(jī)的常用技術(shù)術(shù)語和技術(shù)1023、字(word) 16位二進(jìn)制數(shù)稱為一個(gè)字,一個(gè)字等于兩個(gè)字節(jié)。 4、字長 字長即字的長度,是一次可以并行處理的數(shù)據(jù)的位數(shù)即數(shù)據(jù)線的條數(shù)。常與CPU內(nèi)部的寄存器、運(yùn)算裝置、總線寬度一致。常用微型計(jì)算機(jī)字長有8位、16位和32位。1035、數(shù)量單位K 千 Kilo 的符號(hào),1K=1024, 如1KB表示1024個(gè)字節(jié) M 兆 Million 的符號(hào), 1M=1K1KG 吉 Giga

41、 的符號(hào), 1G=1K1MT 太 Tera 的符號(hào), 1T=1M1M1046、MIPS(Million Instructions Per Second) MIPS為單字長定點(diǎn)指令平均執(zhí)行速度Million Instructions Per Second的縮寫,即每秒處理百萬條機(jī)器語言指令數(shù)。這是衡量CPU速度的一個(gè)指標(biāo)。7、地址 地址是微型計(jì)算機(jī)存儲(chǔ)單元的編號(hào),通常8bit為一個(gè)單元,每個(gè)單元有獨(dú)立的編號(hào)。 存儲(chǔ)器地址的最大編號(hào)(容量)有限,由地址線的條數(shù)決定。如:16條地址線的容量為64KB(0000HFFFFH);20條地址線的容量1MB(00000HFFFFFH)。1058、總線 CPU

42、是微型計(jì)算機(jī)的核心。微型計(jì)算機(jī)利用三總線將CPU與系統(tǒng)的其他部件如存儲(chǔ)器、 I/O接口等聯(lián)系起來的??偩€是具有同類性質(zhì)的一組信號(hào)線。 三總線分別是地址總線AB(Address Bus)、數(shù)據(jù)總線DB(Data Bus)和控制總線CB(Control Bus)1069、訪問 CPU對(duì)寄存器、存儲(chǔ)器或I/O接口電路的操作通常分為兩類:把數(shù)據(jù)存入寄存器、存儲(chǔ)器或I/O接口電路的操作稱為“寫入”或?qū)懖僮鳎话褦?shù)據(jù)從寄存器、存儲(chǔ)器或I/O接口電路取到CPU的操作稱為“讀出”或讀操作。 這兩種操作過程通常統(tǒng)稱為“訪問”。10710、機(jī)器指令 機(jī)器指令是由二進(jìn)制代碼組成,可以直接由微處理器進(jìn)行譯碼、執(zhí)行。一條

43、機(jī)器指令應(yīng)包含要求微處理器所要完成的操作,以及參與該操作的數(shù)據(jù)或該數(shù)據(jù)所在的地址,有時(shí)還要有操作結(jié)果的存放地址信息,這些都是以二進(jìn)制數(shù)字的形式表示的,當(dāng)然,也有某些特殊指令不需要數(shù)據(jù)或地址。10811、匯編指令 雖然微處理器能夠而且只能夠識(shí)別二進(jìn)制數(shù),但是人們卻很難適應(yīng)這種用二進(jìn)制數(shù)字序列的指令形式來編程。 例如,一條兩字節(jié)的單片機(jī)指令如下: 01110100 00110000 這就是用二進(jìn)制數(shù)表示的可以直接由微處理器進(jìn)行譯碼、執(zhí)行的機(jī)器指令。109指令的含義是:將一個(gè)8位二進(jìn)制數(shù)據(jù)30H送到CPU內(nèi)部的寄存器A中人們?cè)诰幊虝r(shí)使用的是比較容易看出其操作含義的、用英文縮寫形式表示的指令 例如上面

44、的指令可寫成: MOV A, #30H 這種形式的指令叫做匯編指令,這種編程語言稱為匯編語言。 不同廠家的CPU配備有不同格式的匯編語言指令系統(tǒng),互不兼容,用匯編語言編寫的程序叫做匯編語言源程序。11012、指令系統(tǒng) 指令系統(tǒng)是一臺(tái)計(jì)算機(jī)所能識(shí)別的全部指令的集合。13、匯編與反匯編匯編:匯編語言源程序翻譯成與之相對(duì)應(yīng)的用二進(jìn)制數(shù)表示的機(jī)器語言,才能被微處理器所識(shí)別和執(zhí)行,這種翻譯叫做匯編。111 每一條匯編語句都可以匯編成對(duì)應(yīng)的機(jī)器語言,雖然可以用人工匯編,但是人工匯編太麻煩,且容易出錯(cuò),人們就編寫了專門的匯編程序來完成這項(xiàng)工作,用匯編程序進(jìn)行匯編就會(huì)容易、快速、準(zhǔn)確,還能把語法不正確的語句找

45、出來,利于用戶的程序編寫和調(diào)試。反匯編:將用二進(jìn)制數(shù)表示的機(jī)器語言形式的程序翻譯成匯編語言形式的源程序的過程叫做反匯編。11214、高級(jí)語言匯編指令雖然較二進(jìn)制機(jī)器指令容易閱讀和編寫,但還是不如高級(jí)語言更接近英語自然語言。解決方法是用高級(jí)語言編程,再用某種特殊程序翻譯成機(jī)器語言。具體地說,針對(duì)某個(gè)用戶系統(tǒng)用高級(jí)語言編寫的用戶程序翻譯成某個(gè)具體的微處理器的機(jī)器語言程序(這種過程叫做編譯)的軟件,叫做編譯器?,F(xiàn)在市面上有各種C編譯器,能把C語言轉(zhuǎn)換成某個(gè)具體的微處理器的機(jī)器語言。這種編譯器比較適宜于對(duì)匯編語言不熟悉的用戶使用,其缺點(diǎn)是不可避免地會(huì)出現(xiàn)編譯后的機(jī)器程序冗長、不夠簡練,導(dǎo)致程序運(yùn)行時(shí)間

46、長、速度低等問題。113另外,用匯編語言編程能更有利于硬件電路與程序的結(jié)合設(shè)計(jì)與調(diào)試。當(dāng)然,如果用戶并不在乎程序的長短和運(yùn)行速度的快慢時(shí),并且擁有對(duì)應(yīng)的編譯軟件的條件下,采用由C語言編寫,經(jīng)編譯程序來進(jìn)行用戶系統(tǒng)的設(shè)計(jì)和開發(fā),也不失為一種好方法。114二、常見技術(shù)1、馮諾依曼結(jié)構(gòu)和哈佛結(jié)構(gòu)馮諾依曼結(jié)構(gòu) 1964年,馮諾依曼簡化了計(jì)算機(jī)的結(jié)構(gòu),提出了“存儲(chǔ)程序”的思想,大大提高了計(jì)算機(jī)的速度。115 在馮諾依曼結(jié)構(gòu)中,計(jì)算機(jī)系統(tǒng)由一個(gè)中央處理單元(CPU)和一個(gè)存儲(chǔ)器組成,數(shù)據(jù)和指令都存儲(chǔ)在存儲(chǔ)器中,CPU可以根據(jù)所給的地址對(duì)存儲(chǔ)器進(jìn)行讀或?qū)?。程序指令和?shù)據(jù)的寬度相同。 Intel 8086、A

47、RM7、MIPS處理器等是馮諾依曼結(jié)構(gòu)的典型代表。 116馮諾依曼結(jié)構(gòu)的構(gòu)成示意圖如圖2-12所示。圖2-12 馮諾依曼結(jié)構(gòu)的構(gòu)成示意圖117 其中,PC的全稱是Program Counter,是程序計(jì)數(shù)器的意思?!按鎯?chǔ)程序”思想可以簡化概括為3點(diǎn):計(jì)算機(jī)包括運(yùn)算器、控制器、存儲(chǔ)器、輸入/輸出設(shè)備。計(jì)算機(jī)內(nèi)部應(yīng)采用二進(jìn)制來表示指令和數(shù)據(jù)。將編寫好的程序和數(shù)據(jù)保存到存儲(chǔ)器,然后計(jì)算機(jī)自動(dòng)地逐條取出指令和數(shù)據(jù)進(jìn)行分析、處理和執(zhí)行。118哈佛體系結(jié)構(gòu) 在哈佛體系結(jié)構(gòu)中,數(shù)據(jù)和程序使用各自獨(dú)立的存儲(chǔ)器。程序計(jì)數(shù)器PC只指向程序存儲(chǔ)器而不指向數(shù)據(jù)存儲(chǔ)器,這樣做的后果是很難在哈佛體系結(jié)構(gòu)的計(jì)算機(jī)上編寫出一個(gè)自修改的程序(有時(shí)稱為在應(yīng)用可編程,In Application Programming,IAP) 119哈佛體系結(jié)構(gòu)也具有以下優(yōu)點(diǎn): 獨(dú)立的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器為數(shù)字信號(hào)處理提供了較高的性能。指令和數(shù)據(jù)可以有不同的數(shù)據(jù)寬度,具有較高的效率。如飛思卡爾公司的MC68系列、Zilog公司的Z8系列、ARM 9、ARM10系列等。120哈佛體系結(jié)構(gòu)的示意圖如圖2-13所示。圖2-13 哈佛結(jié)構(gòu)的構(gòu)成示意圖1212、高速緩沖存儲(chǔ)器Cache 為了解決微處理器運(yùn)行速度快,存儲(chǔ)器運(yùn)行速度慢的矛盾,在兩者之間加一級(jí)高速緩沖器Cache。 Cache采用與制作CPU相同的半導(dǎo)體工藝,速度與CP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論