




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第7章微機中斷系統(tǒng)7.1概述中斷的概念中斷分類7.2可屏蔽中斷處理過程CPU響應(yīng)中斷的過程中斷向量表中斷服務(wù)子程序中斷響應(yīng)時序7.3中斷優(yōu)先級和中斷嵌套7.4可編程中斷控制器8259A7.5保護模式下的中斷1教學(xué)重點
8088CPU的中斷系統(tǒng)內(nèi)部中斷服務(wù)程序的編寫
中斷控制器8259A的使用27.1概述中斷:
當(dāng)CPU正常運行程序時,由于隨機的事件(包括內(nèi)部和外部請求),引起CPU暫停正在運行的程序,轉(zhuǎn)去執(zhí)行請求中斷的外設(shè)(或內(nèi)部事件)的中斷服務(wù)程序,中斷服務(wù)結(jié)束后再返回被中止的程序,繼續(xù)執(zhí)行,這一過程稱為中斷。中斷過程給分為5個步驟:
中斷請求、中斷判優(yōu)、中斷響應(yīng)、中斷服務(wù)、中斷返回。3中斷相關(guān)概念:1、中斷源:引起CPU產(chǎn)生程序中斷的事件,即中斷的來源。I/O設(shè)備。如鍵盤、紙帶讀入機、打印機。數(shù)據(jù)通道。如磁盤、磁帶。實時鐘,如外部所需的定時電路。故障源。如掉電、存儲器奇偶校驗錯等。CPU運行指令引發(fā),或為調(diào)試程序而設(shè)置的中斷源。外設(shè)發(fā)來的中斷請求(隨機發(fā)生)(可屏蔽、不可屏蔽中斷)CPU內(nèi)部執(zhí)行指令引發(fā)的中斷,稱內(nèi)部中斷(預(yù)先安排的中斷指令,預(yù)設(shè)的)42.中斷響應(yīng)CPU停止現(xiàn)在正在進行的處理任務(wù),轉(zhuǎn)向中斷請求相對應(yīng)的處理程序的過程.現(xiàn)場保護、關(guān)中斷、斷點保護、控制轉(zhuǎn)移到中斷服務(wù)子程序。3.中斷優(yōu)先級當(dāng)有多個中斷源同時請求中斷時,因CPU不能同時處理,所以必須按事先安排的優(yōu)先級順序依次處理。CPU先響應(yīng)優(yōu)先級高的中斷,掛起優(yōu)先級低的中斷。中斷嵌套:高級中斷源能打斷低級中斷處理。當(dāng)CPU在運行中斷服務(wù)子程序時,又有新的更高優(yōu)先級的中斷申請進入,CPU要掛起原中斷進入更高級的中斷服務(wù)子程序,實現(xiàn)功能。所以中斷系統(tǒng)應(yīng)具有優(yōu)先權(quán)排隊功能。4.中斷屏蔽:由軟件設(shè)置,使某些中斷源即使有請求也不能被響應(yīng)。主程序高級中斷處理低級中斷處理5一個中斷系統(tǒng)的基本功能:(1)能實現(xiàn)中斷響應(yīng)、中斷服務(wù)、中斷返回、中斷屏蔽。(2)能實現(xiàn)中斷優(yōu)先級排隊(3)能實現(xiàn)中斷嵌套。67.1.28088/8086的中斷系統(tǒng)8088的中斷系統(tǒng)采用向量中斷機制指通過中斷向量進入中斷服務(wù)程序的一種方法。中斷向量:中斷服務(wù)程序入口地址能夠處理256個中斷用中斷向量號0~255區(qū)別由中斷向量號查中斷向量表,得到中斷向量中斷源分兩大類:外部中斷和內(nèi)部中斷可屏蔽中斷還需要借助專用中斷控制器Intel8259A實現(xiàn)優(yōu)先權(quán)管理78088/8086的中斷系統(tǒng)結(jié)構(gòu)中斷邏輯INTO指令4單步中斷1除法錯誤0INTN指令8088/8086CPUNMI8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源
INTA可屏蔽中斷請求
INTR可屏蔽中斷源內(nèi)部中斷非屏蔽中斷請求81.外部中斷外部中斷是由于8088外部通過CPU引腳提出中斷請求而引起的中斷。具有隨機性。不可屏蔽中斷(NMI):向量號固定為2外部通過非屏蔽中斷(NMI)請求(邊沿觸發(fā),上升沿之后維持兩個時鐘周期高電平有效),CPU必須響應(yīng)。不受IF的控制。非屏蔽中斷主要用于處理系統(tǒng)的意外或故障(如奇偶校驗或協(xié)處理器運算錯誤等可屏蔽中斷(INTR):向量號由中斷控制器提供外部通過可屏蔽中斷引腳INTR請求(采用電平觸發(fā),高電平有效,響應(yīng)時將產(chǎn)生有效的INTA信號,進入中斷響應(yīng)周期。得到響應(yīng)的條件:外設(shè)中斷請求是否被屏蔽
CPU是否開中斷IF=1可屏蔽中斷主要用于外設(shè)中斷請求(請求交換數(shù)據(jù)等服務(wù))9中斷標(biāo)志IF的狀態(tài)IF=0:可屏蔽中斷不會被響應(yīng)(禁止中斷,關(guān)中斷,中斷屏蔽)系統(tǒng)復(fù)位,使IF=0任何一個中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會被響應(yīng)(允許中斷,開中斷,中斷開放)執(zhí)行指令STI,使IF=1執(zhí)行指令I(lǐng)RET后IF將恢復(fù)為中斷前的狀態(tài)
明確IF標(biāo)志的狀態(tài)是關(guān)鍵10復(fù)位、STI、CLI、CPU響應(yīng)中斷時都會影響IF的狀態(tài)11數(shù)據(jù)輸入的同時清除中斷請求信號具有中斷請求與中斷屏蔽的接口電路寫控制端口,同時設(shè)置中斷屏蔽寄存器
P240圖8-2122.內(nèi)部中斷內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)特殊情況而引起的中斷。除0號中斷外,其他都不具備隨機性。除法錯中斷: 向量號為0單步中斷(TF=1):向量號為1斷點中斷(int3): 向量號為3溢出中斷(into): 向量號為4指令中斷(intn): 向量號為n內(nèi)部中斷的中斷向量號部分由Intel公司確定,DOS要占用一部分用戶也可以使用一部分,實現(xiàn)自己的中斷137.2可屏蔽中斷處理過程一、CPU響應(yīng)可屏蔽中斷的條件外設(shè)提出中斷申請本中斷位未被屏蔽本中斷優(yōu)先級別最高CPU允許中斷,即CPU是開中斷的IF=1,允許CPU響應(yīng)可屏蔽中斷現(xiàn)行指令執(zhí)行結(jié)束二、中斷響應(yīng)的過程見JIA教材P265圖7.3外部能發(fā)中斷請求信號到CPU的INTR148088的中斷響應(yīng)過程
NMIN軟件中斷INTRTF=1中斷響應(yīng)周期讀中斷向量號下條指令現(xiàn)行指令I(lǐng)F=1NNNNYYYYYP265圖7.3從指令中或內(nèi)部獲得中斷向量號中斷向量號2中斷向量號1中斷響應(yīng)及處理8088/8086各種中斷源的優(yōu)先權(quán),實際上是指被識別出來的先后順序158088的中斷響應(yīng)過程(續(xù))Y又有NMITEMP=1標(biāo)志寄存器入棧TEMP=TF,IF=TF=0CS:IP入棧獲取中斷向量執(zhí)行服務(wù)程序彈出CS:IP彈出標(biāo)志寄存器返回被中斷程序(1)現(xiàn)場保護(2)關(guān)中斷,清除TF(3)斷點保護(4)據(jù)中斷向量號查中斷向量表,得入口地址(5)執(zhí)行中斷處理程序NNY(6)斷點恢復(fù),現(xiàn)場恢復(fù),返回單步中斷IRET★168088/8086的中斷優(yōu)先級高低采用查詢中斷方式,查詢的先后順序決定了各中斷源的優(yōu)先級別軟件中斷除法錯中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷內(nèi)部中斷、NMI和INTR中斷處理過程的主要區(qū)別在于中斷向量號的獲得方法不同。177.2.4中斷響應(yīng)時序
兩個連續(xù)的INTA周期,在第2個INTA從數(shù)據(jù)總線上CPU得到中斷向量。在兩個INTA之間可能插入空閑狀態(tài)。P274圖7.6187.3中斷優(yōu)先級和中斷嵌套問題:若系統(tǒng)有多個可屏蔽中斷請求,CPU如何識別區(qū)分中斷源?
方法1:中斷查詢。軟件查詢(軟/硬件結(jié)合)
方法2:向量中斷(硬件):CPU響應(yīng)中斷時,通過硬件獲取中斷向量,不同外設(shè),中斷向量不同。問題2:若多個中斷源同時請求中斷服務(wù),CPU應(yīng)先響應(yīng)哪一個?
根據(jù)事先規(guī)定的優(yōu)先級別來確定。如何規(guī)定優(yōu)先級:
1。軟件查詢中斷優(yōu)先級
2、硬件優(yōu)先權(quán)排隊
3、矢量中斷優(yōu)先級—中斷優(yōu)先級控制器(可編程)191、用軟件確定中斷優(yōu)先權(quán)A0~A15鎖存器INTR三態(tài)緩沖器譯碼8001HD0~D7中斷A中斷B中斷C中斷H……IOR中斷查詢接口20用軟件確定中斷優(yōu)先權(quán)CPU響應(yīng)中斷后,用軟件查詢(在中斷服務(wù)子程序內(nèi)的前面部分)是哪個外設(shè)提出了中斷請求。屏蔽法:移位法:
INAL,20HXORAL,ALTESTAL,80HINAL,20HJNEP1RCLAL,1TESTAL,40HJCP1JNEP2RCLAL,1TESTAL,20HJCP2JNEP3…………優(yōu)點:硬件簡單。缺點:轉(zhuǎn)入中斷服務(wù)的時間長。先查詢的優(yōu)先級高212、硬件查詢優(yōu)先方式
鏈?zhǔn)街袛鄡?yōu)先權(quán)排隊電路A2A1C2C1D2D1B2B1中斷源A觸發(fā)器中斷源B觸發(fā)器中斷源C觸發(fā)器中斷矢量D中斷矢量C中斷矢量B中斷矢量A中斷源D觸發(fā)器緩沖器緩沖器緩沖器緩沖器INTA高優(yōu)先級223、矢量中斷優(yōu)先級—可編程中斷優(yōu)先級控制器23比較器失效信號(先前無中斷請求時有效)比較器8:3優(yōu)先權(quán)編碼器優(yōu)先權(quán)寄存器D0~D721A<B中斷請求0中斷請求1中斷請求2A0A1A2INTRB0B1B2…有中斷請求其中的中斷優(yōu)先權(quán)編碼電路的原理簡圖24優(yōu)先權(quán)排隊電路的工作原理8:3優(yōu)先權(quán)編碼器將輸出同時發(fā)生的中斷請求中,優(yōu)先權(quán)最高的請求對應(yīng)的編碼。(編碼數(shù)字小的優(yōu)先權(quán)最高)優(yōu)先權(quán)寄存器存放著正在進行處理的中斷的優(yōu)先權(quán)編碼。(若有,表明CPU正在執(zhí)行一個中斷;若沒有,表明CPU不在進行中斷處理)。比較器比較編碼A2A1A0和B2B1B0的大小,若A>=B,則控制輸出,使接口不向CPU發(fā)出新的中斷申請;只有A<B時,才使電路向CPU的INTR端發(fā)申請中斷信號。25小結(jié)計算機當(dāng)中有相同任務(wù),即可用軟件實現(xiàn),也可用硬件實現(xiàn)。要權(quán)衡考慮。采用可編程中斷控制器是當(dāng)前微機系統(tǒng)中解決可屏蔽中斷優(yōu)先權(quán)管理的常用方法。268088的中斷向量表中斷向量:指示中斷服務(wù)程序的入口地址,該地址包括:偏移地址IP、段地址CS(共32位)每個中斷向量的低字是偏移地址、高字是段地址,需占用4個字節(jié)(低對低,高對高)。8088微處理器從物理地址000H開始到3FFH(1KB),依次安排各個中斷向量,向量號從0到255。256個中斷向量所占用的1KB區(qū)域,稱中斷向量表幾個概念:中斷向量號N/中斷向量/中斷服務(wù)程序的入口地址中斷向量的存放首址=N×427根據(jù)中斷優(yōu)先權(quán)處理中斷的一般原則1.不同級別中斷發(fā)生,按級別高低處理。2.當(dāng)處理低級別的中斷過程中,遇到高級別的中斷,暫停低,轉(zhuǎn)高的服務(wù)。3.當(dāng)處理高級別的過程中,遇到低級別或同一級別的中斷,不予理睬,待處理完后再服務(wù)低級別。4.同一級別按先后排隊。28中斷服務(wù)程序的代碼特點:現(xiàn)場保護若允許中斷嵌套,則開中斷安排一條STI指令
….結(jié)束前恢復(fù)現(xiàn)場為了正?;謴?fù),在之前要先關(guān)中斷CLI,然后再作恢復(fù)工作結(jié)束時安排IRET中斷返回指令,起到恢復(fù)標(biāo)志位,開中斷和返回斷點的目的。P271297.2.3中斷服務(wù)程序設(shè)計1、用戶可編寫的中斷服務(wù)程序的種類:內(nèi)部中斷服務(wù)程序用INTn指令來調(diào)用外部可屏蔽中斷的服務(wù)程序由外設(shè)的中斷請求引發(fā)使用也可用INTn指令調(diào)用2、要事先選定中斷服務(wù)程序的向量號可以在系統(tǒng)預(yù)留給用戶的沒有被占用的中斷向量號中選則一個。303、編寫中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP現(xiàn)場保護完后的第1條指令,若為開中斷指令STI,則該中斷的級別低最后用中斷返回指令I(lǐng)RET內(nèi)部中斷通常采用寄存器傳遞參數(shù)外部中斷程序采用存儲器傳遞參數(shù)4、主程序需要調(diào)用中斷服務(wù)程序(只有該主程序需調(diào)用它)中斷服務(wù)程序和主程序在同一個程序中主程序調(diào)用它之前,需要設(shè)置中斷向量(入口地址)。然后利用INTn指令調(diào)用該中斷服務(wù)程序5、用戶的中斷服務(wù)程序如要讓其它程序使用必須駐留在系統(tǒng)內(nèi)存中。編寫安裝該中斷服務(wù)程序的主程序設(shè)置中斷向量使中斷服務(wù)子程序駐留內(nèi)存在其他程序中,只要了解其入口要求和返回參數(shù),就可以用INTN
調(diào)用。31將中斷子程序的入口地址置入中斷向量表的相應(yīng)表項中設(shè)選擇的向量號為n,其置入方法有兩種:一是用數(shù)據(jù)傳送指令將中斷服務(wù)子程序入口相對地址存放在物理地址為4×n的字單元中,將中斷服務(wù)子程序入口段地址存放在物理地址為4×n+2的字單元中。二是采用DOS置新中斷向量的中斷功能(25功能),即:
向量號21H
功能號25H
入口參數(shù):DS=中斷服務(wù)子程序入口段地址;
DX=中斷服務(wù)子程序入口相對地址;AL=新增的向量號。32使中斷服務(wù)子程序駐留內(nèi)存。一旦中斷服務(wù)子程序駐留內(nèi)存后,一般程序員使用這一新增 的中斷調(diào)用就如同調(diào)用DOS或BIOS的中斷子程序一樣,只要了解其入口要求和返回參數(shù)就可調(diào)用。程序駐留在內(nèi)存后,它占用的存儲區(qū)就不會被其他軟件覆蓋。使程序駐留內(nèi)存,要求該程序以COM(此種結(jié)構(gòu)的程序要求入口定位于100H、并且數(shù)據(jù)和代碼均在同一個段內(nèi))形式運行。使程序駐留內(nèi)存的方法是采用DOS的中斷調(diào)用,即: 向量號21H
功能號31H
入口參數(shù):DX=駐留程序字節(jié)數(shù);
該功能使當(dāng)前程序的DX個字節(jié)駐留內(nèi)存并返回DOS。即用DOS功能調(diào)用31H代替4CH終止程序并返回DOS即可。33讀取中斷向量表中某中斷號對應(yīng)中斷向量的原值用DOS的中斷功能(35功能),即:
向量號21H
功能號35H
入口參數(shù):AL=向量號。 出口參數(shù):ES=段地址;
BX=偏移地址;一般把讀出的中斷向量再轉(zhuǎn)存到存儲器中,以備恢復(fù)時使用。
34CSEGMENTASSUMECS:CORG100HB:MOVAX,SEGSUBPMOVDS,AXMOVDX,OFFSETSUBP
;建立50H中斷向量表項
MOVAH,25HMOVAL,50H
INT21H
例1:在微機中增加一中斷服務(wù)子程序,其向量號為50H其功能是BX內(nèi)容增1。;中斷服務(wù)程序駐留內(nèi)存并返回DOS
MOVDX,NMOVAH,31HINT21H
SUBPPROCFARINCBXIRETSUBPENDPNEQU$CENDS
ENDB
35
設(shè)這一源程序名為INCBX.ASM,經(jīng)匯編、連接后生成
INCBX.EXE。然后可用DEBUG將其轉(zhuǎn)換成COM形式的執(zhí)行文 件。設(shè)文件名為INC.COM,操作步驟如下:
C>DEBUGINCBX.EXE回車 -NINC.COM
-W回車 -Q回車
C>
這時可運行INC.COM程序,即:
C>INC回車 一旦運行INC.COM程序后,在微機中就新增了一個 中斷子程序。在其后運行的程序中,就如同調(diào)用DOS或BI OS中斷子程序一樣調(diào)用INT50H,其功能是BX內(nèi)容增1。
36例2:內(nèi)部中斷服務(wù)程序編寫:80H號中斷服務(wù)程序功能:通過BIOS功能調(diào)用INT10H,顯示以“0”結(jié)尾的字符串。入口參數(shù):DS:DX存字符串緩沖區(qū)首地址(段地址:偏移地址)。37DSEGMENT
intoff
dw?;用于保存原中斷向量將來恢復(fù)
intseg
dw?;用于保存原中斷向量將來恢復(fù)
intmsgdb‘AInstructionInterrupt!’,0dh,0ah,0;要顯示的信息DENDSCSEGMENTASSUMEC:CS,D:DSBG:MOVAX
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)車間安全培訓(xùn)教材
- 消防安全管理制度文檔
- 企業(yè)安全生產(chǎn)管理手冊
- 安全規(guī)程培訓(xùn)課件
- 消防安全教育培訓(xùn)表格
- 2025年自動驅(qū)鳥設(shè)備項目申請報告
- 羊水過多護理
- 羅茗華焊接檢測技術(shù)課件
- 2025至2030中國進口奶粉行業(yè)市場產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 教研組長培訓(xùn)課件
- 四川省甘孜藏族自治州(2024年-2025年小學(xué)五年級語文)人教版期末考試(下學(xué)期)試卷及答案
- 職工代表大會決議范文模板2
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-04-05-05 人工智能訓(xùn)練師 人社廳發(fā)202181號
- 采購合同考試題庫及答案
- 04事理說明文閱讀-2022-2023學(xué)年八年級語文下冊知識梳理與能力訓(xùn)練
- 成人高等教育本科生學(xué)士學(xué)位英語水平考試大綱(非英語專業(yè))
- 四川省綿陽市2024-2025學(xué)年高一數(shù)學(xué)下學(xué)期期末教學(xué)質(zhì)量測試試題
- 2025高考物理步步高同步練習(xí)必修3練透 帶電粒子在電場中的運動
- 2024人形機器人產(chǎn)業(yè)半年研究報告
- 某化纖毛紡廠總配變電所及高壓配電系統(tǒng)設(shè)計
- 北京市海淀區(qū)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)練習(xí)試題(解析版)
評論
0/150
提交評論