




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章微型計(jì)算機(jī)基礎(chǔ)1.1計(jì)算機(jī)中數(shù)的表示和運(yùn)算1.1.1計(jì)算機(jī)中的數(shù)制及轉(zhuǎn)換在微型計(jì)算機(jī)中,常見和常使用的數(shù)制¨十進(jìn)制¨二進(jìn)制¨八進(jìn)制¨十六進(jìn)制等(會(huì)轉(zhuǎn)換)。1.十進(jìn)制十進(jìn)制計(jì)數(shù)特征如下:¨使用10個(gè)不同的數(shù)碼符號(hào)0,1,2,3,4,5,6,7,8,9¨基數(shù)為10¨每一個(gè)數(shù)碼符號(hào)根據(jù)它在數(shù)中所處的位置(即數(shù)位),按逢十進(jìn)一決定其實(shí)際數(shù)值。任意一個(gè)十進(jìn)制正數(shù)D,可以寫成如下形式:(D)10=Dn-l×10n-1+Dn-2×10n-2+…+Dl×101+D0×100+D—l×10-1+D-2×10-2+··+D-n×10-n2.二進(jìn)制在二進(jìn)制計(jì)數(shù)制中,基數(shù)是2,計(jì)數(shù)的原則是“逢2進(jìn)1”。特征如下:¨使用兩個(gè)不同的數(shù)碼符號(hào)0和l¨基數(shù)為2¨每一個(gè)數(shù)碼符號(hào)根據(jù)它在數(shù)中所處的位置(即數(shù)位),按逢二進(jìn)一決定其實(shí)際數(shù)值。任意一個(gè)二進(jìn)制正數(shù)B,可以寫成如下形式:(B)2=Bn—l×2n-1+Bn—2×2n-2+…+Bl×21+B0×20+B—l×2-1+B-2×1-2+··+B-n×1-n十進(jìn)制TO二進(jìn)制把十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)通常采用的方法是“除以2取余數(shù)”。把十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)所采用的規(guī)則是“乘2取整”。在計(jì)算機(jī)中,數(shù)的存儲(chǔ)、運(yùn)算、傳輸都使用二進(jìn)制。3.八進(jìn)制在八進(jìn)制計(jì)數(shù)制中,基數(shù)是8,計(jì)數(shù)的原則是“逢8進(jìn)1”。特征如下:¨使用8個(gè)不同的數(shù)碼符號(hào)0,1,2,3,4,5,6,7¨基數(shù)為8¨每一個(gè)數(shù)碼符號(hào)根據(jù)它在數(shù)中所處的位置(即數(shù)位),按逢八進(jìn)一來決定其實(shí)際數(shù)值。任意一個(gè)八進(jìn)制正數(shù)S,可表示為:(S)8=Sn—l×8n-1+Sn—2×8n-2+··+S1×81+S0×80+S—l×8–1+··+S-m×8-m
轉(zhuǎn)換:將十進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制整數(shù)的方法是“除以8取余數(shù)”。將八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法是:把八進(jìn)制數(shù)中的每一位數(shù)都用相應(yīng)的三位二進(jìn)制數(shù)來代替。[例1-3]將十進(jìn)制數(shù)59轉(zhuǎn)換成八進(jìn)制數(shù)[例1-4]將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成八進(jìn)制小數(shù)4。十六進(jìn)制在16進(jìn)制計(jì)數(shù)制中,基數(shù)是16,計(jì)數(shù)的原則是“逢16進(jìn)1”。特征如下:¨使用16個(gè)不同的數(shù)碼符號(hào),它們是0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)¨基數(shù)為16¨每一個(gè)數(shù)碼符號(hào)根據(jù)它在數(shù)中的位置(即數(shù)位),按逢十六進(jìn)一。對(duì)任意一個(gè)十六進(jìn)制正數(shù)H,可表示為:(H)16=Hn-l×16n-1+Hn—2×16n-2+…+Hl×161+H0l×160+H—l×16–1+…+H-m×16-m
轉(zhuǎn)換將十進(jìn)制整數(shù)轉(zhuǎn)換成十六進(jìn)制整數(shù)的規(guī)則是“除16取余”。十六進(jìn)制數(shù)計(jì)數(shù)的原則是“逢16進(jìn)1”。將十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法1.1.2數(shù)的表示1.機(jī)器數(shù)的特點(diǎn)¨機(jī)器數(shù)表示的數(shù)值范圍受計(jì)算機(jī)字長(zhǎng)的限制。¨機(jī)器數(shù)的符號(hào)位被數(shù)值化?!C(jī)器數(shù)的小數(shù)點(diǎn)處于約定的位置。2.帶符號(hào)數(shù)的表示帶符號(hào)數(shù)有三種表示方法:原碼、反碼、補(bǔ)碼(一定要會(huì)求)。原碼特征如下:¨原碼形式與二進(jìn)制數(shù)的原來表示方法基本一樣?!гa中增加了專門表示數(shù)的正、負(fù)的符號(hào)位,也就是用0表示正號(hào),用1表示負(fù)號(hào)。
¨最左邊一位的0和1不代表具體數(shù)值,而分別表示“+”和“-”。反碼a正數(shù)的原碼和反碼完全一樣。a負(fù)數(shù)的反碼是由其原碼的數(shù)值部分求反(即由0變?yōu)?,1變?yōu)?)而得到的。補(bǔ)碼補(bǔ)碼是計(jì)算機(jī)中帶符號(hào)數(shù)的實(shí)用表示方法。規(guī)定如下:a
正數(shù)的補(bǔ)碼與原碼和反碼是一樣的。a負(fù)數(shù)的補(bǔ)碼可由其反碼的末位加1。即負(fù)數(shù)的補(bǔ)碼是對(duì)其原碼除符號(hào)位外各數(shù)值位求反并在末位加1而得到的1.3微型計(jì)算機(jī)1.3.1電子數(shù)字計(jì)算機(jī)概述(簡(jiǎn)單了解)電子數(shù)字計(jì)算機(jī)是一種能按照事先編好的程序(指令序列)自動(dòng)地、高速地、準(zhǔn)確地進(jìn)行大量運(yùn)算和對(duì)信息進(jìn)行加工處理的電子設(shè)備。第一代:電子管時(shí)代。計(jì)算機(jī)采用電子管作為邏輯元件。第二代:晶體管時(shí)代。第三代:集成電路時(shí)代。第四代:大規(guī)模集成電路時(shí)代。未來的計(jì)算機(jī)將朝巨型化、微型化、網(wǎng)絡(luò)化與智能化的方向發(fā)展。第五代計(jì)算機(jī)將是完全新型的一代計(jì)算機(jī)。電子計(jì)算機(jī)的特點(diǎn)和分類2.計(jì)算機(jī)系統(tǒng)組成(掌握)?任何計(jì)算機(jī)系統(tǒng)都由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成。?硬件系統(tǒng)主要包括運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備五個(gè)部分。?軟件系統(tǒng)包括計(jì)算機(jī)本身運(yùn)行所需的系統(tǒng)軟件和用戶完成任務(wù)所需的應(yīng)用軟件。?計(jì)算機(jī)是依靠硬件和軟件的協(xié)同工作來執(zhí)行給定任務(wù)的。計(jì)算機(jī)的硬件系統(tǒng)所有馮諾依曼結(jié)構(gòu)的計(jì)算機(jī)都由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五部分組成,其中運(yùn)算器和控制器又稱為中央處理單元(CPU)。?運(yùn)算器:負(fù)責(zé)數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算,即數(shù)據(jù)的加工處理部件。?控制器:對(duì)程序規(guī)定的控制信息進(jìn)行分析、控制,并協(xié)調(diào)輸入、輸出操作或內(nèi)存訪問。?存儲(chǔ)器:存儲(chǔ)程序和數(shù)據(jù),是具有記憶功能的部件。?輸入設(shè)備:把用戶的程序和數(shù)據(jù)輸入到計(jì)算機(jī)的存儲(chǔ)器。?輸出設(shè)備:從計(jì)算機(jī)中取出程序執(zhí)行結(jié)果或其它信息。計(jì)算機(jī)硬件結(jié)構(gòu)圖4.計(jì)算機(jī)軟件系統(tǒng)計(jì)算機(jī)軟件系統(tǒng)由系統(tǒng)軟件和應(yīng)用軟件組成。5.計(jì)算機(jī)工作過程(理解)?首先要編制程序。?通過輸入設(shè)備將程序和原始數(shù)據(jù)送入存儲(chǔ)器?在程序運(yùn)行后,計(jì)算機(jī)就從存儲(chǔ)器中取出指令,送到控制器中去分析、識(shí)別。?控制器根據(jù)指令的含義發(fā)出相應(yīng)的命令,控制存儲(chǔ)器和運(yùn)算器的操作;?當(dāng)運(yùn)算器任務(wù)完成后,就可以根據(jù)指令序列將結(jié)果通過輸出設(shè)備輸出。?操作人員還可以通過控制臺(tái)啟動(dòng)或停止機(jī)器的運(yùn)行,或?qū)Τ绦虻膱?zhí)行進(jìn)行某種處理。1.3.2微型計(jì)算機(jī)是以微處理器為核心,配以大規(guī)模集成電路存儲(chǔ)器、輸入/輸出接口電路及系統(tǒng)總線所組成的計(jì)算機(jī)。1.微型計(jì)算機(jī)的發(fā)展階段30多年來,微型計(jì)算機(jī)的發(fā)展經(jīng)歷了以下幾個(gè)發(fā)展階段:第1階段(1971年~1972年):微型計(jì)算機(jī)采用4位的微處理器是Intel的4004和8008。第2階段(1973年~1977年):微型計(jì)算機(jī)采用8位微處理器(如Intel的8080)。其流行機(jī)種是TRS-80和AppleII。第3階段(1978年~1984年):微型計(jì)算機(jī)采用16位微處理器(如Intel的8086和808880286)。其流行機(jī)種是IBMPC和IBMPC/XT。微型計(jì)算機(jī)的發(fā)展階段第4階段(1985年~1992年):微型計(jì)算機(jī)采用32位微處理器(如Intel的80386、80486等)。其流行機(jī)種是PC386和PC486。第5階段(1993年至現(xiàn)在):采用了新一代微處理器,如Pentium。Pentium處理器的內(nèi)部數(shù)據(jù)總線為32位,外部數(shù)據(jù)總線為64位。目前流行機(jī)種是PIV。近來,出現(xiàn)了采用64位的微處理器作為CPU的微型計(jì)算機(jī),64位微型計(jì)算機(jī)具有64位運(yùn)算能力、64位尋址空間和64位數(shù)據(jù)通路。2.微處理器、微型計(jì)算機(jī)與微型計(jì)算機(jī)系統(tǒng)微處理器是指采用大規(guī)模集成電路技術(shù),將具有運(yùn)算器和控制器功能的電路及相關(guān)電路集成在一片芯片上的大規(guī)模集成電路。微處理器是微型計(jì)算機(jī)的核心,又稱為微型計(jì)算機(jī)的中央處理器。微型計(jì)算機(jī)是指以微處理器為核心,配以大規(guī)模集成電路構(gòu)成的主存儲(chǔ)器、輸入輸出接口電路及系統(tǒng)總線所組成的計(jì)算機(jī)。微型計(jì)算機(jī)又稱為個(gè)人計(jì)算機(jī)(PC)、微電腦等。微型計(jì)算機(jī)系統(tǒng)是指以微型計(jì)算機(jī)為核心,配以相應(yīng)的外部設(shè)備、電源、輔助電路以及控制微型計(jì)算機(jī)工作的系統(tǒng)軟件所構(gòu)成的計(jì)算機(jī)系統(tǒng)。3.微型計(jì)算機(jī)硬件系統(tǒng)微型計(jì)算機(jī)屬于馮諾依曼結(jié)構(gòu)的計(jì)算機(jī)。但是,微型計(jì)算機(jī)的運(yùn)算器、控制器不再是兩個(gè)獨(dú)立的部件,它集成在一塊微處理器上,稱為微處理器。高檔微機(jī)有的使用兩個(gè)或多個(gè)微處理器。采用一個(gè)微處理器的微型計(jì)算機(jī)硬件系統(tǒng)是由微處理器(CPU)、存儲(chǔ)器、系統(tǒng)總線及輸入輸出設(shè)備組成,如圖1-4所示。微型計(jì)算機(jī)硬件系統(tǒng)圖(1)中央處理單元中央處理單元是一塊微處理器芯片,芯片上集成有控制器、運(yùn)算器、寄存器等功能部件。運(yùn)算器又稱算術(shù)邏輯單元,具有算術(shù)運(yùn)算和邏輯運(yùn)算功能,是計(jì)算機(jī)對(duì)數(shù)據(jù)進(jìn)行加工處理的部件??刂破髦饕芍噶罴拇嫫鳌⒆g碼器、程序計(jì)數(shù)器、操作控制器等組成,負(fù)責(zé)對(duì)程序規(guī)定的控制信息進(jìn)行分析、控制,并協(xié)調(diào)輸入、輸出操作或內(nèi)存訪問。寄存器是處理器內(nèi)部的暫時(shí)存儲(chǔ)單元。(2)存儲(chǔ)器存儲(chǔ)器是計(jì)算機(jī)實(shí)現(xiàn)記憶功能的部件。存儲(chǔ)器主要包括主存儲(chǔ)器和輔助存儲(chǔ)器。主存儲(chǔ)器由半導(dǎo)體存儲(chǔ)器RAM和ROM組成,又稱為內(nèi)存;輔助存儲(chǔ)器又稱外存儲(chǔ)器,包括軟盤存儲(chǔ)器、硬盤存儲(chǔ)器和光盤等。(3)輸入輸出設(shè)備
常用的輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀、數(shù)碼相機(jī)等。常用的輸出設(shè)備有顯示器、打印機(jī)、繪圖儀等。一般而言,外存儲(chǔ)器也屬于輸入、輸出設(shè)備。(4)總線微型計(jì)算機(jī)系統(tǒng)采用總線結(jié)構(gòu)將CPU、存儲(chǔ)器和外部設(shè)備進(jìn)行連接。所謂總線就是在兩個(gè)以上數(shù)字設(shè)備之間提供傳送信息的公用通道??偩€通常由數(shù)據(jù)總線、控制總線和地址總線三部分組成。其中數(shù)據(jù)總線在CPU與內(nèi)存或輸入輸出接口之間傳送數(shù)據(jù);控制總線用來傳送各種控制信號(hào);地址總線用來傳送存儲(chǔ)單元或輸入輸出接口的地址信息。(5)網(wǎng)絡(luò)設(shè)備隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,微型計(jì)算機(jī)適應(yīng)網(wǎng)絡(luò)的需求,出現(xiàn)了許多網(wǎng)絡(luò)設(shè)備,如路由器、調(diào)制解調(diào)器等。將這些設(shè)備硬說成是輸入輸出設(shè)備有點(diǎn)牽強(qiáng)附會(huì),因此將這些設(shè)備歸為網(wǎng)絡(luò)設(shè)備。這樣,微計(jì)算機(jī)硬件系統(tǒng)又可以說是由微處理器、存儲(chǔ)器、輸入、輸出設(shè)備和網(wǎng)絡(luò)設(shè)備等部分組成。4.微型計(jì)算機(jī)主要組裝部件組成微型計(jì)算機(jī)的組裝部件主要有主機(jī)系統(tǒng)板、顯示器、鍵盤、軟磁盤驅(qū)動(dòng)器、硬磁盤驅(qū)動(dòng)器及各種適配卡。若要組裝一臺(tái)適合用戶需要的兼容機(jī),只要選擇合適的一組配套的配件,并按照配件的技術(shù)要求,正確組合安裝,就可以構(gòu)成一臺(tái)微型計(jì)算機(jī)。5.微型計(jì)算機(jī)性能指標(biāo)通常用微型計(jì)算機(jī)的性能指標(biāo)表述微型計(jì)算機(jī)的性能。微型計(jì)算機(jī)的主要性能指標(biāo)有字長(zhǎng)、主存儲(chǔ)器容量、時(shí)鐘頻率和運(yùn)算速度等。⑴字長(zhǎng)字長(zhǎng)是計(jì)算機(jī)中的CPU一次能夠同時(shí)處理的二進(jìn)制數(shù)據(jù)的位數(shù),它直接影響到計(jì)算機(jī)的計(jì)算精度、功能和速度。一般微型計(jì)算機(jī)字長(zhǎng)有8位,16位,高檔微機(jī)為32位。目前已出現(xiàn)字長(zhǎng)64位的微型計(jì)算機(jī)。根據(jù)字長(zhǎng)分類,微型計(jì)算機(jī)可分為16位機(jī),32位機(jī)、64位機(jī)等。⑵主存儲(chǔ)器容量主存儲(chǔ)器的容量指的是主存儲(chǔ)器中RAM和ROM的容量總和。主存儲(chǔ)器容量越大,運(yùn)算速度越快,數(shù)據(jù)處理能力越強(qiáng)。微計(jì)算機(jī)主存儲(chǔ)器以字節(jié)為單位存儲(chǔ)信息。通常,將1024個(gè)字節(jié)(Byte)稱為1KB,1024KB稱為1MB,1024MB稱為1GB。目前,Pentium機(jī)容量具有256MB,高端PC使用512MB,已經(jīng)開始向1GB內(nèi)存發(fā)展。微型計(jì)算機(jī)性能指標(biāo)⑶運(yùn)算速度通常運(yùn)算速度用每秒鐘能執(zhí)行的指令數(shù)來表示,單位一般用MIPS(每百萬條指令/秒)。目前,高檔微機(jī)的運(yùn)算速度可達(dá)幾千萬次/秒。⑷主頻主頻是指計(jì)算機(jī)的時(shí)鐘頻率,單位為兆赫茲(MHz)。時(shí)鐘頻率很大程度上決定了計(jì)算機(jī)的運(yùn)算速度,時(shí)鐘頻率越高,運(yùn)算速度越快。目前,PentiumIV型芯片主頻高達(dá)3000MHz。第2章微處理器2.1微處理器的原理與組成2.1.1微處理器的基本結(jié)構(gòu)微處理器:是一種采用大規(guī)模集成電路技術(shù),將具有運(yùn)算器和控制器功能的電路及相關(guān)電路集成在一片芯片上的大規(guī)?;虺笠?guī)模集成電路。微處理器的硬件1.
微處理器的硬件組成一般而言,微處理器芯片上集成有控制器、運(yùn)算器、寄存器以及連接它們的內(nèi)部總線等部件。運(yùn)算器具有算術(shù)運(yùn)算和邏輯運(yùn)算功能,是對(duì)數(shù)據(jù)進(jìn)行加工處理的部件,又稱為算術(shù)邏輯單元。微處理器的硬件控制器主要由指令寄存器、譯碼器、程序計(jì)數(shù)器、操作控制器等組成,負(fù)責(zé)對(duì)程序規(guī)定的控制信息進(jìn)行分析、控制,協(xié)調(diào)輸入、輸出操作或內(nèi)存訪問。寄存器是微處理器內(nèi)部的暫時(shí)存儲(chǔ)單元。各部件之間通過內(nèi)部總線交換信息。2.1.2微處理器的工作原理微處理器的工作過程就是執(zhí)行程序的過程,而執(zhí)行程序就是逐步執(zhí)行一條條指令。微處理器在執(zhí)行一條指令的步驟如下。1.取指令指令預(yù)取部件向指令快存提取一條指令。2.指令譯碼指令譯碼部件將取得的指令翻譯成起控制作用的微指令。3.取操作數(shù)根據(jù)計(jì)算出的該指令所使用的操作數(shù)的物理地址,請(qǐng)求總線接口部件,通過總線從存儲(chǔ)器取得該操作數(shù)。4.執(zhí)行運(yùn)算按照指令操作碼的要求,通過執(zhí)行微指令,對(duì)操作數(shù)完成規(guī)定的運(yùn)算處理。5.回送結(jié)果將指令的執(zhí)行結(jié)果回送內(nèi)存或某寄存器中。微處理器的工作過程是取指令、指令譯碼、取操作數(shù)……,再取指令……,周而復(fù)始地進(jìn)行。2.1.3微處理器特點(diǎn)與分類1.微處理器的特點(diǎn)2.微處理器分類微處理器分類方法很多,主要有兩種。按微處理器位數(shù)分類有:位片、4位、8位、12位、16位、32位、64位等微處理器。2.28086/8088微處理器2.2.18086/8088主要特征8086主要特性8086主要特性是:16位數(shù)據(jù)總線(8088外部數(shù)據(jù)總線為8位)。20位地址總線,其中低16位與數(shù)據(jù)總線復(fù)用。16位端口地址線可尋址64K個(gè)I/O端口??商幚韮?nèi)部軟件和外部硬件中斷,中斷源多達(dá)256個(gè)。支持單處理器、多處理器系統(tǒng)工作。2.2.28086CPU內(nèi)部結(jié)構(gòu)8086微處理器的內(nèi)部結(jié)構(gòu)它由兩大部分組成:總線接口部件BIU(BusInterfaceUnit)執(zhí)行部件EU(ExecutionUnit)。和一般的計(jì)算機(jī)中央處理器相比較,8086的EU相當(dāng)于運(yùn)算器,而BIU則類似于控制器。8086微處理器的內(nèi)部結(jié)構(gòu)1.執(zhí)行部件EU執(zhí)行部件EU是進(jìn)行數(shù)據(jù)處理、加工和有效地址計(jì)算的部件,即完成指令譯碼和執(zhí)行指令操作。它主要由算術(shù)邏輯運(yùn)算單元、標(biāo)志寄存器、通用數(shù)據(jù)寄存器組、專用寄存器組和EU控制電路等組成。(1)算術(shù)邏輯運(yùn)算單元(ALU)算術(shù)邏輯運(yùn)算單元是一個(gè)16位的運(yùn)算器,可用于8位、16位二進(jìn)制算術(shù)和邏輯運(yùn)算,也可按指令的尋址方式計(jì)算尋址存儲(chǔ)器所需的16位偏移量。(2)標(biāo)志寄存器標(biāo)志寄存器是一個(gè)16位的寄存器,反映CPU運(yùn)算的狀態(tài)特征和存放某些控制標(biāo)志。8086使用了9位。標(biāo)志寄存器如圖2-3所示。其中6個(gè)標(biāo)志位用來反映CPU的運(yùn)行狀態(tài)信息CF進(jìn)位標(biāo)志:當(dāng)執(zhí)行一個(gè)加法(或減法)運(yùn)算使最高位產(chǎn)生進(jìn)位(或借位)時(shí),CF為1;否則為0。此外循環(huán)指令影響CF。PF奇偶標(biāo)志:當(dāng)指令執(zhí)行結(jié)果的低8位中含有偶數(shù)個(gè)1時(shí),PF為1;否則為0。AF輔助進(jìn)位標(biāo)志:當(dāng)執(zhí)行一個(gè)加法(或減法)運(yùn)算使結(jié)果的低4位向高4位有進(jìn)位(或借位)時(shí),AF為1;否則為0。ZF零標(biāo)志:若當(dāng)前的運(yùn)算結(jié)果為零,ZF為1;否則為0。SF符號(hào)標(biāo)志:它和運(yùn)算結(jié)果的最高位相同。OF溢出標(biāo)志:當(dāng)補(bǔ)碼運(yùn)算有溢出時(shí),OF為1;否則為0。標(biāo)志寄存器控制標(biāo)志位3個(gè)控制標(biāo)志位用來控制CPU的操作,由程序進(jìn)行置位和復(fù)位。它們是:
TF跟蹤(陷阱)標(biāo)志:為方便程序調(diào)試而設(shè)置。若TF置1,8086處于單步工作方式;否則將正常執(zhí)行程序。
IF中斷允許標(biāo)志:用來控制可屏蔽中斷的響應(yīng)。
DF方向標(biāo)志:用來控制數(shù)據(jù)串操作指令的步進(jìn)方向。若DF置1,則串操作過程中地址會(huì)自動(dòng)遞減;否則自動(dòng)遞增。(3)數(shù)據(jù)寄存器4個(gè)16位的數(shù)據(jù)寄存器AX、BX、CX、DX用于暫存計(jì)算過程中所用到的操作數(shù)及結(jié)果。數(shù)據(jù)寄存器既可作為16位,也可作為8位數(shù)據(jù)寄存器使用。4個(gè)16位的數(shù)據(jù)寄存器除用作通用寄存器外,還有各自的專門用途,例如:AX在算術(shù)運(yùn)算中用做累加器;BX在計(jì)算存儲(chǔ)器地址時(shí)常用做基址寄存器;CX在串操作指令及循環(huán)中用做計(jì)數(shù)器等。(4)專用寄存器8086提供了4個(gè)專用寄存器,即基數(shù)指針寄存器BP、堆棧指針寄存器SP、源變址寄存器SI和目的變址寄存器DI。地址指針和變址寄存器一般用來存放地址的偏移量;SP和BP是用來指示存取位于當(dāng)前堆棧段中的數(shù)據(jù)所在的偏移地址;變址寄存器SI和DI用來存放當(dāng)前數(shù)據(jù)段的偏移地址。(5)EU控制電路EU控制電路負(fù)責(zé)從BIU的指令隊(duì)列緩沖器中取指令,并對(duì)指令譯碼,根據(jù)指令要求向EU內(nèi)部各部件發(fā)出控制命令,以完成各條指令規(guī)定的功能。2.總線接口部件BIU概述:總線接口部件BIU負(fù)責(zé)與存儲(chǔ)器及外部設(shè)備接口,完成8086/8088CPU與存儲(chǔ)器間的信息傳送。總線接口部件BIU由20位地址加法器、段寄存器、16位指令指針、指令隊(duì)列緩沖器和總線控制電路等組成。地址加法器和段寄存器(1)地址加法器和段寄存器8086的20條地址線,可直接尋址1MB存儲(chǔ)器物理空間。從CPU內(nèi)部看,它均為16位的寄存器,所以CPU不能直接尋址1MB空間。為此,8086用一組段寄存器將這1MB存儲(chǔ)空間分成若干個(gè)邏輯段,每個(gè)邏輯段長(zhǎng)度<64KB,用4個(gè)16位的段寄存器分別存放各個(gè)段的起始地址(又稱段基址)。用16位的寄存器實(shí)現(xiàn)20位物理地址的形成過程如圖2-4所示。它是由專門的地址加法器將有關(guān)段寄存器內(nèi)容左移4位后,與16位偏移地址相加,形成一個(gè)20位物理地址。20位物理地址的形成過程圖代碼段寄存器CS存放當(dāng)前執(zhí)行程序所在代碼段的段基址。數(shù)據(jù)段寄存器DS存放程序當(dāng)前使用的數(shù)據(jù)段的段基址。堆棧段寄存器SS存放程序當(dāng)前使用的堆棧段的段基址,堆棧操作的數(shù)據(jù)就在這個(gè)段中。附加段寄存器ES存放程序當(dāng)前使用的附加段的段基址。(2)16位指令指針I(yè)P(InstructionPointer)16位指令指針I(yè)P用來存放將要取出的指令在現(xiàn)行代碼段中的偏移地址。它與CS組合使用,才能確定下一條指令存放單元的物理地址。(3)指令隊(duì)列緩沖器
8086的指令隊(duì)列為6個(gè)字節(jié),在EU執(zhí)行指令的同時(shí),從內(nèi)存中取下面一條或幾條指令,取來的指令依次存放在指令隊(duì)列中。它們按“先進(jìn)先出”的原則存放,并按順序取到EU中執(zhí)行。(4)總線控制電路總線控制電路將8086的內(nèi)部總線和外部總線相連,是8086與內(nèi)存單元和I/O端口進(jìn)行數(shù)據(jù)交換的必經(jīng)之路。它包括16條數(shù)據(jù)總線、20條地址總線和若干條控制總線,CPU通過這些總線與外部世界取得聯(lián)系,從而形成各種規(guī)模的8086微型計(jì)算機(jī)系統(tǒng)。2.380286\80386\80486微處理器2.3.1.80286微處理器1.80286的特征第二代微處理器。是一種高性能的16位微處理器3.80286的工作方式80286微處理器有兩種工作方式:實(shí)地址方式和保護(hù)虛擬地址方式。80286有24根地址線,在實(shí)地址方式下,只使用其中的低20位地址(A0A19),實(shí)際尋址能力和8086的一樣為1MB。80286在保護(hù)虛擬方式下,同樣利用段選擇器和偏移量組成邏輯地址。其邏輯尋址空間達(dá)230(1000MB)字節(jié)。但由于地址總線只有24根,因而實(shí)際的物理存儲(chǔ)空間最大為16MB(224B)。2.3.280386微處理器80386與80286相比,其主要改進(jìn)是:80386是一種32位微處理器;1.80386的特征
32位結(jié)構(gòu)的微處理器。32位的物理地址,最大可支持4GB字節(jié)的物理內(nèi)存空間。在保護(hù)方式下,其邏輯地址空間可高達(dá)64M字節(jié)。2.564位微處理器(1)Itaniums(安騰)處理器第3章80x86指令系統(tǒng)3.1
指令和指令系統(tǒng)3.1.1概述1.指令指令是計(jì)算機(jī)能夠識(shí)別和執(zhí)行的某種操作命令,每條指令都嚴(yán)格規(guī)定了在機(jī)器運(yùn)行時(shí)必須完成的一種操作。指令主要由操作碼和操作數(shù)地址兩個(gè)部分組成。操作碼是用來指出計(jì)算機(jī)應(yīng)執(zhí)行何種操作的一個(gè)二進(jìn)制代碼。操作數(shù)地址指出該指令所操作(處理)的對(duì)象(稱為操作數(shù))所在的存儲(chǔ)單元的地址。指定操作數(shù)所在位置的方法稱為尋址方式。一條指令的取出和執(zhí)行所必須的時(shí)間,稱為指令周期。指令周期的大小依指令不同而異。指令周期通常用幾個(gè)機(jī)器周期來表示,一個(gè)機(jī)器周期又包含若干個(gè)時(shí)鐘周期(或時(shí)鐘節(jié)拍)。2.指令系統(tǒng) 每一種微處理器有它自己獨(dú)有的一組指令。大體上分類如下。(1)數(shù)據(jù)傳送指令。(2)算術(shù)運(yùn)算指令。(3)邏輯運(yùn)算指令。(4)移位運(yùn)算指令。(5)位與位串操作指令。(6)控制轉(zhuǎn)移指令。(7)輸入/輸出指令。(8)其他指令。包括各種處理器控制指令,它們往往由操作系統(tǒng)專用。3.精簡(jiǎn)指令集(RISC)技術(shù)RISC結(jié)構(gòu)的計(jì)算機(jī)具有相對(duì)十分簡(jiǎn)單的指令系統(tǒng),指令長(zhǎng)度固定,指令格式與種類簡(jiǎn)單,尋址的方式也少,在處理器中增設(shè)大量的通用寄存器,采用硬件控制,從而使指令執(zhí)行速度提高,同時(shí)依靠編譯軟件的支持調(diào)度指令的流水線執(zhí)行,這樣RISC系統(tǒng)獲得了較高的性能/價(jià)格比。從80486開始到奔騰系列,均采用了精簡(jiǎn)指令集(RISC)技術(shù)。3.1.2指令格式指令一般由操作碼和一個(gè)或多個(gè)操作數(shù)組成。操作碼指示指令所要完成的操作,例如數(shù)據(jù)傳送、加法、減法等;操作數(shù)指示指令執(zhí)行過程中所需要的數(shù)據(jù),如加法指令中加數(shù)、被加數(shù)等,這些數(shù)據(jù)可以是操作數(shù)本身,也可以來自某寄存器或存儲(chǔ)器單元。一條指令中可以包含一個(gè)操作數(shù),也可以包含一個(gè)以上的操作數(shù)。80x86微處理器機(jī)器指令編碼的一般格式:8086指令格式3.1.3指令周期微處理器的工作過程,不外乎取出指令、執(zhí)行指令,再取出指令、執(zhí)行指令,...這樣一個(gè)循環(huán)過程。一條指令的取出和執(zhí)行所必需的時(shí)間,稱為指令周期。指令周期是以一條指令的取出和執(zhí)行所必須的時(shí)間而定義的,其時(shí)間的基準(zhǔn)是微處理器時(shí)鐘周期。3.2尋址方式1.立即尋址
立即尋址又稱立即數(shù)尋址。操作數(shù)緊跟在操作碼之后,直接放在指令中,這種操作數(shù)稱為立即數(shù)。立即數(shù)規(guī)定只能為整數(shù)。立即數(shù)可以是8位或16位,若是16位,則低字節(jié)數(shù)放在低位地址中,高字節(jié)數(shù)放在高位地址中。例如:
MOVAX,2056HMOV指令是一個(gè)數(shù)據(jù)傳送指令,它的功能是將數(shù)據(jù)2056H送AX寄存器,執(zhí)行后,AL中為56H,AH中為20H。舉例MOVAX,3912H這條語句中,MOV指令是一個(gè)數(shù)據(jù)傳送指令,它的功能是將數(shù)據(jù)3912H送入AX寄存器,執(zhí)行后,AL中為12H,AH中為39H。直接尋址在直接尋址方式下,操作數(shù)存放在存儲(chǔ)單元中,該存儲(chǔ)單元的16位段內(nèi)偏移地址(又稱有效地址EA)緊跟在操作碼之后,直接包含在指令中,存放在代碼段區(qū)域內(nèi)。如果指令中未指定段跨越前綴,即未指明操作數(shù)存放在哪一段中,則默認(rèn)操作數(shù)存放在數(shù)據(jù)段中。操作數(shù)的物理地址為:物理地址=16d×[DS]+指令中16位地址偏移量(即有效地址EA)如果操作數(shù)存放在數(shù)據(jù)段以外的段中,則應(yīng)在指令中指定段跨越前綴。舉例MOVAX,DS:[2000H];將數(shù)據(jù)段中偏移地址為2000H中的數(shù)送給AL,;2001H中的數(shù)送給AH如果(DS)=1000H,(12000H)=1234H,則EA=2000H,物理地址為12000H。寄存器尋址1.特征操作數(shù)存放在指令指定的寄存器中。對(duì)于8位操作數(shù),寄存器可以為AL,AH,BL,BH,CL,CH,DL,DH中的任一個(gè),對(duì)于16位操作數(shù),寄存器可為AX,BX,CX,DX,SI,DI,SP或BP之一。在寄存器尋址方式下,操作數(shù)從寄存器取得,而無需訪問存儲(chǔ)器來獲取操作數(shù),因此執(zhí)行速度較快。寄存器尋址舉例MOVDX,AX;將AX中的內(nèi)容送入BX如果指令執(zhí)行前(AX)=5308H,(DX)=1040H則指令執(zhí)行后(DX)=5308H,(AX)保持不變,如圖4-3所示。寄存器間接尋址1.特征在寄存器間接尋址方式下,操作數(shù)存放在存儲(chǔ)單元中。操作數(shù)地址的16位段內(nèi)偏移地址包含在寄存器BX、BP、SI和DI之一中,這些寄存器由指令指定。如果指令中未指定段跨越前綴,則尋址時(shí),對(duì)于BX、SI、DI寄存器,默認(rèn)操作數(shù)在數(shù)據(jù)段中,操作數(shù)的物理地址為:物理地址=16d×[DS]+[BX]/[SI]/[DI]對(duì)于BP寄存器,默認(rèn)的段寄存器為SS,操作數(shù)的物理地址為:物理地址=16d×[SS]+[BP]。舉例MOVAX,[SI]如果(DS)=1000H,(SI)=2000H,(12000H)=1234H,則該指令操作過程如圖所示。寄存器相對(duì)尋址1.特征操作數(shù)存放在存儲(chǔ)單元中,其有效地址由一個(gè)基址或變址寄存器的內(nèi)容加上指令中指定的一個(gè)8位或16位偏移地址來得到。即[BX][BP]有效地址EA=[SI]+(8位或16位偏移量)[DI]如果指令中未指定段跨越前綴,則尋址時(shí),對(duì)于BX、SI、DI寄存器,段寄存器使用DS,操作數(shù)的物理地址為:物理地址=16d×[DS]+[BX]/[SI]/[DI]+(8/16位偏移量)對(duì)于BP寄存器,段寄存器使用SS,操作數(shù)的物理地址為:物理地址=16d×[SS]+[BP]+(8/16位偏移量)舉例MOVAX,COUNT[SI]或MOVAX,[COUNT+SI]若(DS)=1000H,(SI)=2000H,COUNT=3000H,(15000H)=1234H,其尋址過程則如圖所示?;芳幼冎穼ぶ?.特征操作數(shù)存放在存儲(chǔ)單元中,其有效地址為一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容,這兩個(gè)寄存器均由指令指定。即:有效地址EA=[BX]+[SI][BP][DI]如果無段跨越前綴,對(duì)于基址寄存器使用BX,則默認(rèn)的段寄存器為DS,操作數(shù)的物理地址為:物理地址=16d×[DS]+[BX]+[SI]/[DI]如果基址寄存器使用BP,則默認(rèn)的段寄存器為SS,操作數(shù)的物理地址為:物理地址=16d×[SS]+[BP]+[SI]/[DI]舉例MOVAX,[BX][SI]或MOVAX,[BX+SI]若(DS)=1000H,(BX)=2000H,(SI)=1000H,(13000H)=1234H,其尋址過程如圖所示。相對(duì)的基址加變址尋址1.特征操作數(shù)存放在存儲(chǔ)單元中,其有效地址是一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容,再加一個(gè)8位或l6位的偏移量。基址寄存器、變址寄存器和偏移量由指令指定。當(dāng)基址寄存器為BX時(shí),使用DS為段寄存器;當(dāng)基址寄存器為BP時(shí),使用SS為段寄存器。物理地址=16d×[DS]+[BX]+[SI]/[DI]+(8/16位偏移量)或物理地址=16d×[SS]+[BP]+[SI]/[DI]+(8/16位偏移量)2.舉例MOVAX,COUNT[BX][SI]或MOVAX,COUNT[BX+DI]或MOVAX,[COUNT+BX+DI]設(shè)(DS)=1000H,(BX)=2000H,(SI)=1000H,COUNT=0300H,(13000H)=1234H,其尋址過程如圖所示。例題已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21102)=B7H,(21203)=65H,內(nèi)存單元的值如圖所示。試給出下列各條指令執(zhí)行完后AX寄存器的值。(1)MOVAX,1200H答:執(zhí)行后,(AX)=1200H(2)MOVAX,BX答:執(zhí)行后,(AX)=0100H(3)MOVAX,[1200H]答:源操作數(shù)的段地址=DS=2000H,有效地址=1200H,源操作數(shù)的物理地址=2000H×16+1200H=21200H,指令執(zhí)行后,(AX)=4C2AH3.380X86指令系統(tǒng)3.3.1數(shù)據(jù)傳送指令數(shù)據(jù)傳送指令用于寄存器、存儲(chǔ)單元、或輸入輸出端口之間傳送數(shù)據(jù)或地址。8086/8088有14種數(shù)據(jù)傳送指令,可分為4類:通用數(shù)據(jù)傳送指令輸入輸出數(shù)據(jù)傳送指令地址傳送指令標(biāo)志傳送指令。通用數(shù)據(jù)傳送指令1.通用數(shù)據(jù)傳送指令(1)傳送指令MOV指令格式:MOVDST,SRC指令執(zhí)行的操作:(DST)(SRC)MOV是指令助記符,DST是目的操作數(shù),SRC是源操作數(shù)。MOV指令的功能是將字節(jié)或字?jǐn)?shù)據(jù)從源地址傳送到目的地址。源操作數(shù)可以是通用寄存器、段寄存器、存儲(chǔ)器和立即數(shù),目的操作數(shù)可以是通用寄存器、段寄存器(CS除外)和存儲(chǔ)器。MOV指令用法MOVAL,BL;BL中8位數(shù)據(jù)送ALMOVCX,SI;SI中16位數(shù)據(jù)送CXMOVAX,[BX];由BX尋址的兩個(gè)內(nèi)存單元的內(nèi)容送AXMOV[DI],AX;累加器內(nèi)容送DI尋址的兩個(gè)內(nèi)存單元MOVCX,[1000H];將由EA=1000H尋址的兩單元的內(nèi)容送CXMOV指令用法MOV[BX][SI],DX; 將DX的內(nèi)容送BX+SI 尋址的兩內(nèi)存單元MOVAX,[BP][DI]; 將BP+DI尋址的內(nèi)存 單元的內(nèi)容送AXMOVCL,77H; 立即數(shù)送CLMOVBX,DATA1; 將符號(hào)地址DATA1的 存儲(chǔ)內(nèi)容送BXMOV指令時(shí)應(yīng)注意:MOV指令是傳送8位數(shù)據(jù)還是16位數(shù)據(jù),取決于指令中所涉及的寄存器是8位還是16位,或者取決于立即數(shù)的形式;MOV指令中的源操作數(shù)或目的操作數(shù)兩者中,至少有一個(gè)是用寄存器指出的;MOV指令不能在兩個(gè)內(nèi)存單元間傳送數(shù)據(jù);MOV指令的執(zhí)行不影響標(biāo)志寄存器的內(nèi)容。不正確的MOV指令用法MOVCX,AX;不能用MOV指令給代碼段寄存器送數(shù),但可其他段寄存器送數(shù)。MOVDX,EX;不允許如此送數(shù)。MOVDX,12H;不允許如此送數(shù)。MOV[BX],12H;未指明[BX]所指定的偏移地址是字節(jié)數(shù)據(jù)地址還是字?jǐn)?shù)據(jù)地址。MOVDX,DH;源操作數(shù)與目的操作數(shù)的位數(shù)不同。MOV[BX+BP],AX;目的操作數(shù)使用了兩個(gè)基址寄存器。(2)PUSH指令指令格式:PUSHSRC指令操作:將字壓入堆棧。源操作數(shù)可以是任一段寄存器、通用寄存器和存儲(chǔ)器。用法例子如下:PUSHAX;將AX內(nèi)容推入堆棧PUSHDS;將DX內(nèi)容推入堆棧PUSH[BX+DI];將BX+DI和BX+DI+1兩單元的內(nèi)容推入堆棧。(3)POP指令指令格式:POPDST指令操作:將字從堆棧彈出至目的操作數(shù)。目的操作數(shù)規(guī)定與PUSH相同,只是POP指令不允許使用CS。用法例子如下:POPAX;將棧頂兩單元彈出送AXPOPDS;將棧頂兩單元彈出送DXPOPBUFFER;將棧頂兩單元彈出送BUFFER和BUFFER+1兩單元(4)XCHG指令指令格式:XCHGOP1,OP2指令操作:源、目的操作數(shù)之間交換一個(gè)字節(jié)或字的數(shù)據(jù)。源或目的操作數(shù)只能取通用寄存器或通用寄存器與存儲(chǔ)器。三種用法例子如下:XCHGAX,CX;CX和AX之間進(jìn)行字交換XCHGAL,BL;AL和BL之間進(jìn)行字節(jié)交換XCHGAX,[BP+DI];AX的內(nèi)容和BP+DI,BP+DI+1兩單元內(nèi)容交換(5)XLAT指令XLAT指令的功能是(AL)[BX+AL],即將BX寄存器內(nèi)容加上AL寄存器內(nèi)容作為操作數(shù)的偏移地址,從這個(gè)地址取一字節(jié)內(nèi)容送AL寄存器。2.輸入輸出數(shù)據(jù)傳送指令輸入輸出指令可以分為兩大類:一類是直接輸入輸出指令;另一類是間接輸入輸出指令。(1)輸入指令I(lǐng)N指令格式:IN累加器,端口地址指令功能是將數(shù)據(jù)從輸入端口傳送到累加器。用法例子如下:INAL,PORT;將PORT端口的一字節(jié)內(nèi)容送ALINAX,ROPT;將相鄰兩端口地址的內(nèi)容送AX輸入指令I(lǐng)N間接輸入指令的例子如下。假定在執(zhí)行這些指令前,在DX寄存器中已用傳送指令設(shè)置好端口號(hào)。INAL,DX;從DX所指的端口中讀取一個(gè)字節(jié)INAX,DX;從DX和DX+1所指的兩個(gè)端口中讀取一個(gè)字(2).輸出指令OUT指令格式:OUT端口地址,累加器指令功能是將數(shù)據(jù)從累加器傳送到輸出端口中。用法例子如下:OUTPORT,AL;將AL的一字節(jié)內(nèi)容送PORT端口OUTPORT,AX;將AX的內(nèi)容送PORT和PORT+1相鄰兩端口對(duì)于間接輸入指令,假定在執(zhí)行這些指令前,在DX寄存器中已用傳送指令設(shè)置好端口號(hào)。用法例子如下:OUTDX,AL;將AL的一字節(jié)內(nèi)容送DX所指定的端口OUTDX,AX;將AL的內(nèi)容送DX所指定的端口,AH的內(nèi)容送DX+1端口輸出。IN指令注意:IN指令中當(dāng)端口地址處于0~255之間時(shí),可采用格式:INAL/AX,PORT,將PORT端口內(nèi)容送AL或AX寄存器中;當(dāng)端口地址大于255時(shí),必須采用格式:INAL/AX,DX,先將端口地址送DX,再將DX所指端口內(nèi)容送AL或AX寄存器中。OUT指令使用與IN指令相同。3.地址傳送指令
(1)
LEA指令指令格式:LEADST,SRCLEA指令的功能是取有效地址。源操作數(shù)必須是一個(gè)內(nèi)存單元地址,目的操作數(shù)必須是16位的通用寄存器。此指令將源操作數(shù)的地址偏移量送目的操作數(shù)。用法例子如下:LEADI,MAXXl;將MAXXl地址偏移量送DILEABX,[BP+SI];指令執(zhí)行后,BX中的內(nèi)容為BP+SI的值。
3.3.2算術(shù)運(yùn)算指令1.加法指令(1)ADD指令指令格式:ADDDST,SRCADD指令實(shí)現(xiàn)兩個(gè)操作數(shù)相加,結(jié)果送原來存放目的操作數(shù)的地方。目的操作數(shù)可以是累加器、通用寄存器或存儲(chǔ)器操作數(shù)。加法指令可以完成累加器與立即數(shù)、或與任一通用寄存器、或與存儲(chǔ)單元的內(nèi)容相加,結(jié)果放在累加器中。加法指令可以完成任一通用寄存器與任一通用寄存器、或與立即數(shù)、或與存儲(chǔ)單元的內(nèi)容相加,其“和”放在通用寄存器中。加法指令也可以實(shí)現(xiàn)存儲(chǔ)器操作數(shù)與立即數(shù)、或與累加器、或與通用寄存器內(nèi)容相加,其?°和?±放在存儲(chǔ)單元中。應(yīng)注意:存儲(chǔ)器操作數(shù)與立即數(shù)相加時(shí),必須指明操作數(shù)的類型。ADD指令的執(zhí)行結(jié)果將影響標(biāo)志位CF、AF、PF、ZF、SF和OF。(2)ADC指令指令格式:ADCDST,SRCADC指令與ADD類似,不同之處在于兩個(gè)操作數(shù)相加時(shí),還要加上進(jìn)位標(biāo)志CF的當(dāng)前值,結(jié)果送原來存放目的操作數(shù)的地方。指令執(zhí)行結(jié)果對(duì)標(biāo)志值的影響與ADD相同(3)INC指令指令格式:INCOP指令完成的工作是操作數(shù)OP加l。操作數(shù)可以是通用寄存器,也可為存儲(chǔ)器操作數(shù)。用法例子如下:INCAL;將AL中的內(nèi)容加1,結(jié)果送ALINCCX;將CX中的內(nèi)容加1,結(jié)果送CX該指令執(zhí)行結(jié)果影響標(biāo)志位SF、ZF、AF、PF和OF,而對(duì)CF無影響。[例]設(shè)指令執(zhí)行前AL寄存器的內(nèi)容為FFH,執(zhí)行INCAL后,AL寄存器的內(nèi)容為00H,而對(duì)CF無影響。2.減法指令(1)
SUB指令指令格式:SUBDST,SRC該指令完成兩個(gè)操作數(shù)相減,結(jié)果放在目的操作數(shù)DST中。其規(guī)則與加法指令相同。用法例子如下:SUBAL,10;(AL)=(AL)-10SUBCX,BX;(CX)=(CX)-(BX)SUB[BP+2],CL;由BP+2尋址的存儲(chǔ)單元的內(nèi)容減(CL),結(jié)果存入該單元SUBAX,[BX+2];(AX)=(AX)-由BX+2尋址的存儲(chǔ)單元的內(nèi)容。SUB的執(zhí)行結(jié)果影響標(biāo)志位SF、ZF、AF、PF、CF和OF(2)SBB指令指令格式:SBBDST,SRC此指令為帶借位減法指令。該指令與SUB基本相同,不同的是兩個(gè)操作數(shù)相減時(shí),還要減去借位標(biāo)志位CF的當(dāng)前值。(3)DEC指令指令格式:DECOP該指令完成對(duì)操作數(shù)OP減1運(yùn)算后返回操作數(shù)中。操作數(shù)可以是寄存器或存儲(chǔ)器,例如:DECAX;(AX)=(AX)-1指令執(zhí)行對(duì)標(biāo)志位CF無影響,但影響標(biāo)志位SF、ZF、AF、PF和OF。(4)NEG指令指令格式:NEGOP該指令完成對(duì)操作數(shù)取補(bǔ),即用零減去操作數(shù),再把結(jié)果送回操作數(shù)。用法例子如下:NEGAL;操作數(shù)為寄存器NEGMAXX;操作數(shù)為存儲(chǔ)器該指令執(zhí)行結(jié)果影響標(biāo)志位SF、ZF、AF、PF和OF,對(duì)于CF一般總是CF=1,只有當(dāng)操作數(shù)為O時(shí)CF=O。
(5)CMP指令指令格式:CMPDST,SRCCMP指令為比較指令。該指令進(jìn)行兩個(gè)操作數(shù)相減,但不回送結(jié)果,結(jié)果只影響狀態(tài)標(biāo)志位。操作數(shù)規(guī)定與加法操作數(shù)相同。CMP指令只比較兩個(gè)數(shù)的大小。如果兩個(gè)數(shù)相等,則ZF=1,否則ZF為0。若兩個(gè)數(shù)不相等,則其大小的確定可利用CMP指令執(zhí)行后的其它標(biāo)志位來確定。例如,對(duì)于無符號(hào)數(shù),可利用CF標(biāo)志值來判斷。當(dāng)CF=1時(shí),則DST<SRC;當(dāng)CF=O時(shí),則DST>SRC。對(duì)于有符號(hào)數(shù),則用標(biāo)志位SF和OF的狀態(tài)一同判定。CMP用法用法例子如下:CMPAX,BXCMPAL,100CMPAX,[SI+2][例]設(shè)SI寄存器的內(nèi)容是01BAH,執(zhí)行指令CMPSI,0200H后,SI寄存器的內(nèi)容仍是01BAH,狀態(tài)位:P=0;AF置1;符號(hào)位CF置1;Z置0。(6)AAS指令該指令完成對(duì)在AL中的兩個(gè)非組合的BCD數(shù)相減的結(jié)果進(jìn)行校正,在AL中產(chǎn)生一個(gè)正確的非組合BCD數(shù)的差。(7)DAS指令該指令完成對(duì)BCD碼減法結(jié)果的調(diào)整。完成對(duì)在AL中兩個(gè)組合的十進(jìn)制數(shù)相減以后的結(jié)果進(jìn)行校正,在AL中產(chǎn)生—個(gè)正確的組合十進(jìn)制數(shù)的差。3.乘法指令(1)MUL指令指令格式:MULSRC該指令完成源操作數(shù)SRC與累加器中的數(shù)相乘,結(jié)果放在累加器中。參與運(yùn)算的操作數(shù)可以是寄存器或存儲(chǔ)器。積為雙字節(jié)長(zhǎng)時(shí),放在AX中;乘積為雙字長(zhǎng)時(shí),分別存放在DX(乘積的高l6位)和AX中。[例]執(zhí)行下列指令序列MOVAL,F(xiàn)IRSTMULSECONDMOVTHIRD,AX;將內(nèi)存單元FIRST和SECOND的兩個(gè)字節(jié)的內(nèi)容相乘,乘積放在由THIRD尋址的兩個(gè)內(nèi)存單元內(nèi)。MUL指令運(yùn)行結(jié)果只影響標(biāo)志位CF和OF。(2)IMUL指令指令格式:IMULSRCIMUL指令為帶符號(hào)數(shù)相乘指令,即將源操作數(shù)與累加器中的數(shù)都作為帶符號(hào)數(shù)相乘,其余與MUL指令相同。用法例子如下:eq\o\ac(○,1)字節(jié)乘法:IMULDH;(AL)乘(DH),有符號(hào)數(shù)留在AX中。eq\o\ac(○,2)字乘法:IMULDI;(AX)乘(DI),有符號(hào)數(shù)放在DX和AX中。(3)AAM指令該指令完成對(duì)BCD碼乘法結(jié)果的調(diào)整。AAM對(duì)在AX中兩個(gè)非組合的BCD數(shù)的乘積進(jìn)行調(diào)整,以得到正確的非組合的BCD數(shù)的乘積。調(diào)整方法為,用10(0AH)除AL寄存器,商存AH寄存器,余數(shù)存AL寄存器。[例3]設(shè)AL寄存器為07H,BL寄存器為09H,執(zhí)行指令MULAL,BLAAM后,AX寄存器為0603H。4.除法指令(1)DIV指令指令格式:DIVSRC該指令為無符號(hào)除法指令。用指定的源操作數(shù)SRC去除累加器中的值,所得商和余數(shù)分別放在AL和AH(字節(jié)操作)或AX和DX(字操作)中。除法指令中進(jìn)行字節(jié)操作時(shí):AX中存放16位被除數(shù),源操作數(shù)為8位除數(shù),結(jié)果的8位商存放在AL中,8位余數(shù)存放在AH中;進(jìn)行字操作時(shí):DX存放32位被除數(shù)的高位字,AX存放被除數(shù)的低位字,源操作數(shù)為16位除數(shù),結(jié)果的16位商存放在AX中,16位余數(shù)存放在DX中。[例]下列指令序列MOVCL,100DIVCL完成累加器AX中的數(shù)除以100,商在AL中,余數(shù)在AH中。(2)其它除法指令I(lǐng)DIV:完成帶符號(hào)數(shù)的除法運(yùn)算。AAD:BCD碼除法結(jié)果調(diào)整。完成AX中的兩位非組合的BCD數(shù)在兩個(gè)數(shù)相除之前進(jìn)行校正。CBW:字節(jié)轉(zhuǎn)換為字。具體操作是按AL的符號(hào)位擴(kuò)展到整個(gè)AH中。CWD:字轉(zhuǎn)換為雙字。按AX的符號(hào)擴(kuò)展到整個(gè)DX中。3.3.3邏輯運(yùn)算和移位指令
1.邏輯運(yùn)算指令(1)NOT指令指令格式:NOTOP該指令完成對(duì)操作數(shù)求反,然后送回原處。例如:NOTAL此指令對(duì)標(biāo)志位無影響。(2)AND指令指令格式:ANDDST,SRC該指令實(shí)現(xiàn)對(duì)兩操作數(shù)進(jìn)行按位邏輯?°與?±運(yùn)算,結(jié)果送目的操作數(shù)。目的操作數(shù)可為通用寄存器、存儲(chǔ)器,源操作數(shù)可以是立即數(shù)、寄存器、存儲(chǔ)器。用法例子如下::ANDAL,80HANDAX,BXANDBETA[DI],SI(3)OR指令
指令格式:ORDST,SRC該指令是對(duì)兩操作數(shù)進(jìn)行按位邏輯?°或?±運(yùn)算,結(jié)果回送目的操作數(shù)。操作數(shù)規(guī)定與AND相同。例如:ORAL,80HORBX,SIORBX,DATA“或”運(yùn)算令標(biāo)志位CF=O,OF=0,其”或”操作后的結(jié)果反映在標(biāo)志位PF、SF和ZF上。(4)XOR指令
指令格式:XORDST,SRC該指令完成對(duì)兩個(gè)操作數(shù)進(jìn)行按位?°異或?±運(yùn)算,結(jié)果回送目的操作數(shù)。例如:XORAL,OFHXORAX,BXXORCX,DATA_WORDXOR執(zhí)行后,標(biāo)志位CF=0,OF=0,“異或”操作結(jié)果反映在標(biāo)志位PF、SF和ZF上。(5)TEST指令指令格式:TESTOP1,OP2TEST指令的操作與AND指令完全相同,但結(jié)果不回送目的操作數(shù),僅反映在狀態(tài)標(biāo)志位上。TEST指令的操作數(shù)規(guī)定與AND相同,對(duì)標(biāo)志位的影響亦與AND相同,即:CF=0,OF=0,結(jié)果反映在標(biāo)志位PF、SF和ZF上。例如:TESTAX,DXTESTDATA_WORD,SITESTBETA[BX][SI],CXTESTAL,MAXX12.移位指令移位指令可將寄存器或存儲(chǔ)單元的8位或16位的內(nèi)容向左或向右移動(dòng)l位或多位。(1)SAL/SHI指令指令格式:SAL/SHIOPmSAL(算術(shù)左移)和SHL(邏輯左移)指令將操作數(shù)OP左移m位,移位后空出的位填零。操作數(shù)可以是寄存器、存儲(chǔ)器。m是移位次數(shù),為1時(shí)取立即數(shù),大于l時(shí)先將m賦予CL寄存器。例如:SHLAH,1或MOVCL,4SHLAX,CL(2)SAR指令
指令格式:SAROPm該指令為算術(shù)右移指令。將指定操作數(shù)右移m位,最低位進(jìn)入標(biāo)志位CF,其它位依次右移,但符號(hào)位(最高位)保持不變。m的規(guī)定與SHL相同。例如:.MOVCL,5SARAX,CL(3)SHR指令
指令格式:SHROPm該指令為邏輯右移指令。與SAR類似,最低位進(jìn)入標(biāo)志位CF,但移位后空位的最高位填0。3.循環(huán)移位指令8086/8088有四條循環(huán)移位指令,它們是:ROLOPm;左循環(huán)移位ROROPm;右循環(huán)移位RCLOPm;帶進(jìn)位的左循環(huán)移位RCROPm;帶進(jìn)位的右循環(huán)移位循環(huán)移位指令可對(duì)字節(jié)或字進(jìn)行操作,操作數(shù)可以是寄存器或存儲(chǔ)器。可以移位1次,也可以移位由CL寄存器規(guī)定的次數(shù),這時(shí),需先做:MOVCL,mROL和ROR循環(huán)移位指令未把標(biāo)志位CF包含在循環(huán)的環(huán)中。ROL指令每執(zhí)行1次,其最高位一方面進(jìn)入CF,另一方面返回操作數(shù)的最低位;ROR與ROL不同,每執(zhí)行1次,其最低位一方面進(jìn)入CF,另一方面循環(huán)回操作數(shù)的最高位。RCL和RCR的循環(huán)的環(huán)中包括標(biāo)志位CF。RCL每執(zhí)行1次,操作數(shù)的最高位進(jìn)入CF,而原有CF的內(nèi)容送到操作數(shù)的最低位;RCR每執(zhí)行1次,標(biāo)志位的內(nèi)容送操作數(shù)的最高位,而操作數(shù)的最低位送CF。左移一位,只要左移后的數(shù)未超過一個(gè)字節(jié)或一個(gè)字的表示范圍,則相當(dāng)于原數(shù)乘2,右移一位相當(dāng)于除2。3.3.4串操作指令串可以是字節(jié)串(一組字節(jié))或字串(一組字)。串指令有兩類,每類有5種。一類是串操作命令,一類是控制操作重復(fù)執(zhí)行的前綴命令。串操作時(shí),下列寄存器及標(biāo)志起著特定的作用,程序應(yīng)根據(jù)操作的具體要求先賦予初值。SI寄存器源串變址用DI寄存器目的串變址用CX寄存器重復(fù)次數(shù)寄存器AL/AX掃描值(關(guān)鍵字)FLAGS中標(biāo)志位:DF0表示重復(fù)操作中DI、SI應(yīng)自動(dòng)增量,1表示自動(dòng)減量。ZF用于控制掃描或比較操作結(jié)果1.基本串操作命令(1)MOVS指令該指令將由SI作為偏移地址的源串中的一個(gè)字節(jié)或字,傳送到由DI作為偏移地址的目的串,且相應(yīng)修改偏移地址,以指向串中下一個(gè)元素。傳送完一個(gè)字節(jié)或字后,則依據(jù)控制標(biāo)志位DF和源、目的操作數(shù)的屬性,修改偏移地址。在使用MOVS指令之前,必須將源、目的操作數(shù)的偏移地址分別送SI、DI,并設(shè)置DF。(2)MOVSB/MOVSW指令字節(jié)串/字串傳送命令,不帶操作數(shù),地址修改MOVSB命令以±l形式修改偏移地址,MOVSW以±2形式修改偏移地址。其余與MOVS相同。(3)MPS指令指令格式:MPSDST,SRC字節(jié)串或字串比較指令。從由SI作為偏移地址的源串中減去由DI為偏移地址的目標(biāo)串(字或字節(jié)),減的結(jié)果不送至任何操作數(shù),僅反映到標(biāo)志位上。同時(shí)修改源、目的串的偏移地址,以指向串中的下一個(gè)元素。標(biāo)志位AF、CF、OF、PF、SF和ZF反映兩串元素之間的關(guān)系。(4)CMPSB/CMPSW字節(jié)串/字串比較,無操作數(shù)。(5)LODSOP讀出字節(jié)串或字串。從由SI為偏移地址的源串中讀出一個(gè)字節(jié)或一個(gè)字送AL或AX,同時(shí)修改偏移地址,指向串的下一個(gè)元素。此指令對(duì)標(biāo)志位無影響。(6)LODSB/LODSW字節(jié)或字操作,無操作數(shù)。(7)SCASDST搜索(掃描)串元素命令。從AL(字節(jié)操作)或AX的內(nèi)容中減去由DI作為偏移地址的目標(biāo)串元素。結(jié)果不改變累加器的值,只改變標(biāo)志位。利用SCAS指令可以進(jìn)行搜索,此時(shí)將搜索關(guān)鍵字放在AL(字節(jié))或AX(字)中,用于查找字符串中有無此關(guān)鍵字,并記錄查找次數(shù)。(8)SCASB/SCASW搜索串中字節(jié)或字元素,無操作數(shù)。(9)STOSOP存儲(chǔ)字節(jié)或字串的指令。意義為將AL(字節(jié))或AX(字)中內(nèi)容,存儲(chǔ)到以DI為偏移地址的目的串中,同時(shí)修改偏移地址,指向串的下一個(gè)元素。(10)STOSB/STOSW存儲(chǔ)字節(jié)串/字串,無操作數(shù)。2.重復(fù)前綴(1)REP可作為串傳送、串比較、串存儲(chǔ)、串搜索指令的前綴。最常用的是串傳送指令,使用時(shí)數(shù)據(jù)長(zhǎng)度必須放在CX中。(2)REPE/REPZ用于串傳送、串搜索指令的前綴,使緊隨其后的指令重復(fù)執(zhí)行,直到CX為0或ZF=0為止。(3)REPNE/REPNZ用于串比較或串搜索指令的前綴,使其重復(fù)執(zhí)行直到CX=0或ZF=l為止。3.3.5程序控制指令8086/8088程序中指令的執(zhí)行順序是由代碼寄存器CS和指針I(yè)P來決定的。程序轉(zhuǎn)移指令用來改變這兩個(gè)寄存器的內(nèi)容,從而改變程序的執(zhí)行順序。轉(zhuǎn)移指令分四組:無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、循環(huán)控制指令及有關(guān)中斷指令。1.無條件轉(zhuǎn)移指令(1)JMPOP(標(biāo)號(hào))無條件轉(zhuǎn)移到目的單元,無返回值。段內(nèi)直接轉(zhuǎn)移,范圍為段內(nèi)任何位置(±32K)。若轉(zhuǎn)移范圍在±127B之內(nèi)時(shí),則稱之為段內(nèi)短轉(zhuǎn)移。例如:JMPSHORTLOOPl;段內(nèi)短轉(zhuǎn)移段間直接轉(zhuǎn)移,可轉(zhuǎn)到程序的任何位置,例如:JMPFARPTRLOOPl此時(shí)需用LOOPl的段地址和偏移地址取代當(dāng)前的CS和IP。段內(nèi)間接轉(zhuǎn)移,可轉(zhuǎn)移到段內(nèi)的任何位置,例如:JMPCX指令執(zhí)行時(shí)用CX的內(nèi)容取代當(dāng)前IP,而CS不變。段間間接轉(zhuǎn)移,可轉(zhuǎn)移到程序的任何位置。例如:JMPSEGOFF指令執(zhí)行時(shí),在由SEGOFF的段和偏移量所確定的雙字單元中,用較小地址的字單元內(nèi)容取代IP,較大地址字單元內(nèi)容取代CS。(2)CALLOP調(diào)用指令。(3)RET返回指令。2.條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令以將上一條指令的執(zhí)行結(jié)果為測(cè)試條件,各條件轉(zhuǎn)移指令所用測(cè)試條件不同,滿足條件時(shí)則轉(zhuǎn)移到指令規(guī)定的轉(zhuǎn)移地址去執(zhí)行,否則繼續(xù)按原順序執(zhí)行。本類指令的轉(zhuǎn)移的目的地址在土127字節(jié)以內(nèi),并且都不影響標(biāo)志位。本類指令大體上分三類:(1)單個(gè)標(biāo)志位條件轉(zhuǎn)移指令(2)無符號(hào)數(shù)的條件轉(zhuǎn)移指令(見表3-4)(3)帶符號(hào)數(shù)的條件轉(zhuǎn)移指令(見表3-5)3.循環(huán)指令循環(huán)控制指令用來控制一個(gè)程序段的重復(fù)執(zhí)行。(1)LOOP標(biāo)號(hào)目標(biāo)地址在+1~128字節(jié)以內(nèi),重復(fù)次數(shù)置CX中且CX10時(shí)循環(huán)。它等效于下述2條指令的組合:DECCXJNEAGAIN4.中斷指令中斷指令允許程序在各需要時(shí)去啟動(dòng)中斷服務(wù)程序。INTn啟動(dòng)由類型碼n所規(guī)定的中斷服務(wù)程序。INTO溢出中斷。IRET中斷返回。第4章匯編語言程序設(shè)計(jì)
4.1匯編語言的基本概念1.機(jī)器語言計(jì)算機(jī)能夠直接識(shí)別并執(zhí)行某種操作的二進(jìn)制代碼串稱為機(jī)器指令,全部機(jī)器指令的集合構(gòu)成計(jì)算機(jī)的指令系統(tǒng)。這個(gè)指令系統(tǒng)能直接為計(jì)算機(jī)識(shí)別和執(zhí)行,稱為機(jī)器語言。2.匯編語言用指令助記符、符號(hào)地址、標(biāo)號(hào)等書寫程序的語言,稱為匯編語言。用匯編語言編寫的程序,稱為匯編語言源程序。匯編語言的基本概念3.匯編語言源程序匯編語言源程序是由一行行匯編語句組成的。每一行是一個(gè)語句,表示一種操作,并在書寫格式和意義上與機(jī)器語言基本一致。匯編語言源程序必須翻譯轉(zhuǎn)換為機(jī)器語言程序后,計(jì)算機(jī)才能識(shí)別和執(zhí)行。4.匯編程序?qū)R編語言源程序翻譯成機(jī)器語言程序的過程叫匯編。實(shí)現(xiàn)這種功能的語言程序稱為匯編程序。將機(jī)器代碼轉(zhuǎn)換成匯編語言語句的過程稱為反匯編。第5章總線學(xué)習(xí)要點(diǎn):微型機(jī)算機(jī)總線的基礎(chǔ)知識(shí)微機(jī)常用總線的結(jié)構(gòu)和功能5.1總線
5.1.1概述“總線”(BUS):是指計(jì)算機(jī)系統(tǒng)中各部件所共享的一組連線,是一組公共信息傳輸線路中多個(gè)部件之間公用的數(shù)據(jù)通道。也就是說,微型計(jì)算機(jī)系統(tǒng)中,各部件之間傳輸信息的通路叫總線,兩個(gè)部件之間的專用連線就不能叫總線。內(nèi)部總線:微處理器是一種能完成計(jì)算機(jī)中央處理部件功能的大規(guī)模集成(LSl)或超大規(guī)模集成(VLSl)芯片,芯片內(nèi)部傳輸信息的通路稱為內(nèi)部總線。芯片總線芯片總線:微型計(jì)算機(jī)是由微處理器(CPU)、存儲(chǔ)器、輸入/輸出(I/O)電路及譯碼電路、時(shí)鐘電路等支持邏輯電路芯片組成的,這種連接芯片與芯片之間的信息傳輸通路,稱之為芯片總線或元件級(jí)總線。系統(tǒng)總線系統(tǒng)總線:微型計(jì)算機(jī)系統(tǒng)(MCS)是在微型計(jì)算機(jī)基礎(chǔ)上加上外圍設(shè)備、系統(tǒng)軟件等組成的,為了使系統(tǒng)靈活、簡(jiǎn)便、便于開發(fā)與維修,多數(shù)微型計(jì)算機(jī)系統(tǒng)都采用模塊板結(jié)構(gòu),每個(gè)模塊板具有獨(dú)立的功能。例如由CPU、時(shí)鐘電路及支持邏輯電路組成的主板、彩色顯示控制板、軟盤驅(qū)動(dòng)板、打印機(jī)接口板等,各電路板之間的信息傳輸通路,稱之為系統(tǒng)總線。1.總線特點(diǎn)(1)共享性,可同時(shí)掛接多個(gè)部件和設(shè)備。(2)每個(gè)設(shè)備和部件通過門電路與總線中的信號(hào)線相連。
2.總線標(biāo)準(zhǔn)的特性(1)物理特性指的是總線物理連接的方式,包括總線的根數(shù)、總線插頭、插座形狀、引腳排列等。(2)功能特性描寫總線中每一根線的功能??偩€分成3組:地址總線:其寬度表示直接訪問存儲(chǔ)器的地址范圍。數(shù)據(jù)總線:其寬度表示訪問一次存儲(chǔ)器或外部設(shè)備最多能夠交換數(shù)據(jù)的位數(shù)??刂瓶偩€:控制總線包括CPU與外界聯(lián)系的各種控制命令??偩€按照總線傳送信息的方向可分為單向總線和雙向總線。根據(jù)總線傳送信息的類別,可以把總線分為數(shù)據(jù)總線、地址總線和控制總線。3.總線分類按在系統(tǒng)的不同層次、位置,總線可分為如下幾類:(1)片內(nèi)總線:是指在微處理機(jī)芯片內(nèi)部的總線。例如CPU芯片中的內(nèi)部總線。(2)主板局部總線:是指在印刷電路板上連接各插件的公共通路。例如CPU及其支持芯片與其局部資源之間的通道即屬于主板局部總線。目前,PC系列機(jī)使用比較多的總線有ISA、EISA、VESA、PCI以及AGP等標(biāo)準(zhǔn)總線。3.總線分類(3)系統(tǒng)總線:是指模塊式微處理機(jī)機(jī)箱內(nèi)的底板總線,用來連接構(gòu)成微處理機(jī)的各插件板。使用比較多的系統(tǒng)總線有:16位的MULTIBUSI、STDBUS和32位的MULTBUSⅡ、STD32以及VME等。(4)外部總線:是用于微處理機(jī)系統(tǒng)與系統(tǒng)之間、微處理機(jī)系統(tǒng)與外部設(shè)備之間以及微處理機(jī)系統(tǒng)和儀器儀表之間的通信通道。例如,串行通信的EIA-RS232C總線。4.目前微型計(jì)算機(jī)系統(tǒng)中使用的系統(tǒng)總線(5)PCI總線:是外設(shè)互連總線的簡(jiǎn)稱,它是一種32/64位標(biāo)準(zhǔn)總線。PCI總線是一種與CPU隔離的總線結(jié)構(gòu),并能與CPU同時(shí)工作。這種總線數(shù)據(jù)傳輸率為132MB/s,適用于Pentium微型計(jì)算機(jī)。
5.總線的信息傳送方式總線的信息傳送方式有三種:(1)同步傳送:這種方式采用精確穩(wěn)定時(shí)鐘作為各設(shè)備操作的基準(zhǔn)時(shí)間。傳送過程中,主、從設(shè)備都必須按嚴(yán)格的時(shí)間規(guī)定完成相應(yīng)的動(dòng)作。(2)異步傳送:這種方式要求總線上的各主、從設(shè)備操作速度要嚴(yán)格匹配。5.2.2系統(tǒng)總線工作原理在微機(jī)系統(tǒng)中,CPU是在時(shí)鐘信號(hào)控制下,按節(jié)拍有序地執(zhí)行指令序列。從取指令開始,經(jīng)過分析指令、對(duì)操作數(shù)尋址,然后執(zhí)行指令、保存操作結(jié)果,這個(gè)過程稱為指令執(zhí)行周期。在一個(gè)指令執(zhí)行周期中,通過總線進(jìn)行一次對(duì)存儲(chǔ)單元或I/O端口讀或?qū)懙牟僮鬟^程稱為總線周期。8086系統(tǒng)總線周期由四個(gè)時(shí)鐘組成(T1~T4),需要時(shí)還要加入數(shù)量不定的等待周期(Tw)。若在完成一個(gè)總線周期后不發(fā)生任何總線操作,則填入空閑狀態(tài)時(shí)鐘周期(Ti);若存儲(chǔ)器或I/O端口在數(shù)據(jù)傳送中不能以足夠快的速度作出響應(yīng),則在T3與T4間插入一個(gè)或若干個(gè)Tw。1.讀周期的時(shí)序讀周期的時(shí)序一個(gè)基本的讀周期一般包含如下幾個(gè)狀態(tài)。T1狀態(tài):信號(hào)有效,指出讀內(nèi)存還是I/O;地址輸出分高4位和低16位;ALE輸出地址鎖存信號(hào);信號(hào)表示高8位數(shù)據(jù)總線上信息可用。T2狀態(tài):地址信號(hào)消失,AD15~AD0進(jìn)入高阻狀態(tài),為讀入數(shù)據(jù)作準(zhǔn)備。T3狀態(tài):若存儲(chǔ)器和外設(shè)速度足夠快,此時(shí)CPU接收數(shù)據(jù)。Tw狀態(tài):在存儲(chǔ)器和外設(shè)速度較慢時(shí),還要在T3之后插入一個(gè)或幾個(gè)Tw。T4狀態(tài):CPU對(duì)數(shù)據(jù)總線采樣,獲得數(shù)據(jù)。2.寫周期的時(shí)序?qū)懼芷诘臅r(shí)序一個(gè)基本的寫周期一般包含如下幾個(gè)狀態(tài)。T1狀態(tài):信號(hào)有效,指出寫內(nèi)存還是I/O;地址輸出分高4位和低16位;ALE輸出地址鎖存信號(hào);信號(hào)表示高8位數(shù)據(jù)總線上信息可用。T2狀態(tài):CPU往AD15-AD0發(fā)出數(shù)據(jù)。T3狀態(tài):CPU繼續(xù)提供狀態(tài)信息和數(shù)據(jù)。Tw狀態(tài):在存儲(chǔ)器和外設(shè)速度較慢時(shí),還要在T3之后插入一個(gè)或幾個(gè)Tw。T4狀態(tài):CPU撤除信息。
5.4外部總線存儲(chǔ)器6.1微型計(jì)算機(jī)存儲(chǔ)器基礎(chǔ)存儲(chǔ)器是存放數(shù)據(jù)和程序的部件,是一個(gè)具有專用功能的設(shè)備。任何以微型計(jì)算機(jī)為中心組成的微型機(jī)系統(tǒng)都必須配置一定容量的存儲(chǔ)器。1.存儲(chǔ)器的分類(如圖6-1)如圖6-1如圖6-22.微型計(jì)算機(jī)存儲(chǔ)器系統(tǒng)微型計(jì)算機(jī)存儲(chǔ)器系統(tǒng)主要由主存儲(chǔ)器、高速緩沖存儲(chǔ)器、輔助存儲(chǔ)器以及管理這些存儲(chǔ)器的硬件和軟件組成。如圖6-2所示。主存儲(chǔ)器通常安裝在主機(jī)系統(tǒng)板上,存放當(dāng)前正在運(yùn)行的程序和數(shù)據(jù)。主存儲(chǔ)器由半導(dǎo)體存儲(chǔ)器RAM和ROM組成,目前裝機(jī)容量一般在1GB2GB。3.存儲(chǔ)器的主要技術(shù)指標(biāo)(1)存儲(chǔ)容量存儲(chǔ)容量是存儲(chǔ)器所容納的二進(jìn)制位的總?cè)萘?,或存?chǔ)器所包含的存儲(chǔ)單元的總位數(shù)。對(duì)于按字節(jié)編址的存儲(chǔ)器而言,N位地址碼的存儲(chǔ)器最大可編址2N個(gè)存儲(chǔ)單元,其容量為2NB。6.2半導(dǎo)體存儲(chǔ)器(1)微型計(jì)算機(jī)中主存儲(chǔ)器由半導(dǎo)體存儲(chǔ)器芯片組成。(2)半導(dǎo)體存儲(chǔ)器根據(jù)其基本功能的不同分為只讀存儲(chǔ)器(ROM)和隨機(jī)存取存儲(chǔ)器(RAM)。RAM又依存儲(chǔ)單元電路的構(gòu)成原理及是否需要刷新分為靜態(tài)RAM(SRAM)和動(dòng)態(tài)RAM(DRAM)。6.2.1隨機(jī)存儲(chǔ)器RAMRAM是一種既能寫入又能讀出的存儲(chǔ)器。RAM只能在電源電壓正常時(shí)工作,一旦斷電,RAM內(nèi)的信息便完全丟失。1.SRAMRAM是靜態(tài)隨機(jī)訪問存儲(chǔ)器的簡(jiǎn)稱。SRAM存儲(chǔ)機(jī)理是利用雙穩(wěn)態(tài)觸發(fā)電路的某一種穩(wěn)定狀態(tài)表示二進(jìn)制信息的。集成度低。由于RAM的基本存儲(chǔ)單元是雙穩(wěn)態(tài)觸發(fā)器,每一個(gè)單元存放一位二進(jìn)制信息,故所存信息不需進(jìn)行刷新。但SRAM的存取速度很高,多用于要求高速存取的場(chǎng)合,例如高速緩沖存儲(chǔ)器。2.動(dòng)態(tài)存儲(chǔ)器DRAMDRAM是一種以電荷形式來存儲(chǔ)信息的半導(dǎo)體存儲(chǔ)器。它具有集成度高、功耗小、存取速度快、價(jià)格低廉的特點(diǎn)。如果電容充有電荷,則稱為存儲(chǔ)“1”;如果電容放電,沒有電荷,則稱為存儲(chǔ)“0”。由于用電容存儲(chǔ)信息,電容上的電荷會(huì)因各種泄漏電流而泄漏掉,導(dǎo)致信息丟失,因此,DRAM需定時(shí)為電容補(bǔ)充電荷,即DRAM單管的DRAM基本存儲(chǔ)電路DRAM集成度高,容量大,每位成本低,各類計(jì)算機(jī)目前都是用大量的DRAM芯片來組成主存儲(chǔ)器。
6.3
Cache存儲(chǔ)器Cache存儲(chǔ)器是介于CPU和主存儲(chǔ)器之間的?a個(gè)容量小、但速度接近于CPU的存儲(chǔ)器,一般裝在CPU內(nèi)部。在微機(jī)運(yùn)行中,從主存儲(chǔ)器讀寫數(shù)據(jù)的速度,遠(yuǎn)遠(yuǎn)跟不上高速CPU的運(yùn)行速度。為此,將一段當(dāng)前使用頻繁的程序段和數(shù)據(jù)段,存放在高速緩沖存儲(chǔ)器中,當(dāng)CPU需要從主存中讀出程序和數(shù)據(jù)時(shí),可同時(shí)訪問主存和高速緩存。如果所需要的內(nèi)容恰好在高速緩存中,則CPU可很快獲得,稱為?°命中?±;否則再在主存中讀取。當(dāng)CPU發(fā)現(xiàn)高速緩存中已不再是最活躍的信息時(shí),就將內(nèi)容更換,將主存中另一段當(dāng)前活躍的程序和數(shù)據(jù)調(diào)入高速緩存。這樣,CPU直接訪問的存儲(chǔ)空間,可以有像主存那樣大的容量,而讀寫速度接近于CPU。目前,高檔微機(jī)中已配置高速緩沖存儲(chǔ)器。2.Cache存儲(chǔ)器的結(jié)構(gòu)Cache容量與主存容量相比是很小的,目前高檔微機(jī)主存容量配置大體是1GB到2GB的情況下,Cache的典型值是8KB512KB。現(xiàn)代微型計(jì)算機(jī)中的Cache存儲(chǔ)器一般分成兩部分:一部分直接集成在微處理器芯片上,稱為一級(jí)Cache。一級(jí)Cache由于在芯片內(nèi)部,離CPU近,數(shù)據(jù)位寬,存取速度更快;但由于片內(nèi)集成成本高等原因,其容量不可能做得很大,當(dāng)前Pentium為16KB。為了擴(kuò)充Cache存儲(chǔ)器容量,在片外又設(shè)計(jì)了二級(jí)Cache。二級(jí)Cache容量較大,奔騰機(jī)的二級(jí)Cache容量為256KB或512KB。使用兩個(gè)分離的指令Cache和數(shù)據(jù)Cache可以克服CPU對(duì)Cache讀取指令和數(shù)據(jù)時(shí)可能產(chǎn)生的沖突,效率更好。第7章輸入輸出與接口技術(shù)學(xué)習(xí)要點(diǎn):接口的基本概念、功能、分類I/O接口與存儲(chǔ)器編址方式I/O接口地址編碼方法CPU與外設(shè)的數(shù)據(jù)傳送方式7.1接口的基本概念如前所述,微型計(jì)算機(jī)是由CPU、存儲(chǔ)器和許多諸如鍵盤、顯示器、打印機(jī)等輸入、輸出設(shè)備組成的。輸入、輸出設(shè)備通過系統(tǒng)總線與CPU進(jìn)行信息交換,根據(jù)CPU的要求進(jìn)行工作,但是他們往往不能與CPU直接相連,通過一個(gè)連接部件進(jìn)行緩沖和協(xié)調(diào),完成CPU與外部設(shè)備之間信息的類型和格式的轉(zhuǎn)換。這個(gè)連接部件就是接口電路,又稱為I/O接口。接口的作用和地位如圖7-1所示。7.1.1接口功能及結(jié)構(gòu)1.I/O接口功能I/O接口的基本功能是能夠根據(jù)CPU的要求對(duì)I/O設(shè)備進(jìn)行管理與控制,實(shí)現(xiàn)信號(hào)邏輯及工作時(shí)序的轉(zhuǎn)換,保證CPU與外設(shè)之間能進(jìn)行可靠有效的信息交換。主要功能如下:(1)I/O接口作為微型機(jī)與外設(shè)之間傳送數(shù)據(jù)的寄存、緩沖站,以適應(yīng)兩者速度上的差異。(2)設(shè)置地址譯碼和設(shè)備選擇邏輯,以保證CPU按照特定的路徑訪問選定的I/O設(shè)備。提供CPU與外設(shè)之間交換數(shù)據(jù)所需的控制邏輯和狀態(tài)信號(hào),以保證接受CPU輸出的命令或參數(shù),按指定的命令控制設(shè)備完成相應(yīng)的操作,并把指定設(shè)備的工作狀態(tài)返回給CPU。I/O操作通常所謂的I/O操作,是指I/O端口操作,而不是I/O設(shè)備操作,即CPU訪問的是與I/O設(shè)備相連的I/O端口,而不是籠統(tǒng)的I/O外設(shè),如圖7-2所示。2.I/O接口的基本結(jié)構(gòu)I/O接口電路通常為大規(guī)模集成電路。雖然不同功能的基本接口電路的結(jié)構(gòu)有所不同,但大體上都是由寄存器和控制邏輯兩大部分組成,如圖7-3所示。I/O接口的基本結(jié)構(gòu)(1)寄存器寄存器是接口電路的核心。通常所說的接口,大都是指這些寄存器,主要有:數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器分為輸入鎖存器和輸出緩存器兩種。輸入鎖存器用來暫存外設(shè)送來的數(shù)據(jù);輸出緩存器用來暫存處理器送往外設(shè)的數(shù)據(jù)。數(shù)據(jù)緩存器實(shí)現(xiàn)高速的CPU與慢速的外設(shè)之間數(shù)據(jù)的傳送。
控制寄存器控制寄存器用于存放CPU發(fā)來的控制命令和其它信息,以確定接口電路的工作方式和功能??刂萍拇嫫魇侵粚懠拇嫫?,其內(nèi)容只能由CPU寫入,而不能讀出。
狀態(tài)寄存器用于保存外設(shè)現(xiàn)行各種狀態(tài)信息。它的內(nèi)容可以被處理器讀出,從而使CPU了解外設(shè)狀況及數(shù)據(jù)傳送過程中發(fā)生的事情,供CPU作出正確的判斷,使它能安全可靠地與接口完成交換數(shù)據(jù)的各種操作。特別當(dāng)CPU以程序查詢方式同外設(shè)交換數(shù)據(jù)時(shí),狀態(tài)寄存器更是不可少。CPU通過查詢外設(shè)的忙/閑,正確/錯(cuò)誤,就緒/不就緒等狀態(tài),才能正確地與之交換信息。7.2.1接口編址方式I/O端口的編址方式要使I
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年配氣機(jī)構(gòu):進(jìn)排氣門項(xiàng)目建議書
- 醫(yī)院職工食堂建設(shè)合同范本
- 勞動(dòng)合同法附合同范本
- 藥店銷售協(xié)議合同范本
- 個(gè)人 融資傭金合同范本
- 博物館合同范例
- 勞務(wù)合同范本小時(shí)工
- 土地土地租賃合同范本
- 租憑吊車合同范本
- 冷凝機(jī)組采購合同范本
- 2025年春新外研版(三起)英語三年級(jí)下冊(cè)課件 Unit2第3課時(shí)Fuelup
- 2025年徐州地鐵集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 6月26國際禁毒日防范青少年藥物濫用禁毒宣傳課件
- 老舊小區(qū)基礎(chǔ)設(shè)施環(huán)境改造工程施工質(zhì)量因素的分析及控制方法
- 伊斯蘭教完整版本
- 華師版初中九年級(jí)數(shù)學(xué)HS下冊(cè)教案(全一冊(cè))
- 2024年10月自考00107現(xiàn)代管理學(xué)試題及答案
- 2024解析:第十八章電功率-講核心(解析版)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 嚴(yán)重創(chuàng)傷患者緊急救治血液保障模式與輸血策略中國專家共識(shí)(2024版)
- 【川教版】《生命 生態(tài) 安全》五下全冊(cè)課件
評(píng)論
0/150
提交評(píng)論