微機(jī)原理、匯編語言與接口技術(shù)課件_第1頁
微機(jī)原理、匯編語言與接口技術(shù)課件_第2頁
微機(jī)原理、匯編語言與接口技術(shù)課件_第3頁
微機(jī)原理、匯編語言與接口技術(shù)課件_第4頁
微機(jī)原理、匯編語言與接口技術(shù)課件_第5頁
已閱讀5頁,還剩410頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章

微型計(jì)算機(jī)系統(tǒng)概述

1、1微型計(jì)算機(jī)的發(fā)展、應(yīng)用及其分類

1、1、1微機(jī)計(jì)算機(jī)的發(fā)展1971年,美國Intel公司研究并制造了I4004微處理器芯片。該芯片能同時(shí)處理4位二進(jìn)制數(shù),集成了2300個(gè)晶體管,每秒可進(jìn)行6萬次運(yùn)算,成本約為200美元。它是世界上第一個(gè)微處理器芯片,以它為核心組成的MCS-4計(jì)算機(jī),標(biāo)志了世界第一臺(tái)微型計(jì)算機(jī)的誕生。微機(jī)概念:以大規(guī)模、超大規(guī)模構(gòu)成的微處理器作為核心,配以存儲(chǔ)器、輸入/輸出接口電路及系統(tǒng)總路線所制造出的計(jì)算機(jī)。劃分階段的標(biāo)志:以字長(zhǎng)和微處理器型號(hào)。第一代4位和低檔8位機(jī)Intel4004第二代中高檔8位機(jī)8080/8085、Z80、MC6800第三代16位機(jī)Intel8086、Z8000、MC6800第四代32位機(jī)80386、80486第五代64位機(jī)IntelPentium(1971-1973)(1974-1978)(1978-1981)(1981-1992)(1993后)特點(diǎn):1、速度越來越快。2、容量越來越大。3、功能越來越強(qiáng)。1、1、2微型計(jì)算機(jī)的應(yīng)用1、科學(xué)計(jì)算和科學(xué)研究計(jì)算機(jī)主要應(yīng)用于解決科學(xué)研究和工程技術(shù)中所提出的數(shù)學(xué)問題(數(shù)值計(jì)算)。

2、數(shù)據(jù)處理

(信息處理)主要是利用計(jì)算機(jī)的速度快和精度高的特點(diǎn)來對(duì)數(shù)字信息進(jìn)行加工。3、工業(yè)控制

用單板微型計(jì)算機(jī)實(shí)現(xiàn)DDC級(jí)控制,用衛(wèi)星計(jì)算機(jī)實(shí)現(xiàn)SCC級(jí)監(jiān)督管理控制,用高檔微型計(jì)算機(jī)實(shí)現(xiàn)SCC或低層MIS管理已屢見不鮮。4、計(jì)算機(jī)輔助系統(tǒng)

計(jì)算機(jī)輔助系統(tǒng)主要有計(jì)算機(jī)輔助教(CAI)、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)、計(jì)算機(jī)集成制造(CIMS)等系統(tǒng)。

5、人工智能

人工智能主要就是研究解釋和模擬人類智能、智能行為及其規(guī)律的一門學(xué)科,包括智能機(jī)器人,模擬人的思維過程,計(jì)算機(jī)學(xué)習(xí)等等。其主要任務(wù)是建立智能信息處理理論,進(jìn)而設(shè)計(jì)可以展現(xiàn)某些近似于人類智能行為的計(jì)算系統(tǒng)。1、1、3微型計(jì)算機(jī)的分類按應(yīng)用對(duì)象分為:1、單片機(jī):又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:它主要是將微處理器、部分存儲(chǔ)器、輸入輸出接口都集成在一塊集成電路芯片上,一塊芯片就成了一臺(tái)計(jì)算機(jī)2、單板機(jī):將計(jì)算機(jī)的各個(gè)部分都組裝在一塊印制電路板上,包括微處理器/存儲(chǔ)器/輸入輸出接口,還有簡(jiǎn)單的七段發(fā)光二極管顯示器、小鍵盤、插座等。功能比單片機(jī)強(qiáng),適于進(jìn)行生產(chǎn)過程的控制??梢灾苯釉趯?shí)驗(yàn)板上操作,適用于教學(xué)。

3、PC機(jī)(PersonalComputer):面向個(gè)人單獨(dú)使用的一類微機(jī),實(shí)現(xiàn)各種計(jì)算、數(shù)據(jù)處理及信息管理等。1、2計(jì)算機(jī)中數(shù)據(jù)的表示和編碼

計(jì)算機(jī)中的數(shù)據(jù)都是采用二進(jìn)制形式存儲(chǔ)和處理的,二進(jìn)制數(shù)只有兩個(gè)數(shù)字0和1,這與我們?nèi)粘I钪兴褂玫氖M(jìn)制數(shù)是不同的。

1、2、1計(jì)算機(jī)中常用的進(jìn)制數(shù)

人們最常用的數(shù)是十進(jìn)制數(shù),計(jì)算機(jī)中采用的是二進(jìn)制數(shù),同時(shí)有的時(shí)候?yàn)榱撕?jiǎn)化二進(jìn)制數(shù)據(jù)的書寫,也采用八進(jìn)制和十六進(jìn)制表示方法。下面將分別介紹這幾種常用的進(jìn)制。

1、十進(jìn)制數(shù)

十進(jìn)制數(shù)是大家熟悉的,用0,1,2,…,8,9十個(gè)不同的符號(hào)來表示數(shù)值,它采用的是“逢十進(jìn)一,借一當(dāng)十”的原則。

2、二進(jìn)制表示法基數(shù)為10的記數(shù)制叫十進(jìn)制;基數(shù)為2的記數(shù)制叫做二進(jìn)制。二進(jìn)制數(shù)的計(jì)算規(guī)則是“逢二進(jìn)一,借一當(dāng)二”。

二進(jìn)制表示數(shù)值方法如下:

NB=±Ki*2i其中:Ki=0或1ni=-m例:二進(jìn)制數(shù)1011.1表示如下:(1011.1)B=1*23+0*22+1*21+1*20

+1*2-1運(yùn)算規(guī)則:加法運(yùn)算:0+0=00+1=11+0=11+1=10(逢二進(jìn)一)減法運(yùn)算:0-0=010-1=1(借位)1-0=11-1=0乘法運(yùn)算:0*0=00*1=01*0=01*1=1除法運(yùn)算0/1=01/1=13、八進(jìn)制表示法八進(jìn)制數(shù)是基數(shù)為八的計(jì)數(shù)制。八進(jìn)制數(shù)主要采用0,1,2,…,7這八個(gè)阿拉伯?dāng)?shù)字。八進(jìn)制數(shù)的運(yùn)算規(guī)則為“逢八進(jìn)一,借一當(dāng)八”。八進(jìn)制表示數(shù)值方法如下:

NO=±Ki*8i其中:Ki=0、1、2、3、4、5、6、7ni=-m例:(467.6)O=4*82

+6*81

+7*80+6*8-14、十六進(jìn)制表示法基數(shù)為16,用0-9、A-F十五個(gè)字符來數(shù)值,逢十六進(jìn)一。各位的權(quán)值為16i。二進(jìn)制表示數(shù)值方法如下:

NH=±Ki*16i其中:Ki=0-9、A-Fni=-m例:(56D.3)H=5*162

+6*161+13*160+3*16-11、2、2進(jìn)制間的轉(zhuǎn)換1、二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)換(1)、二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)方法:按二進(jìn)制數(shù)的位權(quán)進(jìn)行展開相加即可。例:11101.101=1×24+1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=16+8+4+0+1+0.5+0.25+0.125=29.875

(2)、十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)方法:A、將整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,然后再把轉(zhuǎn)換結(jié)果進(jìn)行相加。B、整數(shù)轉(zhuǎn)換采用除2取余法:用2不斷地去除要轉(zhuǎn)換的數(shù),直到商為0。再將每一步所得的余數(shù),按逆序排列,便可得轉(zhuǎn)換結(jié)果。C、小數(shù)轉(zhuǎn)換采用乘2取整法:每次用2與小數(shù)部分相乘,取乘積的整數(shù)部分,再取其小數(shù)部分乘2直到小部分為0。將所取整數(shù)順序放在小數(shù)點(diǎn)后即為轉(zhuǎn)換結(jié)果。例:將(136)D轉(zhuǎn)換為二進(jìn)制數(shù)。

2136余數(shù)(結(jié)果)低位

268----------0234----------0217----------028----------124----------022----------021----------00----------1高位轉(zhuǎn)換結(jié)果:(136)D=(10001000)B例:將(0.625)D轉(zhuǎn)換為二進(jìn)制數(shù)。0.625*2

1.25*2

0.5*2

1.0

取整:高位低位轉(zhuǎn)換結(jié)果:(0.625)D=(0.101)B2、二進(jìn)制數(shù)和八進(jìn)制數(shù)、十六進(jìn)制數(shù)間的轉(zhuǎn)換(1)、二進(jìn)制數(shù)到八進(jìn)制數(shù)、十六進(jìn)制數(shù)的轉(zhuǎn)換A、二進(jìn)制數(shù)到八進(jìn)制數(shù)轉(zhuǎn)換采用“三位化一位”的方法。從小數(shù)點(diǎn)開始向兩邊分別進(jìn)行每三位分一組,向左不足三位的,從左邊補(bǔ)0;向右不足三位的,從右邊補(bǔ)0。B、二進(jìn)制數(shù)到十六進(jìn)制數(shù)的轉(zhuǎn)換采用“四位化一位”的方法。從小數(shù)點(diǎn)開始向兩邊分別進(jìn)行每四位分一組,向左不足四位的,從左邊補(bǔ)0;向右不足四位的,從右邊補(bǔ)0。例:將(1000110.01)B轉(zhuǎn)換為八進(jìn)制數(shù)和十六進(jìn)制數(shù)。

1

000110.01001

000110.010

(106.2)O二進(jìn)制數(shù)到十六進(jìn)制數(shù)的轉(zhuǎn)換:(1000110.01)B=1000110.0101000110.0100(46.4)H(2)、八進(jìn)制、十六進(jìn)制數(shù)到二進(jìn)制數(shù)的轉(zhuǎn)換方法:采用“一位化三位(四位)”的方法。按順序?qū)懗雒课话诉M(jìn)制(十六進(jìn)制)數(shù)對(duì)應(yīng)的二進(jìn)制數(shù),所得結(jié)果即為相應(yīng)的二進(jìn)制數(shù)。例:將(352.6)o轉(zhuǎn)換為二進(jìn)制數(shù)。

352.6011101010110=(11101010.11)B1、2、3數(shù)的定點(diǎn)與浮點(diǎn)表示對(duì)R進(jìn)制數(shù)NR=±S*R±E,可以有很多表示方法。如:十進(jìn)制數(shù):265.78可以有:265.78、2657.8*10-1、0.26578*103

、2.6578*102等。1、定點(diǎn)數(shù)表示法一般采用兩種簡(jiǎn)單的約定:定點(diǎn)整數(shù)和定點(diǎn)小數(shù)。

(1)、定點(diǎn)整數(shù)A、帶符號(hào)整數(shù):某個(gè)N位二進(jìn)制數(shù),其最高位為符號(hào)位,其它N-1位為數(shù)值部分:

NfNn-2Nn-3……N2N1N0符號(hào)位

數(shù)值部分

小數(shù)點(diǎn)B、無符號(hào)整數(shù):所有的數(shù)位都用來表示數(shù)值。

Nn-1Nn-2Nn-3……N3N2N1N0

數(shù)值部分小數(shù)點(diǎn)(2)、定點(diǎn)小數(shù)用最高位表示符號(hào),其它N-1位表示數(shù)值部分,將小數(shù)點(diǎn)定在數(shù)值部分的最高位左邊。

NfNn-2Nn-1……N2N1N0符號(hào)位

數(shù)值部分

小數(shù)點(diǎn)

2、浮點(diǎn)數(shù)表示浮點(diǎn)數(shù):小數(shù)點(diǎn)在數(shù)據(jù)中的位置可以左右移動(dòng)。

N=±S*R±E在計(jì)算機(jī)內(nèi),存儲(chǔ)的格式:

EfE(m位)

SfS(n位)

階碼部分

尾數(shù)部分其中:Ef:階碼,表示階碼的符號(hào)

E:階碼,指出小數(shù)點(diǎn)的位置

Sf:數(shù)碼,數(shù)值的符號(hào)位

S:尾數(shù),決定數(shù)值的精度1、2、4機(jī)器數(shù)的表示機(jī)器數(shù):數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的編碼。機(jī)器數(shù)的真值:機(jī)器數(shù)所代表的實(shí)際數(shù)值。常用的編碼方案:原碼、反碼、補(bǔ)碼。1、原碼表示碼原碼:用最高位表示符號(hào),其中:0----正、1----負(fù),其它位表示數(shù)值的絕對(duì)值。定義:

[X]原=X0〈=X〈1定點(diǎn)小數(shù)

1+X-1〈X〈=0[X]原=X0〈=X〈=2n-1定點(diǎn)整數(shù)

2n+1+X-(2n-1)〈=X〈=0例:求X1=0.1011,X2=-0.1011的原碼表示。(8位)[X1]原

=X1=01011000[X2]原=1+X2=11011000小數(shù)點(diǎn)位置例:求X1=1011,X2=-1011的原碼。(8位)[X1]原=00001011[X2]原=10001011小數(shù)點(diǎn)位置0的表示形式(8位)[+0]原=00000000[-0]原=10000000特點(diǎn)A、原碼與真值的對(duì)應(yīng)關(guān)系簡(jiǎn)單。B、0的編碼不唯一,處理運(yùn)算不方便。2、反碼表示法反碼:最高一位表示符號(hào),數(shù)值位是對(duì)負(fù)數(shù)取反。[+0]反=00000000[-0]反=1111111[+1100111]反=01100111[-1100111]反=100110003、補(bǔ)碼表示法正數(shù)的補(bǔ)碼和原碼相同。負(fù)數(shù)的補(bǔ)碼=反碼+1。例:求0.1011和-0.1011的補(bǔ)碼。(8位)[0.1011]補(bǔ)=[0.1011]原=01011000[-0.1011]補(bǔ)=[-1011000]反+1=10100111+1=10101000[0]補(bǔ)=[+0]補(bǔ)=[-0]補(bǔ)=000000001、2、5計(jì)算機(jī)中常用的編碼1、ASCII碼

常用的編碼方式為美國標(biāo)準(zhǔn)信息交換(AmericanStandardCardforInformationInterchange,ASCII碼)。

2、BCD碼

BCD碼是一種用4位二進(jìn)制數(shù)字來表示一位十進(jìn)制數(shù)字的編碼,也成為二進(jìn)制編碼表示的十進(jìn)制數(shù)(BinaryCodeDecimal),簡(jiǎn)稱BCD碼。表1-2示出了十進(jìn)制數(shù)0-15的BCD碼。

BCD碼有兩種格式:(1)壓縮BCD碼格式(PackedBCDFormat)

用4個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,就是用0000B-1001B來表示十進(jìn)制數(shù)0-8。例如:十進(jìn)制數(shù)4256的壓縮BCD碼表示為:0100001001010110B(2)非壓縮BCD碼格式(UnpackedBCDFormat)用8個(gè)二進(jìn)制位表示一個(gè)十進(jìn)制位,其中,高四位無意義,我們一般用xxxx表示,低四位和壓縮BCD碼相同。例如:十進(jìn)制數(shù)4256的非壓縮BCD碼表示為:

xxxx0100xxxx0010xxxx0101xxxx0110B

1、3微型計(jì)算機(jī)的一般概念

1、3、1中央處理器的組成中央處理器(CPU)由運(yùn)算器和控制器組成。1、運(yùn)算器:計(jì)算機(jī)中加工和處理數(shù)據(jù)的功能部件。功能:(1)、對(duì)數(shù)據(jù)進(jìn)行加工處理,主要包括算術(shù)和邏輯運(yùn)算,如加、減、乘、與、或、非運(yùn)算等。

(2)、暫時(shí)存放參與運(yùn)算的數(shù)據(jù)和中間結(jié)果。ALU數(shù)據(jù)寄存器1#數(shù)據(jù)寄存器2#存儲(chǔ)器外設(shè)2、控制器控制和指揮計(jì)算機(jī)內(nèi)各功能部件協(xié)同動(dòng)作,完成計(jì)算機(jī)程序功能。由程序計(jì)數(shù)器(IP)、指令寄存器(IR)、指令譯碼器(ID)和時(shí)序信號(hào)發(fā)生器組成。(1)、程序計(jì)數(shù)器(IP):程序指令所在單元地址。(2)、指令寄存器(IR):保存當(dāng)前正在執(zhí)行的一條指令。(3)、指令譯碼器(ID):將指令的操作碼翻譯成機(jī)器能識(shí)別的命令信號(hào)。(4)、時(shí)序信號(hào)發(fā)生器:根據(jù)指令譯碼器(ID)產(chǎn)生的命令信號(hào)產(chǎn)生具體的控制信號(hào)。3.寄存器陳列包括一組通用寄存器組和專用寄存器。通用寄存器用于暫存參加運(yùn)算的一個(gè)操作數(shù),例如數(shù)據(jù)寄存器可以用來存放8位或16位的二進(jìn)制操作數(shù)。這些操作數(shù)可以是參加操作的數(shù)據(jù),操作的中間結(jié)果,也可以是操作數(shù)的地址,大部分算術(shù)和邏輯運(yùn)算指令都可以使用這些數(shù)據(jù)寄存器。專用寄存器通常有指令指針I(yè)P或程序計(jì)數(shù)器PC和堆棧指針SP等

1、3、2微型計(jì)算機(jī)的組成ABDBCBCPU

存儲(chǔ)器I/O接口外設(shè)(微型計(jì)算機(jī)組成框圖)1、微處理器微處理器(CPU)是大規(guī)模集成電路技術(shù)做成的芯片,芯片內(nèi)集成有控制器、運(yùn)算器和寄存器等相關(guān)部件,完成對(duì)計(jì)算機(jī)系統(tǒng)內(nèi)各部件進(jìn)行統(tǒng)一協(xié)調(diào)和控制。2、存儲(chǔ)器功能:存放程序和數(shù)據(jù)。存儲(chǔ)器內(nèi)存(主存)外存(輔存)RAMROMSRAMDRAMROMEPROME2PROM軟盤、硬盤、光盤3、I/O設(shè)備和I/O接口(1)、I/O設(shè)備:微機(jī)配備的輸入/輸出設(shè)備(外設(shè))。標(biāo)準(zhǔn)輸入/輸出設(shè)備(控制臺(tái)):鍵盤和顯示器(CRT)。I/O設(shè)備輸入設(shè)備輸出設(shè)備鍵盤鼠標(biāo)掃描儀、數(shù)碼相機(jī)顯示器打印機(jī)繪圖儀(2)、I/O接口:連接外設(shè)備和系統(tǒng)總線,完成信號(hào)轉(zhuǎn)換、數(shù)據(jù)緩沖、與CPU進(jìn)行信號(hào)聯(lián)絡(luò)等工作。顯示器卡:完成顯示器與總線的連接。聲卡:完成聲音的輸入/輸出。網(wǎng)卡:完成網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)換。掃描卡:連接掃描儀到計(jì)算機(jī)。調(diào)制解調(diào)器卡:模擬信號(hào)與數(shù)字信號(hào)相互轉(zhuǎn)換。鍵盤接口、打印機(jī)接口等。232接口:串行數(shù)據(jù)接口。USB接口:通用串行接口。4、系統(tǒng)總線(1)、總線:傳遞信息的一組公用導(dǎo)線。(2)、系統(tǒng)總線:從處理器引出的若干信號(hào)線,CPU通過它們與存儲(chǔ)器或I/O設(shè)備進(jìn)行信息交換。系統(tǒng)總線分為:(A)、地址總線:傳遞地址信息的總線,即AB。CPU在地址總線上輸出將要訪問的內(nèi)存單元或I/O端口的地址,該總線為單向總線。內(nèi)存容量的計(jì)算:16條地址線可訪問216=64KB。

20條地址線可訪問220=1MB。

1K=1024B1M=1024KB1G=1024MB

(B)、數(shù)據(jù)總線:傳遞數(shù)據(jù)信息的總線,即DB。在CPU進(jìn)行讀操作時(shí),內(nèi)存或外設(shè)的數(shù)據(jù)通過數(shù)據(jù)總線送往CPU;在CPU進(jìn)行寫操作時(shí),CPU數(shù)據(jù)通過數(shù)據(jù)總線送往內(nèi)存或外設(shè),數(shù)據(jù)總線是雙向總線。(C)、控制總線:傳遞控制信息的總線,即CB??刂瓶偩€的方向:一部分是從CPU輸出:通過對(duì)指令的譯碼,由CPU內(nèi)部產(chǎn)生,由CPU送到存儲(chǔ)器、輸入/輸出接口電路和其它部件。如時(shí)鐘信號(hào)、控制信號(hào)等。另一部分是由系統(tǒng)中的部件產(chǎn)生,送往CPU,如:中斷請(qǐng)求信號(hào)、總線請(qǐng)求信號(hào)、狀態(tài)信號(hào)??刂瓶偩€的部件(總線主控設(shè)備):

CPU和DMA控制器。被總線控制的部件(總線控制設(shè)備):

存儲(chǔ)器和I/O設(shè)備??偩€的使用特點(diǎn):1、在某一時(shí)刻,只能由一個(gè)總線主控設(shè)備來控制總線,其它總線主控設(shè)備此時(shí)必須放棄對(duì)總線的控制。2、在連接系統(tǒng)的各個(gè)設(shè)備中,在某一時(shí)刻只能有一發(fā)送者發(fā)送信號(hào),但可以有多個(gè)設(shè)備從總線上同時(shí)獲得信號(hào)。3、通過總線插槽來接口板連接。1、3、3微型計(jì)算機(jī)系統(tǒng)的組成一個(gè)微型計(jì)算機(jī)系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)。硬件和軟件的結(jié)合,才能使計(jì)算機(jī)正常工作運(yùn)行。

計(jì)算機(jī)硬件系統(tǒng)是一個(gè)為執(zhí)行程序建立物質(zhì)基礎(chǔ)的物理裝置,稱為硬件或裸機(jī)。

計(jì)算機(jī)軟件系統(tǒng)指為運(yùn)行、管理、應(yīng)用、維護(hù)計(jì)算機(jī)所編制的所有程序及文檔的總和。依據(jù)功能的不同,軟件分為系統(tǒng)軟件和應(yīng)用軟件兩大類。

1、3、4微型計(jì)算機(jī)的工作過程在進(jìn)行計(jì)算前,應(yīng)做如下工作:(1)、用助記符號(hào)指令(匯編語言)編寫程序(源程序);(2)、用匯編軟件(匯編程序)將源程序匯編成計(jì)算機(jī)能識(shí)別的機(jī)器語言程序;(3)、將數(shù)據(jù)和程序通過輸入設(shè)備送入存儲(chǔ)器中存放。完成5+6=?的程序:MOVA,05H/B0H05H

;把05送入累加器AADDA,06H/04H06H

;06與A中內(nèi)容相加,結(jié)果存入累加器AHLT/F4H

;停止所有操作。1、取指令階段的執(zhí)行過程:(設(shè)程序從00H開始存放)(1)、將程序計(jì)數(shù)器(PC或IP)的內(nèi)容送地址寄存器AR。(2)、程序計(jì)數(shù)器PC的內(nèi)容自動(dòng)加1變?yōu)?1H,為取下一條指令作好準(zhǔn)備。(3)、地址寄存器AR將00H通過地址總線送至存儲(chǔ)器地址譯碼器譯碼,選中00H單元。(4)、CPU發(fā)出“讀”命令。(5)、所選中的00單元的內(nèi)容B0H讀至數(shù)據(jù)總線DB上。(6)、經(jīng)數(shù)據(jù)總線DB,讀出的B0H送至數(shù)據(jù)寄存器DR。(7)、數(shù)據(jù)寄存器DR將其內(nèi)容送至指令寄存器IR中,經(jīng)過譯碼CPU“識(shí)別”出這個(gè)操作碼為“MOVA,05H”指令,于是控制器發(fā)出執(zhí)行這條指令的各種控制命令。PCARALUABDRIRIDPLA00H100H200B0H0105H0204H0306H04F4H34讀命令B0H56B0H7控制信號(hào)(取第一條指令操作示意圖)2、執(zhí)行指令階段的執(zhí)行過程:(1)、將程序計(jì)數(shù)器(PC或IP)的內(nèi)容送地址寄存器AR。(2)、程序計(jì)數(shù)器PC的內(nèi)容自動(dòng)加1變?yōu)?2H,為取下一條指令作好準(zhǔn)備。(3)、地址寄存器AR將01H通過地址總線送至存儲(chǔ)器地址譯碼器譯碼,選中01H單元。(4)、CPU發(fā)出“讀”命令。(5)、所選中的01H單元的內(nèi)容05H讀至數(shù)據(jù)總線DB上。(6)、經(jīng)數(shù)據(jù)總線DB,讀出的05H送至數(shù)據(jù)寄存器DR。(7)、由控制碼計(jì)算機(jī)已知到讀出的是立即數(shù),并要求將它送入累加器A中,所以數(shù)據(jù)寄存器DR通過內(nèi)部總線將05H送入累加器A中。PCARALUABDRIRIDPLA02H101H200B0H0105H0204H0306H04F4H34讀命令05H567控制信號(hào)05H(執(zhí)行第一條指令操作示意圖)習(xí)題1.微型計(jì)算機(jī)按照字長(zhǎng)和微處理器芯片作為每個(gè)階段的標(biāo)志,將微型計(jì)算機(jī)分為哪幾個(gè)階段?2.計(jì)算機(jī)的特點(diǎn)是什么?主要有哪些應(yīng)用領(lǐng)域?3.計(jì)算機(jī)是由哪幾部分組成的?闡述每部分的作用。4.畫圖說明計(jì)算機(jī)執(zhí)行指令A(yù)DDAL,06H的工作過程。5.將下列各十進(jìn)制數(shù)轉(zhuǎn)換成為二進(jìn)制數(shù)(最多保留6位小數(shù))(1)221(2)12.375(3)123.25(4)1236.以十六進(jìn)制形式,給出下列十進(jìn)制數(shù)對(duì)應(yīng)的8位二進(jìn)制補(bǔ)碼表示。(1)46(2)-46(3)-128(4)1277.給出下列十進(jìn)制數(shù)對(duì)應(yīng)的壓縮和非壓縮BCD碼形式。(1)58(2)1624第二章微處理器

通過本章的學(xué)習(xí),讀者應(yīng)該掌握以下內(nèi)容:8086/8088微處理器的結(jié)構(gòu)及指令執(zhí)行的操作過程8086/8088在最大和最小模式下引腳功能8086的操作時(shí)序80x86的實(shí)地址方式和虛地址方式

2、18086/8088微處理器2、1、18086/8088微處理器的結(jié)構(gòu)及執(zhí)行程序的操作過程8086:Intel系列的16位微處理器,16條數(shù)據(jù)線、20條地址線,可尋址地址范圍220=1MB,8086工作時(shí),只要一個(gè)5V電源和一個(gè)時(shí)鐘,時(shí)鐘頻率為5MHz

。8088:內(nèi)部與8086兼容,也是一個(gè)16位微處理器,只是外部數(shù)據(jù)總線為8位,所以稱為準(zhǔn)16位微處理器。它具有包括乘法和除法的16位運(yùn)算指令,所以能處理16位數(shù)據(jù),還能處理8位數(shù)據(jù)。8088有20根地址線,所以可尋址的地址空間達(dá)220即1M字節(jié)。AHALBHBLCHCLDHDLSPBPDISI通用寄存器運(yùn)算寄存器ALU標(biāo)志執(zhí)行部分控制電路123456CSDSSSESIP

內(nèi)部寄存器I/O控制電路地址加法器20位16位8位指令隊(duì)列緩沖器外總線執(zhí)行部件總線接口部件8086CPU結(jié)構(gòu)圖1、總線接口部件功能:(1)、從取指令送到指令隊(duì)列。(2)、CPU執(zhí)行指令時(shí),到指定的位置取操作數(shù),并將其送至要求的位置單元中??偩€接口部件的組成:(1)、四個(gè)段地址寄存器

CS,16位代碼段寄存器;

DS,16位數(shù)據(jù)段寄存器;

ES,16位附加段寄存器;

SS,16位堆棧段寄存器。(2)、16位指令指針寄存器IP(PC)。(3)、20位的地址加法器。(4)、六字節(jié)的指令隊(duì)列緩沖器。說明:(1)、指令隊(duì)列緩沖器:在執(zhí)行指令的同時(shí),將取下一條指令,并放入指令隊(duì)列緩沖器中。CPU執(zhí)行完一條指令后,可以指令下一條指令(流水線技術(shù))。提高CPU效率。(2)、地址加法器:產(chǎn)生20位地址。CPU內(nèi)無論是段地址寄存器還是偏移量都是16位的,通過地址加法器產(chǎn)生20位地址。2、執(zhí)行部件作用:(1)、從指令隊(duì)列中取出指令。(2)、對(duì)指令進(jìn)行譯碼,發(fā)出相應(yīng)相應(yīng)的控制信號(hào)。(3)、接收由總線接口送來的數(shù)據(jù)或發(fā)送數(shù)據(jù)至接口。(4)、進(jìn)行算術(shù)運(yùn)算。執(zhí)行部件的組成:(1)、四個(gè)通用寄存器AX、BX、CX、DX。四個(gè)通用寄存器都是16位或作兩個(gè)8位來使用。(2)、專用寄存器SP------堆棧指針寄存器BP------基址指針寄存器DI-------目的變址寄存器SI-------源變址寄存器(3)、算術(shù)邏輯單元ALU

完成8位或者16位二進(jìn)制算術(shù)和邏輯運(yùn)算,計(jì)算偏移量。(4)、數(shù)據(jù)暫存寄存器協(xié)助ALU完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。(5)、執(zhí)行部件的控制電路從總線接口的指令隊(duì)列取出指令操作碼,通過譯碼電路分析,發(fā)出相應(yīng)的控制命令,控制ALU數(shù)據(jù)流向。(6)、標(biāo)志寄存器16位寄存器,其中有7位未用。D15D0OFDFIFTFSFZFAFPFCF進(jìn)借位標(biāo)志奇偶標(biāo)志半進(jìn)借位標(biāo)志零標(biāo)志符號(hào)標(biāo)志單步中斷中斷允許方向標(biāo)志溢出標(biāo)志1-有進(jìn)、借位0-無進(jìn)、借位1-低8位有偶數(shù)個(gè)10-低8位有奇數(shù)個(gè)11-低4位向高4位有進(jìn)、借位0-低4位向高4位無進(jìn)、借位1-結(jié)果為00-結(jié)果不為03、8086/8088CPU執(zhí)行程序的操作過程(1)、20位地址的形成,并將此地址送至程序存儲(chǔ)器指定單元,從該單元取出指令字節(jié),依次放入指令隊(duì)列中。(2)、每當(dāng)8086的指令隊(duì)列中有2個(gè)空字節(jié),8088指令隊(duì)列中有1個(gè)空字節(jié)時(shí),總線接口部件就會(huì)自動(dòng)取指令至隊(duì)列中。(3)、執(zhí)行部件從總線接口的指令隊(duì)列首取出指令代碼,執(zhí)行該指令。(4)、當(dāng)隊(duì)列已滿,執(zhí)行部件又不使用總線時(shí),總線接口部件進(jìn)入空閑狀態(tài)。(5)、執(zhí)行轉(zhuǎn)移指令、調(diào)用指令、返回指令時(shí),先清空隊(duì)列內(nèi)容,再將要執(zhí)行的指令放入隊(duì)列中。2、1、28086/8088微處理器的引腳功能根據(jù)所連的存儲(chǔ)器和外設(shè)規(guī)模的不同,使它們可以在兩種模式下工作:

系統(tǒng)的最小模式:只有一8086/8088CPU。系統(tǒng)的最大模式:有兩個(gè)或兩個(gè)以上的CPU,一個(gè)為主CPU8086/8088,另一個(gè)為協(xié)CPU8087/8089。指令周期:執(zhí)行一條指令所需要的時(shí)間。總線周期(機(jī)器周期):CPU通過總線與存儲(chǔ)器或I/O接口進(jìn)行一次數(shù)據(jù)傳輸所需的時(shí)間。T狀態(tài)(時(shí)鐘周期):CPU處理動(dòng)作的最小單位。T1T2T3TWT4總線周期

而當(dāng)系統(tǒng)規(guī)模較大時(shí),要求有較強(qiáng)的驅(qū)動(dòng)能力,這樣就需要兩個(gè)獲兩個(gè)以上的微處理器。其中有一個(gè)是主處理器8086或8088,其它的處理器稱為協(xié)處理器,它們協(xié)助主處理器工作。例如8088便通過總線控制器8288來形成各種控制信號(hào)。如圖所示,為8086CPU和8088CPU的引腳信號(hào)圖。共有40條引腳線,這些引腳線用來輸出或接收各種信號(hào):地址線,數(shù)據(jù)線,控制線和狀態(tài)線,電源線和定時(shí)線。

由于8088微處理器是一種準(zhǔn)16位機(jī)。其內(nèi)部結(jié)構(gòu)基本上與8086相同,其信號(hào)也與8086基本相同,只是有一些引腳的功能有所不同,在這里,我們將以8086為例,具體介紹一下最小模式下和最大模式下各位引腳功能,如出現(xiàn)功能不同的引腳再具體講解。

01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7HIGH(SSO)MN//MX/RDHOLD(/RQ//GT0)

HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881、地址/數(shù)據(jù)總線AD15-AD0:地址/數(shù)據(jù)復(fù)用引腳,雙向,三態(tài)。(8086/8088)AD15-AD0:16位地址總線A15-A0,輸出訪問存儲(chǔ)器或I/O的地址信息。(8086)AD15-AD0:16位數(shù)據(jù)總線D15-D0,與存儲(chǔ)器和I/O設(shè)備交換數(shù)據(jù)信息。(8088)AD7-AD0:8位數(shù)據(jù)總線D7-D0,與存儲(chǔ)器和I/O設(shè)備交換數(shù)據(jù)信息。地址/數(shù)據(jù)總線復(fù)用,分時(shí)工作。2、地址/狀態(tài)總線A19/S6-A16/S3A19/S6-A16/S3:地址/狀態(tài)總線復(fù)用引腳,輸出,三態(tài)。A19/S6-A16/S3:輸出訪問存儲(chǔ)器的20位地址的高4位地址A19-A16。A19/S6-A16/S3:輸出CPU的工作狀態(tài)。A19/S6-A16/S3:分時(shí)工作,T1狀態(tài):輸出地址的高4位信息;T2、T3、T4狀態(tài):輸出狀態(tài)信息。S6:指示8086/8088當(dāng)前是否與總線相連,S6=0,表示8086/8088當(dāng)前與總線相連。S5:表明中斷允許標(biāo)志當(dāng)前的設(shè)置。S5=0,表示CPU中斷是關(guān)閉的,禁止一切可屏蔽中斷源的中斷請(qǐng)求;S5=1,表示CPU中斷是開放的,允許一切可屏蔽中斷源的中斷申請(qǐng)。S4、S3:指出當(dāng)前使用段寄存器的情況。S4、S3組合所對(duì)應(yīng)的段寄存器情況

S4S3段寄存器

00當(dāng)前正在使用ES01當(dāng)前正在使用SS10當(dāng)前正在使用CS11當(dāng)前正在使用DS3、控制總線(1)、/BHE/S7:高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳。在總線周期的T1狀態(tài),此引腳輸出/BHE信號(hào),表示高8位數(shù)據(jù)線D15-D8上的數(shù)據(jù)有效。在T2、T3、TW和T4狀態(tài)時(shí),此引腳輸出S7狀態(tài)信號(hào)。/BHE、A0組合:/BHEA0總線使用情況

00從偶地址單元開始,在16位數(shù)據(jù)總線上進(jìn)行字傳送

01從奇地址單元開始,在高8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送

10從偶地址單元開始,在低8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送

11無效S7:8086中無定義。

8088中,在最大模式中,為高電平;在最小模式中,輸出SS0信號(hào),此信號(hào)與其它信號(hào)合作將總線周期的讀/寫動(dòng)作。

(2)、/RD:讀信號(hào),三態(tài)輸出,低電平有效。/RD=0,表示當(dāng)前CPU正在對(duì)存儲(chǔ)器或I/O端口進(jìn)行讀操作。(3)、/WR:寫信號(hào),三態(tài)輸出,低電平有效。/WR=0,表示當(dāng)前CPU正在對(duì)存儲(chǔ)器或I/O端口進(jìn)行讀操作。(4)、M//IO:存儲(chǔ)器或IO端口訪問信號(hào),三態(tài)輸出。M//IO=1,表示CPU正在訪問存儲(chǔ)器;M//IO=0,表示CPU正在訪問IO端口。(5)、READY:準(zhǔn)備就緒信號(hào),輸入,高電平有效。READY=1,表示CPU訪問的存儲(chǔ)器或IO端口已準(zhǔn)備好傳送數(shù)據(jù)。若CPU在總線周期T3狀態(tài)檢測(cè)到READY=0,表示未準(zhǔn)備好,CPU自動(dòng)插入一個(gè)或多個(gè)等待狀態(tài)TW,直到READY=1為止。(6)、INTR:可屏蔽中斷請(qǐng)求信號(hào),輸入,高電平有效。當(dāng)INTR=1,表示外設(shè)向CPU發(fā)出中斷請(qǐng)求,CPU在當(dāng)前指令周期的最后一個(gè)T狀態(tài)去采樣該信號(hào),若此時(shí),IF=1,CPU響應(yīng)中斷,執(zhí)行中斷服務(wù)程序。(7)、/INTA:中斷響應(yīng)信號(hào),輸出,低電平有效。表示CPU響應(yīng)了外設(shè)發(fā)來的中斷申請(qǐng)信號(hào)INTR。(8)、NMI:不可屏蔽中斷請(qǐng)求信號(hào),輸入,上升沿觸發(fā)。該請(qǐng)求信號(hào)不受IF狀態(tài)的影響,也不能用軟件屏蔽,一旦該信號(hào)有效,則執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷。(9)、/TEST:測(cè)試信號(hào),輸入,低電平有效。當(dāng)CPU執(zhí)行WAIT指令時(shí),每隔個(gè)時(shí)鐘周期對(duì)/TEST進(jìn)行一次測(cè)試,若/TEST=1,繼續(xù)等待,直到/TEST=0。(10)、RESET:復(fù)位信號(hào),輸入,高電平有效。RESET信號(hào)至少要保持4個(gè)時(shí)鐘周期。復(fù)位時(shí):標(biāo)志寄存器、IP、DS、SS、ES為0,CS=FFFFH,復(fù)位后CPU從FFFF0H處開始執(zhí)行。(11)、ALE:地址鎖存允許信號(hào),輸出,高電平有效。用來鎖存地址信號(hào)A15-A0,分時(shí)使用AD15-AD0地址/數(shù)據(jù)總線。(12)、DT//R:數(shù)據(jù)發(fā)送/接收控制信號(hào),三態(tài)輸出。此信號(hào)控制數(shù)據(jù)總線上的收發(fā)器8286的數(shù)據(jù)傳送方向,DT//R=1,發(fā)送數(shù)據(jù)----寫操作;DT//R=0,接收數(shù)據(jù)--讀操作。(13)、/DEN:數(shù)據(jù)允許信號(hào),三態(tài)輸出,低電平有效。作為數(shù)據(jù)總線上收發(fā)器8286的選通信號(hào)。(14)、HOLD:總線請(qǐng)求信號(hào),輸入,高電平有效。當(dāng)系統(tǒng)中CPU之外的另一個(gè)控制器要求使用總線時(shí),通過它向CPU發(fā)一高電平的請(qǐng)求信號(hào)。(15)、HLDA:總線請(qǐng)求響應(yīng)信號(hào),輸出,高電平有效。當(dāng)HLDA有效時(shí),表示CPU對(duì)其它控制器的總線請(qǐng)求作出響應(yīng),與此同時(shí),所有與三總線相接的CPU的線腳呈現(xiàn)高阻抗?fàn)顟B(tài),從而讓出總線。(16)、MN//MX:工作模式選擇信號(hào),輸入。MN//MX=1,表示CPU工作在最小模式系統(tǒng);MN//MX=0,表示CPU工作在最大模式系統(tǒng)。(17)、CLK:主時(shí)鐘信號(hào),輸入。8086/8088的時(shí)鐘頻率為5MHZ。4、電源線和地線8086/8088采用單+5V,1、20引腳為地線。5、最大模式下的有關(guān)引腳(1)、QS1、QS2:指令隊(duì)列狀態(tài)信號(hào),輸出。

QS1QS2含義

00無操作

01將指令首字節(jié)送入指令隊(duì)列

10隊(duì)列為空

11將指令其余字節(jié)送指令隊(duì)列(2)、S2、S1、S0:總線周期狀態(tài)信號(hào),三態(tài)輸出。

S2、S1、S0狀態(tài)信號(hào)的編碼

S2S1S0操作過程產(chǎn)生信號(hào)

000發(fā)中斷響應(yīng)信號(hào)/INTA001讀I/O端口IORC010寫I/O端口IOWC011暫停無

100取指令/MRDC101讀存儲(chǔ)器/MRDC110寫存儲(chǔ)器/AMWC111無作用無(3)、/RQ//GT1、/RQ//GT2:總線請(qǐng)求信號(hào)(輸入)/總線請(qǐng)求允許信號(hào)(輸出),雙向,低電平有效。(4)、/LOCK:總線封鎖信號(hào),三態(tài)輸出,低電平有效。/LOCK=0,CPU不允許其它控制器占用總線。2、1、38086/8088系統(tǒng)存儲(chǔ)器的組織和堆棧1、8086/8088系統(tǒng)存儲(chǔ)器的組織8086/8088是16位的微處理器,在組成存儲(chǔ)系統(tǒng)時(shí),總是使偶地址單元的數(shù)據(jù)通過AD0

~

AD7傳送,而奇地址單元的數(shù)據(jù)通過AD8~

AD15傳送,所有的操作可以是按字節(jié)為單位也可以是按字為單位來處理的,但8086/8088系統(tǒng)中的存儲(chǔ)器是以8位(一個(gè)字節(jié))為單位對(duì)數(shù)據(jù)進(jìn)行處理的。因此每個(gè)字節(jié)用一個(gè)唯一的地址碼表示,這稱為存儲(chǔ)器的標(biāo)準(zhǔn)結(jié)構(gòu)。

需要說明的是,在存儲(chǔ)器中,任何連續(xù)存放的兩個(gè)字節(jié)都可以稱為一個(gè)字。存放時(shí),其低位字節(jié)可從奇數(shù)地址開始,這種方式稱為非規(guī)則方式,奇數(shù)地址的字稱為非規(guī)則字。其高位字節(jié)可從偶數(shù)地址開始,這種方式稱為規(guī)則方式,。將偶數(shù)地址的字稱為規(guī)則字。

(2)8086存儲(chǔ)器的分段結(jié)構(gòu)

由于8086/8088有20條地址線,可以尋址多達(dá)220(1M)字節(jié),所以把1M字節(jié)的存儲(chǔ)器分為任意數(shù)量的段,其中每一段最多可達(dá)尋址216(64K)字節(jié)。

8086CPU把1M字節(jié)的存儲(chǔ)器空間劃分為任意的一些存儲(chǔ)段,一個(gè)存儲(chǔ)段是存儲(chǔ)器中可獨(dú)立尋址的一個(gè)邏輯單位,也稱邏輯段,每個(gè)段的長(zhǎng)度為64K字節(jié)。

8086CPU中有四段寄存器:CS,DS,SS和ES,這四個(gè)段寄存器存放了CPU當(dāng)前可以尋址的四個(gè)段的基址,也即可以從這四個(gè)段寄存器規(guī)定的邏輯段中存取指令代碼和數(shù)據(jù)。一旦這四個(gè)段寄存器的內(nèi)容被設(shè)定,就規(guī)定了CPU當(dāng)前可尋址的段。(3)8086存儲(chǔ)器的邏輯地址和物理地址存儲(chǔ)器中的每個(gè)存儲(chǔ)單元都可以用兩個(gè)形式的地址來表示:實(shí)際地址(或稱物理地址)和邏輯地址。實(shí)際地址:也稱物理地址,是用唯一的20位二進(jìn)制數(shù)所表示的地址,規(guī)定了1M字節(jié)存儲(chǔ)體中某個(gè)具體單元的地址。邏輯地址在程序中使用,即段地址:偏移地址

。(4)物理地址的形成物理地址有兩部分組成:段基址和偏移地址。

8086/8088CPU中有一個(gè)地址加法器,它將段寄存器提供的段地址自動(dòng)乘以10H即左移4位,然后與16位的偏移地址相加,并鎖存在物理地址鎖存器中。如圖所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存儲(chǔ)器物理地址的計(jì)算方法CS0000IP代碼段DS或ES0000SI、DI或BXSS0000SP或BP數(shù)據(jù)段堆棧段存儲(chǔ)器段寄存器和偏移地址寄存器組合關(guān)系2、堆棧堆棧主要用于暫存數(shù)據(jù)和在過程調(diào)用或處理中斷時(shí)暫存斷點(diǎn)信息。

(1)堆棧的概念

堆棧是在存儲(chǔ)器中開辟的一片數(shù)據(jù)存儲(chǔ)區(qū),這片存儲(chǔ)區(qū)的一端固定,另一端活動(dòng),且只允許數(shù)據(jù)從活動(dòng)端進(jìn)出。采用“先進(jìn)后出”的規(guī)則

。(2)堆棧的組織堆棧指示器SP,他總是指向堆棧的棧頂堆棧的伸展方向既可以從大地址向小地址,也可以從小地址向大地址。8086/8088的堆棧的伸展方向是從大地址向小地址。

2、28086總線的操作時(shí)序在微機(jī)系統(tǒng)中,CPU是在時(shí)鐘信號(hào)CLK控制下,按節(jié)拍有序地執(zhí)行指令序列。從取指令開始,經(jīng)過分析指令、對(duì)操作數(shù)尋址,然后執(zhí)行指令、保存操作結(jié)果,這個(gè)過程稱為指令執(zhí)行周期。

指令周期:執(zhí)行一條指令所需要的時(shí)間。總線周期(機(jī)器周期):CPU通過總線與存儲(chǔ)器或I/O接口進(jìn)行一次數(shù)據(jù)傳輸所需的時(shí)間。T狀態(tài)(時(shí)鐘周期):CPU處理動(dòng)作的最小單位。T1T2T3TWT4總線周期2、2、28086的時(shí)序8086的總線時(shí)序包括以下一個(gè)部分:(1)、系統(tǒng)復(fù)位。(2)、存儲(chǔ)器讀操作。(3)、存儲(chǔ)器寫操作。(4)、中斷響應(yīng)操作。(5)、輸入輸出周期。(6)、空轉(zhuǎn)周期??偩€操作總線讀操作:CPU從存儲(chǔ)器或外設(shè)讀取數(shù)據(jù)。總線寫操作:CPU將數(shù)據(jù)寫入存儲(chǔ)器或外設(shè)。1、存儲(chǔ)器讀周期總線周期包括:T1、T2、T3、(TW)、T4機(jī)器周期。(1)、T1周期M//IO信號(hào):從存儲(chǔ)器讀還是從I/O設(shè)備中讀數(shù)據(jù);AD15-AD0、A19/S7-A16/S3:確定20位地址;/BHE:選擇奇地址存儲(chǔ)體選擇。ALE:地址鎖存信號(hào),以使地址/數(shù)據(jù)線分開。(2)、T2狀態(tài)A19/S6-A16/S3:出現(xiàn)S6-S3狀態(tài)信號(hào)。決定段寄存器、IF狀態(tài)、8086CPU不否連在總線上。AD15-AD0:高阻狀態(tài)。/RD:由高電平變?yōu)榈碗娖?,開始進(jìn)行讀操作。/DEN:變低電平,啟動(dòng)收發(fā)器8268,做好接收數(shù)據(jù)的準(zhǔn)備。(3)、T3狀態(tài)若存儲(chǔ)器或I/O端口已做好發(fā)送數(shù)據(jù)準(zhǔn)備,則在T3狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結(jié)束時(shí),CPU從AD15-AD0上讀取數(shù)據(jù)。(4)、TW狀態(tài)在T3狀態(tài),存儲(chǔ)器或外設(shè)沒有準(zhǔn)備好數(shù)據(jù),不能在T3狀態(tài)將數(shù)據(jù)放到總線上,使READY=0,則CPU在T3和T4之間插入一個(gè)或幾個(gè)TW狀態(tài),直到數(shù)據(jù)準(zhǔn)備好READY=1為止。TW狀態(tài)時(shí)總線的動(dòng)作與T3時(shí)相同。(5)、T4狀態(tài)CPU對(duì)數(shù)據(jù)總線進(jìn)行采樣,讀出數(shù)據(jù)。CPU往存儲(chǔ)器或I/O設(shè)備寫數(shù)據(jù)的時(shí)序如下頁所示:CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址輸出數(shù)據(jù)輸出/RDDT//R/DENCPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù)的時(shí)序2、存儲(chǔ)器寫周期(1)、T1狀態(tài)M//IO信號(hào):對(duì)存儲(chǔ)器寫還是對(duì)I/O設(shè)備中寫數(shù)據(jù);AD15-AD0、A19/S7-A16/S3:確定20位地址;/BHE:選擇奇地址存儲(chǔ)體選擇。ALE:地址鎖存信號(hào),以使地址/數(shù)據(jù)線分開。DT//R:為高電平,指示收發(fā)器8286發(fā)送數(shù)據(jù),寫操作。(2)、T2狀態(tài)A19/S6-A16/S3:出現(xiàn)S6-S3狀態(tài)信號(hào)。決定段寄存器、IF狀態(tài)、8086CPU不否連在總線上。AD15-AD0:發(fā)出16位數(shù)據(jù)。/WR:由高電平變?yōu)榈碗娖?,開始進(jìn)行寫操作。/DEN:變低電平,啟動(dòng)收發(fā)器8268,做好發(fā)送數(shù)據(jù)的準(zhǔn)備。(3)、T3狀態(tài)若存儲(chǔ)器或I/O端口已做好接收數(shù)據(jù)準(zhǔn)備,則在T3狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結(jié)束時(shí),CPU將AD15-AD0上數(shù)據(jù)寫入到存儲(chǔ)器或I/O設(shè)備中。(4)、TW狀態(tài)在T3狀態(tài),存儲(chǔ)器或外設(shè)沒有準(zhǔn)備好接收數(shù)據(jù),使READY=0,則CPU在T3和T4之間插入一個(gè)或幾個(gè)TW狀態(tài),直到設(shè)備準(zhǔn)備好READY=1為止。(5)、T4狀態(tài)在T4狀態(tài),數(shù)據(jù)從數(shù)據(jù)總線上被撤除,各種控制信號(hào)和狀態(tài)信號(hào)進(jìn)入無效狀態(tài),CPU完成了對(duì)存儲(chǔ)器或I/O設(shè)備的寫操作。3、輸入/輸出周期8086與外設(shè)通訊,也即從外設(shè)輸入數(shù)據(jù),或把數(shù)據(jù)輸出給外設(shè)的時(shí)序,與CPU同存儲(chǔ)器之間的通訊時(shí)序,幾乎完全相同,只是IO/M信號(hào)應(yīng)為高。所以我們就不贅述。

4、空轉(zhuǎn)周期8086只有在CPU于存儲(chǔ)器或外設(shè)要傳送指令或操作時(shí),才能執(zhí)行如上所述的總線周期,若CPU不執(zhí)行總線周期,則總線接口執(zhí)行空轉(zhuǎn)操作。CLKT1T2T3、TWT4M//IOA19/S6-A16/S3A19-A16/BHE/S7/BHES7-S3ALEREADYAD15-AD0地址輸出數(shù)據(jù)輸出/WRDT//R/DENCPU往存儲(chǔ)器或I/O端口寫數(shù)據(jù)的時(shí)序5、中斷響應(yīng)周期中斷響應(yīng)周期:從CPU中止現(xiàn)行程序轉(zhuǎn)中斷服務(wù)程序這一過程。中斷響應(yīng)周期要用兩個(gè)總線周期。第一個(gè)響應(yīng)周期:使AD15-AD0、/BHE/S7、A19/S6-A16/S3懸空。第二個(gè)響應(yīng)周期:外設(shè)向數(shù)據(jù)總線上輸送一個(gè)字節(jié)的中斷類型號(hào)。每一響應(yīng)周期的T1狀態(tài)輸出一個(gè)高電平脈沖,作為地址鎖存信號(hào)。CLKT1T2T3T4T1T2T3T4第一中斷響應(yīng)周期第二中斷響應(yīng)周期ALE/INTAAD7-AD08086中斷響應(yīng)周期的時(shí)序圖6、總線保持和響應(yīng)周期(保持響應(yīng)信號(hào)HLDA

)7、系統(tǒng)復(fù)位產(chǎn)生:RESET端上的高電平維持4個(gè)時(shí)鐘周期,可使CPU復(fù)位。CPU復(fù)位:PSW、DS、ES、SS、IP等寄存器,指令隊(duì)列[被清零。CS寄存器設(shè)置為FFFFH。注:由于復(fù)位后,IF=0,處關(guān)中斷狀態(tài),所以在初始化程序中應(yīng)開中斷,使CPU可響應(yīng)中斷請(qǐng)求。當(dāng)RESET由高電平變低電平7個(gè)機(jī)器周期后,CPU開始從FFFF0處執(zhí)行程序。8086的復(fù)位時(shí)序:CLKRESET輸入RESET內(nèi)部三態(tài)門浮空8086CPU復(fù)位后總線信號(hào):AD15-AD0:A19/S6-A16/S3:/BHE/S7:S2、S1、S0:/LOCK、/RD、/INTA:ALE、HLDA、QS0、QS1:/RQ//GT0:/RQ//GT1:高阻狀態(tài)低電平高電平2、3

80x86的工作模式主要介紹一下實(shí)地址方式和保護(hù)虛地址方式。2、3、1實(shí)地址方式具有32條地址線的微處理器只有低20條地址線起作用,能尋址1M字節(jié)的物理地址。

實(shí)地址方式和保護(hù)虛地址方式的區(qū)分是由控制寄存器CR0的最低位PE位決定的。若PE位為0,則工作在實(shí)地址方式;若PE位為1,工作在保護(hù)虛地址方式

;實(shí)地址方式下,采用類似于8086的體系結(jié)構(gòu)。歸納起來,有如下幾個(gè)特點(diǎn):

①尋址機(jī)構(gòu)、存儲(chǔ)器管理、中斷處理機(jī)構(gòu)和8086一樣

②操作數(shù)默認(rèn)長(zhǎng)度為16位,但允許訪問處理器的32位寄存器組,在使用32位寄存器組時(shí),指令中要加上前綴以表示越權(quán)存取。

③不用虛擬地址的概念,存儲(chǔ)器容量最大為1M字節(jié);采用分段方式,每段大小固定為64K字節(jié),存儲(chǔ)段可以彼此覆蓋,即一個(gè)64K字節(jié)的段如未用完,另一個(gè)段可以覆蓋未用的存儲(chǔ)區(qū)。

④實(shí)地址方式下,存儲(chǔ)器中保留兩個(gè)固定區(qū)域,一個(gè)為初始化程序區(qū),另一個(gè)為中斷向量區(qū)。前者為FFFF0H—FFFFFH,后者為00000—003FFH。

⑤在實(shí)地址方式下,運(yùn)行的程序不分特權(quán)等級(jí),實(shí)際上,實(shí)地址方式下的程序相當(dāng)于工作在特權(quán)級(jí)0,除保護(hù)虛地址方式下的一些專用指令外,所有其他指令都能在實(shí)地址方式下運(yùn)行。2、3、2保護(hù)虛地址方式在保護(hù)方式下,全部32根地址有效,可尋址達(dá)4G字節(jié)的物理空間;支持多任務(wù),一個(gè)任務(wù)可運(yùn)行多達(dá)16KB個(gè)段,每個(gè)段最大可為4G字節(jié),故一個(gè)任務(wù)最大可達(dá)64MM字節(jié)的虛擬地址,能快速的進(jìn)行任務(wù)切換和任務(wù)保護(hù)環(huán)境;在保護(hù)方式運(yùn)行的程序分為4個(gè)特權(quán)級(jí):0、1、2、3,操作系統(tǒng)核心運(yùn)行在最高特權(quán)等級(jí)0,用戶程序運(yùn)行在最低特權(quán)等級(jí)3。

4級(jí)特權(quán)保護(hù)結(jié)構(gòu)

如圖所示:應(yīng)用程序3級(jí)常用擴(kuò)展程序內(nèi)核0級(jí)2級(jí)系統(tǒng)服務(wù)程序1級(jí)系統(tǒng)和應(yīng)用程序分離1、保護(hù)方式下的尋址機(jī)制在保護(hù)方式下,一個(gè)存儲(chǔ)單元的地址也是由段基地址和段內(nèi)偏移量?jī)刹糠纸M成。在保護(hù)方式下,段基地址也是32位的,所以就不能由段寄存器的內(nèi)容直接形成32位的段基地址,而是要經(jīng)過轉(zhuǎn)換。于是在內(nèi)存中就有一個(gè)表,每一個(gè)內(nèi)存段對(duì)應(yīng)著表中的一項(xiàng),此項(xiàng)中包含32位的段基地址。在80x86中,一個(gè)段用一個(gè)8字節(jié)的描述符來描述,多個(gè)描述符構(gòu)成一個(gè)表,稱為描述表。

由描述符中所規(guī)定的段基地址加上32位的段內(nèi)偏移量就可以尋址一個(gè)存儲(chǔ)單元,如圖所示。段寄存器偏移量

訪問權(quán)

界限

基地址

存儲(chǔ)器操作數(shù)段內(nèi)基址段界}選擇段大到4GB2、描述符表和描述符(1)描述符表描述符表定義了訪問存貯器的一種數(shù)據(jù)結(jié)構(gòu),是存放在存貯器空間中的一種特殊數(shù)據(jù)段,其表項(xiàng)是由段描述符或其他類型的描述符構(gòu)成的,每個(gè)描述符占8個(gè)字節(jié)。分為三種類型:全局描述符表(GDT)局部描述符表(LDT)中斷描述符表(IDT)。(2)描述符在保護(hù)虛地址方式下的每一個(gè)段,都有一個(gè)相應(yīng)的描述符。描述符由8個(gè)字節(jié)組成,包含了此段的基地址(32位)、段的大?。?0位)、段的類型等一些主要特性。在80x86中的描述符有兩大類:段描述符:代碼段和數(shù)據(jù)段描述符

系統(tǒng)描述符:特種數(shù)據(jù)段和控制描述符

習(xí)題

1.總線接口部件有哪些功能?請(qǐng)逐一說明。8086的總線接口部件有那幾部分組成?2.狀態(tài)標(biāo)志和控制標(biāo)志又何不同?程序中是怎樣利用這兩類標(biāo)志的?8086的狀態(tài)標(biāo)志和控制標(biāo)志分別有哪些?3.段寄存器CS=1200H,指令指針寄存器IP=FF00H,此時(shí),指令的物理地址為多少?指向這一物理地址的CS值和IP值是唯一的嗎?4.從引腳信號(hào)上看,8086和8088有什么不同?5.什么是最小模式和最大模式?它們?cè)谟猛旧嫌惺裁床煌?.信號(hào)的作用是什么?試說明當(dāng)起始地址為奇地址、偶地址一次讀寫一個(gè)字節(jié)和一個(gè)字時(shí),和A0的狀態(tài)。7.根據(jù)8086CPU的存儲(chǔ)器讀寫時(shí)序圖,請(qǐng)說明:

(1)地址信號(hào)應(yīng)在哪些時(shí)間內(nèi)有效?

(2)讀、寫動(dòng)作發(fā)生在什么時(shí)間內(nèi)?

(3)為什么讀與寫數(shù)據(jù)的有效時(shí)間長(zhǎng)短不一樣?

(4)什么情況下才要插入Tw周期?它能否加在T1,T2之間?8.在總線周期的T1、T2、T3、T4狀態(tài),CPU分別執(zhí)行什么動(dòng)作?什么情況下需要插入等待狀態(tài)Tw?Tw在哪兒插入?怎樣插入?9.畫出8086最小模式的讀周期時(shí)序。10.什么叫描述符?他們分為哪幾種?各描述符的主要功能是什么?第三章微型計(jì)算機(jī)指令系統(tǒng)

指令系統(tǒng)是微處理器(CPU)所能執(zhí)行的指令的集合,它與微處理器有密切的聯(lián)系,不同的微處理器有不同的指令系統(tǒng)。在本章中我們主要講解INTEL公司生產(chǎn)的8086/8088CPU的尋址方式以及各種指令系統(tǒng),并通過具體實(shí)例講述了各條指令的功能和使用方法。通過本章的學(xué)習(xí),讀者應(yīng)該掌握以下內(nèi)容:

?3種操作數(shù)的尋址方式

?常用指令的格式、功能、以及對(duì)標(biāo)志位的影響

3、18086/8088的尋址方式操作碼操作數(shù)匯編指令:操作碼:指令操作類型;操作數(shù):指令所需操作數(shù)或操作數(shù)的地址;操作數(shù)可以有一個(gè),也可以有兩個(gè),一個(gè)源操作數(shù),一個(gè)目的操作數(shù)。例:MOVAX,CX;將CX的內(nèi)容送入AX中。本章主要介紹8086/8088的指令系統(tǒng)以及在指令中為取得操作數(shù)地址所使用的尋址方式。

3、

1、1立即尋址方式指令操作數(shù)部分直接給出指令的操作數(shù),操作數(shù)與操作碼一起存入代碼段中。立即數(shù)有8位和16位。例:MOVAL,5;源操作數(shù)為立即尋址指令執(zhí)行后,AL=05H,8位數(shù)據(jù)05H存入AL寄存器。例:MOVAX,3064H;源操作數(shù)為立即尋址指令執(zhí)行后,AX=3064H,16位數(shù)據(jù)3064H存入AX寄存器。3、1、2寄存器尋址方式寄存器尋址方式的操作數(shù)是寄存器的值,指令中直接使用寄存器名,包括8位或16位通用寄存器和段寄存器??墒褂玫?6位寄存器:AX、BX、CX、DX、SI、DI、SP、BP;其中:AX、BX、CX、DX可分成兩8位使用。例:MOVAX,CX;(AX)(CX)

MOVAL;(AL)(AL)-13、1、3內(nèi)存尋址方式在內(nèi)存尋址方式中,操作數(shù)是某個(gè)內(nèi)存單元的內(nèi)容(值),指令中給出的是內(nèi)存單元的有效地址EA(即偏移地址),段地址通常在隱含的某個(gè)段寄存器中。1、直接尋址方式

直接尋址方式的操作數(shù)的形式為:Variable或[Variable]在直接尋址方式中,操作數(shù)的偏移地址(有效地址EA)直接用指令加以指定(有直接地址值和標(biāo)號(hào)兩種形式),它存放在代碼段中指定操作碼之后,但操作數(shù)一般存放在存儲(chǔ)器的數(shù)據(jù)段中,所以必須先求出操作數(shù)的物理地址,然后再訪問存儲(chǔ)器才能取得操作數(shù)。段地址隱含的由DS指定,也可以ES指定,但需在指令中指明。最后存儲(chǔ)器地址為:DS:偏移地址或ES:偏移地址。例:MOVAX,ES:[2000H]將ES:2000H單元內(nèi)容送入AX。例:MOVAX,LABLE或MOVAX,[LABEL]將標(biāo)號(hào)為L(zhǎng)ABLE(存放操作數(shù)單元的符號(hào)地址),即DS:LABLE中的內(nèi)容送入AX。2、寄存器間接尋址寄存器間接尋址方式的操作數(shù)形式為:[reg]操作數(shù)的有效地址包含在基址寄存器BX,基址指針BP或一個(gè)變址寄存器(SI或DI)中。寄存器間接尋址要用方括號(hào)括起來,以便與寄存器操作數(shù)相區(qū)別。例:MOVAX,[BX];將由BX決定的存儲(chǔ)單元的內(nèi)容送到AX寄存器。0000000100020003BBAATAB:AXAHALAABB間接尋址數(shù)據(jù)段0001BX操作數(shù)在存儲(chǔ)器中,指令中寄存器內(nèi)容作為操作數(shù)所在單元的有效地址。

(BX)(SI)(DI)(BP)有效地址=

段寄存器為DS段寄存器為SS物理地址計(jì)算方法:物理地址=(DS)*16+(BX)或(SI)或(DI)物理地址=(SS)*16+(BP)例:已知:(DS)=2100H,(DI)=2000H

指令:MOVAX,[DI];(AX)((DI))物理地址=(DS)*16+(DI)

=2100H*16+2000H=21000H+2000H=23000H

指令結(jié)果:將23000H單元內(nèi)容送AL中,將23001H單元內(nèi)容送AH中。3、寄存器相對(duì)尋址方式操作數(shù)在存儲(chǔ)器內(nèi),指令中寄存器內(nèi)容與指令指定的位移量(DISP)之和作為操作數(shù)所在單元的有效地址。

(BX)

DISP8

(SI)

(DI)(BP)DISP16有效地址=

段寄存器為DS段寄存器為SS+物理地址=(DS)*16+(BX)+DISP8(SI)、(DI)、DISP16類同。物理地址=(SS)*16+(BP)+DISP16例:

如果(DS)=3000H,(SI)=2000H,COUNT=3000H,則執(zhí)行指令MOVAX,CONUT[SI],求出此種尋址方式對(duì)應(yīng)的有效地址和物理地址。有效地址=2000H+3000H=5000H物理地址=(DS)*16+5000H=30000H+5000H=35000H4、基址變址尋址方式:操作數(shù)在存儲(chǔ)器中,指令將基址寄存器(BX或BP)與變址寄存器(SI或DI)內(nèi)容之和作為操作數(shù)所在存儲(chǔ)單元的有效地址。

(BX)(SI)(BP)(DI)有效地址=+物理地址=(DS)*16+(BX)+(SI)或(DI)物理地址=(SS)*16+(BP)

溫馨提示

  • 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)論