微機原理與接口技術——中斷系統_第1頁
微機原理與接口技術——中斷系統_第2頁
微機原理與接口技術——中斷系統_第3頁
微機原理與接口技術——中斷系統_第4頁
微機原理與接口技術——中斷系統_第5頁
已閱讀5頁,還剩141頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第七章 中斷系統2掌握:n中斷的基本概念中斷的基本概念n中斷響應的一般過程中斷響應的一般過程n中斷向量表及其初始化中斷向量表及其初始化n8088/8086中斷系統中斷系統n可編程中斷控制器可編程中斷控制器8259An中斷調用中斷調用3一、中斷的基本概念n中斷:中斷:nCPU執行程序時,由于發生了某種隨機的事件執行程序時,由于發生了某種隨機的事件(外外部或內部部或內部),引起,引起CPU暫時中斷正在運行的程序,暫時中斷正在運行的程序,轉去執行一段特殊的服務程序轉去執行一段特殊的服務程序(稱為中斷服務程序稱為中斷服務程序或中斷處理程序或中斷處理程序),以處理該事件,該事件處理完,以處理該事件,該事

2、件處理完后又返回被中斷的程序繼續執行,這一過程稱為中后又返回被中斷的程序繼續執行,這一過程稱為中斷。斷。4中斷源n引起引起CPU中斷的事件,發出中斷請求的來源。中斷的事件,發出中斷請求的來源。內部中斷內部中斷外部中斷外部中斷異常中斷異常中斷軟件中斷軟件中斷可屏蔽中斷可屏蔽中斷非屏蔽中斷非屏蔽中斷異常事件引起異常事件引起中斷指令引起中斷指令引起INTR中斷中斷NMI中斷中斷5引入中斷的原因n提高數據傳輸率;提高數據傳輸率;n避免了避免了CPU不斷檢測外設狀態的過程,提高了不斷檢測外設狀態的過程,提高了CPU的利用率。的利用率。n實現對特殊事件的實時響應。實現對特殊事件的實時響應。6中斷系統n正確

3、識別中斷請求,實現中斷響應、中斷處理正確識別中斷請求,實現中斷響應、中斷處理及中斷返回;及中斷返回;n實現中斷優先級排隊;實現中斷優先級排隊;n實現中斷嵌套實現中斷嵌套中斷系統是指實現中斷功能的中斷系統是指實現中斷功能的軟硬件軟硬件的統稱。功的統稱。功能有:能有:中斷系統的功能n 實現實現中斷及返回中斷及返回 中斷源發出中斷請求,中斷源發出中斷請求,CPU決定是否響應:決定是否響應:若若響應響應,則,則保護斷點和現場保護斷點和現場,轉入相應中斷服務程序,轉入相應中斷服務程序,中斷服務結束中斷服務結束后,后,恢復現場和斷點恢復現場和斷點,繼續執行原,繼續執行原程序。程序。CPU執行中斷服務程序1

4、非預料事件17非預料事件非預料事件是指事件發生的時間無法預知,即中是指事件發生的時間無法預知,即中斷源何時產生中斷不確定,是隨機的。斷源何時產生中斷不確定,是隨機的。中斷源產生中斷的隨機性,使中斷服務程序的執行中斷源產生中斷的隨機性,使中斷服務程序的執行也具有隨機性,即何時執行中斷服務程序不是在程序也具有隨機性,即何時執行中斷服務程序不是在程序中安排好的。中安排好的。中斷系統的功能(續)8n 實現實現優先權排隊優先權排隊按各中斷請求的重要程度排列按各中斷請求的重要程度排列CPU響應的次序稱為響應的次序稱為中斷優先級中斷優先級。 即同時有多個中斷請求到來時,即同時有多個中斷請求到來時,CPU會首

5、先響應和會首先響應和處理優先級別最高的中斷請求。處理優先級別最高的中斷請求。中斷優先級的實現可以用中斷優先級的實現可以用軟件軟件或或硬件硬件的辦法。的辦法。中斷系統的功能(續)9n 實現實現中斷嵌套中斷嵌套:n當當CPU在處理某一級中斷時,若有高一級的中斷在處理某一級中斷時,若有高一級的中斷請求,中斷系統應能安排請求,中斷系統應能安排CUP暫時停止現行的中暫時停止現行的中斷處理,響應高一級的中斷斷處理,響應高一級的中斷中斷系統的功能(續)1011二、外部中斷響應的一般過程n中斷請求中斷請求n中斷源識別及中斷判優中斷源識別及中斷判優n中斷響應中斷響應n中斷處理(服務)中斷處理(服務)n中斷返回中

6、斷返回12中斷請求n中斷請求信號應保持到中斷被處理為止;中斷請求信號應保持到中斷被處理為止;nCPU響應中斷后,中斷請求信號應及時撤銷。響應中斷后,中斷請求信號應及時撤銷。NMI(非屏蔽中斷)(非屏蔽中斷)INTR(可屏蔽中斷)(可屏蔽中斷)13中斷源識別n軟件查詢法軟件查詢法n中斷矢量法中斷矢量法n由中斷源提供中斷類型號,由中斷源提供中斷類型號,CPU根據類型確定根據類型確定中斷源。中斷源。中斷源識別及判優由硬件系統完成中斷源識別及判優由硬件系統完成14中斷判優n當有多個中斷源同時提出請求時,需要確定當有多個中斷源同時提出請求時,需要確定首先響應哪一個中斷源。首先響應哪一個中斷源。n優先級法

7、則優先級法則n低優先級的中斷程序允許被高優先級的中斷源低優先級的中斷程序允許被高優先級的中斷源所中斷所中斷n排隊法則排隊法則n先來先響應先來先響應中斷嵌套中斷嵌套15中斷判優n軟件判優軟件判優n順序查詢中斷請求,先查詢的先服務順序查詢中斷請求,先查詢的先服務n即先查詢的優先級別高即先查詢的優先級別高n硬件判優硬件判優n鏈式判優、并行判優(中斷向量法)鏈式判優、并行判優(中斷向量法)16中斷響應n向中斷源發出向中斷源發出INTA中斷響應信號;中斷響應信號;n關中斷關中斷n保護硬件現場保護硬件現場n將將FLAGS壓入堆棧壓入堆棧n保護斷點保護斷點n將將CS、IP壓入堆棧壓入堆棧n獲得中斷服務程序入

8、口地址獲得中斷服務程序入口地址由由硬硬件件系系統統完完成成17中斷處理n保護現場保護現場n執行中斷服務程序執行中斷服務程序n恢復現場恢復現場n中斷服務程序的特點:中斷服務程序的特點:n為為“遠過程遠過程”n用用IRET指令返回指令返回18中斷服務子程序完成的工作n關中斷,保護現場,保護斷點,找入口地址關中斷,保護現場,保護斷點,找入口地址n保護軟件現場(參數)保護軟件現場(參數)n開中斷(開中斷(STI)n中斷處理中斷處理n關中斷(關中斷(CLI)n恢復現場恢復現場n中斷返回中斷返回19中斷返回n執行執行IRET指令,使指令,使IP、CS和和FLAGS從堆棧彈從堆棧彈出出n如要實現中斷嵌套,則

9、在保護現場后,要執行如要實現中斷嵌套,則在保護現場后,要執行開中斷指令開中斷指令恢復斷點和硬件現場恢復斷點和硬件現場中斷處理過程流程20中斷請求識別中斷源關中斷保護硬件現場保護斷點確定中斷服務程序入口地址保護軟件現場開中斷執行中斷服務程序關中斷恢復軟件現場恢復斷點開中斷中斷返回恢復硬件現場n當前當前CPU正在進行某一優先權級別的中斷源的處正在進行某一優先權級別的中斷源的處理;理;n有更高級別的中斷源發出請求,且新中斷源滿足有更高級別的中斷源發出請求,且新中斷源滿足響應條件;響應條件;nCPU中止當前的中斷服務程序,保護斷點和現場中止當前的中斷服務程序,保護斷點和現場,轉而響應高級中斷,轉而響應

10、高級中斷 這種多級中斷的處理方式即為這種多級中斷的處理方式即為“嵌套嵌套”。某些。某些中斷系統對中斷嵌套的層數有一定限制。中斷系統對中斷嵌套的層數有一定限制。中斷嵌套21n高級中斷源能中斷低級的中斷處理高級中斷源能中斷低級的中斷處理 當當CPU正在處理某個中斷時,如果外部又有一正在處理某個中斷時,如果外部又有一個優先級別比本優先級別更高的中斷請求,則可以個優先級別比本優先級別更高的中斷請求,則可以實現實現中斷嵌套中斷嵌套。22中斷嵌套CPU正常執行正常執行中斷服務程序中斷服務程序1非預料事件非預料事件1中斷服務程序中斷服務程序2非預料事件非預料事件223中斷服務程序中斷服務程序(用戶自行編制)

11、:(用戶自行編制):n保護現場保護現場:保存:保存CPU內部各寄存器的內容,以便在服務程內部各寄存器的內容,以便在服務程序中使用;序中使用;n開總中斷開總中斷:將:將IF置置1,使,使CPU在中斷服務期間仍能響應更高在中斷服務期間仍能響應更高級的級的INTR請求;請求;n具體處理具體處理:用戶的中斷服務用戶的中斷服務n關總中斷關總中斷:將:將IF位清位清0;n恢復現場恢復現場:將入棧保護的各寄存器內容依次彈出;:將入棧保護的各寄存器內容依次彈出;n中斷返回中斷返回:執行:執行IRET指令,指令,CPU將自動彈出給將自動彈出給IP、CS、FLAGS,就可以接著執行被中斷的原程序;,就可以接著執行

12、被中斷的原程序; n開總中斷開總中斷:再次將:再次將IF位置位置1,使返回后能夠重新響應,使返回后能夠重新響應24257.2 8086中斷系統內部中斷內部中斷外部中斷外部中斷異常中斷異常中斷軟件中斷軟件中斷非屏蔽中斷非屏蔽中斷可屏蔽中斷可屏蔽中斷256個中個中斷源斷源除法錯中斷除法錯中斷溢出中斷溢出中斷單步中斷單步中斷 根據根據8086內部的中斷邏輯電路,各種中斷源的優先權順序為:內部的中斷邏輯電路,各種中斷源的優先權順序為:被被0除中斷除中斷軟件中斷軟件中斷INTO NMI INTR 單步中斷。單步中斷。 CPU內的中斷邏輯內的中斷邏輯NMI自動產生的中斷自動產生的中斷除法錯除法錯單步(單步

13、(TF=1)軟件中斷軟件中斷INT nINTOCPUCPU內部內部8259AINTRIRQ1鍵盤鍵盤IRQ2彩色彩色/ /圖形接口圖形接口IRQ3保留保留( (串口串口) )IRQ4 串口串口IRQ5保留保留(LPT)(LPT)IRQ0系統定時器系統定時器IRQ7 LPTLPTIRQ6軟盤軟盤8086中斷系統26中斷類型碼、中斷向量表和中斷向量n中斷類型碼中斷類型碼:8086可以處理可以處理256個中斷請求,每個中個中斷請求,每個中斷請求均對應于惟一固定的類型碼。斷請求均對應于惟一固定的類型碼。被被0除類型碼是除類型碼是0,單步為,單步為1;NMI為為2;斷點中斷為;斷點中斷為3,溢出中斷為,

14、溢出中斷為4 等等。n中斷向量中斷向量:即中斷服務程序的入口地址,包括段地址:即中斷服務程序的入口地址,包括段地址(高字單元)和偏移地址(低字單元)。(高字單元)和偏移地址(低字單元)。n中斷向量表中斷向量表:存放中斷向量的表,位于內存空間的最:存放中斷向量的表,位于內存空間的最低地址單元,長低地址單元,長1KB。共可容納。共可容納256個中斷向量(個中斷向量(25641024)。)。27中斷類型碼一、中斷類型碼一、中斷類型碼:8086可以處理可以處理256個中斷請求。每個中斷個中斷請求。每個中斷請求均對應于唯一固定的類型碼。請求均對應于唯一固定的類型碼。被被0除類型碼是除類型碼是0,單步,單

15、步為為1; NMI為為2;斷點中斷為;斷點中斷為3,溢出中斷為,溢出中斷為4;等。;等。類型類型碼碼中斷源中斷源類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源00H 被被0 0除除0FH并口并口1 1(打印機)(打印機)中斷中斷1EH 磁盤參數磁盤參數01H 單步中斷單步中斷10H顯示器驅動程序顯示器驅動程序1FH圖形字符集圖形字符集02H NMINMI11H設備檢測設備檢測20H程序結束程序結束03H 斷點中斷斷點中斷12H存儲器檢測存儲器檢測21HDOSDOS系統調用系統調用28IBM PC/XT中斷源的功能類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源00H被

16、被0除除0FH并口并口1(打印機)中斷(打印機)中斷1EH磁盤參數磁盤參數01H單步中斷單步中斷10H顯示器驅動程序顯示器驅動程序1FH圖形字符集圖形字符集02HNMI11H設備檢測設備檢測20H程序結束程序結束03H斷點中斷斷點中斷12H存儲器檢測存儲器檢測21HDOS系統調用系統調用04H溢出中斷溢出中斷13H軟盤驅動程序軟盤驅動程序22H結束地址結束地址05H打印屏幕打印屏幕14H通信驅動程序通信驅動程序23HCtrl-Break夭折鍵處理夭折鍵處理06H(保留)(保留)15H盒式磁帶機驅動程序盒式磁帶機驅動程序24H關鍵性錯誤處理關鍵性錯誤處理07H(保留)(保留)16H硬盤驅動程序硬

17、盤驅動程序25H磁盤順序讀磁盤順序讀08H定時中斷定時中斷17H打印機驅動程序打印機驅動程序26H磁盤順序寫磁盤順序寫09H鍵盤中斷鍵盤中斷18HBASIC程序程序27H程序結束且駐留內存程序結束且駐留內存0AH保留的硬件中斷保留的硬件中斷19H引導(引導(BOOT)程序)程序28HDOS內部使用內部使用0BH異步串口異步串口2中斷中斷1AH年月日定時中斷年月日定時中斷292EHDOS保留使用保留使用0CH異步串口異步串口1中斷中斷1BH用戶鍵盤用戶鍵盤2FHDOS內部使用內部使用0DH并口并口2(硬磁盤)中斷(硬磁盤)中斷1CH用戶定時器時標用戶定時器時標303FHDOS保留使用保留使用0E

18、H軟盤中斷軟盤中斷1DHCRT初始化參數初始化參數40FFH用戶自定義用戶自定義291、非屏蔽中斷(非屏蔽中斷(NMI):不受中斷標志位的控制,中斷類型:不受中斷標志位的控制,中斷類型號為號為2,所以中斷向量放在,所以中斷向量放在0000:0008開始的開始的4個單元中。個單元中。NMI中斷一般用于緊急情況的處理,不受中斷標志位中斷一般用于緊急情況的處理,不受中斷標志位IF影響影響 。 2、可屏蔽中斷(可屏蔽中斷(INTR):受中斷標志位的控制,:受中斷標志位的控制,IF=1,CPU才能響應才能響應INTR中斷。中斷。CPU響應響應INTR中斷時,往中斷時,往INTA引引腳上發兩個負脈沖,外設

19、接到第二個負脈沖后,立即往數據總腳上發兩個負脈沖,外設接到第二個負脈沖后,立即往數據總線上送出中斷類型碼,供線上送出中斷類型碼,供CPU讀取。讀取。1、外部中斷硬件中斷30非屏蔽中斷NMInIBM PC/XT的的NMI來源于三方面:來源于三方面:n存儲器奇偶校驗錯誤存儲器奇偶校驗錯誤PCKnI/O通道奇偶校驗錯誤通道奇偶校驗錯誤IOCHCKn協處理器產生異常協處理器產生異常N.P.NPIn三種信號通過三種信號通過NMI屏蔽觸發器,向屏蔽觸發器,向CPU的的NMI引引腳送出;腳送出;n系統上電之初,系統上電之初,RESET信號先將信號先將NMI屏蔽觸發器屏蔽觸發器清清0。等系統自檢完成之后,再寫

20、入控制字解除對。等系統自檢完成之后,再寫入控制字解除對NMI的屏蔽。的屏蔽。31外部中斷源的管理 n多個外部硬件中斷源共用一條多個外部硬件中斷源共用一條INTR線時,要在程線時,要在程序中采取一定措施或用外部硬件解決中斷源的序中采取一定措施或用外部硬件解決中斷源的優先優先權排列和多級中斷的嵌套權排列和多級中斷的嵌套等。等。n中斷優先權中斷優先權(優先級):中斷優先權就是為每個中(優先級):中斷優先權就是為每個中斷源所確定的響應級別。斷源所確定的響應級別。n軟件排序軟件排序:CPU響應中斷后,在程序中用查詢的方響應中斷后,在程序中用查詢的方法判定外設的中斷請求。法判定外設的中斷請求。32外部中斷

21、源的管理n軟件查詢軟件查詢排序的特點是:排序的特點是:查詢次序查詢次序即優先權排即優先權排序,最先被詢問的故障具有最高優先級;節省序,最先被詢問的故障具有最高優先級;節省硬件;修改方便,只要改變程序中的查詢次序硬件;修改方便,只要改變程序中的查詢次序即可;由詢問轉至真正的服務程序入口時間長即可;由詢問轉至真正的服務程序入口時間長,在中斷源較多的情況下執行速度較慢。,在中斷源較多的情況下執行速度較慢。n硬件排序硬件排序:采用:采用優先權的編碼電路優先權的編碼電路,對各種外,對各種外部硬中斷進行排隊。還有菊花鏈式硬件排序電部硬中斷進行排隊。還有菊花鏈式硬件排序電路,以及中斷控制集成芯片路,以及中斷

22、控制集成芯片8259A33342、內部中斷軟件中斷內部中斷指內部中斷指由指令的執行或軟件對標志寄存器中由指令的執行或軟件對標志寄存器中某個標志的設置產生的中斷某個標志的設置產生的中斷專用中斷專用中斷指令中斷指令中斷內部中斷的種類(1)除法出錯中斷)除法出錯中斷 類型號為類型號為00H 除法出錯中斷既不是外部硬件產生,也不是用除法出錯中斷既不是外部硬件產生,也不是用軟件指令產生,而是軟件指令產生,而是CPU自身產生的,因此自身產生的,因此0型中型中斷沒有對應的中斷指令,即指令系統中沒有斷沒有對應的中斷指令,即指令系統中沒有INT 0這條指令。這條指令。3536 對單步中斷要注意三點:對單步中斷要

23、注意三點:一、所有類型的中斷在其處理過程中,一、所有類型的中斷在其處理過程中,CPU會自動地把標志會自動地把標志寄存器寄存器FLAGS壓入堆棧,然后清除壓入堆棧,然后清除TF和和IF。因此當。因此當CPU進入進入單步中斷處理程序時,就不再處于單步工作方式,而以正常方單步中斷處理程序時,就不再處于單步工作方式,而以正常方式工作。只有在單步處理結束時,從堆棧中彈出原來的標志,式工作。只有在單步處理結束時,從堆棧中彈出原來的標志,才能使才能使CPU又回到單步方式。又回到單步方式。(IF=1, TF=1)二、通常程序編制好后,在二、通常程序編制好后,在DEBUG調試程序時可使用單步中調試程序時可使用單

24、步中斷檢查程序,是通過跟蹤命令斷檢查程序,是通過跟蹤命令TF來實現單步運行。來實現單步運行。(2)單步中斷(陷阱中斷)單步中斷(陷阱中斷) 類型號為類型號為01H37三、三、8086/8088指令系統中沒有設置或清除指令系統中沒有設置或清除TF標志的指令,但指令系統中的標志的指令,但指令系統中的PUSHF和和POPF為為程序員提供了置位或復位程序員提供了置位或復位TF的手段。置位和復位的手段。置位和復位TF的程序段如下所示:的程序段如下所示:(2)單步中斷(陷阱中斷)單步中斷(陷阱中斷) 類型號為類型號為01H內部中斷的種類置位置位TF標志標志(D8=1)PUSHFPOP AXOR AX, 0

25、100HPUSH AXPOPF;復位復位TF標志標志PUSHFPOP AXAND AX, 0FEFFHPUSH AXPOPF(2)單步中斷(陷阱中斷)單步中斷(陷阱中斷) 類型號為類型號為01H38內部中斷的種類39(3) 斷點中斷斷點中斷 類型號為類型號為03H 設置斷點實際上是把一條斷點指令設置斷點實際上是把一條斷點指令INT 3插入程序中,插入程序中,CPU每執行到斷點處的每執行到斷點處的INT 3指令便產生一個中斷。指令便產生一個中斷。(4)溢出中斷)溢出中斷 類型號為類型號為04H 在執行溢出中斷指令在執行溢出中斷指令INTO時,若標志寄存器時,若標志寄存器FLAGS中的中的溢出標志

26、溢出標志OF=1,則產生一個類型號為,則產生一個類型號為4的內部中斷,稱為溢出的內部中斷,稱為溢出中斷。中斷。內部中斷的種類 對帶符號數來說,溢出就意味著出錯(加、減運算對帶符號數來說,溢出就意味著出錯(加、減運算),一旦產生應立即發現,而),一旦產生應立即發現,而CPU并不知道當前處理的并不知道當前處理的數據是無符號數還是帶符號數,只有程序員才明確這一數據是無符號數還是帶符號數,只有程序員才明確這一點。點。 因此通常在帶符號數的加、減法運算后面總是跟著因此通常在帶符號數的加、減法運算后面總是跟著INTO指令指令40(4)溢出中斷)溢出中斷 類型號為類型號為04H41如下面的指令用來測試加法的

27、溢出:如下面的指令用來測試加法的溢出:ADD AX ,VALUINTO當標志寄存器的當標志寄存器的OF=0時,則時,則INTO指令不產生中斷,指令不產生中斷,CPU繼繼續運行原程序;續運行原程序;當當OF=1時,進入溢出中斷處理程序,打印出一個出錯信息時,進入溢出中斷處理程序,打印出一個出錯信息,在處理程序結束時,不返回原程序繼續運行,而是把控制,在處理程序結束時,不返回原程序繼續運行,而是把控制交給操作系統。交給操作系統。(4)溢出中斷)溢出中斷 類型號為類型號為04H42(5) 指令中斷指令中斷 在在8086/8088的指令系統中,當的指令系統中,當CPU執行中執行中斷指令斷指令INT n

28、時,也能形成內部中斷,其中時,也能形成內部中斷,其中n在理在理論上可取值論上可取值0255。當。當n0、1、3、4時,就是時,就是上述的四種內部中斷。上述的四種內部中斷。內部中斷的種類內部中斷的特點 (1) 除除單步中斷單步中斷以外,所有內部中斷都不能被屏蔽。以外,所有內部中斷都不能被屏蔽。(2) 所有內部中斷不從外部接口中讀取中斷類型號也所有內部中斷不從外部接口中讀取中斷類型號也不發送中斷響應信號,即不執行中斷響應的總線周不發送中斷響應信號,即不執行中斷響應的總線周期。期。(3) 指令中斷沒有隨機性,外中斷是隨機性的。指令指令中斷沒有隨機性,外中斷是隨機性的。指令中斷是由程序中指令引起的,指

29、令位置事先已知。中斷是由程序中指令引起的,指令位置事先已知。外中斷是隨機性的,由外中斷是隨機性的,由I/O設備引起,何時引起事先設備引起,何時引起事先未知。未知。4344(4) 除單步中斷外,所有內部中斷的優先權都比除單步中斷外,所有內部中斷的優先權都比外部中斷的優先權高。外部中斷的優先權高。內部中斷的特點 8086中斷的優先級別:中斷的優先級別:內部中斷(單內部中斷(單步中斷除外)步中斷除外)非屏蔽中斷非屏蔽中斷可屏蔽中斷可屏蔽中斷單步中斷單步中斷IBM PC/XT中斷源的功能類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源00H被被0除除0FH并口并口1(打印機)中

30、斷(打印機)中斷1EH磁盤參數磁盤參數01H單步中斷單步中斷10H顯示器驅動程序顯示器驅動程序1FH圖形字符集圖形字符集02HNMI11H設備檢測設備檢測20H程序結束程序結束03H斷點中斷斷點中斷12H存儲器檢測存儲器檢測21HDOS系統調用系統調用04H溢出中斷溢出中斷13H軟盤驅動程序軟盤驅動程序22H結束地址結束地址05H打印屏幕打印屏幕14H通信驅動程序通信驅動程序23HCtrl-Break夭折鍵處理夭折鍵處理06H(保留)(保留)15H盒式磁帶機驅動程序盒式磁帶機驅動程序24H關鍵性錯誤處理關鍵性錯誤處理07H(保留)(保留)16H硬盤驅動程序硬盤驅動程序25H磁盤順序讀磁盤順序讀

31、08H定時中斷定時中斷17H打印機驅動程序打印機驅動程序26H磁盤順序寫磁盤順序寫09H鍵盤中斷鍵盤中斷18HBASIC程序程序27H程序結束且駐留內存程序結束且駐留內存0AH保留的硬件中斷保留的硬件中斷19H引導(引導(BOOT)程序)程序28HDOS內部使用內部使用0BH異步串口異步串口2中斷中斷1AH年月日定時中斷年月日定時中斷292EHDOS保留使用保留使用0CH異步串口異步串口1中斷中斷1BH用戶鍵盤用戶鍵盤2FHDOS內部使用內部使用0DH并口并口2(硬磁盤)中斷(硬磁盤)中斷1CH用戶定時器時標用戶定時器時標303FHDOS保留使用保留使用0EH軟盤中斷軟盤中斷1DHCRT初始化

32、參數初始化參數40FFH用戶自定義用戶自定義45中斷向量和中斷向量表一、一、中斷向量中斷向量:中斷服務程序的入口地址中斷服務程序的入口地址,包括段地址,包括段地址(CS, 存放于高存放于高4字節單元)和偏移地址(字節單元)和偏移地址(IP, 存放于低存放于低4字節單元)。字節單元)。二、二、中斷向量表中斷向量表:存放中斷向量的表格。位于內存空間:存放中斷向量的表格。位于內存空間的最低地址,長度的最低地址,長度1KB,可容納,可容納256類中斷向量(類中斷向量(256 41024)。)。中斷號與中斷服務程序入口地址中斷號與中斷服務程序入口地址的連接表的連接表46中斷向量和中斷向量表4748中斷向

33、量表的初始化n將用戶自定義的中斷服務程序入口地址放入向將用戶自定義的中斷服務程序入口地址放入向量表量表n注意點:注意點:n向量表所在的段地址向量表所在的段地址=0n存放子程序入口的單元的偏移地址存放子程序入口的單元的偏移地址=n4中斷向量的設置方法用三種方法來為中斷類型用三種方法來為中斷類型N設置中斷向量設置中斷向量1) 直接裝入法直接裝入法MOV AX, 00HMOV DS, AXMOV BX, N*4;中斷號中斷號BXMOV AX, OFFSET NEWINT ;中斷服務程序偏移地址中斷服務程序偏移地址MOV WORD PTR BX,AX;裝入偏移地址裝入偏移地址MOV AX, SEG N

34、EWINT;段基址;段基址MOV WORD PTR BX+2,AX;裝入段基址裝入段基址NEWINT PROCIRETNEWINT ENDP、 、 、 、 、49中斷向量的設置方法2) 使用串送存指令裝入法使用串送存指令裝入法CLI;關中斷關中斷MOV AX, 0MOV ES, AX;ES=0MOV DI, N*4;中斷向量指針;中斷向量指針MOV AX, OFFSET NEWINT;偏移地址偏移地址CLD;DF=0,增地址,增地址STOSW; 存串指令存串指令 AXDIDI+1,再再DI+2MOV AX, SEG NEWINT; 段基段基址址STOSW;存串指令存串指令 AXDI+2DI+3

35、STI;開中斷開中斷50中斷向量的設置方法3) 使用使用DOS功能調用設置中斷向量功能調用設置中斷向量 設置中斷向量是把由設置中斷向量是把由AL指指定的中斷類型定的中斷類型N的中斷向量的中斷向量DS:DX放置在中斷向量表中。放置在中斷向量表中。預置:預置:(AH)=25H 功能號功能號 ( AL)=N 中斷類型號中斷類型號 DS:DX=中斷向量中斷向量執行:執行:INT 21H例如:例如:MOV AX, SEG NEWINTMOV DS, AXMOV DX, OFFSET NEWINTMOV AL, NMOV AH, 25HINT 21H51中斷向量的設置方法n 例:利用例:利用 INT 21

36、H 設置中斷向量設置中斷向量MOV AH,25H; DOS功能調用號功能調用號25H AHMOV AL,40H; 將設置的中斷類型碼將設置的中斷類型碼 ALMOV DS,SEG USERINTMOV DX,OFFSET USERINT; 入口參數:入口參數:中斷服務程序的入口地址中斷服務程序的入口地址 DS:DXINT 21H 執行之后,中斷服務程序的入口地址值將放入中斷向執行之后,中斷服務程序的入口地址值將放入中斷向量表中量表中n4處連續的處連續的4個單元中。個單元中。 52537.2.4 中斷響應與處理一、內部中斷響應過程一、內部中斷響應過程 1. 當內部中斷發生時,當內部中斷發生時, 或

37、由或由INT n指令獲得中斷類型碼,指令獲得中斷類型碼, 或是按預定方式得到中斷類型碼(專用中斷:或是按預定方式得到中斷類型碼(專用中斷:0、1、3、4);); 2. 將類型碼將類型碼4,作為中斷向量表的指針;,作為中斷向量表的指針; 3. FR(PSW)入棧保護;)入棧保護;544. 清除清除IF和和TF標志(標志(0 IF、0 TF,屏蔽新的,屏蔽新的INTR中斷和單步中斷;中斷和單步中斷; 5. 把斷點處的把斷點處的IP和和CS值壓入堆棧:先壓入值壓入堆棧:先壓入CS值,值,再壓入再壓入IP值;值; 6. 取中斷向量(中斷服務程序的入口地址),分別取中斷向量(中斷服務程序的入口地址),分

38、別送至送至CS和和IP。 按新的地址執行中斷服務子程序。按新的地址執行中斷服務子程序。內部中斷響應過程55內部中斷的特點:內部中斷的特點:1進入中斷時,不需要執行中斷響應周期去獲得中進入中斷時,不需要執行中斷響應周期去獲得中斷類型碼。斷類型碼。2除單步中斷外,內部中斷無法用軟件禁止,不受除單步中斷外,內部中斷無法用軟件禁止,不受IF的影響。的影響。3內部中斷沒有隨機性,由指令在程序中的位置決內部中斷沒有隨機性,由指令在程序中的位置決定。定。4除單步中斷外,內部中斷優先級高于硬件中斷。除單步中斷外,內部中斷優先級高于硬件中斷。內部中斷響應過程外部中斷響應過程1. 非屏蔽中斷非屏蔽中斷NMI的響應

39、的響應 中斷類型碼為中斷類型碼為2。 當當NMI發生時,發生時,CPU在執行完當前指令后,轉在執行完當前指令后,轉去中斷類型碼為去中斷類型碼為2的中斷服務子程序。的中斷服務子程序。響應過程(除響應過程(除中斷類型碼中斷類型碼獲得方式外)同獲得方式外)同INT n。 CPU提供,不是外設提供。提供,不是外設提供。5657類型碼類型碼 INTACLKAD7AD0T1T2T3T4第一個第一個中斷響應周期中斷響應周期T1T2T3T4第二個第二個中斷響應周期中斷響應周期 可屏蔽中斷可屏蔽中斷INTR:CPU將執行持續兩個總線周期的中斷將執行持續兩個總線周期的中斷響應周期。響應周期。第一個總線周期第一個總

40、線周期 INTA*有效,向外設送出的中斷有效,向外設送出的中斷應答信號;應答信號;第二個總線周期第二個總線周期INTA*再次有效,表示外設應送再次有效,表示外設應送出中斷類型碼。出中斷類型碼。CPU將在將在T4周期前沿讀取中斷類型碼。周期前沿讀取中斷類型碼。外部中斷響應過程58 在在INTR線上的請求信號(高電平)必須保持到線上的請求信號(高電平)必須保持到當前指令當前指令的的結束。結束。當當INTR線有效且線有效且IF=1,則,則CPU在當前指令執行完畢后,響在當前指令執行完畢后,響應外部中斷請求,轉入中斷響應周期。應外部中斷請求,轉入中斷響應周期。中斷響應周期有中斷響應周期有2個,每個響應

41、周期由個,每個響應周期由4個個T組成,中間以空組成,中間以空閑狀閑狀 態(態(3個)隔開。個)隔開。2. 可屏蔽中斷可屏蔽中斷INTR的響應的響應類型碼類型碼 INTACLKAD7AD0T1T2T3T4第一個第一個中斷響應周期中斷響應周期T1T2T3T4第二個第二個中斷響應周期中斷響應周期59在每個中斷響應周期,在每個中斷響應周期,CPU都往引腳都往引腳INTA*發一個負脈沖信發一個負脈沖信號號請求中斷的外設在收到第請求中斷的外設在收到第2個個INTA*時,將中斷類型碼時,將中斷類型碼 DB(通常由(通常由8259傳送)。傳送)。 獲得中斷類型碼后,則轉入中斷處理過程(同內部中斷)。獲得中斷類

42、型碼后,則轉入中斷處理過程(同內部中斷)。 INTR共執行共執行7個總線周期。個總線周期。類型碼類型碼 INTACLKAD7AD0T1T2T3T4第一個第一個中斷響應周期中斷響應周期T1T2T3T4第二個第二個中斷響應周期中斷響應周期中斷響應周期時序CPU從引腳從引腳INTA 發中斷響應信號,發中斷響應信號, 接 口 芯 片 接 收 此 信 號 , 把 中 斷 類 型 號 準 備 好 ; 同 時接 口 芯 片 接 收 此 信 號 , 把 中 斷 類 型 號 準 備 好 ; 同 時ISRi=1,IRRi=0。CPU再從引腳再從引腳INTA 發中斷響應信號,發中斷響應信號, 接口芯片接此信號后,將

43、中斷類型號送至數據總線上;接口芯片接此信號后,將中斷類型號送至數據總線上;CPU從數據總線獲取中斷類型號。從數據總線獲取中斷類型號。向量類型向量類型T1T2T3T4T1T2T3T46061中斷中斷類型碼的獲取類型碼的獲取NMI、斷點中斷、溢出中斷、被、斷點中斷、溢出中斷、被0除、單步中斷等類型除、單步中斷等類型碼固定。碼固定。INT N軟中斷類型碼由立即數軟中斷類型碼由立即數N給出。給出。外部中斷讀取中斷類型碼。外部中斷讀取中斷類型碼。中斷響應過程中斷響應過程6263已知中斷類型碼后,如何進入中斷服務程序?已知中斷類型碼后,如何進入中斷服務程序?1、將中斷類型碼乘以、將中斷類型碼乘以4,得到中

44、斷向量表的向量首址指針;,得到中斷向量表的向量首址指針;2、將斷點(當前、將斷點(當前CS、IP的值)入棧保護;的值)入棧保護;3、取中斷向量:把向量表指針所指的、取中斷向量:把向量表指針所指的4個連續字節的內容作個連續字節的內容作為中斷服務程序的入口地址,分別送給為中斷服務程序的入口地址,分別送給IP和和CS;4、按新的、按新的CS:IP指針執行中斷服務程序。指針執行中斷服務程序。中斷響應過程中斷響應過程64(FLAG)內內 存存 、 、 0200H 3000H 、 、 、 MOV AX, 0 ADD AX, DX MOV DI, AX、 MOV BX,CX、 IRET、01501000某中

45、斷源發申請中斷,某中斷源發申請中斷,申請執行類型號為申請執行類型號為N的中斷子程序的中斷子程序中斷響應過程中斷響應過程四、中斷過程舉例四、中斷過程舉例 設某輸入設備數據準備就緒后向設某輸入設備數據準備就緒后向CPU申請可屏蔽中斷,中斷申請可屏蔽中斷,中斷類型碼為類型碼為80H,中斷響應后執行的服務子程序名為,中斷響應后執行的服務子程序名為INTPROC。 程序開始,首先應對中斷向量表進行安排,即先進行中斷初程序開始,首先應對中斷向量表進行安排,即先進行中斷初始化。程序如下:始化。程序如下: CLIPUSHDSMOVAX,0000H;中斷向量指針的段基址中斷向量指針的段基址MOVDS,AXMOV

46、BX,0200H;中斷向量指針的偏移量中斷向量指針的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量偏移量 中斷向量表中斷向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址段基址 中斷向量表中斷向量表POPDSSTI65CLIPUSHDSMOVAX,0000H;中斷向量指針的段基址;中斷向量指針的段基址MOVDS,AXMOVBX,0200H;中斷向量指針的偏移量;中斷向量指針的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量;偏移量 中斷向量表中斷向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址;段基址 中斷向量

47、表中斷向量表POPDSSTIMOVAX, 2000HADDAX,AXMOVSI,AX 開中斷后,執行任何指令期間都有可能接收到中斷開中斷后,執行任何指令期間都有可能接收到中斷申請。申請。 假設執行到程序中的假設執行到程序中的ADDADD指令時收到中斷申請,且指令時收到中斷申請,且IF=1IF=1,則,則CPUCPU響應中斷。響應中斷。 響應過程如下圖所示:響應過程如下圖所示:66 MOV AX,2000H ADDAX,AX (2)當前指令結束,)當前指令結束,CPU響應中斷,執行中斷響應中斷,執行中斷 響應總線周期,獲得中斷類型碼(響應總線周期,獲得中斷類型碼(80H)1234:5678MOV

48、SI,AX (3)當前)當前FR內容壓棧,內容壓棧,IF=TF=0 (4)斷點)斷點CS(1234H)、)、IP(5678H)壓棧)壓棧 (5)查中斷向量表,中斷向量送)查中斷向量表,中斷向量送CS、IP (6)執行中斷服務處理程序 INTPROCPROC MOV DX,DPORT INAL,DXIRET INTPROCENDP (7)執行IRET指令,恢復斷點,恢復FR IP=5678H,CS=1234H,回到斷點執行 (1)INTR有效,外設申請中斷67START:MOV AX,DATAMOVDS,AXCLI;關中斷,設置中斷向量;關中斷,設置中斷向量SUB AX,AXMOVES,AX;中

49、斷向量表的段基址為;中斷向量表的段基址為0000HMOVDI,460H;在中斷向量表中的偏移量;在中斷向量表中的偏移量MOVAX,OFFSET INTSVCLDSTOSW;寫中斷向量的偏移量;寫中斷向量的偏移量MOVAX,SEG INTSVSTOSW ;寫中斷向量的段基址;寫中斷向量的段基址STI INT60H ;軟中斷指令;軟中斷指令 MOVAH,4CH;返回;返回DOSINT21H定義一個軟中斷,中斷類型號為定義一個軟中斷,中斷類型號為60H,在中斷服務程序中完成,在中斷服務程序中完成ASCII碼碼加偶校驗位(第加偶校驗位(第7位)的工作,位)的工作,ASCII碼首地址為碼首地址為ASCB

50、UF,字節數為,字節數為COUNT,加偶校驗位后仍放回原處。,加偶校驗位后仍放回原處。68INTSV PROC ;中斷服務程序;中斷服務程序PUSHAX ;保護現場;保護現場PUSHBXPUSHCXMOVCX,COUNTMOVBX,OFFSETASCBUFL2: MOVAL,BXANDAL,AL;建立標志;建立標志PF, PF=1,有偶數個有偶數個1JP L1OR AL,80HMOVBX,AL;加入偶校驗后寫回;加入偶校驗后寫回L1: INCBXLOOP L2POPCX;恢復現場;恢復現場POPBXPOPAXIRET69利用利用DOS功能調用設置中斷向量表功能調用設置中斷向量表設置中斷向量:設

51、置中斷向量: 把由把由AL指定中斷類型碼的中斷向量指定中斷類型碼的中斷向量DS:DX置在中斷置在中斷向量表中。向量表中。 預置預置 AH=25H, AL=中斷類型碼中斷類型碼 DS:DX=中斷向量中斷向量 執行執行 INT 21H讀取中斷向量:讀取中斷向量: 把由把由AL指定中斷類型碼的中斷向量從中斷向量表中取到指定中斷類型碼的中斷向量從中斷向量表中取到ES:BX中。中。 預置預置 AH=35H, AL=中斷類型碼中斷類型碼 執行執行 INT 21H 返回時送返回時送: ES:BX=中斷向量中斷向量707.3 可編程中斷控制器可編程中斷控制器8259A 專用于系統內專用于系統內可屏蔽硬件中斷可

52、屏蔽硬件中斷的控制,管理系的控制,管理系統的外部中斷請求。統的外部中斷請求。 主要功能特點:主要功能特點: 1、每片每片8級優先級管理,級聯后可達級優先級管理,級聯后可達64級級 2、自動產生中斷向量自動產生中斷向量 3、每路中斷可分別屏蔽每路中斷可分別屏蔽 4、功能靈活,功能靈活, 優先權等多種工作方式可編程優先權等多種工作方式可編程717.3.1 8259A的結構和功能數據數據總線總線緩沖器緩沖器讀寫讀寫邏輯邏輯控制邏輯控制邏輯服務服務狀態狀態寄存器寄存器ISR優先權優先權處理器處理器PR中斷中斷請求請求寄存器寄存器IRR中斷屏蔽寄存器中斷屏蔽寄存器IMR級聯緩級聯緩沖器沖器比較器比較器內

53、部總線INTD07A0CSWRRDEN/INTA72 8259A的內部結構的內部結構nIRR中斷請求寄存器中斷請求寄存器(8位位)保存保存8個個(IR0IR7)外部中斷請求信號外部中斷請求信號Di1,表示表示IRi引腳有中斷請求引腳有中斷請求Di0,表示表示IRi引腳無中斷請求引腳無中斷請求73IR中斷屏蔽寄存器中斷屏蔽寄存器(8位位)保存對中斷請求信號保存對中斷請求信號IRi的屏蔽狀態;的屏蔽狀態;Di1,則,則IRi引入的中斷被屏蔽(關閉);引入的中斷被屏蔽(關閉);Di0,則,則IRi引入的中斷被開放。引入的中斷被開放。 8259A的內部結構(續)的內部結構(續)74當當IR7IR0端有

54、多個中斷請求同時發生時端有多個中斷請求同時發生時, 由由PR判定其最高優先權;判定其最高優先權;在在INTA脈沖期間將它置入中斷服務寄存器脈沖期間將它置入中斷服務寄存器ISR的的相應位。相應位。PR優先權判別器優先權判別器(8位位) 8259A的內部結構(續)的內部結構(續)7576ISR中斷服務寄存器中斷服務寄存器(8位位)保存正在被保存正在被8259A服務著的中斷狀態;服務著的中斷狀態;Di1,表示,表示IRi中斷正在服務中;中斷正在服務中;Di0,表示沒有被服務。,表示沒有被服務。 8259A的內部結構(續)的內部結構(續)8位雙向三態緩沖器,構成位雙向三態緩沖器,構成8259A與系統數

55、據線的與系統數據線的接口。對接口。對8259A編程寫入的命令字和讀出編程寫入的命令字和讀出8259A狀狀態信息都是通過它傳送。態信息都是通過它傳送。數據總線緩沖器數據總線緩沖器 8259A的內部結構(續)的內部結構(續)7778讀寫控制邏輯讀寫控制邏輯接收讀接收讀/寫控制信號寫控制信號RD / WR、片選信號、片選信號CS和端口和端口選擇信號選擇信號A0 。一片一片8259A在系統中占用在系統中占用2個口地址個口地址, 用地址線用地址線A0來選擇端口;用高位地址線通過譯碼來選擇端口;用高位地址線通過譯碼產生產生8259A的片選信號。的片選信號。 8259A的內部結構(續)的內部結構(續)包括命

56、令字包括命令字(ICW1ICW4)寄存器,操作字寄存器,操作字(OCW1OCW3)寄存器和相關的控制邏輯;寄存器和相關的控制邏輯;通過通過INT端向端向CPU發中斷請求信號發中斷請求信號, 從從INTA端接收端接收CPU的中的中斷響應信號斷響應信號, 控制控制8259A進入中斷狀態。進入中斷狀態。控制電路控制電路級連緩沖級連緩沖/比較器比較器一片一片8259A只能接收只能接收8級中斷級中斷, 當超過當超過8級時級時,可用多片可用多片8259A級連使用級連使用, 構成主從結構。可擴充到構成主從結構。可擴充到64級。級。 8259A的內部結構(續)的內部結構(續)79中斷級連方式的連接中斷級連方式

57、的連接一個系統中,一個系統中,8259A可以級連,有一個主可以級連,有一個主8259A,若干個,若干個(最多(最多8個)從個)從8259A級連時,主級連時,主8259A的三條級連線的三條級連線CAS0CAS2作為輸出線,作為輸出線,連至每個從連至每個從8259A的的CAS0CAS2每個從每個從8259A的中斷請求信號的中斷請求信號INT,連至主,連至主8259A的一個中的一個中斷請求輸入端斷請求輸入端IR主主8259A的的INT線連至線連至CPU的中斷請求輸入端的中斷請求輸入端SP/EN在非緩沖方式下,規定該在非緩沖方式下,規定該8259A是主片(是主片(SP1)還)還是從片(是從片(SP0)

58、動畫動畫圖示圖示80 CS A0 INTA D CAS0SP 主主8259 CAS1 CAS2 INTIR7 IR6 IR3 IR0CS A0 INTA D CAS0SP 從從8259 CAS1 CAS2IR7 IR0 INTCS A0 INTA D CAS0SP 從從8259 CAS1 CAS2IR7 IR0 INTABCBDBVccD70D70 8259 8259級連電路級連電路81 8259A的引腳功能的引腳功能nD7D0 : 雙向數據總線。傳送雙向數據總線。傳送控制、狀態信息和中斷類型號。控制、狀態信息和中斷類型號。nWR* : 寫信號。輸入寫信號。輸入, 低電平有低電平有效。當有效時

59、效。當有效時, 8259A接收接收CPU送來的命令字。送來的命令字。nRD* : 讀信號。輸入讀信號。輸入, 低電平有低電平有效。當有效時效。當有效時, 8259A將狀態信將狀態信息放入數據總線供息放入數據總線供CPU檢測。檢測。82nA0 : 內部地址信號,輸入。內部地址信號,輸入。8259A只占兩個地址只占兩個地址, A0與與CS* 一同構成一同構成8259A的端口奇的端口奇/偶地址選擇。偶地址選擇。nCS*: 片選信號。輸入片選信號。輸入, 低電平有效。有效時低電平有效。有效時, CPU可對該可對該8259A進行讀寫。進行讀寫。 8259A的引腳功能(續)的引腳功能(續)83與處理器接口

60、引腳的邏輯功能與處理器接口引腳的邏輯功能 A0 RD* WR* CS*功能功能0 1 0 01 1 0 00 0 1 01 0 1 0 1 1 0 1寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數據總線高阻狀態數據總線高阻狀態數據總線高阻狀態數據總線高阻狀態84nIR7IR0 : 外部中斷請求信號,輸入。外部中斷請求信號,輸入。nINT :中斷請求信號,輸出。當中斷請求信號,輸出。當IR7IR0任一引任一引腳有中斷請求時腳有中斷請求時, 8259A從從INT向向CPU發出中斷請發出中斷請求信號。求信號。nINTA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論