第7章 微機中斷系統(tǒng)_第1頁
第7章 微機中斷系統(tǒng)_第2頁
第7章 微機中斷系統(tǒng)_第3頁
第7章 微機中斷系統(tǒng)_第4頁
第7章 微機中斷系統(tǒng)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術(shù)微機原理與接口技術(shù)第第7 7章章 微機中斷系統(tǒng)微機中斷系統(tǒng)2中斷系統(tǒng)中斷系統(tǒng)n概述概述n中斷處理過程中斷處理過程n中斷優(yōu)先級和中斷嵌套中斷優(yōu)先級和中斷嵌套3概述概述中斷的提出中斷的提出中斷的概念中斷的概念中斷的分類中斷的分類4中斷的提出中斷的提出n中斷最初是作為處理器與外部設(shè)備交換中斷最初是作為處理器與外部設(shè)備交換信息的一種信息的一種控制方式控制方式提出的;提出的;n最初的中斷全部是對外部設(shè)備而言的,最初的中斷全部是對外部設(shè)備而言的,稱為稱為外部中斷或硬件中斷;外部中斷或硬件中斷;n隨著計算機技術(shù)的發(fā)展,為解決機器內(nèi)隨著計算機技術(shù)的發(fā)展,為解決機器內(nèi)部運行時出現(xiàn)的部運行時出現(xiàn)

2、的異常異常以及為以及為編程方便編程方便提提出了出了內(nèi)部軟件中斷內(nèi)部軟件中斷的概念。的概念。5中斷的概念中斷的概念n中斷:處理器中斷:處理器暫停暫停執(zhí)行當前程序,轉(zhuǎn)而處理執(zhí)行當前程序,轉(zhuǎn)而處理隨機隨機發(fā)生發(fā)生的事件,處理完畢后再的事件,處理完畢后再返回到斷點處返回到斷點處繼續(xù)執(zhí)繼續(xù)執(zhí)行原來程序的過程。行原來程序的過程。中斷源中斷源中斷中斷請求請求 當當 前前 程程 序序中斷中斷服務(wù)服務(wù)程序程序程序斷點程序斷點中斷返回中斷返回中斷響應(yīng)中斷響應(yīng)n中斷源中斷源 中斷響應(yīng)中斷響應(yīng) 中斷返回中斷返回 中斷向量表中斷向量表 中斷屏蔽中斷屏蔽 中斷優(yōu)先級中斷優(yōu)先級 中斷嵌套中斷嵌套6中斷的分類中斷的分類外部中

3、斷外部中斷(硬件中斷)(硬件中斷)內(nèi)部中斷內(nèi)部中斷(軟件中斷)(軟件中斷)由中斷指令引起的中斷由中斷指令引起的中斷:INT n:INT n由由CPUCPU的某些運算錯誤引起的中斷的某些運算錯誤引起的中斷:INTO(4:INTO(4) )或除法錯或除法錯(0(0) )中斷源中斷源由調(diào)試程序由調(diào)試程序debugdebug設(shè)置的中斷設(shè)置的中斷:TF:TF1 1單步中斷單步中斷(1#)(1#)或斷點中斷或斷點中斷(3(3) )可屏蔽中斷可屏蔽中斷INTRINTR實時處理實時處理 同步操作同步操作電源故障中斷電源故障中斷動態(tài)動態(tài)RAMRAM有奇偶校驗錯誤有奇偶校驗錯誤I/OI/O通道出現(xiàn)奇偶校驗錯誤通道

4、出現(xiàn)奇偶校驗錯誤協(xié)處理器協(xié)處理器80878087有中斷請求有中斷請求不可不可屏蔽中斷屏蔽中斷NMI(2#)NMI(2#)7中斷處理過程中斷處理過程nCPUCPU響應(yīng)中斷過程響應(yīng)中斷過程n中斷向量表中斷向量表n中斷服務(wù)程序返回中斷服務(wù)程序返回n中斷服務(wù)子程序中斷服務(wù)子程序8CPUCPU響應(yīng)中斷過程響應(yīng)中斷過程n中斷中斷請求請求n中斷中斷響應(yīng)響應(yīng)n保護保護現(xiàn)場現(xiàn)場狀態(tài)寄存器(狀態(tài)寄存器(PSWPSW)斷點(斷點(CSCS和和IPIP)中斷服務(wù)程序要用到的寄存器的內(nèi)容中斷服務(wù)程序要用到的寄存器的內(nèi)容n進入進入中斷服務(wù)程序中斷服務(wù)程序n恢復(fù)恢復(fù)現(xiàn)場現(xiàn)場n中斷中斷返回返回與中斷相關(guān)的指令及其執(zhí)行過程與中

5、斷相關(guān)的指令及其執(zhí)行過程nINT nn當前PSW入棧n IF0;TF0 n斷點地址入棧(先CS,后IP)n取出中斷服務(wù)子程序的入口地址(也稱中斷向量)n 段地址 CSn 偏移地址IP 從而轉(zhuǎn)入中斷處理程序n 注意與子程序調(diào)用指令的區(qū)別9nIRETn斷點地址出棧(先IP,后CS)n標志寄存器psw出棧nINTO n相當于INT 4溢出中斷,(OF)=1,觸發(fā)nSTI-開中斷開中斷 ,IF=1n 用于控制可屏蔽中斷請求用于控制可屏蔽中斷請求 是否被響應(yīng)是否被響應(yīng)nCLI-關(guān)中斷關(guān)中斷, IF=01011CPUCPU響應(yīng)中斷過程響應(yīng)中斷過程nCPUCPU響應(yīng)外部中斷的條件響應(yīng)外部中斷的條件外設(shè)提出中

6、斷申請(有中斷請求信號)外設(shè)提出中斷申請(有中斷請求信號)本中斷未被屏蔽本中斷未被屏蔽本中斷優(yōu)先級最高本中斷優(yōu)先級最高CPUCPU允許中斷(允許中斷(IF=1IF=1)nCPUCPU響應(yīng)中斷要在完成當前正在執(zhí)行的指令之后響應(yīng)中斷要在完成當前正在執(zhí)行的指令之后n在等待指令或串操作指令時,允許在指令執(zhí)行過程中進在等待指令或串操作指令時,允許在指令執(zhí)行過程中進入中斷,但要在當前一個基本操作完成之后入中斷,但要在當前一個基本操作完成之后n下述情況要執(zhí)行完下一條指令才能響應(yīng)外部中斷下述情況要執(zhí)行完下一條指令才能響應(yīng)外部中斷CPUCPU正在執(zhí)行封鎖指令正在執(zhí)行封鎖指令正在執(zhí)行向段寄存器輸送數(shù)據(jù)的指令正在執(zhí)

7、行向段寄存器輸送數(shù)據(jù)的指令12中斷請求的查詢中斷請求的查詢是否有不可是否有不可屏蔽中斷屏蔽中斷是否有可是否有可屏蔽中斷屏蔽中斷是否有內(nèi)是否有內(nèi)部中斷部中斷是否有單步是否有單步執(zhí)行中斷執(zhí)行中斷是否允許外部中斷是否允許外部中斷13保護現(xiàn)場保護現(xiàn)場PSW入棧入棧保護程序保護程序斷點地址斷點地址允許允許CPU繼續(xù)繼續(xù)響應(yīng)其他中斷響應(yīng)其他中斷檢查是否有不檢查是否有不可屏蔽中斷可屏蔽中斷檢查是否有單檢查是否有單步執(zhí)行中斷步執(zhí)行中斷恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場TF14中斷向量表中斷向量表中斷服務(wù)程序進入中斷服務(wù)程序進入n問題:問題:確定是哪個中斷源發(fā)出的中斷請求信號確定是哪個中斷源發(fā)出的中斷請求信號得到對應(yīng)的得到對應(yīng)的

8、中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址-中斷向中斷向量量n解決:解決:中斷類型號:每一個中斷源分配唯一的中斷中斷類型號:每一個中斷源分配唯一的中斷類型號與其對應(yīng)類型號與其對應(yīng)中斷向量表:用來存放與中斷類型號對應(yīng)的中斷向量表:用來存放與中斷類型號對應(yīng)的中斷源的中斷服務(wù)程序的入口地址中斷源的中斷服務(wù)程序的入口地址15中斷向量表中斷向量表n中斷類型號:中斷類型號:8086/80888086/8088系統(tǒng)有系統(tǒng)有256256種類型的中斷,對應(yīng)類種類型的中斷,對應(yīng)類型號型號0 0FFHFFH(P501P501)。)。00除法出錯除法出錯 11單步中斷單步中斷22不可屏蔽中斷不可屏蔽中斷 33斷點中斷斷

9、點中斷44溢出中斷溢出中斷 55打印屏幕打印屏幕8 80FH8259A0FH8259A中斷中斷 10H10H1FHBIOS1FHBIOS中斷中斷20H20H3FHDOS3FHDOS中斷調(diào)用中斷調(diào)用n中斷向量表中斷向量表:80868086、80888088中斷系統(tǒng)按中斷類型號由小到大中斷系統(tǒng)按中斷類型號由小到大的順序把它們對應(yīng)的中斷處理程序的入口地址放在一張表的順序把它們對應(yīng)的中斷處理程序的入口地址放在一張表中,并將它安置在中,并將它安置在內(nèi)存中內(nèi)存中00000H00000H003FFH003FFH的的1K1K空間內(nèi),這空間內(nèi),這張表就稱為中斷向量表(也稱中斷矢量表)張表就稱為中斷向量表(也稱中

10、斷矢量表)每個中斷向量占每個中斷向量占4 4個字節(jié),高個字節(jié),高2 2個字節(jié)放中斷入口地址個字節(jié)放中斷入口地址的的段地址(段地址(CSCS),低,低2 2字節(jié)放字節(jié)放偏移地址(偏移地址(IPIP)中斷向量地址中斷類型號中斷向量地址中斷類型號4 416中斷向量表中斷向量表17中斷向量表中斷向量表n供用戶使用的供用戶使用的中斷類型號中斷類型號n可由用戶定義為可由用戶定義為軟中斷軟中斷,由,由INT nINT n指令引用指令引用n可通過可通過INTRINTR端直接接入可屏蔽中斷端直接接入可屏蔽中斷n可通過中斷控制器可通過中斷控制器8259A8259A引入可屏蔽中斷引入可屏蔽中斷n用戶使用中斷類型號進

11、行某種中斷處理用戶使用中斷類型號進行某種中斷處理時,要處理的問題時,要處理的問題n1、編好所需要的中斷服務(wù)子程序、編好所需要的中斷服務(wù)子程序n2、用戶需要自己將中斷服務(wù)程序用戶需要自己將中斷服務(wù)程序入口地址寫入口地址寫入中斷向量表,入中斷向量表,中斷向量的裝填方法有兩種中斷向量的裝填方法有兩種指令指令DOSDOS功能調(diào)用功能調(diào)用1819中斷向量表的裝填中斷向量表的裝填指令裝填指令裝填MOV AX,0MOV AX,0;主程序中設(shè)置;主程序中設(shè)置 MOV ES,AXMOV ES,AX MOV BX,NMOV BX,N* *4 4;中斷類型號;中斷類型號N N MOV AX,OFFSET INTRA

12、DMOV AX,OFFSET INTRAD;置偏移地址;置偏移地址 MOV ES:WORD PTRBX,AXMOV ES:WORD PTRBX,AX MOV AX,SEG INTRADMOV AX,SEG INTRAD;置斷地址;置斷地址 MOV ES:WORD PTRBX+2,AXMOV ES:WORD PTRBX+2,AX STISTI . . . . . . INTRAD: INTRAD: PUSH AXPUSH AX;中斷服務(wù)子程序;中斷服務(wù)子程序 STISTI . . . . . . POP POP AXAX IRETIRET20中斷向量表的裝填中斷向量表的裝填DOSDOS中斷調(diào)用中

13、斷調(diào)用n設(shè)置中斷向量設(shè)置中斷向量把把ALAL中指定的中斷類型號的中斷向量中指定的中斷類型號的中斷向量DSDS:DXDX放置在中斷矢量表中放置在中斷矢量表中n預(yù)置預(yù)置AL=AL=中斷類型號中斷類型號 DS:DX=DS:DX=中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址 AH=25HAH=25Hn執(zhí)行執(zhí)行 INT 21HINT 21Hn取中斷向量取中斷向量把由把由ALAL指定中斷類型號的中斷向量從中指定中斷類型號的中斷向量從中斷矢量表中取到斷矢量表中取到ESES:BXBX中中n預(yù)置預(yù)置AL=AL=中斷類型號中斷類型號 AH=35HAH=35Hn執(zhí)行執(zhí)行 INT 21HINT 21Hn返回:返回:ES:

14、BX=ES:BX=中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址21中斷向量表的設(shè)置中斷向量表的設(shè)置DOSDOS中斷調(diào)用中斷調(diào)用MOV AL,MOV AL,N NMOV AH, MOV AH, 35H35HINT 21HINT 21HPUSH ESPUSH ESPUSH BXPUSH BXPUSH DSPUSH DSMOV AX, MOV AX, SEG INTRADSEG INTRADMOV DS, MOV DS, AXAXMOV DX, MOV DX, OFFSET INTRADOFFSET INTRADMOV AL, MOV AL, N NMOV AH, MOV AH, 25H25HINT 2

15、1HINT 21HPOP DSPOP DSPOP DXPOP DXPOP DSPOP DSMOV AL, MOV AL, N N MOV AH, MOV AH, 25H25HINT 21HINT 21HRETRETIRETIRETINTRAD:INTRAD:恢復(fù)原恢復(fù)原中斷向量中斷向量設(shè)置中斷向量設(shè)置中斷向量取中斷向量取中斷向量到到ES:BXES:BX存原中斷向量存原中斷向量中斷服務(wù)程序中斷服務(wù)程序22中斷向量表中斷向量表中斷類型號的獲取中斷類型號的獲取n對于對于除法出錯、單步中斷、不可屏蔽中斷、斷點中斷、除法出錯、單步中斷、不可屏蔽中斷、斷點中斷、溢出中斷溢出中斷,CPUCPU自動提供自動提

16、供中斷類型號中斷類型號0 04 4n用戶自己確定的軟件中斷用戶自己確定的軟件中斷INT nINT n,類型號由,類型號由n n決定決定n對外部可屏蔽中斷對外部可屏蔽中斷INTRINTR,可用硬件電路設(shè)計產(chǎn)生中斷,可用硬件電路設(shè)計產(chǎn)生中斷類型號類型號n對外部可屏蔽中斷對外部可屏蔽中斷INTRINTR,可以用,可以用8259A8259A獲得中斷類型號獲得中斷類型號可屏蔽中斷的響應(yīng)過程23n INTR=1若IF=1,且無內(nèi)部中斷,無NMI,無總線請求,執(zhí)行完當前指令,n發(fā)/INTA=0(通知外設(shè)準備中斷類型號)n發(fā)/INTA=0,讀取外設(shè)DATA低8位的中斷類型碼,轉(zhuǎn)入中斷處理24內(nèi)部中斷處理過程及

17、其特點:內(nèi)部中斷處理過程及其特點:nb1)程序狀態(tài)字壓入堆棧)程序狀態(tài)字壓入堆棧n (SP)(SP)-2n (SP)+1,(SP) PSWn b2)IF=0,TF=0,以便禁止可屏蔽中斷和單,以便禁止可屏蔽中斷和單步中斷步中斷n b3) 斷點地址壓入堆棧斷點地址壓入堆棧n (SP)(SP)-2n (SP)+1,(SP)(CS)n (SP)(SP)-2n (SP)+1,(SP) (IP)25nb4)取中斷向量)取中斷向量n (IP)=(4*n)n (CS)=(4*n+2)nb5)執(zhí)行中斷服務(wù)程序)執(zhí)行中斷服務(wù)程序nb6)執(zhí)行中斷返回指令)執(zhí)行中斷返回指令I(lǐng)RET,n (IP)(SP)+1,(SP

18、)n (SP)(SP)+2n (CS)(SP)+1,(SP)n (SP)(SP)+2n (PSW)(SP)+1,(SP)n (SP)(SP)+22627中斷服務(wù)程序返回中斷服務(wù)程序返回n通過通過中斷返回指令中斷返回指令nIRETIRETn自動彈出斷點處指令地址和程序狀態(tài)字自動彈出斷點處指令地址和程序狀態(tài)字n使使CPUCPU返回原程序斷點處繼續(xù)執(zhí)行返回原程序斷點處繼續(xù)執(zhí)行28中斷服務(wù)子程序中斷服務(wù)子程序n保護現(xiàn)場,涉及的寄存器入棧;保護現(xiàn)場,涉及的寄存器入棧;n若允許中斷嵌套,用若允許中斷嵌套,用STISTI開中斷,使開中斷,使IF=1IF=1;n執(zhí)行中斷處理程序;執(zhí)行中斷處理程序;n用用CLI

19、CLI關(guān)中斷,使關(guān)中斷,使IF=0IF=0;n給中斷命令寄存器送中斷結(jié)束命令給中斷命令寄存器送中斷結(jié)束命令EOIEOI,使當,使當前處理的中斷請求標志位清零;前處理的中斷請求標志位清零;n恢復(fù)現(xiàn)場,保護的寄存器值出棧;恢復(fù)現(xiàn)場,保護的寄存器值出棧;n用用IRETIRET返回主程序。返回主程序。29中斷優(yōu)先級和中斷嵌套中斷優(yōu)先級和中斷嵌套n多個中斷源同時向多個中斷源同時向CPUCPU請求中斷時請求中斷時,按中斷源的輕重,按中斷源的輕重緩急程度確定的優(yōu)先級別稱為緩急程度確定的優(yōu)先級別稱為中斷優(yōu)先級;中斷優(yōu)先級;nCPUCPU先響應(yīng)優(yōu)先級高先響應(yīng)優(yōu)先級高的中斷,的中斷,掛起優(yōu)先級低的掛起優(yōu)先級低的中斷

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論