版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機原理,第一部分 計算機原理,1.1 計算機概述 1.1.1 計算機的出現(xiàn) 1.1.2 馮.諾依曼原理 1.1.3 計算機的分類 1.1.4 計算機的組成 1.1.5 指令系統(tǒng)與程序1.2 數(shù)據(jù)及編碼 1.2.1 數(shù)制與數(shù)的表示 1.2.2 軟件技術(shù)中的數(shù)制 1.2.3 二進制數(shù)的運算 1.2.4 計算機中數(shù)的表示 1.2.5 計算機數(shù)據(jù)編碼,1.3 計算機硬件
2、 1.3.1 硬件系統(tǒng)概述 1.3.2 中央處理單元 1.3.3 主存儲器 1.3.4 高速緩沖存儲器 1.3.5 輔存儲器 1.3.6 人機交互設(shè)備 1.3.7 子系統(tǒng)的內(nèi)部連接 1.3.8 程序執(zhí)行過程,1.4 計算機軟件 1.4.1 軟件的定義 1.4.2 軟件與硬件的關(guān)系 1.4.3 軟件的種類 1.4.4 軟件的生產(chǎn)習(xí) 題 1,1.1 計算機概述,計算機的
3、出現(xiàn),世界上第一臺純電子的計算機或許是Atanasoff-Berry機器,由約翰·安塔納索夫(John Atanasoff)和他的助手克里夫德·柏利(Clifford Berry)于1937年~1941年在美國愛荷華州立大學(xué)建造。另外一臺是稱為Colossus(巨人)的機器由湯米·福勞爾斯(Tommy Flowers)指導(dǎo)在英國建造,該機器在第二次世界大戰(zhàn)中用來破譯德國人的密碼。實際上在此期間,全世界共有1
4、0余臺這樣的機器,由于高度保密長期不為人知。以致于人們一直把稍后(1946年2月14日)建造的(當(dāng)然也更加通用和快速)計算機埃尼阿克(ENIAC, Electronic Numerical Integrator and Calculator, 電子數(shù)字積分器和計算器)作為世界上第一臺電子計算機。它是由約翰·莫奇利(John Manchly)和他的學(xué)生J.普雷斯佩爾·艾克特(J. Presper Eckert)在美國賓
5、夕法尼亞大學(xué)摩爾電子工程學(xué)校建造的。,ENIAC,馮·諾依曼 原理,馮·諾依曼在參與ENIAC的建造過程中,認(rèn)識到了當(dāng)時計算機結(jié)構(gòu)上的不足,對計算機的體系結(jié)構(gòu)進行了研究,提出了今天我們稱為馮·諾依曼原理的三條思想: (1)計算機的結(jié)構(gòu)應(yīng)由存儲器、算術(shù)邏輯單元、控制單元和輸入/輸出單元構(gòu)成。存儲器是計算機用來存儲的部件;算術(shù)邏輯單元是進行計算和邏輯操作的地方;控制單元用來對存儲器、算術(shù)邏輯單元、輸
6、入/輸出設(shè)備等子系統(tǒng)的操作進行控制;輸入子系統(tǒng)負(fù)責(zé)從計算機外部接受輸入數(shù)據(jù)和計算程序,而輸出子系統(tǒng)負(fù)責(zé)將計算機的處理結(jié)果輸出到計算機的外部。,馮·諾依曼(1903-1957),,(2)計算機的計算程序必須存儲在其存儲器中。 (3)計算機中的指令是一條接著一條順序執(zhí)行的。也就是說,控制器一次從存儲器取出一條指令,接著解釋它、執(zhí)行它。然后,依順序或者程序要求(例如跳轉(zhuǎn))讀取下一條指令。 依
7、照上述原理建造的計算機稱為馮氏體系結(jié)構(gòu)的計算機。從此以后,絕大部分計算機,包括我們今天使用的計算機,都是基于馮·諾依曼原理的。,計算機的分類,,計算機的組成,我們考查使用算盤計算一個四則運算的過程。設(shè)有下面的算式: 162×156+161÷23-120×15 我們需要有算盤作為運算的工具;其次要有筆和紙,用來記錄算式、中間結(jié)果和最
8、后的計算結(jié)果;運算過程需要有一個會打算盤的人來控制:人首先把要計算的問題和數(shù)據(jù)記錄下來,然后第一步先算出162×156,把計算的中間結(jié)果記在紙上,再計算161÷23,把它和上一次的結(jié)果相加,再記錄在紙上,然后計算120×15,再把它從上一次的結(jié)果中減去,就得到了最后的結(jié)果。,,如果用一臺計算機完成上面的工作,顯然該計算機也需要有相當(dāng)于算盤用來進行計算的部件,我們稱之為運算器;其次,該機器還要有起到紙和筆相同
9、作用,能夠記住算式、中間結(jié)果以及最終結(jié)果的部件,我們稱之為存儲器;再次,要有起到和打算盤的人相似作用的部件,它控制整個計算過程,我們稱之為控制器。除了上面三個部分,該機器還要有可以輸入算式或計算過程的裝置,我們稱之為輸入設(shè)備;還要有將最終計算結(jié)果告訴我們的裝置,我們稱之為輸出設(shè)備。,,這里的運算器,實際上進行的是算術(shù)和邏輯運算,因此也可以稱為算術(shù)邏輯單元。于是,我們得到了與馮·諾依曼原理第一條相同的計算機組成模型。如圖1-2所
10、示。,,,至于馮·諾依曼原理的第二條,在今天看起來似乎是顯而易見的。但早期的計算機只是將數(shù)據(jù)存儲在存儲器中,而程序需要在計算機的外部通過開關(guān)板的設(shè)置和連線的改變來編排。這種方式操作十分不便,效率極低,容易引起錯誤。因此限制了計算機的使用。這是馮·諾依曼要將存儲程序作為一條重要的原理提出的原因。 馮·諾依曼原理的第三條說:計算機必須一步一步依次執(zhí)行程序的每一步,這一般來說是最自然
11、、最容易實現(xiàn)的。但今天已經(jīng)有不遵從此原理的計算機,這已經(jīng)超出了本課程的范圍。,,可以看出,計算機除了必須包括運算器(算術(shù)邏輯單元)、控制器、存儲器以及輸入?輸出設(shè)備等物理器件外,還需要有保存在存儲器中的數(shù)據(jù)和程序才能工作。我們把組成計算機的物理器件,稱為計算機的硬件。而計算機的數(shù)據(jù)和程序,稱為計算機的軟件。,指令系統(tǒng)與程序,計算機通常有以下五類指令: 數(shù)據(jù)傳送指令:用來將數(shù)據(jù)從計算機的一個存儲單元傳 送到另一個存儲單元
12、; 算術(shù)運算指令:用來進行加、減、乘、除等算術(shù)運算; 邏輯運算指令:用來進行與、或、非等邏輯運算。關(guān)于這些運算的定義見下一節(jié); I/O指令:完成計算機的數(shù)據(jù)輸入和輸出操作; 控制指令:用來控制程序的執(zhí)行流程。,,指令通常分成操作碼和操作數(shù)兩大部分。操作碼表示計算機執(zhí)行什么操作;操作數(shù)是參加操作的數(shù)本身或者它在存儲器中的位置。存儲器中的位置用術(shù)語說就是地址(Address)。
13、 使用計算機解決問題時,必須把問題的解法編成一條條指令,然后讓計算機依次執(zhí)行。為了能讓計算機正確識別,這些指令必須是所用計算機的指令系統(tǒng)中具有的指令。這些解決問題的一系列指令合在一起,稱為程序。,,為了能讓計算機自動執(zhí)行程序,就必須把它預(yù)先存放在存儲器的某個區(qū)域。程序通常是順序執(zhí)行的,所以程序中的指令也是一條一條順序存放的。計算機在執(zhí)行時,要把這些指令一條條取出來加以執(zhí)行。因此需要有一個器件能夠跟蹤指令在內(nèi)存中
14、的地址,這種器件叫程序計數(shù)器PC(Program Counter)。在程序開始執(zhí)行時,給PC賦以程序中第一條指令所在的地址,然后每取出一條指令PC中的內(nèi)容自動更新以指向下一條指令的地址,如此才可保證指令的順序執(zhí)行。,1.2 計算機中的數(shù)與數(shù)據(jù)編碼,數(shù)制與數(shù)的表示,從小學(xué)起我們就知道,如果要表示我們雙手的手指個數(shù),用數(shù)字10即可。這里10由1和0兩個阿拉伯?dāng)?shù)字符號構(gòu)成。由于1處在從右邊開始的第二位,1代表了拾。我們對這種表示方法已經(jīng)習(xí)以為
15、常了,以至于忽略了一個明顯的事實:盡管數(shù)的多少是客觀的,但我們表示數(shù)的形式、方法實際上是主觀的。例如,如果我們規(guī)定處在第二位的1代表8,那么,就要用12表示我們的手指個數(shù)。這里,主觀規(guī)定的表示數(shù)的方法,或者說體制,就是數(shù)制。一個數(shù)制的核心,主要是對該數(shù)制下數(shù)的每一位所代表的多少進行規(guī)定。,,我們現(xiàn)在常用的數(shù)制是拾(十)進制,從拾(十)進制的規(guī)則,我們可以推論出數(shù)制的一般規(guī)律。例如:十進制數(shù)245.24,代表二百四十五點二四,可以表示為:
16、 245.24= 2×100+4×10+5×1+2×0.10+4×0.01 = 2×102+4×101+5×100+2×10-1+4×10-2 這就是說,處在小數(shù)點左邊第三位的2代表2×102;小數(shù)點左邊第一位的5代表5×100;小數(shù)點右邊第二位的4
17、代表4×10-2…… 這里,102、100和10-2稱為十進制位的權(quán)。一個數(shù)的值,就是該數(shù)每一位的數(shù)碼與其權(quán)的乘積的和。,,我們不妨將小數(shù)點左邊第一位定義為第0位,右邊第一位定義為-1位,然后依次類推。則十進制數(shù)第n位的權(quán)為10n。這里n是整數(shù)(可正可負(fù)),如下表:,,將上面關(guān)于十進制的規(guī)律一般化,我們可以得出,一個q進制數(shù),其第n位的權(quán)為qn。而表示這種進制的數(shù)需要q個符號,代表從0到q-1的數(shù)字。舉例來說,5進制數(shù)第n位的
18、權(quán)為5n,表示5進制數(shù)需要0、1、2、3、4五個數(shù)字符號;2進制數(shù)第n位的權(quán)為2n,表示2進制數(shù)需要0、1兩個數(shù)字符號。,,根據(jù)上面的推論,假設(shè)一個有m+1位整數(shù)、n位小數(shù)的q進制數(shù),其m整數(shù)位的數(shù)字是km,m-1整數(shù)位的數(shù)字是km-1,依此類推,第0整數(shù)位的數(shù)字為k0,小數(shù)點后第一位數(shù)字是k -1,小數(shù)點后第二位的數(shù)字是k -2,依此類推,小數(shù)點后第n位的數(shù)字是k-n,則一般化后得該q進制數(shù)的十進制值V為: V=
19、km×qm+km-1×qm-1+…+k0×q0 +k -1×q-1+ k -2×q-2+…+k –n ×q-n,,可以得出,表示一個客觀的數(shù),使用任何一種數(shù)制(主觀方法)都是可行的。不同的數(shù)制,其表示數(shù)的大小、精度是沒有分別的。不同的只是,表示相同大小和精度的數(shù),所需要的位數(shù)不同。 另外,我們也不難想象,二進制數(shù)是最低的進制,它只需要代表0和
20、1的兩個符號表示。從這個角度看,沒有比二進制更簡單的數(shù)制了。,軟件技術(shù)中的數(shù)制,電子計算機表示數(shù)的方法只能是通過其內(nèi)部的電子器件(就像算盤的珠子)的不同狀態(tài)組合來實現(xiàn)。由于二進制數(shù)只需要兩個符號就可以表示,這顯然最便于用電子器件實現(xiàn)。例如,一個電磁繼電器就有開和關(guān)兩種狀態(tài),這正好可以表示二進制數(shù)的0和1。因此,計算機中的數(shù),全部采用二進制。,,由于我們?nèi)祟愐呀?jīng)習(xí)慣了采用十進制數(shù)進行記數(shù)和思考,計算機的二進制數(shù)在需要與人交流時要進行轉(zhuǎn)換。
21、一種情況是將人所習(xí)慣的十進制數(shù)輸入到計算機時要轉(zhuǎn)換為二進制數(shù);另一種情況是,計算機計算出二進制數(shù)結(jié)果后要轉(zhuǎn)換為人能理解的十進制數(shù)。,,二進制數(shù)的缺點是表示一個相同大小和精度的數(shù),它需要的位數(shù)很多。因此轉(zhuǎn)換起來很不方便。為了便于二進制數(shù)和十進制數(shù)的轉(zhuǎn)換,也為了在書寫時更加簡便易讀,二進制數(shù)經(jīng)常要轉(zhuǎn)換成8進制數(shù)和16進制數(shù)。因此,在軟件技術(shù)中我們經(jīng)常使用的數(shù)制有2進制、8進制、10進制和16進制。,,16進制的數(shù)需要表示0到15的16個符號
22、。使用阿拉伯?dāng)?shù)字0~9后,還差6 個,于是我們采用英文字母A、B、C、D、E和F分別表示10到15的數(shù)字。如下表所示。這樣,一個16進制數(shù)可能寫成23EF.AB。,,在某些混合使用不同數(shù)制的場合,我們需要有一個標(biāo)識數(shù)的數(shù)制的方法。例如,數(shù)值100如果不加標(biāo)識,我們就不能確定它究竟是2進制數(shù)、8進制數(shù)、10進制數(shù),還是16進制數(shù)。標(biāo)識數(shù)的數(shù)制的方法,在不同的場合有不同的具體要求,我們需要隨時了解并遵守。一般當(dāng)我們在進行不同數(shù)制的數(shù)的運算或
23、轉(zhuǎn)換時,常采用圓括號加下標(biāo)的方式標(biāo)明一個數(shù)的數(shù)制。例如:(100)2表示一個二進制數(shù);(100)8為8進制數(shù);(100)10是10進制數(shù);(100)16表示一個16進制數(shù)。一般,10進制數(shù)是缺省的數(shù)制,所以有時候省略對10進制數(shù)的標(biāo)注。,課堂練習(xí),下列數(shù)書寫正確嗎(口答): (1) (110)2 (2) (012)2 (3) (110)8 (4) (1028)8 (5) (03
24、7)16 (6) (A12.3G5)16,將其他數(shù)制的數(shù)轉(zhuǎn)換為十進制數(shù),使用前面的公式可以將任何一種數(shù)制的數(shù)轉(zhuǎn)換為十進制數(shù)。例如: (100)2=1×22+0×21+0×20=4; (100)8=1×82+0×81+0×80=64; (100)16=1×162+0×161+0
25、15;160=256; 前面所列舉的16進制數(shù)23EF.AB的10進制值為: (23EF.AB)16=2×163+3×162+14×161+ 15×160+10×16-1+11×16-2 =9199.66796875,課堂練習(xí),將下列數(shù)轉(zhuǎn)換成十進制數(shù): (1) (110)2 (2) (110)8 (3)
26、 (110)16 (4) (100110)2 (5) (100110)8 (6) (100110)16 (7) (7301)8 (8) (AB2.E3)16,將十進制數(shù)轉(zhuǎn)換為其他數(shù)制的數(shù),Word文檔:將十進制數(shù)轉(zhuǎn)換為其他數(shù)制的數(shù),二進制、八進制和十六進制數(shù)的轉(zhuǎn)換,Word文檔:二進制、八進制和十六進制數(shù)的轉(zhuǎn)換,二進制數(shù)的運算,計算機中數(shù)是用二進制方式表示的,那么運算
27、也是以二進制方式進行的。這一節(jié)我們對二進制整數(shù)的各種運算進行了解。由于本節(jié)的數(shù)大部份是二進制,所以對二進制數(shù)省略了數(shù)制標(biāo)注。,算術(shù)運算——加法,算術(shù)運算指加、減、乘和除。二進制數(shù)的算術(shù)運算完全類似于十進制。 二進制加法的運算規(guī)則為: 0+0=0; 0+1=1+0=1; 1+1=0 進位1 1+1+1=1
28、 進位1,,例: 計算二進制數(shù)10110101與1111的和。解:進位: 1 1 1 1 1 1被加數(shù): 1 0 1 1 0 1 0 1加數(shù): + 1 1 1 1和: 1 1 0 0 0 1 0 0 即:10110101+1111=11000100。,算術(shù)運算——減法,二進制減法的運算規(guī)則為:
29、 0-0=0; 1-1=0; 1-0=1; 0-1=1 借一位。,,例: 計算二進制數(shù)算式11101110-10111010的結(jié)果。解:借位:0 1 1 0 0 0 0借位后被減數(shù):1 0 0 0 1 1 1被減數(shù):1 1 1 0 1 1 1 0減數(shù): - 1 0 1 1 1 0 1 0差:0 0 1 1 0 1 0 0
30、 即:11101110-10111010=110100,算術(shù)運算——乘法,二進制乘法的運算規(guī)則為: 0×0=0; 0×1=1×0=0; 1×1=1。 左移運算:將所有位左移,末尾補0。 如:101左移一位:1010(相當(dāng)于乘以2) 101左移兩位:1010
31、0(相當(dāng)于乘以22),算術(shù)運算——除法,除法是乘法的逆運算。 右移運算:將所有位右移,末尾位移出。 如:101左移一位:10(相當(dāng)于除以2取整) 101左移兩位:1(相當(dāng)于除以22取整),邏輯運算,所謂邏輯運算是指對邏輯真(True)和假(False)所進行的運算。計算機中全部采用二進制數(shù),而二進制數(shù)的每一位要么是1,要么是0。如果我們用1表示邏輯狀態(tài)真,0
32、表示邏輯狀態(tài)假,則可以對二進制數(shù)的每一位按邏輯運算規(guī)則進行運算。,,邏輯運算按照需要參與的邏輯狀態(tài)個數(shù),分為一元運算和二元運算。一元運算只有一種,就是非(Not)運算。非運算改變參與運算的邏輯狀態(tài)。即如果狀態(tài)為真,則變?yōu)榧?;反之,如果狀態(tài)為假,則變?yōu)檎妗6\算有與(And)、或(Or)和異或(Xor)三種。參與與運算的兩個狀態(tài),只有都是真時,結(jié)果才為真;參與或運算的兩個狀態(tài),只要有一個為真,結(jié)果就為真;參與異或運算的兩個狀態(tài),只有狀
33、態(tài)不同時結(jié)果才為真。,,各種邏輯運算的規(guī)則可以通過其真值表描述:,,例: 對二進制數(shù)10011001作非運算。 解:對二進制數(shù)的邏輯運算,是按位進行的。即對二進制數(shù)逐位進行邏輯運算。則: NOT 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 即:10011001的邏輯非為1100110。,例: 試計算二進制數(shù)10011001和二進制數(shù)11011011與、或、異或
34、的結(jié)果。 解:與運算: 1 0 0 1 1 0 0 1 AND 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 或運算: 1 0 0 1 1 0 0 1 OR 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 異或運算:
35、 1 0 0 1 1 0 0 1 XOR 1 1 0 1 1 0 1 1 0 1 0 0 0 0 1 0,課堂練習(xí),計算: (1) 1110+1001101 (2) 10111+10111 (3) 11110-10101 (4) 1011001-10110 (5) 1011001的NOT運算結(jié)果 (6) 1111
36、0、10101的AND、OR、XOR運算結(jié)果,計算機中數(shù)的表示,我們已經(jīng)粗略地知道,計算機中的數(shù)是用二進制表示的。本節(jié)將介紹: 無符號的整數(shù) 帶符號整數(shù) 整數(shù)的偏移碼 浮點表示法,無符號整數(shù)的表示,無符號的整數(shù),就是從0到無窮大的自然數(shù)。表示這種數(shù)時不需要考慮符號,只需要將它轉(zhuǎn)化成二進制,然后存放在計算機中即可。 計算機存放二進制數(shù)時
37、,通常是有一定的長度限制的。這就是說,計算機保存的無符號數(shù)的范圍是有限的。根據(jù)數(shù)制的定義公式,一個 n 位無符號二進制數(shù)的最大值是:2n -1,帶符號整數(shù)的表示,計算機中參與計算的數(shù),顯然是有正有負(fù)的。帶符號的二進制整數(shù)存在多種表示方法,本小節(jié)主要介紹二進制數(shù)的原碼、反碼和補碼,以及他們的特點和應(yīng)用。,原碼,如果用二進制數(shù)的最高位表示其符號,用剩下的位表示其絕對值,這樣得到的二進制數(shù)的表示就是原碼。原碼表示中,正數(shù)的最高位為0,負(fù)數(shù)的最
38、高位為1。例如: 整數(shù) (+105)10,其8位二進制原碼為:0 1101001; 整數(shù) (-105)10,其8位二進制原碼為:1 1101001。 上面的表示中,二進制數(shù)01101001和11101001,稱為機器數(shù),而其實際所代表的值+105和-105,稱為該機器數(shù)的真值。,,原碼表示的優(yōu)點是簡單易懂,與真值的換算方便。但用原碼計算時,如果兩個異號數(shù)相加或者同號數(shù)相減,就
39、需要用到減法。在計算機設(shè)計中,要盡量將運算用加法和移位完成。因此,計算機中實際上沒有用原碼形式存儲帶符號的整數(shù)。但由于其簡單與直觀,在不涉及數(shù)字運算的應(yīng)用場合還是會用到。,反碼,正數(shù)的反碼與原碼相同。即最高位是符號位,用0表示正,其余位表示該數(shù)的值。例如: (+127)10的8位二進制反碼:01111111; (+31)10的8位二進制反碼:00011111。 負(fù)數(shù)的反碼通過
40、將其正數(shù)的反碼按位取反(包括符號位)得到。例如: (-127)10的8位二進制反碼:10000000; (-31)10的8位二進制反碼:11100000。 在反碼表示中,0有兩種表示方法。姑且稱為+0和-0: +0的8位二進制反碼: 00000000; -0的8位二進制反碼: 11111111。,,反碼的特點:(1)0有兩種表示方法;(
41、2)n位二進制反碼所能表示的數(shù)的范圍是-2 n-1-1~+2 n-1-1。如8位二進制反碼所能表示數(shù)的范圍是-127~+127;(3)當(dāng)反碼的符號位是0(即正數(shù))時,后面的位數(shù)為數(shù)值部分;當(dāng)符號位為1(即負(fù)數(shù)時),將后面的位數(shù)按位取反后才得到其數(shù)值。 由于反碼中0有兩種表示,會引起很大的混亂,另外,進行加減法也不方便。所以計算機中沒有使用反碼存儲帶符號的整數(shù)。反碼的意義在于它是下面要介紹的補碼的基礎(chǔ)
42、。另外,它的某些特性使其可用于諸如錯位檢測和糾錯的數(shù)據(jù)通信應(yīng)用程序中。,補碼,帶符號數(shù)的n位二進制補碼按如下的步驟得到: (1)首先將數(shù)的絕對值轉(zhuǎn)換為二進制數(shù),不管符號; (2)如果得到的二進制位數(shù)不足n位,在高位補0,直到總位數(shù)為n; (3)如果符號為正,就不需要作變動。如果符號為負(fù),則從最低位開始到首次出現(xiàn)的1為止,將所有的0和首次出現(xiàn)的1保持不變,其余位取反。,,例:求(+31
43、)10和( -31)10的8位二進制補碼。 解:31所對應(yīng)的二進制數(shù)為11111。 ( +31)10的8位二進制補碼只需在高位補3個0,即00011111。而( -31)10的補碼需要保持00011111最低位的1不變,其他位取反。即11100001。 例:求( +126)10和( -126)10的8位二進制補碼。 解: ( 126)10所對應(yīng)的二進制數(shù)為1111110。(
44、+126)10的8位二進制補碼只需在高位補1個0,即01111110。而 ( -126)10的補碼需要保持01111110最低位的0和第一個1不變,其他位取反。即10000010。,,特別地有: +0的補碼:00000000; -0的補碼:00000000。 這樣,在補碼表示中,0只有一種表示法,克服了在反碼中0有兩種表示的缺點。,,求一個補碼的十進
45、制真值的方法是: (1)如果最高位是0,則直接將此二進制數(shù)轉(zhuǎn)換為十進制數(shù),并在前面加上正號; (2)如果最高位是1,則將最低位連續(xù)的0和第一個出現(xiàn)的1保持不變,將其余位(包括符號位)按位取反,然后將得到的二進制數(shù)轉(zhuǎn)換為十進制數(shù),并在前面加負(fù)號。,,例:計算8位二進制補碼10000000的真值。 解:由于最高位為1,所以該數(shù)是負(fù)數(shù)。將該二進制數(shù)最低位連續(xù)的0和第一個出現(xiàn)的1保持
46、不變。這樣得到的二進制數(shù)還是10000000。將此數(shù)轉(zhuǎn)換成十進制數(shù)為128,然后在前面加負(fù)號,得到(-128)10。所以,8位二進制補碼10000000的真值是-128。 從該例子看出,8位二進制補碼所表示的數(shù)的范圍是 -128~+127。一般地,我們可以給出,一個n位二進制補碼所能表示的數(shù)的范圍是-2n-1~+(2n-1-1)。,,以上面列舉的補碼表示的數(shù)為例,我們考查用補碼進行加法運算的情況。首先
47、我們看31-127 = 31+(-127)。算式為:0 0 0 1 1 1 1 1+1 0 0 0 0 0 0 11 0 1 0 0 0 0 0 結(jié)果10100000也是一個補碼表示,其符號為負(fù),絕對值是保持最低位連續(xù)的0和第一個1不變,將其余位按位取反,最后得到01100000 =(96)10。所以結(jié)果為-96,與實際相符。,,總結(jié)上述內(nèi)容,補碼有以下特點: (1)0只有一種
48、表示,即所有位全為0; (2)n位二進制補碼表示數(shù)的范圍為-2n-1~+(2n-1-1) ; (3)通過用補碼表示帶符號的數(shù),可以用加法運算實現(xiàn)減法,有助于簡化計算機的設(shè)計。 由于上述特點,現(xiàn)在計算機中帶符號的數(shù),實際上都是采用補碼存儲的。二進制補碼是現(xiàn)在計算機中最重要、應(yīng)用最普遍的整數(shù)表示法。,帶符號整數(shù)表示法小結(jié),在上述各小節(jié)的介紹中,需要注意的一個共同點是,當(dāng)我們將一個帶符號整數(shù)轉(zhuǎn)換
49、為某種形式的二進制編碼時,編碼的長度是一個重要的參數(shù)。例如,同樣的一個整數(shù)5,編碼成4位二進制數(shù)和8位二進制數(shù)結(jié)果是不同的。在一般的數(shù)據(jù)表示中,整數(shù)部分最前面的0是沒有意義的,可以省略。但在作二進制數(shù)編碼時,如果轉(zhuǎn)換的二進制數(shù)位數(shù)不夠編碼長度,我們要用0來填充。下面的例子可以說明這點。 例:分別寫出(+5)10和(-5)10的4位、6位和8位二進制補碼。解:(+5)10和(-5)10不同位數(shù)的補碼見下表:,,另外一個要注意的
50、地方是,計算機中的機器數(shù)與真值之間的對應(yīng)關(guān)系,決定于機器數(shù)的編碼方式。即同樣一個機器數(shù),它所代表的無符號數(shù)、原碼、反碼和補碼的真值是不同的。換句話說,用不同的編碼規(guī)則去解讀同一機器數(shù),會得到不同的結(jié)果。 下表列出了所有8位機器數(shù)按不同的編碼去解讀所得的十進制數(shù)真值。,計算機數(shù)據(jù)編碼,上一節(jié)我們探討了計算機中數(shù)的表示形式。然而,今天的計算機并不單純用作計算。計算機實際要處理的數(shù)據(jù)還包括文字、圖片、聲音以及動畫等
51、。那么,這些數(shù)據(jù)形式在計算機中是如何表示的呢?答案是用二進制編碼。所謂編碼(Code),也可以叫代碼。二進制編碼就是用一系列的二進制數(shù)字代表某種數(shù)據(jù)。用這種觀點看,上一節(jié)的內(nèi)容實際上是關(guān)于計算機中數(shù)值的二進制編碼的。數(shù)值在計算機中的編碼由數(shù)值天然的大小決定。而文字、圖像等數(shù)據(jù)的編碼則需要人為的規(guī)定。,,采用二進制數(shù)字編碼表示數(shù)據(jù)的原因和我們在上一節(jié)中所述道理一樣。這就是數(shù)據(jù)在計算機中最終都是要用計算機物理器件的狀態(tài)組合來表示的,而二進制
52、數(shù)的物理表示最為簡便。表示非數(shù)值數(shù)據(jù)的二進制數(shù),并沒有數(shù)量意義(有時或許有序號意義),所以也可以把他們看成是一系列二進制位(bit)的排列模式,稱為位模式(bit pattern)。通常把長度為8的位模式稱為1個字節(jié)。它是我們度量位模式長度,有時甚至是處理數(shù)據(jù)的基本單位。 數(shù)據(jù)被編碼存入計算機并被處理后,當(dāng)需要從計算機中輸出時,要重新轉(zhuǎn)換為數(shù)據(jù)本來的形式。將原始形式的數(shù)據(jù)轉(zhuǎn)換成二進制編碼的過程稱為編碼(enco
53、de),而將二進制編碼轉(zhuǎn)換為原始形式的數(shù)據(jù)的過程稱為解碼(decode)。,文字的編碼 -ASCII編碼,1960年代初期,美國國會圖書館(Library of Congress, LC)制訂了英文字符集和交換碼,以作為美國圖書館界書目交換的共同標(biāo)準(zhǔn)。后來這個交換碼發(fā)展成為美國的國家標(biāo)準(zhǔn)ASCII(American Standard Code for Information Interchange,美國信息交換標(biāo)準(zhǔn)代碼),而且被國際標(biāo)準(zhǔn)
54、化組織(International Standard Organization, ISO)接受為國際標(biāo)準(zhǔn),標(biāo)準(zhǔn)號為ISO?646(其全名為7-bit coded character set for information interchange,信息交換用7位編碼字符集)。該編碼使用7位表示一個符號,總共可表示的符號為27=128種。,漢字編碼-GB?2312編碼,GB?2312碼是中國國家漢字信息交換碼,全稱《信息交換用漢字編碼字符集
55、——基本集》。由國家標(biāo)準(zhǔn)總局于1981年5月發(fā)布,通行于中國大陸和新加坡等地 。GB2312收錄簡化漢字及符號、字母、日文假名等共7445個圖形字符,其中漢字占6763個。GB2312將收錄的漢字分成兩級:第一級是常用漢字計3755個,第二級漢字是次常用漢字計3008個。GB2312中一個圖形字符采用兩個字節(jié)表示,每個字節(jié)采用七位編碼。習(xí)慣上稱第一個字節(jié)為高字節(jié),第二個字節(jié)為低字節(jié)。高字節(jié)和低字節(jié)的編碼范圍都是從(21)16到(7E)1
56、6。漢字編碼從(3021)16開始,結(jié)束于(777E)16。當(dāng)GB?2312編碼在計算機內(nèi)存儲時,為了與ASCII碼區(qū)分,編碼的高字節(jié)和低字節(jié)的最高位要置為1,這樣得到的代碼稱為“內(nèi)碼”。這樣,與GB?2312編碼對應(yīng)的內(nèi)碼是在原編碼的基礎(chǔ)上加(8080)16。該字符集是幾乎所有的中文系統(tǒng)和國際化的軟件都支持的中文字符集,這也是最基本的中文字符集。,1.3 計算機硬件,硬件系統(tǒng)概述,基于馮諾依曼原理的計算機,從硬件方面看是由運算器、控制
57、器、存儲器以及輸入?輸出設(shè)備組成的。運算器是用于加工、處理數(shù)據(jù)的部件,主要完成對數(shù)據(jù)的算術(shù)和邏輯運算。控制器是計算機的控制部件,它控制其他部件協(xié)調(diào)統(tǒng)一工作,并且還能完成對指令的分析和執(zhí)行。存儲器是計算機的記憶裝置,它的主要功能是存放程序和數(shù)據(jù)。輸入設(shè)備從計算機外部獲取數(shù)據(jù),而輸出設(shè)備將計算機處理的結(jié)果輸出到外部。上述五大部分之間是相互配合關(guān)聯(lián)的??刂破饕蚱渌考l(fā)送控制信號,以協(xié)調(diào)它們的工作;運算器要從輸入設(shè)備獲得數(shù)據(jù),與存儲器雙向交
58、換數(shù)據(jù),將計算結(jié)果傳給輸出設(shè)備;而控制器要從存儲器中獲得指令代碼數(shù)據(jù)。 中央處理單元、主存儲器、高速緩沖存儲器、輔存儲器以及其他輸入/輸出設(shè)備等,是構(gòu)成計算機系統(tǒng)的主要物理器件,也可看成是構(gòu)成計算機系統(tǒng)的子系統(tǒng)。下面我們對它們逐一簡介。,,,存儲器在現(xiàn)代計算機中,被分成多種層次。其中最主要的是內(nèi)存,也稱為主存,是計算機進行計算和數(shù)據(jù)處理的工作場所。程序在執(zhí)行時,程序代碼和相關(guān)數(shù)據(jù)都是存放在主存中的。而在CP
59、U內(nèi)部,有一些暫時存放數(shù)據(jù)的存儲單元,稱為寄存器,它與運算部件之間有緊密的聯(lián)系,有助于提高計算的速度。在CPU與主存之間,還有一種用來提高CPU對主存的讀寫速度的存儲器,稱為高速緩沖存儲器(Cache)。為了獲得高的性能,現(xiàn)在很多計算機將高速緩沖存儲也分為幾級。高速緩存現(xiàn)在一般直接集成在CPU上。在主存之外,還有用來在計算機斷電后持久保存程序和數(shù)據(jù)的大容量存儲設(shè)備,如磁盤、光盤等,稱為外存,或者輔存。輔存所起的作用與主存不同,它可讓計算
60、機從外部獲取數(shù)據(jù),也可將結(jié)果輸出給外部,所以既是輸入設(shè)備,也是輸出設(shè)備。上述存儲器從寄存器、高速緩存、主存到輔存,存儲容量是越來越大,而讀寫速度卻是越來越低。如圖3-2所示。,,,,中央處理單元,中央處理單元(CPU)是計算機的心臟。它有三個組成部分:算術(shù)邏輯單元(ALU)、控制器、寄存器組。,算術(shù)邏輯單元,CPU中的算術(shù)邏輯單元負(fù)責(zé)算術(shù)和邏輯運算。算術(shù)運算中最簡單的一元運算是增量(加1)和減量(減1)運算。最簡單的二元運算是加、減、乘
61、和除。邏輯運算中,包含一元邏輯運算非(Not),二元邏輯運算與、或和異或。不管是邏輯運算還是算術(shù)運算,都必須在控制器的管理下完成。例如,控制器要根據(jù)指令代碼從各種運算中選擇一種。,寄存器,寄存器是CPU用來臨時存放數(shù)據(jù)的獨立的高速存儲單元。CPU在計算時需要多個寄存器參與。多個寄存器組成寄存器組。寄存器組的每一個寄存器都有一個專門的名字或代號。常見的寄存器有以下幾種: (1)數(shù)據(jù)寄存器
62、 過去,計算機只有一個寄存器用來交替存儲輸入數(shù)據(jù)(直接來自內(nèi)存的輸入數(shù)據(jù))或結(jié)果?,F(xiàn)在,越來越多的復(fù)雜運算改由硬件設(shè)備實現(xiàn)(而不是使用軟件),因而需要一些寄存器來保存這些運算的中間結(jié)果。這就是在計算機CPU中需要大量的數(shù)據(jù)寄存器來提高運算速度的原因。在圖3-3中,我們只是示意性地畫出了3個通用數(shù)據(jù)寄存器,分別是R1、R2和Rn。,,(2)指令寄存器 現(xiàn)代計算機中不僅要存儲數(shù)據(jù),還要存儲相應(yīng)的程序。CPU
63、的主要職責(zé)是從內(nèi)存中逐條地讀取指令,并將取出的指令存儲在指令寄存器(圖3-3中的寄存器I)中,解釋并執(zhí)行指令。后面我們還會討論這個問題。 (3)程序計數(shù)器 CPU中另一個專用寄存器是程序計數(shù)器(圖3-3中的PC寄存器) 。程序計數(shù)器中保存當(dāng)前正在執(zhí)行的指令的內(nèi)存地址。當(dāng)前指令執(zhí)行完畢,計數(shù)器自動修改,指向下一條指令的地址。,控制器,CPU的第三個部分是控制器??刂破黝愃朴谌四X中控制身體各部
64、分運動的區(qū)域??刂剖峭ㄟ^電子線路的電平狀態(tài)(高電平或低電平)實現(xiàn)的。例如,假定一個簡單的ALU可以進行10種不同的運算。為了指定這些運算,控制單元需要通過4條線路連接到算術(shù)邏輯單元。四條線路每條都有高電平(斷開)和低電平(導(dǎo)通)兩種狀態(tài),組合起來可以表示16種不同的狀態(tài)(24)??梢允褂闷渲?0種表示算術(shù)和邏輯運算,而其他的6種作別的用途。如果用0表示線路的高電平,1表示線路的低電平,則線路的狀態(tài)編碼就是0000、0001、0010、…
65、、1111??梢远x0000(所有線路高電平,即全部斷開)表示不進行任何運算,0001表示加,0010表示減,等等。,主存儲器,主存儲器是計算機內(nèi)部的另一個主要子系統(tǒng)(如下頁圖)。它是存儲單元的集合。每一個存儲單元都有唯一的標(biāo)識號,稱為地址。數(shù)據(jù)以稱為字(Word)的二進制位組合傳入和傳出存儲器。也就是說,字是存儲器讀寫的基本單位。計算機一個存儲單元所能存放的數(shù)據(jù),剛好是該計算機的一個字。字的位數(shù)稱為字長。不同的計算機的字長可能是不同的
66、。如早期的微型計算機,字長一般是8位,后來,微機的字長逐步發(fā)展為16位、32位以及現(xiàn)在的64位。我們說某計算機是多少位的,就是指該計算機的字長是多少位。顯然,計算機的字越長,對存儲器的讀寫效率越高。但字長增加也成倍增加了計算機的復(fù)雜性和制造的難度。,,前面曾經(jīng)指出8位的二進制位模式稱為一個字節(jié)(Byte)。字節(jié)在計算機技術(shù)中是一個應(yīng)用非常普遍的度量單位。計算機的字長可以用字節(jié)表示,存儲容量的大小也是以字節(jié)為基本單位的。下表列出了常用的表
67、示存儲容量的單位。,地址空間,存儲器中的每個存儲單元,其大小等于該計算機的字長,都需要有一個唯一地址來識別。存儲器中所有可標(biāo)識的獨立地址集合,稱為地址空間。例如,一個64KB、字長為1字節(jié)的存儲器的地址空間為從0到65535。在計算機內(nèi)部,地址也是用二進制位模式表示的,所以上面的地址空間實際上是從(0000000000000000)2(地址0)到(1111111111111111)2(地址65535)。我們可以把他們看成無符號二進制整數(shù)
68、。通常,如果計算機有n個字(注意,不是字節(jié))的存儲單元,那就需要有l(wèi)og2n位的無符號二進制整數(shù)來標(biāo)識每一個存儲單元。 例: 一臺計算機有128MB內(nèi)存。該計算機字長為64位。需要多少位來尋址內(nèi)存中的任意一個字(word)? 解:內(nèi)存空間容量為128MB,即227B。字長64位即8(即23)字節(jié)。所以內(nèi)存空間共有224個單字的存儲單元。尋址任意一個單字需要的地址的位數(shù)是log2224,
69、即24位。,主存儲器的種類,在計算機中,通常有兩種類型的主存儲器。一種是隨機讀寫存儲器(Random Access Memory, RAM),一種是只讀存儲器(Read Only Memory, ROM)。,RAM,隨機存取存儲器(RAM)是計算機主存的主要組成部分。 RAM和ROM的主要區(qū)別在于,用戶可以讀寫RAM,即用戶可以在RAM中寫信息,之后可以方便地通過覆蓋來擦除原有信息。RAM的另一個特點是易失性。當(dāng)計算機斷電或者關(guān)掉計算機
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《認(rèn)識計算機》ppt課件
- 《計算機專業(yè)介紹》ppt課件
- 《計算機操作系統(tǒng)》ppt課件
- 《計算機硬件系統(tǒng)》ppt課件
- 專升本(計算機專業(yè)課件)計算機組成原理課件第七章
- 《常見計算機病毒》ppt課件
- 《計算機基礎(chǔ)知識》ppt課件
- 計算機原理答案
- 計算機維修原理
- 計算機輔助藥物設(shè)計ppt課件(1)
- 《計算機與信息技術(shù)》ppt課件
- 計算機原理電子教案
- 計算機課件
- 計算機模擬課件
- 計算機組成原理
- [教育]張晴計算機組成原理計算機組成原理實驗
- 專升本(計算機專業(yè)課件)計組課件計算機的發(fā)展
- 《計算機網(wǎng)絡(luò)協(xié)議與》ppt課件
- 計算機病毒ppt
- 計算機組成原理課程設(shè)計--基本模型計算機
評論
0/150
提交評論