計(jì)算機(jī)專接本之微機(jī)原理-7.中斷_第1頁
計(jì)算機(jī)專接本之微機(jī)原理-7.中斷_第2頁
計(jì)算機(jī)專接本之微機(jī)原理-7.中斷_第3頁
計(jì)算機(jī)專接本之微機(jī)原理-7.中斷_第4頁
計(jì)算機(jī)專接本之微機(jī)原理-7.中斷_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第第7章中斷章中斷27.1中斷中斷的的概念概念中斷就是指中斷就是指CPU響應(yīng)中斷請求,暫?,F(xiàn)行的主程序,響應(yīng)中斷請求,暫?,F(xiàn)行的主程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)子程序,完成中斷事件處理后,返回?cái)噢D(zhuǎn)去執(zhí)行中斷服務(wù)子程序,完成中斷事件處理后,返回?cái)帱c(diǎn)繼續(xù)執(zhí)行主程序的過程。點(diǎn)繼續(xù)執(zhí)行主程序的過程。37.1.1 8086的中斷源的中斷源 中斷源中斷源即引起即引起CPU中斷的外部事件或內(nèi)部原因中斷的外部事件或內(nèi)部原因 硬件中斷硬件中斷(外部中斷)、(外部中斷)、軟件中斷軟件中斷(內(nèi)部中斷)(內(nèi)部中斷) 微型計(jì)算機(jī)應(yīng)用中斷技術(shù)后的功能特點(diǎn):微型計(jì)算機(jī)應(yīng)用中斷技術(shù)后的功能特點(diǎn):可實(shí)現(xiàn)同步操作可實(shí)現(xiàn)同步操作、可進(jìn)行

2、實(shí)時(shí)處理可進(jìn)行實(shí)時(shí)處理、能及時(shí)處理各種故障能及時(shí)處理各種故障 中斷源中斷源內(nèi)部指令中斷內(nèi)部指令中斷 (INT n)由由CPU的某些運(yùn)算錯(cuò)誤引起的某些運(yùn)算錯(cuò)誤引起為調(diào)試程序(為調(diào)試程序(DEBUG)設(shè)置的中斷)設(shè)置的中斷外部中斷外部中斷軟件中斷軟件中斷非屏蔽中斷(非屏蔽中斷(NMI)可屏蔽中斷(可屏蔽中斷(INTR)除法錯(cuò)中斷(除法錯(cuò)中斷(INT 0)溢出中斷(溢出中斷(INT 4)單步中斷(單步中斷(INT 1)斷點(diǎn)中斷(斷點(diǎn)中斷(INT 3)41. 外部中斷外部中斷 外部中斷是由于外部中斷是由于8088外部提出中斷請求引起外部提出中斷請求引起的程序中斷的程序中斷。 利用外部中斷,微機(jī)系統(tǒng)可以

3、實(shí)時(shí)響應(yīng)外部設(shè)備的數(shù)據(jù)傳利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部設(shè)備的數(shù)據(jù)傳送請求,能夠及時(shí)處理外部意外或緊急事件送請求,能夠及時(shí)處理外部意外或緊急事件 外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,所以是真正的外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,所以是真正的中斷中斷(Interrupt) 內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為稱為異常異常(Exception) 8086/8088CPU為外部設(shè)備提供了兩條硬件中斷信號線,為外部設(shè)備提供了兩條硬件中斷信號線,即即NMI和和INTR中斷請求信號。中斷請求信號。5 非屏蔽中斷非屏蔽中斷 通過

4、非屏蔽中斷請求信號向微處理器提出的中斷請求,微通過非屏蔽中斷請求信號向微處理器提出的中斷請求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為非屏蔽中斷中斷被稱為非屏蔽中斷 8088的非屏蔽中斷的向量號為的非屏蔽中斷的向量號為2,非屏蔽中斷請求信號為,非屏蔽中斷請求信號為NMI 非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如: 電源調(diào)電前的數(shù)據(jù)保護(hù)電源調(diào)電前的數(shù)據(jù)保護(hù) 存儲(chǔ)器讀寫錯(cuò)誤的處理存儲(chǔ)器讀寫錯(cuò)誤的處理6 可屏蔽中斷可屏蔽中斷 外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微外部

5、通過可屏蔽中斷請求信號向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號,這個(gè)中斷就是予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號,這個(gè)中斷就是可屏蔽中斷可屏蔽中斷 8088的可屏蔽中斷請求和響應(yīng)信號分別是的可屏蔽中斷請求和響應(yīng)信號分別是INTR和和INTA*;由由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號來自外部標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號來自外部中斷控制器中斷控制器 8088通常需要配合中斷控制器通常需要配合中斷控制器8259A共同處理可屏蔽中斷共同處理可屏蔽中斷 可屏蔽中斷主要

6、用于主機(jī)與外設(shè)交換數(shù)據(jù)可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)IF控制可屏蔽中斷的響應(yīng)控制可屏蔽中斷的響應(yīng)7中斷標(biāo)志中斷標(biāo)志IFIF的狀態(tài)的狀態(tài) IF0:可屏蔽中斷不會(huì)被響應(yīng):可屏蔽中斷不會(huì)被響應(yīng) 關(guān)中斷、禁止中斷、中斷屏蔽關(guān)中斷、禁止中斷、中斷屏蔽 系統(tǒng)復(fù)位,使系統(tǒng)復(fù)位,使IF0 任何一個(gè)中斷被響應(yīng),使任何一個(gè)中斷被響應(yīng),使IF0 執(zhí)行指令執(zhí)行指令CLI,使,使IF0 IF1:可屏蔽中斷會(huì)被響應(yīng):可屏蔽中斷會(huì)被響應(yīng) 開中斷、允許中斷、中斷開放開中斷、允許中斷、中斷開放 執(zhí)行指令執(zhí)行指令STI,使,使IF1 執(zhí)行指令執(zhí)行指令I(lǐng)RET恢復(fù)原恢復(fù)原IF狀態(tài)狀態(tài)82. 2. 內(nèi)部中斷內(nèi)部中斷 在在808

7、6/8088系統(tǒng)中,通過執(zhí)行中斷指令或由系統(tǒng)中,通過執(zhí)行中斷指令或由CPU本身啟本身啟動(dòng)的中斷稱為動(dòng)的中斷稱為內(nèi)部中斷內(nèi)部中斷(也稱軟件中斷)。除單步中斷外,(也稱軟件中斷)。除單步中斷外,內(nèi)部中斷無法用軟件禁止,即不受中斷允許標(biāo)志內(nèi)部中斷無法用軟件禁止,即不受中斷允許標(biāo)志IF的影響。的影響。 內(nèi)部中斷是由于內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)異常引起內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中的程序中斷斷 內(nèi)部中斷的中斷向量號已定(1) 0型中斷型中斷除法出錯(cuò)中斷除法出錯(cuò)中斷(2) 1型中斷型中斷單步中斷單步中斷(3) 3型中斷型中斷斷點(diǎn)中斷斷點(diǎn)中斷(4) 4型中斷型中斷溢出中斷溢出中斷(5) INT

8、 n指令中斷指令中斷9(1)指令中斷指令中斷 在執(zhí)行中斷調(diào)用指令在執(zhí)行中斷調(diào)用指令I(lǐng)NT n時(shí)產(chǎn)生的一個(gè)向量號為時(shí)產(chǎn)生的一個(gè)向量號為n(0 255)的內(nèi)部中斷,稱為指令中斷)的內(nèi)部中斷,稱為指令中斷例如:例如:DOS功能調(diào)用功能調(diào)用 INT 21H 測試存儲(chǔ)器容量測試存儲(chǔ)器容量 INT 12H10(2) 除法錯(cuò)中斷除法錯(cuò)中斷 在執(zhí)行除法指令時(shí),若除數(shù)為在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器所能表或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號為達(dá)的范圍,則產(chǎn)生一個(gè)向量號為0的內(nèi)部中斷,稱為除法的內(nèi)部中斷,稱為除法錯(cuò)中斷錯(cuò)中斷mov bl,0idiv bl;除數(shù);除數(shù)BL0,產(chǎn)生除法錯(cuò)中斷

9、,產(chǎn)生除法錯(cuò)中斷mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表達(dá)表達(dá);產(chǎn)生除法錯(cuò)中斷;產(chǎn)生除法錯(cuò)中斷例如:例如:11(3)溢出中斷溢出中斷 在執(zhí)行溢出中斷指令在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志時(shí),若溢出標(biāo)志OF為為1,則產(chǎn),則產(chǎn)生一個(gè)向量號為生一個(gè)向量號為4的內(nèi)部中斷,被稱為溢出中斷的內(nèi)部中斷,被稱為溢出中斷例如:例如:mov al,20hadd al, 70h;20H70H90H,溢出:,溢出:OF1into;因?yàn)?;因?yàn)镺F1,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷12(4)單步中斷單步中斷 若單步中斷若單步中斷TF為為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)

10、生一個(gè)向,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)向量號為量號為1的內(nèi)部中斷,稱為單步中斷的內(nèi)部中斷,稱為單步中斷例如:例如:DEBUG.EXE調(diào)試程序的單步命令調(diào)試程序的單步命令T就利用單步就利用單步中斷實(shí)現(xiàn)對程序的單步調(diào)試中斷實(shí)現(xiàn)對程序的單步調(diào)試138086/8088的中斷類型小結(jié)非屏蔽中斷源非屏蔽中斷源中斷邏輯中斷邏輯INTO指令指令單步單步中斷中斷除法除法錯(cuò)誤錯(cuò)誤INT N指令指令CPUINTRNMI可屏蔽中斷源可屏蔽中斷源8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 INTA147.1.2 8086的的中斷系統(tǒng)中斷系統(tǒng) 8088能夠處理能夠

11、處理256個(gè)中斷個(gè)中斷,分內(nèi)部和外部兩類。用中斷向,分內(nèi)部和外部兩類。用中斷向量號量號0255區(qū)別區(qū)別 可屏蔽中斷還需要借助專用中斷控制器可屏蔽中斷還需要借助專用中斷控制器Intel 8259A實(shí)現(xiàn)優(yōu)實(shí)現(xiàn)優(yōu)先權(quán)管理先權(quán)管理 中斷類型:中斷類型:內(nèi)部中斷內(nèi)部中斷 除法錯(cuò)中斷除法錯(cuò)中斷 指令中斷指令中斷 溢出中斷溢出中斷 單步中斷單步中斷外部中斷外部中斷 非屏蔽中斷非屏蔽中斷 可屏蔽中斷可屏蔽中斷15 在在8086系統(tǒng)中,允許引入系統(tǒng)中,允許引入256種類型中斷源(類型種類型中斷源(類型碼為碼為0255),相應(yīng)有),相應(yīng)有256個(gè)中斷服務(wù)程序個(gè)中斷服務(wù)程序入口地入口地址。存放中斷地址的一段內(nèi)存空間

12、稱址。存放中斷地址的一段內(nèi)存空間稱中斷向量表中斷向量表。 中斷向量即中斷服務(wù)程序的入口地址中斷向量即中斷服務(wù)程序的入口地址。 中斷向量表中存放著中斷服務(wù)程序的入口地址。中斷向量表中存放著中斷服務(wù)程序的入口地址。CPU 響應(yīng)中斷后根據(jù)響應(yīng)中斷后根據(jù)中斷類型號中斷類型號在中斷向量表中在中斷向量表中查到對應(yīng)的中斷服務(wù)程序的入口地址,然后轉(zhuǎn)到查到對應(yīng)的中斷服務(wù)程序的入口地址,然后轉(zhuǎn)到中斷服務(wù)程序。中斷服務(wù)程序。 在內(nèi)存中專門開辟一個(gè)區(qū)域,存放中斷向量表。在內(nèi)存中專門開辟一個(gè)區(qū)域,存放中斷向量表。16中斷向量表中斷向量表示意圖示意圖low17 中斷向量中斷向量:中斷服務(wù)子程序的入口地址,每個(gè)中斷服務(wù)子:

13、中斷服務(wù)子程序的入口地址,每個(gè)中斷服務(wù)子程序?qū)?yīng)一個(gè)中斷類型號程序?qū)?yīng)一個(gè)中斷類型號 中斷向量表中斷向量表:存放中斷向量的區(qū)域(:存放中斷向量的區(qū)域(00000H003FFH) 邏輯地址含有段地址邏輯地址含有段地址CS和偏移地址和偏移地址IP(32位)位) 每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)個(gè)字節(jié) 8088微處理器從物理地址微處理器從物理地址000H開始,依次安排各個(gè)中斷開始,依次安排各個(gè)中斷向量,向量號也從向量,向量號也從0開始開始 256個(gè)中斷占用個(gè)中斷占用1KB區(qū)域,就形成區(qū)域,就形成中斷向量表中斷向量表 向量號為

14、向量號為N的中斷向量的的中斷向量的物理地址物理地址N418 對于不同的微機(jī)系統(tǒng),對于不同的微機(jī)系統(tǒng),CPU中斷處理的具體過程不盡相中斷處理的具體過程不盡相同,但是一個(gè)完整的中斷基本過程應(yīng)包括:同,但是一個(gè)完整的中斷基本過程應(yīng)包括:中斷請求中斷請求、中中斷判優(yōu)斷判優(yōu)、中斷響應(yīng)中斷響應(yīng)、中斷處理中斷處理及及中斷返回中斷返回等五個(gè)基本過程。等五個(gè)基本過程。中中斷斷請請求求中中斷斷判判優(yōu)優(yōu)中中斷斷響響應(yīng)應(yīng)中中斷斷處處理理中中斷斷返返回回197.2.1 中斷請求中斷請求 外部中斷是由于外部中斷是由于8088外部提出中斷請求外部提出中斷請求引起的程序中斷引起的程序中斷(1)非屏蔽中斷)非屏蔽中斷 通過非屏

15、蔽中斷請求信號向微處理器提出的中斷請求,微處理器通過非屏蔽中斷請求信號向微處理器提出的中斷請求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng)無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng)(2)可屏蔽中斷)可屏蔽中斷 外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微處理器外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號時(shí)輸出可屏蔽中斷響應(yīng)信號207.2.2 中斷判優(yōu)中斷判優(yōu)為什么需要中斷判優(yōu)?發(fā)生更緊急的事情!為什么需要中斷判優(yōu)?發(fā)生更緊急的事情! 當(dāng)多個(gè)中

16、斷源同時(shí)發(fā)生中斷請求時(shí)當(dāng)多個(gè)中斷源同時(shí)發(fā)生中斷請求時(shí)CPU先響應(yīng)優(yōu)先級高的先響應(yīng)優(yōu)先級高的中斷。中斷。 當(dāng)當(dāng)CPU 正在運(yùn)行中斷服務(wù)程序時(shí)又有高優(yōu)先級的中斷請正在運(yùn)行中斷服務(wù)程序時(shí)又有高優(yōu)先級的中斷請求進(jìn)入,求進(jìn)入,CPU 會(huì)暫時(shí)掛起正在運(yùn)行的中斷服務(wù)程序去執(zhí)會(huì)暫時(shí)掛起正在運(yùn)行的中斷服務(wù)程序去執(zhí)行高級的中斷服務(wù)程序。實(shí)現(xiàn)中斷嵌套。行高級的中斷服務(wù)程序。實(shí)現(xiàn)中斷嵌套。21 8086/8088系統(tǒng)中,中斷優(yōu)先權(quán)排隊(duì)次序從高到低為:系統(tǒng)中,中斷優(yōu)先權(quán)排隊(duì)次序從高到低為: 除法出錯(cuò)、除法出錯(cuò)、INTn、INTO、NMI、INTR、單步中斷。、單步中斷。 除單步之外的內(nèi)部除單步之外的內(nèi)部中斷中斷優(yōu)先權(quán)最

17、高,其次是非屏蔽中斷,優(yōu)先權(quán)最高,其次是非屏蔽中斷,再次是可屏蔽中斷,而單步最低。再次是可屏蔽中斷,而單步最低。22 中斷優(yōu)先權(quán)中斷優(yōu)先權(quán)管理管理(1) 軟件查詢方式軟件查詢方式 軟件查詢優(yōu)先方式是最簡單的中斷優(yōu)先處理軟件查詢優(yōu)先方式是最簡單的中斷優(yōu)先處理方式。圖方式。圖7.5顯示了采用軟件查詢方式的接口電路。顯示了采用軟件查詢方式的接口電路。(2)硬件優(yōu)先權(quán)排隊(duì)電路)硬件優(yōu)先權(quán)排隊(duì)電路 硬件優(yōu)先權(quán)排隊(duì)方式常用的有兩種:硬件優(yōu)先權(quán)排隊(duì)方式常用的有兩種: 專用硬件方式專用硬件方式可編程的中斷控制器。采用可可編程的中斷控制器。采用可編程中斷控制器,是當(dāng)前微型計(jì)算機(jī)系統(tǒng)中解決中編程中斷控制器,是當(dāng)前

18、微型計(jì)算機(jī)系統(tǒng)中解決中斷優(yōu)先權(quán)管理的常用辦法。詳細(xì)斷優(yōu)先權(quán)管理的常用辦法。詳細(xì)的的將在將在后面后面介紹。介紹。 簡單硬件方式簡單硬件方式鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路。鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路。23保留現(xiàn)場保留現(xiàn)場A申請服務(wù)申請服務(wù)?B申請服務(wù)申請服務(wù)?C申請服務(wù)申請服務(wù)?恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場外設(shè)外設(shè)A中斷服務(wù)程序中斷服務(wù)程序外設(shè)外設(shè)B中斷服務(wù)程序中斷服務(wù)程序外設(shè)外設(shè)C中斷服務(wù)程序中斷服務(wù)程序YYYNNN軟件查詢方式流程圖軟件查詢方式流程圖24 對于內(nèi)部中斷和非屏蔽中斷來說對于內(nèi)部中斷和非屏蔽中斷來說CPUCPU應(yīng)立即響應(yīng)。應(yīng)立即響應(yīng)。n對于可屏蔽中斷來說,對于可屏蔽中斷來說,CPUCPU在每條指令的最后一個(gè)在每條

19、指令的最后一個(gè)T T狀態(tài)狀態(tài)檢測檢測INTRINTR引腳,當(dāng)有中斷請求并開中斷(引腳,當(dāng)有中斷請求并開中斷(IF=1IF=1)的情況下)的情況下向外設(shè)發(fā)出中斷響應(yīng)信號向外設(shè)發(fā)出中斷響應(yīng)信號INTAINTA* *。n對于可屏蔽中斷,對于可屏蔽中斷,CPUCPU可以由軟件設(shè)置,使之不能被響應(yīng),可以由軟件設(shè)置,使之不能被響應(yīng),稱為中斷屏蔽稱為中斷屏蔽 可屏蔽中斷的響應(yīng):可屏蔽中斷的響應(yīng): CPU響應(yīng)中斷后響應(yīng)中斷后(后具體講)(后具體講) 當(dāng)CPU 響應(yīng)中斷后首先要保護(hù)斷點(diǎn),然后轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行結(jié)束返回?cái)帱c(diǎn)繼續(xù)執(zhí)行被中斷的程序。 251.如何響應(yīng)各種中斷(重要考點(diǎn))如何響應(yīng)各種

20、中斷(重要考點(diǎn))v 8086/8088中的各種中斷的響應(yīng)和處理過程是不相同的。中的各種中斷的響應(yīng)和處理過程是不相同的。主要區(qū)別在于如何獲取相應(yīng)的中斷類型碼。主要區(qū)別在于如何獲取相應(yīng)的中斷類型碼。v 下面分別介紹下面分別介紹26(1)內(nèi)部中斷的響應(yīng)內(nèi)部中斷的響應(yīng)對于專用中斷,中斷類型碼是自動(dòng)形成的。對于專用中斷,中斷類型碼是自動(dòng)形成的。幾種類型碼為:類型幾種類型碼為:類型0、1、3、4對于對于INT n指令,其類型碼為指令中給定的指令,其類型碼為指令中給定的n。如何獲取相應(yīng)的中斷類型碼如何獲取相應(yīng)的中斷類型碼?不從數(shù)據(jù)總線讀取中斷類型碼不從數(shù)據(jù)總線讀取中斷類型碼27(2)非非屏蔽中斷的響應(yīng)屏蔽中

21、斷的響應(yīng) 對于不可屏蔽中斷和對于不可屏蔽中斷和IF無關(guān),也不用判斷中斷源,無關(guān),也不用判斷中斷源,CPU采采樣到非屏蔽中斷請求時(shí),樣到非屏蔽中斷請求時(shí),自動(dòng)提供中斷類型號自動(dòng)提供中斷類型號2,然后根,然后根據(jù)中斷類型號,查找中斷向量表指針,其后的處理與內(nèi)部據(jù)中斷類型號,查找中斷向量表指針,其后的處理與內(nèi)部中斷一樣。在中斷處理過程過程中仍能響應(yīng)不可屏蔽中斷。中斷一樣。在中斷處理過程過程中仍能響應(yīng)不可屏蔽中斷。 對于軟件中斷由程序設(shè)定,能被不可屏蔽中斷和可屏蔽中對于軟件中斷由程序設(shè)定,能被不可屏蔽中斷和可屏蔽中斷所中斷斷所中斷28(3)可屏蔽中斷的響應(yīng) CPU響應(yīng)可屏蔽中斷的響應(yīng)可屏蔽中斷的三個(gè)條

22、件三個(gè)條件:(1) 外設(shè)有中斷請求外設(shè)有中斷請求(2) 本中斷位未被屏蔽(取決于本中斷位未被屏蔽(取決于8259)(3) 中斷允許中斷允許IF 若可屏蔽中斷被響應(yīng)需要若可屏蔽中斷被響應(yīng)需要中斷響應(yīng)周期中斷響應(yīng)周期 關(guān)于關(guān)于INTR的中斷類型號:的中斷類型號:(1)可由硬件電路提供)可由硬件電路提供(2)如果有)如果有8259,則由,則由8259提供提供中斷響應(yīng)周期:中斷響應(yīng)周期:從從CPU中止現(xiàn)行程序中止現(xiàn)行程序轉(zhuǎn)入到中斷服務(wù)程序轉(zhuǎn)入到中斷服務(wù)程序這一過程這一過程 ,用兩個(gè)總線用兩個(gè)總線周期。周期。 29可屏蔽可屏蔽中斷中斷的的響應(yīng)響應(yīng)周期周期時(shí)序時(shí)序 第一個(gè)響應(yīng)周期:使AD15-AD0、AL

23、E/S7、A19/S6-A16/S3懸空。第二個(gè)響應(yīng)周期:外設(shè)向數(shù)據(jù)總線上輸送一個(gè)字節(jié)的中斷類型號。30(5) 根據(jù)前面得到的中斷類型碼,到內(nèi)存根據(jù)前面得到的中斷類型碼,到內(nèi)存0000段的中斷向段的中斷向量表中找到中斷向量,再根據(jù)中斷向量轉(zhuǎn)入相應(yīng)的中量表中找到中斷向量,再根據(jù)中斷向量轉(zhuǎn)入相應(yīng)的中斷處理子程序。斷處理子程序。CPU在響應(yīng)在響應(yīng)INTR中斷、并進(jìn)入中斷子程序的過程中斷、并進(jìn)入中斷子程序的過程(1) 從數(shù)據(jù)總線上讀取中斷類型碼,將其存入內(nèi)部暫存器。從數(shù)據(jù)總線上讀取中斷類型碼,將其存入內(nèi)部暫存器。(2) 將標(biāo)志寄存器的值推入堆棧。將標(biāo)志寄存器的值推入堆棧。(3) 把標(biāo)志寄存器的中斷允許

24、標(biāo)志把標(biāo)志寄存器的中斷允許標(biāo)志IF和單步標(biāo)志和單步標(biāo)志TF清零。清零。(4) 將斷點(diǎn)保護(hù)到堆棧中。將斷點(diǎn)保護(hù)到堆棧中。三個(gè)寫周期三個(gè)寫周期31如果把如果把CPU中斷響應(yīng)周期的動(dòng)作和中斷響應(yīng)過程結(jié)合起來,當(dāng)一個(gè)可中斷響應(yīng)周期的動(dòng)作和中斷響應(yīng)過程結(jié)合起來,當(dāng)一個(gè)可屏蔽中斷被響應(yīng)時(shí),屏蔽中斷被響應(yīng)時(shí),CPU實(shí)際執(zhí)行了實(shí)際執(zhí)行了7個(gè)總線周期。個(gè)總線周期。(1) 執(zhí)行第一個(gè)執(zhí)行第一個(gè)INTA周期周期(2) 執(zhí)行第二個(gè)執(zhí)行第二個(gè)INTA周期周期(3) 執(zhí)行一個(gè)總線寫周期執(zhí)行一個(gè)總線寫周期(4) 執(zhí)行一個(gè)總線寫周期執(zhí)行一個(gè)總線寫周期(5) 執(zhí)行一個(gè)總線寫周期執(zhí)行一個(gè)總線寫周期(6) 執(zhí)行一個(gè)總線讀周期執(zhí)行一

25、個(gè)總線讀周期,送,送IP(7) 執(zhí)行一個(gè)總線執(zhí)行一個(gè)總線讀讀周期,從中斷向量表中取出中斷服務(wù)程序入周期,從中斷向量表中取出中斷服務(wù)程序入口地址的段值送口地址的段值送CS。對于非屏蔽與軟中斷跳過第對于非屏蔽與軟中斷跳過第(1)、(2)步,從第步,從第(3)步開始執(zhí)行到第步開始執(zhí)行到第(7)步。步。CPU實(shí)際執(zhí)行了7個(gè)總線周期327.2.4 中斷處理中斷處理中斷處理子程序的結(jié)構(gòu)模式中斷處理子程序的結(jié)構(gòu)模式: :(1)(1)保護(hù)中斷現(xiàn)場保護(hù)中斷現(xiàn)場(壓棧,保護(hù)各寄存器的值)(壓棧,保護(hù)各寄存器的值)(2)(2)設(shè)置設(shè)置IFIF位,位,開中斷開中斷, ,允許級別更高的中斷進(jìn)入允許級別更高的中斷進(jìn)入(3

26、)(3)中斷處理子程序的主要部分中斷處理子程序的主要部分(4)(4)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場(彈棧使得各寄存器恢復(fù)進(jìn)入中斷時(shí)的值)(彈棧使得各寄存器恢復(fù)進(jìn)入中斷時(shí)的值)(5)(5)中斷返回中斷返回指令指令( (使斷點(diǎn)和使斷點(diǎn)和PSWPSW裝入裝入CS:IPCS:IP和和FLAG)FLAG)33中斷處理過程圖中斷處理過程圖關(guān)中斷關(guān)中斷斷點(diǎn)保護(hù)斷點(diǎn)保護(hù)轉(zhuǎn)中斷服務(wù)轉(zhuǎn)中斷服務(wù)保護(hù)現(xiàn)場保護(hù)現(xiàn)場開中斷開中斷中斷服務(wù)中斷服務(wù)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場返回主程序返回主程序執(zhí)行一條指令執(zhí)行一條指令指令結(jié)束指令結(jié)束INTR1?取下一條指令取下一條指令NN 從數(shù)據(jù)線讀中斷類從數(shù)據(jù)線讀中斷類型號型號PSW入棧入棧清清IF和和TFCS

27、、IP入棧入棧中斷向量中斷向量送送CS,IP執(zhí)行執(zhí)行PUSH指令指令 用于中斷嵌套。用于中斷嵌套。若無中斷嵌套,可若無中斷嵌套,可放在恢復(fù)現(xiàn)場前放在恢復(fù)現(xiàn)場前 執(zhí)行執(zhí)行POP指令指令原原PSW,IP,CS出棧,返回主程序出棧,返回主程序348086/8088的中斷過程的中斷過程8086/8088的中斷響應(yīng)過程完成當(dāng)前指令內(nèi)部中斷NMIINTRTF=1執(zhí)行下一條指令I(lǐng)F=1響應(yīng)中斷讀類型碼標(biāo)志入棧調(diào)服務(wù)程序CS、IP入棧清除IF、TF令TEMP=TF又有NMITEMP=1執(zhí)行服務(wù)程序CS、IP出棧標(biāo)志出棧繼續(xù)執(zhí)行被中斷的程序YNNNNYYYYNNYYNIF=1讀類型碼N形成中斷類型碼357.2.

28、5 中斷返回 指令:指令:IRET 斷點(diǎn)裝入CS:IPPSW裝入FLAG36例題例題例:某中斷的中斷類型號為例:某中斷的中斷類型號為68H68H,其中斷過程為:,其中斷過程為:(1 1) 計(jì)算存放計(jì)算存放中斷中斷服務(wù)程序入口地址服務(wù)程序入口地址的的地址地址=68H=68H* *4=1A0H4=1A0H;(2 2) 取中斷入口地址的取中斷入口地址的段內(nèi)偏移量裝入段內(nèi)偏移量裝入IPIP,IP=2050HIP=2050H ,段碼裝入段碼裝入CSCS,CS=A000HCS=A000H;(3 3)轉(zhuǎn)向)轉(zhuǎn)向中斷服務(wù)程序;中斷服務(wù)程序;(4 4)中斷返回中斷返回502000A0001A0H001A2H001A4H存放地址=68H*4=1A0H2050A000STIPUSH DSIRET中斷服務(wù)程序A000:2050I

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論