《微機(jī)原理經(jīng)典課件與試題3》由會員分享,可在線閱讀,更多相關(guān)《微機(jī)原理經(jīng)典課件與試題3(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,明德 礪志 博學(xué) 篤行,第二章,16,位和,32,位微處理器,8086,:字長,16,位,主頻,510MHz,,,16,根數(shù)據(jù)總線和,20,根地址總線,可尋址,1MB,的內(nèi)存儲空間和,64KB,的,I/O,端口。,8088,:準(zhǔn),16,位微處理器,內(nèi)部寄存器、運(yùn)算器以及內(nèi)部數(shù)據(jù)總線都是按照,16,位來設(shè)計的,外部數(shù)據(jù)總線只有,8,條。,一、,16,位微處理器,8086,1,、,8086,的編程結(jié)構(gòu),總線接口部件,BIU,功能:負(fù)責(zé)與存儲器、,I/O,端口傳送數(shù)據(jù)。,a.BIU,要從內(nèi)存取指令送到指令隊(duì)列緩沖
2、器。,b.CPU,執(zhí)行指令時,總線接口部件要配合執(zhí)行部件從指定的內(nèi)存單元或者外設(shè)端口取數(shù)據(jù),將數(shù)據(jù)送給執(zhí)行部件。,c.,把執(zhí)行部件的操作結(jié)果傳送到指定的內(nèi)存單元或外設(shè)端口中。,8086,有,6,個字節(jié)的指令隊(duì)列緩沖器,,8088,有,4,個字節(jié)的指令隊(duì)列緩沖器。,采用“先進(jìn)先出”的原則,都會在執(zhí)行指令的同時,從內(nèi)存中取下面一條或幾條指令按順序填入指令隊(duì)列中。這樣就保證了,8086/8088,執(zhí)行完一條指令后可以立即執(zhí)行下一條指令,也就是說執(zhí)行指令和取指令的時間可以重疊,從而提高了,CPU,的利用率。,而早期的,8,位微處理器,取指令和執(zhí)行指令是循環(huán)進(jìn)行的。,執(zhí)行部件,EU,功能:負(fù)責(zé)指令的執(zhí)行
3、,2,、,BIU,和,EU,的動作管理,時鐘周期,CPU,的基本時間計量單位,由計算機(jī)的主頻決定。,時鐘周期,=1/,主頻,例如:,8086,的主頻為,5MHz,時鐘周期,=1/(5106Hz)=0.210-6s=200ns,總線周期,CPU,訪問一次存儲器或,I/O,端口所需要的時間。,a.,每當(dāng),8086,的指令隊(duì)列緩沖器中有,2,個空字節(jié)(,8088,有一個空字節(jié)),總線接口部件就會自動啟動取指操作,把指令隊(duì)列填滿。,b.,每當(dāng)執(zhí)行部件準(zhǔn)備執(zhí)行一條指令時,它從,BIU,的指令隊(duì)列的前部取出指令代碼,然后用幾個時鐘周期去執(zhí)行指令。在指令執(zhí)行過程中,如果必須訪問存儲器或,I/O,端口,那么,
4、EU,就會請求,BIU,進(jìn)入總線周期去完成訪問存儲器或,I/O,端口的操作。此時會分為兩種情況:,、如果,BIU,處于空閑狀態(tài),則會立即響應(yīng)執(zhí)行部件的請求。,空閑狀態(tài),指令隊(duì)列已滿,而,EU,對,BIU,沒有總線訪問請求時,,BIU,處于空閑狀態(tài)。,、如果,BIU,此時正在將某個指令取到指令隊(duì)列中(正在取指),此時,BIU,首先完成取指的總線周期,然后才能執(zhí)行,EU,的總線請求。,c.,在執(zhí)行轉(zhuǎn)移指令,調(diào)用指令和返回指令時,下一條要執(zhí)行的指令就不是在程序中緊接排列的那條指令了,而,BIU,往指令隊(duì)列裝入指令時,總是按順序進(jìn)行的。這樣的話,裝入指令隊(duì)列的指令就沒有用了。這種情況下,指令隊(duì)列的原有
5、內(nèi)容被自動清除,,BIU,會接著往指令隊(duì)列裝入由轉(zhuǎn)移指令、調(diào)用指令或返回指令指定的指令。,3,、,8086,的總線周期,為了取得指令和數(shù)據(jù),,BIU,執(zhí)行一個總線周期。在,8086/8088,中,一個基本的總線周期由,4,個時鐘周期組成,將這,4,個時鐘周期分別稱為,4,個狀態(tài),即,T1,狀態(tài)、,T2,狀態(tài)、,T3,狀態(tài)、,T4,狀態(tài)。,總線周期,二、,8086,的引腳信號和工作模式,1,、,8086,的引腳信號,2,最小模式,三、,8086,的的操作和時序,1,、總線操作,總線讀操作,指,CPU,從存儲器或,I/O,端口讀取數(shù)據(jù)。,總線寫操作,指,CPU,將數(shù)據(jù)寫入存儲器或,I/O,端口。,
6、2,、中斷系統(tǒng)和中斷操作,8086/8088,可以處理,256,種不同的中斷,每個中斷對應(yīng)一個中斷類型碼,中斷類型碼為,0255,。,中斷的分類,硬件中斷是通過外部是硬件產(chǎn)生的,非屏蔽中斷,NMI,;可屏蔽中斷,INTR,軟件中斷是,CPU,根據(jù)軟件的某條指令或軟件對標(biāo)志寄存器中某個標(biāo)志的設(shè)置而產(chǎn)生的。,比如:除數(shù)為,0,引起的中斷;中斷指令引起的中斷,中斷向量和中斷向量表,中斷向量:中斷處理子程序的入口地址。,每個中斷類型對應(yīng)一個中斷向量。一個中斷向量占用,4,個存儲單元,其中前,2,個單元存放中斷處理子程序入口地址的偏移地址;后,2,個單元存放中斷處理子程序入口地址的段地址。,中斷向量不是
7、任意存放的。,中斷向量表:內(nèi)存,0,段的,000003FFH,(1023D),區(qū)域。,20H,號中斷對應(yīng)的中斷向量為,4030:2010H,硬件中斷的響應(yīng)和時序,可屏蔽中斷的響應(yīng)過程:,當(dāng),CPU,在,INTR,引腳上接收一個高電平的中斷請求信號,并且當(dāng)前中斷允許標(biāo)志為,1,時,,CPU,就會在當(dāng)前指令執(zhí)行完以后,開始響應(yīng)外部的中斷請求,即,CPU,往發(fā)兩個連續(xù)的負(fù)脈沖,外設(shè)接口接到第二個負(fù)脈沖以后,立即往數(shù)據(jù)總線上給,CPU,送來中斷類型碼。之后依次做以下工作:,a.,從數(shù)據(jù)總線上讀取中斷類型碼,將其存入內(nèi)部暫存器。,b.,將標(biāo)志寄存器,(PSW),的值壓入堆棧;,c.,清楚中斷允許標(biāo)志,I
8、F,和跟蹤標(biāo)志,TF,;,d.,將斷點(diǎn)保存到堆棧中;,e.,根據(jù)前面得到的中斷類型碼,到內(nèi)存,0,段的中斷向量表找到中斷向量,再根據(jù)中斷向量轉(zhuǎn)入相應(yīng)的中斷處理子程序。,響應(yīng)可屏蔽中斷時的總線時序:,a.,執(zhí)行,2,個中斷響應(yīng)總線周期。,CPU,接收中斷類型碼,將它左移,2,位稱為中斷向量的起始地址,存入內(nèi)部暫存器。,b.,執(zhí)行一個總線寫周期,將,PSW,的值壓入堆棧。,c.,清除,IF,和,TF,。,d.,執(zhí)行一個總線寫周期,將斷點(diǎn)處,CS,的內(nèi)容壓入堆棧。,e.,執(zhí)行一個總線寫周期,將斷點(diǎn)處,IP,的內(nèi)容壓入堆棧。,f.,執(zhí)行一個總線讀周期,,CPU,將從中斷向量所在的前,2,個字節(jié)中讀取中斷處理子程序入口地址的偏移地址送入,IP,。,g.,執(zhí)行一個總線讀周期,將中斷處理子程序入口地址的段地址送入,CS,。,中斷處理子程序,a.,保護(hù)現(xiàn)場,b.,開中斷,c.,中斷服務(wù),中斷處理的具體內(nèi)容,d.,關(guān)中斷,e.,恢復(fù)現(xiàn)場,f.,中斷返回,