第一章 基礎知識_第1頁
第一章 基礎知識_第2頁
第一章 基礎知識_第3頁
第一章 基礎知識_第4頁
第一章 基礎知識_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 概述程序設計語言是開發(fā)計算機各種軟件的工具,它經歷了由低級語言到匯編語言再到高級語言的的發(fā)展過程。其中,匯編語言是一種能夠充分利用計算機硬件特性的低級語言,它與計算機的結構有著非常緊密的聯(lián)系。雖然高級語言能夠實現(xiàn)絕大部分機器語言可以實現(xiàn)的功能,但匯編語言還是經常被用來改進計算機軟件和硬件控制系統(tǒng)的工作效率以及用于高級語言的程序調試,為計算機系統(tǒng)提供高速、高效的代碼,所以學習和掌握匯編語言程序設計的內部細節(jié)對于計算機的學習是非常有益的。1.1 匯編語言概述自從第一臺計算機ENIAC于1946年誕生以來,計算機的發(fā)展經歷了電子管、晶體管、集成電路和超大規(guī)模集成電路四代,目前正朝著智能化的第

2、五代計算機發(fā)展。計算機的應用已滲透到社會和生活的各個領域,人們與計算機進行交流的“語言”也經歷了機器語言、匯編語言、高級語言的三個重要階段的發(fā)展,正朝著“自然語言”的方向發(fā)展。1.1.1 機器語言機器語言是一種計算機能直接識別和執(zhí)行的用二進制代碼表示的機器指令的集合。它是計算機的設計者通過計算機的硬件結構賦予計算機的操作功能。機器語言具有直接執(zhí)行和速度快等特點。不同型號的計算機其機器語言是不相通的,按照某種型號計算機的機器指令系統(tǒng)編制的程序,不能在另一種型號的計算機上執(zhí)行。用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。手工編寫程序時,程序員得自己處理每條指令和每一

3、數(shù)據(jù)的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態(tài)。因此,使用機器語言編寫程序是一件十分繁瑣的工作,花費的時間往往是程序實際運行時間的幾十倍或幾百倍。而且編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯?,F(xiàn)在,除了計算機生產廠家的專業(yè)人員外,絕大多數(shù)程序員已經不再去學習機器語言了。1.1.2 匯編語言匯編語言是用助記符表示指令功能的計算機語言。用匯編語言編寫的程序被稱為匯編語言源程序,匯編語言源程序無法被計算機直接執(zhí)行,還必須用專門的系統(tǒng)程序將它翻譯成機器代碼,計算機才能識別并執(zhí)行,而這一翻譯過程被稱為匯編。與機器語言相比,匯編語言具有以下的幾個特點:第一,它使

4、用符號來表示操作碼和地址碼,這種符號便于記憶,稱之為記憶碼。第二,匯編過程中自動處理存儲單元的分配,毋需程序員做存儲分配工作。第三,程序員可以直接書寫十進制數(shù)。匯編語言實現(xiàn)了對機器語言的抽象。首先表現(xiàn)在將機器語言的每一條指令符號化,指令碼代之以記憶符號,地址碼代之以符號地址,使得其含義顯現(xiàn)在符號上而不再隱藏在編碼中,可讓人望文生義。其次表現(xiàn)在匯編語言擺脫了具體計算機的限制,可在不同指令集的計算機上運行,只要該計算機配上匯編程序即可。1.1.3 高級語言雖然匯編語言用符號替代機器指令,從一定程度上簡化了程序的編寫、閱讀和調試,但是沒有經過匯編語言訓練的程序設計人員,編寫匯編語言程序還是十分困難的

5、,不利于計算機的推廣與應用。于是,人們嘗試設計一種脫離具體的計算機,面向過程、更符合人類思維和更容易被人們所理解和學習的語言,從而演化出高級語言。20世紀50年代末,第一個用于科學計算的高級語言FORTRAN語言誕生了,隨后各種高級語言如雨后春筍般涌現(xiàn)出來。目前,世界上使用的高級語言多達數(shù)百種,其中具有代表性的高級語言有C語言、C+、Visual Basic、Delphi等常用高級語言。由于計算機只能識別由0、1代碼組成的機器語言程序,所以各種高級語言的源程序也必須經過相應的編譯程序或解釋程序翻譯成目標程序,才能被計算機所識別并執(zhí)行。1.1.4 三種語言的特點比較機器語言是由0、1代碼組成的面

6、向機器的語言。機器語言程序的編寫、閱讀和調試都十分困難,但它是計算機可直接識別并執(zhí)行的語言程序,內存占用少,執(zhí)行的速度快。匯編語言是一種用符號替代機器指令的低級語言。與機器語言相比,匯編語言易于理解和記憶,匯編語言程序也易于編寫、閱讀與調試。由于其語句與機器指令語句一一對應,所以具有內存占用少、執(zhí)行速度快等特點,并且能直接控制計算機的硬件設備,充分發(fā)揮計算機的硬件功能。從本質上講,匯編語言仍然是面向機器的語言,這就要求程序設計者要熟悉計算機的內部結構,掌握計算機的指令系統(tǒng)以及對應的偽指令,這就給學習匯編語言帶來了困難。另外,匯編語言的指令語句與程序設計者所要完成的任務有很大的差別。由于匯編語言

7、的指令語句只能實現(xiàn)簡單的操作,如寄存器數(shù)據(jù)的移位、寄存器與內存之間數(shù)據(jù)的傳送、數(shù)據(jù)的算術邏輯運算等,遠非程序設計者所要完成的任務。例如,要做1+2的操作并將結果在屏幕上顯示出來,必須使用一系列匯編指令并進行DOS功能調用,而高級語言只需要一條指令即可完成該操作。高級語言是一種類似于自然語言和數(shù)學描述語言的程序設計語言。其主要特點是:面向過程、脫離具體的機器。高級語言易于編寫、閱讀和調試,且可移植性好。但是高級語言源程序必須經過編譯后才能翻譯成計算機可識別、執(zhí)行的目標程序,所以不能產生有效的機器語言代碼,致使其占用內存空間大,程序運行速度較慢。1.2 計算機中數(shù)據(jù)和字符的表示計算機只能識別0、1

8、代碼,進入計算機的任何信息都必須轉換成0、1代碼。本節(jié)說明計算機如何利用0、1代碼表示現(xiàn)實當中的各種數(shù)值、字符等內容。1.2.1 數(shù)制在匯編語言設計中,經常要用到的數(shù)制有二進制、十進制以及十六進制。1. 二進制計算機中為便于存儲及計算的物理實現(xiàn),采用二進制。二進制數(shù)的基數(shù)為0和1,各個數(shù)值的權為2i-1(i為數(shù)值所在位置,如小數(shù)點左邊第一位為個位,i=1,小數(shù)點右邊為0位,i=0),并且二進制遵循“逢二進一、退一當二”的運算規(guī)則。二進制數(shù)anan-1a1.b0b1 bm可表示為:an2(n-1)+an-12(n-2)+a12(1-1)+b02(0-1)+b12(-1-1)+bm2(-m-1)其

9、中,ai,bj非0即1。2. 十進制在人們的生活中,已經習慣使用十進制。十進制的基數(shù)有十個,即09十個數(shù),各個數(shù)值的權為10 i-1(i為數(shù)值所在位置),并且十進制遵循“逢十進一、退一當十”的運算規(guī)則。十進制數(shù)anan-1a1.b0b1 bm可表示為:an10(n-1)+an-110(n-2)+a110(1-1)+b010(0-1)+b110(-1-1)+bm10(-m-1)其中,ai,bj為09中任意的一個數(shù)。3. 十六進制數(shù)由于二進制數(shù)書寫較長、容易出錯,因此常用易于與二進制數(shù)轉換的十六進制數(shù)來描述二進制。十六進制數(shù)的基數(shù)有16個,即09、AF,各個數(shù)值的權為16i-1(i為數(shù)值所在位置)

10、,并且遵循“逢十六進一,退一當十六”的運算規(guī)則。十六進制數(shù)anan-1a1.b0b1 bm可表示為:an16(n-1)+an-116(n-2)+a116(1-1)+b016(0-1)+b116(-1-1)+bm16(-m-1)其中,ai,bj為09或AF中的任意一個數(shù)。注意:匯編語言中通常用B或b結尾表示該數(shù)據(jù)為二進制數(shù);用字母H或h結尾表示該數(shù)據(jù)為十六進制數(shù);用字母D或d結尾表示該數(shù)據(jù)為十進制數(shù)。如果數(shù)據(jù)結尾沒有跟任何字符,則默認該數(shù)據(jù)為十進制數(shù)。如10101100B、1223D、1100、0ABCDH,分別為二進制、十進制、十進制和十六進制數(shù)。其中,十六進制數(shù)如果數(shù)值的開頭為AF,則必須在

11、前面加0,否則匯編程序認為該數(shù)值為一個標號,從而會導致在編譯過程中出錯。4. 不同進制數(shù)之間的轉換不同進制之間的轉換主要有:二進制或十六進制轉換為十進制、十進制轉換成二進制、二進制轉換為十六進制以及十六進制轉換為二進制。二進制或十六進制轉換為十進制口訣:將各個數(shù)值乘以其相應的權,最后相加所得到的和即為等值的十進制數(shù)。十進制轉二進制口訣:十進制整數(shù)部分不斷除以2,取余,最后從下往上;小數(shù)部分不斷乘以2,取整,最后從上往下;小數(shù)點位置不變。二進制轉十六進制口訣:從小數(shù)點向兩邊分,每四位一組,左邊不夠四位在前面補0,右邊不夠四位在后面補0,最后將每組二進制數(shù)轉換為相應的十六進制數(shù)值即可,小數(shù)點位置不

12、變。十六進制轉二進制口訣:每位十六進制數(shù)值轉換為四位相應的二進制數(shù),小數(shù)點位置不變。說明:十進制數(shù)轉換為十六進制數(shù)可以先將十進制數(shù)轉換為二進制數(shù),再將二進制數(shù)轉換為十六進制數(shù)。例1-1 將126.25D轉換為二進制。解:根據(jù)十進制轉換為二進制數(shù)口訣,將整數(shù)部分126不斷除2,取余數(shù);小數(shù)部分不斷乘2,取整。運算過程如下:整數(shù)部分轉換結果為1111110B,小數(shù)部分轉換結果0.01B,所以126.25D=1111110.01B。例1-2 將0ABCD.3678H轉換為二進制。解:十六進制轉換成二進制只需要將十六進制的每個數(shù)值轉換為對應的4位二進制數(shù)值即可。轉換過程如下:不同進制之間的數(shù)值對應關系

13、如表1-1所示。表1-1 不同進制數(shù)值對應關系表十進制二進制十六進制BCD碼012345678910111213141500000001001000110100010101100111100010011010101111001101111011110123456789ABCDEF00000001001000110100010101100111100010011.2.2 計算機中的數(shù)據(jù)單位計算機中用到的信息單位主要有位、字節(jié)、字、雙字、千字節(jié)、兆字節(jié)和千兆字節(jié)等,它們一般用于表示計算機內存或外存的存儲容量。1. 位(bit)位是計算機中最小的信息單位,用于表示一位二進制數(shù)的兩種狀態(tài)“0”和“1”

14、。例如開關的“通”與“斷”,電平的“高”與“低”等狀態(tài),均可以方便地使用0/1代碼進行表示。2. 字節(jié)(byte)字節(jié)是計算機的基本存儲單位,一個字節(jié)為8位二進制數(shù),計算機中存儲單元的地址一般以字節(jié)為基本單位進行編址。3. 字(word)兩個字節(jié)稱為一個字,即16位二進制數(shù)組合成一個字。4. 雙字(double word)兩個字稱為一個雙字,即32位二進制數(shù)組合成一個雙字。說明:字和字長是有一定的區(qū)別。計算機中的字是一種信息單位,是不變的量,即兩個字節(jié)為一個字。而字長指的是CPU一次能夠處理的數(shù)據(jù)長度,是一種可變化的量。例如8086的字長為16位,80386的字長為32位,也就是說8086CP

15、U一次能夠處理的數(shù)據(jù)為16位,80386CPU一次處理的數(shù)據(jù)長度達到了32位,但是它們的字均為16位。隨著計算機技術的發(fā)展,處理信息量的增加以及存儲容量的加大,計算機中還采用了千字節(jié)(KB)、兆字節(jié)(MB)、千兆字節(jié)(GB)等單位。它們的關系是:1KB=1024B1MB=210KB=1048576B1GB=210MB=1073741824B1.2.3 編碼在計算機中,各種字符只能用若干位二進制碼的組合表示,這就稱為二進制編碼。由于字節(jié)為計算機的基本存儲單位,所以常用8個二進制位表達一個字符。1. BCD碼(Binary Coded Decimal)一位十進制數(shù)用四位二進制編碼來表示,這就是所謂

16、的“二進制編碼的十進制數(shù)”。常用的是8421BCD碼,它用4位二進制編碼的00001001分別來代表十進制的09這十個基數(shù),見表1-1。注意:BCD碼共有10個編碼,分別對應十進制的10個基數(shù)09,所以10101111這6個二進制編碼就不屬于BCD碼。BCD碼用于表示十進制數(shù)是比較直觀的,并且只要熟悉了BCD碼的10個編碼,可以很容易實現(xiàn)十進制數(shù)與BCD碼之間的轉換。例1-3 將十進制數(shù)7865.32轉換為BCD碼。解: 十進制轉換成BCD碼只需要根據(jù)表1-1將相應的十進制基數(shù)轉換成對應的BCD碼即可。轉換過程如下:2. ASCII碼(American Standard Code for In

17、formation Interchange)字母和各種字符也必須按特定的規(guī)則用二進制編碼才能在計算機中表示。編碼方式有多種,其中最常用的一種編碼是ASCII碼(美國標準信息交換碼),見表1-2。標準ASCII碼用七位二進制編碼,故可表示128個字符。微型機存儲單位為8位,表達ASCII碼時最高D7位為0;通信時,D7位作為奇偶校驗位。ASCII碼表中的前32個和最后1個編碼是不可顯示的控制字符,用于表示某種操作。例如:0DH表示回車CR(Carriage Return),控制光標時就是使光標回到本行首位;0AH表示換行LF(Line Feed),使光標進入下一行,但列的位置不變;另外07H表示

18、響鈴BEL(Bell)。表1-2 標準ASCII碼表ASCII碼字符ASCII碼字符ASCII碼字符ASCII碼字符00HNUL20H空格40H60H01HSOH21H!41HA61Ha02HSTX22H42HB62Hb03HETX23H#43HC63Hc04HEOT24H$44HD64Hd05HENQ25H%45HE65He06HACK26H&46HF66Hf07HBEL27H47HG67Hg08HBS28H(48HH68Hh09HHT29H )49HI69Hi0AHLF2AH*4AHJ6AHj0BHVT2BH+4BHK6BHk0CHFF2CH 4CHL6CHl0DHCR2DH-4DHM6D

19、Hm0EHSO2EH.4EHN6EHn0FHSI2FH/4FHO6FHo10HDLE30H050HP70Hp11HDC131H151HQ71Hq12HDC232H252HR72Hr13HDC333H353HS73Hs14HDC434H454HT74Ht15HNAK35H555HU75Hu16HSYN36H656HV76Hv17HETB37H757HW77Hw18HCAN38H858HX78Hx19HEM39H959HY79Hy1AHSUB3AH :5AHZ7AHz1BHESC3BH ;5BH7BH1CHFS3CH5EH7EH1FHUS3FH?5FH-7FHDelASCII碼表中,從20H以后的

20、94個編碼是可顯示和打印的字符,其中包括數(shù)值(09)、英文字母(AZ、az)及其它的標點符號等。從表1-2可以看出,數(shù)值09的ASCII碼為3039H,大寫字母AZ的ASCII碼為41H5AH,而小寫字母az則是從61H7AH。大小寫字母之間ASCII碼的差值為20H。如果要將大寫字母轉換為小寫字母,只需要在大寫字母的ASCII碼基礎上加上20H就可以了;反之,小寫字母轉換為大寫字母則在小寫字母的ASCII碼基礎上減20H即可。注意:ASCII碼中的20H表示空格符號,盡管它顯示空白,但也要占據(jù)一個字符的位置。下面給出控制字符的簡單含義。NUL (null):空字符SOH (start of

21、handing):標題開始STX (start of text):正文開始ETX (end of text):正文結束 EOT (end of transmission):傳輸結束ENQ (enquiry):請求ACK (acknowledge):收到通知BEL (bell):響鈴 BS (backspace):退格HT (horizontal tab):水平制表符LF (NL line feed, new line):換行鍵VT (vertical tab):垂直制表符FF (NP form feed, new page):換頁鍵CR (carriage return):回車鍵SO (shi

22、ft out):不用切換SI (shift in):啟用切換DLE (data link escape):數(shù)據(jù)鏈路轉義DC1 (device control 1):設備控制1DC2 (device control 2):設備控制2DC3 (device control 3):設備控制3DC4 (device control 4):設備控制4NAK (negative acknowledge):拒絕接收SYN (synchronous idle):同步空閑ETB (end of trans. block):傳輸塊結束CAN (cancel):取消EM (end of medium):介質中斷SU

23、B (substitute):替補ESC (escape):溢出FS (file separator):文件分割符GS (group separator):分組符RS (record separator):記錄分離符US (unit separator):單元分隔符另外,在PC機中往往還采用擴展的ASCII碼,主要表示各種制表用的符號等。擴展ASCII碼最高位D7為1,以與標準ASCII碼區(qū)別。1.2.4 有符號數(shù)的表示法1. 原碼為了在計算機中表示有符號數(shù),正號用0表示,負號用1表示,數(shù)值部分不變。計算機存儲時,用最高有效位表示符號,其他位表示數(shù)值的大小,這種表示方式就稱為原碼表示法。例1-

24、4 有符號數(shù)的原碼表示法。解:將數(shù)值轉換為相應的二進制數(shù),最高位表示符號。X=+105= 01101001B X原=0 1101001BX=-105=11101001B X原=1 1101001BX= +0 =00000000B X原=0 0000000BX= -0 = 10000000B X原=1 0000000B其中,在用8位表示時,最高位為符號位,后面7位表示數(shù)值大小;若用16位表示時,最高位為符號位,后面15位表示數(shù)值大小。原碼表示法的特點是簡便、直觀,人們可以非常方便地計算出其表示的數(shù)在十進制中究竟是多少,它的不足之處是0的表示有兩種,即+0和-0,這對計算機來說可不是件好事。比如兩

25、個原碼表示的數(shù)據(jù)相加,首先需要判斷兩數(shù)的符號位,以決定到底是做加法還是做減法,然后用它們的絕對值進行計算;還需要判斷計算結果的正負情況,最后在最高位上填上正確的符號。這種做法使數(shù)據(jù)之間的運算非常麻煩,所以人們又在計算機中采用了反碼和補碼。2. 反碼反碼是在原碼的基礎上,為簡化運算而發(fā)展出來的另一種表示帶符號二進制數(shù)的方法,具體表示方法是:(1)確定表示數(shù)據(jù)的二進制位數(shù),通常是8位、16位或32位;(2)正數(shù)的反碼與原碼相同,最高位用0表示,其余位為數(shù)值位;(3)負數(shù)的反碼則將最高位(符號位)置1,數(shù)值位在原碼的基礎上依次取反,即0變1,1變0。例1-5 有符號數(shù)的反碼表示法。解:首先將數(shù)據(jù)轉換

26、為原碼,如果符號位為0,則反碼與原碼相同,如果符號位為1,則對原碼數(shù)值部分取反。X=+105= 01101001B , X反=0 1101001BX=-105=11101001B , X反=1 0010110BX= +0=00000000B, X反=0 0000000BX=- 0= 10000000B, X反=1 1111111B3. 補碼補碼是在反碼的基礎上做了進一步改進,在解決了+0和-0的表示問題上,并且數(shù)據(jù)之間的運算也無需考慮符號的問題。具體表示方法是:(1)確定表示數(shù)據(jù)的二進制位數(shù),通常是8位、16位或32位;(2)正數(shù)的補碼與原碼表示方法相同;(3)負數(shù)的補碼則在反碼的基礎上,再在

27、最低有效位加1。例1-6有符號數(shù)的補碼表示法。解:在原碼的基礎上,對負數(shù)的數(shù)值部分取反后再加1。X=+105=01101001B, X補=0 1101001BX=- 105=01101001B, X補=1 0010111BX=+0=00000000B, X補=0 0000000BX=-0= 10000000B, X補=0 0000000B一般來說,n位補碼的表示數(shù)據(jù)范圍為:-2(n-1)N2(n-1)-1注意:負數(shù)的補碼表示法中,如果0越多,則該補碼表示的數(shù)值則越小,1越多,則該補碼表示的數(shù)值則越大。對于8位補碼表示法,最小的補碼為1000 0000B,即-128,最大的補碼為11111111

28、B,即-1。1.2.5 二進制數(shù)運算二進制運算分為算術運算和邏輯運算兩種。1. 算術運算二進制的算術運算類似于十進制,只不過逢二進一,退一當二。表1-3為二進制運算規(guī)則。表1-3 二進制運算規(guī)則加法運算減法運算乘法運算1+0=11+1=0(進位1)0+0=00+1=11-0=11-1=00-0=00-1=1(借位1)10=011=100=001=0例1-7 四位二進制的算術運算解:1011+0101=0000(進位為1)1011-0101=011010110101=001101112. 邏輯運算邏輯運算包括邏輯與(AND)、邏輯或(OR)、邏輯非(NOT)以及邏輯異或(XOR),其運算規(guī)則見表

29、1-4。表1-4 邏輯運算規(guī)則表邏輯與邏輯或邏輯非邏輯異或1 AND 0=01 AND 1=10 AND 1=00 AND 0=01 OR 0=11 OR 1=10 OR 1=10 OR 0=0NOT 1=0NOT 0=11 XOR 0=11 XOR 1=00 XOR1=10 XOR 0=0例1-8 四位二進制的邏輯運算1011 AND 0101=0001 1011 OR 0101=1111NOT 1011=01001011 XOR 0101=11101.3 Intel 系列CPU簡介CPU是Center Processing Unit(中央處理器)的縮寫,它是計算機中最重要的一個部分,由運算

30、器和控制器組成。如果把計算機比作人,那么CPU就是人的大腦。本節(jié)對Intel公司的80X86 CPU作一些簡介。1.3.1 4/8位微處理器1971年11月,Intel發(fā)布了自己的首款型號為“4004”的微處理器,這也是首次將一臺編程計算機所需的各種元素融合在一顆單獨的芯片上。從此,一個嶄新的微處理器時代開始了。4004 CPU如圖1-1所示。其片內集成了2250個晶體管,晶體管之間的距離為10微米,能夠處理4位數(shù)據(jù),每秒運算6萬次,運行的頻率為108KHz。但是4004只能稱為世界上第一款商用處理器,而不是世界上第一款微處理器。第一款微處理器是由美國軍方研制用于F-14雄貓戰(zhàn)機中,該微處理器

31、由6顆晶片組成,稱為中央戰(zhàn)機數(shù)據(jù)計算機CADC(Center Air Data Computer),它的構造比4004 CPU要簡單,并且速度只有9.15KHz。圖1-1 4004 CPU1972年4月,Intel公司又推出了8位微處理器8008,它由約3300個MOS晶體管構成。8008 CPU標準頻率為0.5MHz,雖然工作頻率并沒有高出4004很多,但是它采用的是8位架構,整體表現(xiàn)要高于4004許多。同時,8008也增加了對中斷系統(tǒng)和16K記憶體(ROM和RAM)的支持。1974年Intel公司又推出了為多種應用而設計的8位微處理器8080,它是Intel的第二代微處理器,也是第一個通用

32、處理器。它的功能相當強,足以作為微計算機的控制核心。它由6000多個晶體管構成,每秒能執(zhí)行約60萬次操作,尋址能力達到64KB。8080CPU的指令集包含了8008的指令集,從而獲得與8008指令集的兼容性,此外還增加了20多條指令,8080 CPU如圖1-2所示。圖1-2 8080 CPU1.3.2 16位微處理器1978年Intel公司推出了16位微處理器8086。有兩個關鍵的結構概念使微處理器定型且從8086開始施行,這兩個概念是存儲器分段以及指令譯碼表。Intel的80x86家族也由此開始。8086CPU最高主頻速度為8MHz,具有16位數(shù)據(jù)通道,內存尋址能力為1MB。8086的16位

33、指令系統(tǒng)成為后來被廣泛應用的80x86 系列CPU的基本指令集。由于當時的外設接口是8位,所以8086的16位外部數(shù)據(jù)總線無法直接與其接口,限制了8086的推廣。于是,1979年Intel推出了準16位微處理器8088,它與8086的區(qū)別是外部采用通用的8位總線,其他均沒有變化。1981年,美國IBM公司將8088 CPU用于其研制的PC機中,從而開創(chuàng)了全新的微機時代。也正是從8088開始,個人電腦(PC)的概念開始在全世界范圍內發(fā)展起來。從8088應用到IBM PC機上開始,個人電腦真正走進了人們的工作和生活之中。1982年,英特爾公司在8086的基礎上,研制出了80286微處理器,該微處理

34、器的最大主頻為20MHz,內、外部數(shù)據(jù)傳輸均為16位,使用24位內存儲器的尋址,內存尋址能力為16MB。80286可工作于兩種方式,一種叫實模式,另一種叫保護方式。在實模式下,微處理器可以訪問的內存總量限制在1M字節(jié);而在保護方式之下,80286可直接訪問16M字節(jié)的內存。此外,80286工作在保護方式時,可以起到保護操作系統(tǒng)的作用,使之不像實模式或8086等不受保護的微處理器那樣,在遇到異常應用時會使系統(tǒng)停機。80286在以下四個方面有顯著的改進:支持更大的內存;能夠模擬內存空間;能同時運行多個任務;大大提高處理速度。并且,80286的封裝是一種被稱為PGA的正方形包裝。PGA是源于PLCC

35、的便宜封裝,它有一塊內部和外部固體插腳,在這個封裝中,80286集成了大約130000個晶體管。上述8086/8088/80286的內部結構均為16位,而下面所要介紹的80386/80486/Pentium/ Pentium/ Pentium等都是32位的CPU。1.3.3 32位CPU1. Intel 803861985年英特爾公司已經成為了世界第一流的芯片公司,它決心全力開發(fā)新一代的32位核心的CPU。Intel給80386設計了三個技術要點:使用“類286”結構;開發(fā)80387協(xié)處理器增強浮點運算能力;開發(fā)高速緩存解決內存速度瓶頸。1985年10月,英特爾劃時代的產品80386DX正式發(fā)

36、布了,其內部包含27.5萬個晶體管,時鐘頻率為12.5MHz。80386DX的內部和外部數(shù)據(jù)總線是32位,地址總線也是32位,可以尋址4GB空間。它的運算模式除了具有實模式和保護模式以外,還增加了一種“虛擬86”的工作方式,可以通過同時模擬多個8086微處理器來提供多任務能力。 80386DX比80286擁有更多的指令,運行速度也更快。頻率為12.5MHz的80386每秒鐘可執(zhí)行6百萬條指令,比頻率為16MHz的80286快2.2倍。80386 CPU如圖1-3所示。圖1-3 80386 CPU2. Intel 80486 1989年,英特爾推出80486 CPU。它首次實破了100萬個晶體管

37、的界限,使用1微米的制造工藝,集成了120萬個晶體管。80486是將80486和數(shù)學協(xié)處理器80487以及一個8KB的高速緩存集成在一個芯片內。80486中集成的80487的數(shù)字運算速度是以前80387的兩倍,高速緩存縮短了微處理器與內存通信的等待時間。在設計80486 CPU指令系統(tǒng)中首次采用了RISC(精簡指令集)技術,該技術可以在一個時鐘周期內執(zhí)行一條指令。由于這些改進,80486 CPU的性能比80386 CPU性能提高了4倍。80486 CPU如圖1-4所示。圖1-4 80486 CPU3. Intel Pentium 1993年,英特爾公司生產的80586 CPU問世,為了擺脫48

38、6時代微處理器名稱混亂的困擾,英特爾公司把自己的新一代產品命名為Pentium(奔騰),以區(qū)別AMD和Cyrix公司的產品。Pentium是Intel首個放棄利用數(shù)字來命名的處理器產品,在微架構上取得突破,讓電腦更容易處理 “現(xiàn)實世界”的資料,例如語音、聲音以及相片影像。早期的奔騰75MHz120MHz使用0.5微米的制造工藝,后期120MHz頻率以上的奔騰則改用0.35微米工藝。Pentium CPU如圖1-5所示。 圖1-5 Pentium CPU4. Intel Pentium MMX 為了提高電腦在多媒體、3D圖形方面的應用能力,許多新指令集應運而生,其中最著名的三種便是英特爾的MMX

39、技術、SSE技術和AMD的3D NOW!技術。 MMX(MultiMedia Extensions,多媒體擴展指令集)是英特爾于1996年發(fā)明的一項多媒體指令增強技術,包括57條多媒體指令,這些指令可以一次處理多個數(shù)據(jù),MMX技術在軟件的配合下,就可以得到更好的性能。 多能奔騰(Pentium MMX)的正式名稱就是“帶有MMX技術的Pentium,是在1996年底發(fā)布的。從多能奔騰開始,英特爾就對其生產的CPU開始鎖倍頻了,但是MMX的CPU超外頻能力特別強,而且還可以通過提高核心電壓來超倍頻。多能奔騰在原Pentium的基礎上進行了重大的改進,增加了片內16KB數(shù)據(jù)緩存和16KB指令緩存,

40、4路寫緩存以及分支預測單元和返回堆棧技術。特別是新增加的57條MMX多媒體指令,使得多能奔騰即使在運行非MMX優(yōu)化的程序時,也比同主頻的Pentium CPU要快得多。這57條MMX指令專門用來處理音頻、視頻等數(shù)據(jù)。這些指令可以大大縮短CPU在處理多媒體數(shù)據(jù)時的等待時間,使CPU擁有更強大的數(shù)據(jù)處理能力。多能奔騰采用了雙電壓設計,其內核電壓為2.8V,系統(tǒng)I/O電壓仍為原來的3.3V。Intel Pentium MMX如圖1-6所示圖1-6 Intel Pentium MMX CPU5. Intel Pentium Pentium的中文名稱叫“奔騰二代”,它有Klamath、Deschutes

41、、Mendocino等幾種不同核心結構的系列產品,其中第一代采用Klamath核心,0.35微米工藝制造,內部集成750萬個晶體管,核心工作電壓為2.8V。 Pentium微處理器采用了雙重獨立總線結構,即其中一條總線連通二級緩存,另一條負責主要內存。Pentium使用了一種脫離芯片的外部高速L2 Cache,容量為512KB,并以CPU主頻的一半速度運行。作為一種補償,英特爾將Pentium的L1 Cache從16KB增至32KB。另外,英特爾在Pentium中采用了具有專利權保護的Slot 1接口標準和SECC(單邊接觸盒)封裝技術。Intel Pentium CPU如圖1-7所示。圖1-

42、7 Intel PentiumCPU6. Intel Pentium 1999年英特爾公司發(fā)布了采用Katmai核心的新一代微處理器Pentium。該微處理器除采用0.25微米工藝制造,內部集成950萬個晶體管。除了繼續(xù)采用Slot 1架構之外,它還具有以下新特點:系統(tǒng)總線頻率為100MHz;采用第六代CPU核心P6微架構,針對32位應用程序進行優(yōu)化,雙重獨立總線;一級緩存為32KB(16KB指令緩存加16KB數(shù)據(jù)緩存),二級緩存為512KB,以CPU核心速度的一半運行;采用SECC2封裝形式;新增加了能夠增強音頻、視頻和3D圖形效果的SSE(Streaming SIMD Extensions

43、,數(shù)據(jù)流單指令多數(shù)據(jù)擴展)指令集,共70條新指令。Intel Pentium CPU如圖1-8所示。圖1-8 Intel Pentium CPU7. Intel Pentium 42000年英特爾正式發(fā)布了下一代處理器奔騰4。這不僅僅是一款新產品的發(fā)布,它還標志著一個處理器新時代的開始。最早的Pentium 4使用的是SOCKET 423接口,后來轉變?yōu)镾OCKET 478接口,接下來又過渡到現(xiàn)今主流的LGA775接口。SOCKET 423接口的Pentium 4 CPU如圖1-9所示。圖1-9 423接口的Pentium 4 CPUPentium 4處理器最主要的特點就是拋棄了Intel沿用

44、了多年的P6結構,采用了新的Net Burst 架構。Net Burst結構具有不少明顯的優(yōu)點:20段的超級流水線、高效的亂序執(zhí)行功能、2倍速的ALU、新型的片上緩存、SSE2指令擴展集和400MHz的前端總線等等。奔騰4處理器經過了幾年的核心變遷,性能也獲得了顯著提升。最早的Pentium 4以Willamette為核心,采用0.18微米鋁導線工藝,配合低溫半導體介質(Low-Kdiclcctric)技術制成,是一顆具有超級深層次管線化架構的處理器。但是以Willamette核心的CPU發(fā)熱量很大、頻率提升困難,而且它的二級緩存只有256KB,超深的處理流水線使得總體性能并不理想。因此,英特

45、爾很快就開發(fā)出了Northwood核心的產品,以滿足用戶需求。Northwood核心的Pentium 4采用0.13微米工藝制造,相比Willamette內核的處理器,其主頻有了很大飛躍,二級緩存也從256K翻番到512KB,核心面積131平方毫米,可搭配512KB或2MB二級緩存,外頻400MHz、533MHz或800MHz,支持SSE2指令集,集成5500萬個晶體管,使用銅來連接晶體管。Prescott核心是Pentium 4的第三個核心,生產工藝進一步升級為90納米,可搭配512KB、1MB、2MB二級緩存,外頻533MHz或800MHz,增加了SSE3指令集支持,集成1.25億個晶體管

46、,核心面積112平方毫米,使用銅來連接晶體管。1.3.4 CPU發(fā)展趨勢自從1971年英特爾公司推出Intel 4004微處理器芯片以來,過去的四十年來CPU的發(fā)展一直遵循著摩爾定律的發(fā)展規(guī)律,即每過18個月其性能就會提高一倍,而價格將降低一半。然而,自Intel公司在2004年宣布P4之后將不再設法提高其奔騰系列微處理器的速度, CPU頻率的發(fā)展似乎停滯不前。特別是標志性的P4 4GHz CPU芯片的研制計劃取消,幾乎暗示著“摩爾定律神話”的終結,也預示著一個嶄新時代的來臨。 提升CPU頻率遇到的最大困難就是如何解決CPU芯片“發(fā)熱”問題。當CPU的主頻達到幾千兆赫茲時,芯片所產生的熱量足以使水熱到沸騰,所以僅僅提升頻率不再是提高CPU性能唯一的方式。為了進一步使得處理器的計算性能得以穩(wěn)步提高,設計人員提出了雙核心和多核心處理器的發(fā)展構架以及新型材料的應用。1. “雙核心”處理器技術“雙核心”技術顧名思義就是在一顆CPU中真正集成兩個物理運行核心,并且每個核心都使用自己獨立的高速緩存,因此在

溫馨提示

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

評論

0/150

提交評論