《微機(jī)原理與接口》第5章中斷系統(tǒng)_第1頁
《微機(jī)原理與接口》第5章中斷系統(tǒng)_第2頁
《微機(jī)原理與接口》第5章中斷系統(tǒng)_第3頁
《微機(jī)原理與接口》第5章中斷系統(tǒng)_第4頁
《微機(jī)原理與接口》第5章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩149頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)原理與接口技術(shù)微機(jī)原理與接口技術(shù)主講主講 易凡易凡 武漢大學(xué)物理學(xué)院電子科學(xué)與技術(shù)系武漢大學(xué)物理學(xué)院電子科學(xué)與技術(shù)系第五章第五章 中斷系統(tǒng)中斷系統(tǒng)5.1 5.1 中斷的基本概念中斷的基本概念中斷中斷處理器暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)而處理隨機(jī)事件,處理處理器暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)而處理隨機(jī)事件,處理完畢后再返回被中斷的程序處繼續(xù)執(zhí)行,這一全過程稱完畢后再返回被中斷的程序處繼續(xù)執(zhí)行,這一全過程稱為中斷。為中斷。中斷服務(wù)程序中斷服務(wù)程序1 1中斷服務(wù)程序中斷服務(wù)程序 2 2非預(yù)料事件非預(yù)料事件1 1非預(yù)料事件非預(yù)料事件 2 2CPU執(zhí)行流程中斷源中斷源能夠引發(fā)處理器中斷的信息源稱為中斷源。能夠引發(fā)處

2、理器中斷的信息源稱為中斷源。常見的中斷源:常見的中斷源:一般輸入輸出設(shè)備,如圖像管終端一般輸入輸出設(shè)備,如圖像管終端, , 打印機(jī)等。打印機(jī)等。數(shù)據(jù)通道,如磁盤、磁帶等。數(shù)據(jù)通道,如磁盤、磁帶等。實(shí)時時鐘,如定時器芯片實(shí)時時鐘,如定時器芯片 8253 8253 產(chǎn)生的定時中斷請求信產(chǎn)生的定時中斷請求信號。號。故障信號,如電源掉電等。故障信號,如電源掉電等。軟件中斷,如為調(diào)試程序而設(shè)置的中斷。軟件中斷,如為調(diào)試程序而設(shè)置的中斷。5.1 5.1 中斷的基本概念中斷的基本概念中斷系統(tǒng)中斷系統(tǒng)系統(tǒng)為實(shí)現(xiàn)中斷而采用的硬件和軟件措施。系統(tǒng)為實(shí)現(xiàn)中斷而采用的硬件和軟件措施。計算機(jī)采用中斷系統(tǒng)的目的計算機(jī)采用

3、中斷系統(tǒng)的目的維持系統(tǒng)的正常工作,提高系統(tǒng)效率。維持系統(tǒng)的正常工作,提高系統(tǒng)效率。實(shí)時處理。實(shí)時處理。為故障處理作準(zhǔn)備。為故障處理作準(zhǔn)備。5.1 5.1 中斷的基本概念中斷的基本概念中斷系統(tǒng)應(yīng)具備的基本功能中斷系統(tǒng)應(yīng)具備的基本功能對于硬設(shè)備的中斷請求,要具備屏蔽和開放功能,使得程對于硬設(shè)備的中斷請求,要具備屏蔽和開放功能,使得程序員能靈活控制。序員能靈活控制。系統(tǒng)響應(yīng)中斷后,能保護(hù)系統(tǒng)響應(yīng)中斷后,能保護(hù)“現(xiàn)場現(xiàn)場” ” ,并自動轉(zhuǎn)入中斷處理。,并自動轉(zhuǎn)入中斷處理。中斷處理結(jié)束,能自動正確返回斷點(diǎn)處。中斷處理結(jié)束,能自動正確返回斷點(diǎn)處。能實(shí)現(xiàn)能實(shí)現(xiàn)“中斷判優(yōu)中斷判優(yōu)”,即,即中斷源優(yōu)先權(quán)中斷源優(yōu)

4、先權(quán)排隊(duì),當(dāng)多個中斷排隊(duì),當(dāng)多個中斷源同時提出中斷請求時,高級別的請求被優(yōu)先響應(yīng)。源同時提出中斷請求時,高級別的請求被優(yōu)先響應(yīng)。能實(shí)現(xiàn)能實(shí)現(xiàn)中斷嵌套中斷嵌套,即高級別的中斷源能夠中斷低級別的中,即高級別的中斷源能夠中斷低級別的中斷服務(wù)程序。斷服務(wù)程序。5.1 5.1 中斷的基本概念中斷的基本概念保護(hù)現(xiàn)場保護(hù)現(xiàn)場是指是指CPUCPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),包括轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),包括CPUCPU內(nèi)內(nèi)部各寄存器、部各寄存器、斷點(diǎn)地址斷點(diǎn)地址等。等。斷點(diǎn)斷點(diǎn)是指是指CPUCPU執(zhí)行的現(xiàn)行程序被中斷時的下一條指令的地址,又執(zhí)行的現(xiàn)行程序被中斷時的下一條指令的地址,又稱稱斷點(diǎn)地址

5、斷點(diǎn)地址中斷嵌套:中斷嵌套:當(dāng)當(dāng)CPUCPU正在進(jìn)行某一級別中斷源的中斷處理時,若有更高級正在進(jìn)行某一級別中斷源的中斷處理時,若有更高級別的新中斷源發(fā)出請求,且新中斷源滿足響應(yīng)條件,則別的新中斷源發(fā)出請求,且新中斷源滿足響應(yīng)條件,則CPUCPU應(yīng)中止當(dāng)前的中斷服務(wù)程序,保護(hù)此程序的斷點(diǎn)和現(xiàn)場,應(yīng)中止當(dāng)前的中斷服務(wù)程序,保護(hù)此程序的斷點(diǎn)和現(xiàn)場,轉(zhuǎn)而響應(yīng)高級中斷。這種多級(重)中斷的處理方式稱為轉(zhuǎn)而響應(yīng)高級中斷。這種多級(重)中斷的處理方式稱為“嵌套嵌套”5.1 5.1 中斷的基本概念中斷的基本概念1000:150H1000:150H. . . .MOVMOVAX, 0AX, 0ADDADDAX,

6、 DXAX, DXMOVMOVDI,AXDI,AX. . . .PUSHPUSHAXAX. . . .IRETIRETCPUCPU在執(zhí)行此指令時,在執(zhí)行此指令時,某中斷源發(fā)申請中斷某中斷源發(fā)申請中斷; ;CPUCPU在執(zhí)行完該指令后,在執(zhí)行完該指令后,轉(zhuǎn)去執(zhí)行中斷子程轉(zhuǎn)去執(zhí)行中斷子程地址地址1000:150H1000:150H為斷點(diǎn)為斷點(diǎn)p斷點(diǎn)概念斷點(diǎn)概念p中斷嵌套過程示意圖中斷嵌套過程示意圖CPUCPU執(zhí)行流程執(zhí)行流程中斷服務(wù)程序中斷服務(wù)程序1 1非預(yù)料事件非預(yù)料事件1 1中斷服務(wù)程序中斷服務(wù)程序2 2非預(yù)料事件非預(yù)料事件2 25.25.2 8086 8086中斷系統(tǒng)中斷系統(tǒng)80868086

7、系統(tǒng)可處理系統(tǒng)可處理256256個個的中斷,可分為的中斷,可分為軟件中斷軟件中斷和和硬件中斷硬件中斷兩大類。兩大類。軟件中斷:軟件中斷:由處理器執(zhí)行某些指令引起的中斷由處理器執(zhí)行某些指令引起的中斷 ,亦稱,亦稱內(nèi)部中斷內(nèi)部中斷包括:包括:除法出錯、溢出、單步、斷點(diǎn)和指令中斷除法出錯、溢出、單步、斷點(diǎn)和指令中斷等等硬件中斷:硬件中斷:由外部引腳由外部引腳NMINMI和和INTRINTR觸發(fā)引起的中斷,亦稱觸發(fā)引起的中斷,亦稱外部中斷外部中斷5.2.1 80865.2.1 8086系統(tǒng)的中斷分類系統(tǒng)的中斷分類圖示圖示軟件中斷軟件中斷除法出錯中斷除法出錯中斷0 0 類型中斷類型中斷當(dāng)除數(shù)為當(dāng)除數(shù)為

8、0 0 或商超出了有關(guān)寄存器能表示的數(shù)值范圍,或商超出了有關(guān)寄存器能表示的數(shù)值范圍,則產(chǎn)生除法出錯中斷。則產(chǎn)生除法出錯中斷。例如例如movmovbl,0bl,0idividivblbl;除數(shù);除數(shù) 0 0 ,產(chǎn)生除法錯中斷,產(chǎn)生除法錯中斷movmovax,200 hax,200 hmovmovbl,1bl,1divdivblbl;商;商 200 H 200 H ,不能用,不能用 AL AL 表達(dá)表達(dá);產(chǎn)生除法錯中斷;產(chǎn)生除法錯中斷由處理器執(zhí)行某些指令引起的中斷由處理器執(zhí)行某些指令引起的中斷 ( ( 亦稱亦稱內(nèi)部中斷內(nèi)部中斷) ) ,包括:包括:除法出錯、溢出、單步、斷點(diǎn)和指令中斷除法出錯、溢出

9、、單步、斷點(diǎn)和指令中斷等等軟件中斷軟件中斷單步中斷單步中斷1 1 類型中斷類型中斷在單步標(biāo)志在單步標(biāo)志 TF=1TF=1 且中斷允許標(biāo)志且中斷允許標(biāo)志 IF=1IF=1 時,每執(zhí)行一條時,每執(zhí)行一條指令就引起一次中斷。指令就引起一次中斷。 斷點(diǎn)中斷斷點(diǎn)中斷3 3 類型中斷類型中斷主要用在除錯調(diào)試程序中主要用在除錯調(diào)試程序中, , 利用利用 “ “ INT 3INT 3” ” 設(shè)置斷點(diǎn)設(shè)置斷點(diǎn), , 目目的是顯示斷點(diǎn)前程序執(zhí)行結(jié)果。的是顯示斷點(diǎn)前程序執(zhí)行結(jié)果。 溢出中斷溢出中斷 4 4 類型中斷類型中斷當(dāng)溢出標(biāo)志當(dāng)溢出標(biāo)志OF=1OF=1時,執(zhí)行指令時,執(zhí)行指令I(lǐng)NTOINTO則產(chǎn)生溢出中斷。則

10、產(chǎn)生溢出中斷。例如例如MOVMOVAX ,2000 HAX ,2000 HADDADDAX ,7000 HAX ,7000 HINTOINTO; 2000 H 2000 H 7000 H 7000 H 9000 H 9000 H ,溢出:,溢出:OF=1OF=1;因?yàn)橐驗(yàn)镺F=1OF=1 ,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷軟件中斷軟件中斷n 中斷指令中斷指令 INT NINT NINT NINT N 是中斷指令,是中斷指令, N N 是中斷類型號是中斷類型號 ( (0 0 0 FFH0 FFH) )DOSDOS系統(tǒng)功能系統(tǒng)功能, , 基本輸入輸出系統(tǒng)(基本輸入輸出系統(tǒng)(BIOSBIOS)的功

11、能即是)的功能即是用用 INT N INT N 指令中斷調(diào)用。指令中斷調(diào)用。硬件中斷硬件中斷由處理器外部引腳由處理器外部引腳 NMINMI和和INTRINTR引起的中斷稱為引起的中斷稱為硬件硬件中斷中斷 ( ( 亦稱為亦稱為外部中斷外部中斷) )u非屏蔽中斷非屏蔽中斷通過處理器的通過處理器的 NMINMI( ( 非屏蔽中斷非屏蔽中斷) ) 引腳進(jìn)入,它不受中斷引腳進(jìn)入,它不受中斷允許標(biāo)志的屏蔽,微處理器無法禁止,將在當(dāng)前指令執(zhí)允許標(biāo)志的屏蔽,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng);行結(jié)束予以響應(yīng);8086 8086 的非屏蔽中斷的類型號為的非屏蔽中斷的類型號為 2 2 ;非屏蔽中斷主要

12、用于處理系統(tǒng)的意外或故障例如:非屏蔽中斷主要用于處理系統(tǒng)的意外或故障例如:電源調(diào)電前的數(shù)據(jù)保護(hù)電源調(diào)電前的數(shù)據(jù)保護(hù)存儲器讀寫錯誤的處理存儲器讀寫錯誤的處理u可屏蔽中斷可屏蔽中斷中斷請求信號通過中斷請求信號通過CPUCPU的的I INTRNTR引腳進(jìn)入;引腳進(jìn)入;中斷響應(yīng)信號從中斷響應(yīng)信號從INTAINTA引腳發(fā)出;引腳發(fā)出;IF=1IF=1時時, , CPUCPU響應(yīng)中斷;響應(yīng)中斷;IF=0, IF=0, 中斷請求被屏蔽中斷請求被屏蔽通常可屏蔽中斷源經(jīng)過中斷控制器通常可屏蔽中斷源經(jīng)過中斷控制器82598259A A管理再向管理再向CPUCPU發(fā)發(fā)INTRINTR請求。請求。p中斷標(biāo)志中斷標(biāo)志I

13、FIF的狀態(tài)的狀態(tài)指令指令 CLI CLI ,關(guān)中斷,禁止中斷,中斷屏蔽復(fù)位,使關(guān)中斷,禁止中斷,中斷屏蔽復(fù)位,使IFIF 0 0任何一個中斷被響應(yīng),亦使任何一個中斷被響應(yīng),亦使IFIF 0 0指令指令 STISTI ,開中斷、允許中斷、中斷開放執(zhí)行,使,開中斷、允許中斷、中斷開放執(zhí)行,使IFIF 1 1執(zhí)行指令執(zhí)行指令 IRET IRET 恢復(fù)原恢復(fù)原IFIF狀態(tài)狀態(tài)中斷類型碼中斷類型碼p80868086可以處理可以處理256256個中斷請求。每個中斷請求均對應(yīng)個中斷請求。每個中斷請求均對應(yīng)于唯一固定的類型號(碼),亦稱為中斷類型碼于唯一固定的類型號(碼),亦稱為中斷類型碼中斷類型號及功能分

14、配中斷類型號及功能分配類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源類型碼類型碼中斷源中斷源00H00H被被0 0除除0FH0FH并口并口1 1(打印機(jī))中斷(打印機(jī))中斷1EH1EH磁盤參數(shù)磁盤參數(shù)01H01H單步中斷單步中斷10H10H顯示器驅(qū)動程序顯示器驅(qū)動程序1FH1FH圖形字符集圖形字符集02H02HNMINMI11H11H設(shè)備檢測設(shè)備檢測20H20H程序結(jié)束程序結(jié)束03H03H斷點(diǎn)中斷斷點(diǎn)中斷12H12H存儲器檢測存儲器檢測21H21HDOSDOS系統(tǒng)調(diào)用系統(tǒng)調(diào)用IBM-PC/XTIBM-PC/XT中斷類型號的功能分配中斷類型號的功能分配類型碼類型碼中斷源中斷源類型碼類型碼中斷源

15、中斷源類型碼類型碼中斷源中斷源04H04H溢出中斷溢出中斷13H13H軟盤驅(qū)動程序軟盤驅(qū)動程序22H22H結(jié)束地址結(jié)束地址05H05H屏幕打印中斷屏幕打印中斷14H14H通信驅(qū)動程序通信驅(qū)動程序23H23HCtrl-BreakCtrl-Break夭折鍵處理夭折鍵處理06H06H(保留)(保留)15H15H盒式磁帶機(jī)驅(qū)動程序盒式磁帶機(jī)驅(qū)動程序24H24H關(guān)鍵性錯誤處理關(guān)鍵性錯誤處理07H07H(保留)(保留)16H16H硬盤驅(qū)動程序硬盤驅(qū)動程序25H25H磁盤順序讀磁盤順序讀08H08H定時電路中斷定時電路中斷17H17H打印機(jī)驅(qū)動程序打印機(jī)驅(qū)動程序26H26H磁盤順序?qū)懘疟P順序?qū)?9H09H鍵

16、盤中斷鍵盤中斷18H18HBASICBASIC程序程序27H27H程序結(jié)束且駐留內(nèi)存程序結(jié)束且駐留內(nèi)存0AH0AH保留的硬件保留的硬件( (級聯(lián)級聯(lián)) )中中斷斷19H19H引導(dǎo)(引導(dǎo)(BOOTBOOT)程序)程序28H28HDOSDOS內(nèi)部使用內(nèi)部使用0BH0BH異步串口異步串口2 2中斷中斷1AH1AH年月日定時中斷年月日定時中斷292922E EDOSDOS保留使用保留使用0CH0CH異步串口異步串口1 1中斷中斷1BH1BH用戶鍵盤用戶鍵盤2FH2FHDOSDOS內(nèi)部使用內(nèi)部使用0DH0DH并口并口2(2(硬磁盤硬磁盤) )中斷中斷1CH1CH用戶定時器時標(biāo)用戶定時器時標(biāo)3030 3F

17、3FDOSDOS保留使用保留使用0EH0EH軟盤中斷軟盤中斷1DH1DHCRTCRT初始化參數(shù)初始化參數(shù)5.2.2 5.2.2 中斷處理過程中斷處理過程中斷過程中斷過程分為:中斷請求、中斷響應(yīng)兩個過程分為:中斷請求、中斷響應(yīng)兩個過程u中斷請求過程中斷請求過程中斷源向處理器發(fā)出請求中斷信號;中斷源向處理器發(fā)出請求中斷信號;中斷信號將被鎖存,一直保持;中斷信號將被鎖存,一直保持;直到處理器響應(yīng)中斷后,中斷請求信號才被能清除直到處理器響應(yīng)中斷后,中斷請求信號才被能清除中斷過程(續(xù))中斷過程(續(xù))u中斷響應(yīng)過程中斷響應(yīng)過程處理器在執(zhí)行每條指令的最后一個時鐘周期檢測中斷請?zhí)幚砥髟趫?zhí)行每條指令的最后一個時

18、鐘周期檢測中斷請求信號若發(fā)現(xiàn)中斷請求信號有效,在允許中斷的條件下,求信號若發(fā)現(xiàn)中斷請求信號有效,在允許中斷的條件下,處理器響應(yīng)中斷;處理器響應(yīng)中斷;中斷響應(yīng)過程可細(xì)分為:中斷響應(yīng)過程可細(xì)分為:響應(yīng)、處理、返回響應(yīng)、處理、返回3 3個子過程個子過程p響應(yīng)過程:響應(yīng)過程:微處理器自動完成微處理器自動完成 3 3 項(xiàng)任務(wù):項(xiàng)任務(wù):標(biāo)志寄存器(標(biāo)志寄存器(FLAGS)FLAGS)內(nèi)容入棧保護(hù)內(nèi)容入棧保護(hù)關(guān)閉中斷(關(guān)閉中斷(IF=0IF=0),以禁止其它中斷請求;),以禁止其它中斷請求;斷點(diǎn)斷點(diǎn) (IP(IP和和CS)CS)棧保護(hù);棧保護(hù);獲得中斷服務(wù)程序入口地址,轉(zhuǎn)入中斷服務(wù)子程序。獲得中斷服務(wù)程序入

19、口地址,轉(zhuǎn)入中斷服務(wù)子程序。p處理過程處理過程該過程是在中斷子程序中完成,它位于中斷子程序之首,該過程是在中斷子程序中完成,它位于中斷子程序之首,主要包括主要包括3個部分:個部分: 保護(hù)現(xiàn)場保護(hù)現(xiàn)場將相關(guān)工作寄存器的內(nèi)容壓棧保護(hù);將相關(guān)工作寄存器的內(nèi)容壓棧保護(hù); 開中斷(使開中斷(使IF=1IF=1)為了響應(yīng)高級別的外部中斷,則需要打開中斷;為了響應(yīng)高級別的外部中斷,則需要打開中斷; 執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序中斷子程序的主要部分,完成中斷源的任務(wù)。中斷子程序的主要部分,完成中斷源的任務(wù)。中斷過程(續(xù))中斷過程(續(xù))p返回過程返回過程該過程也是在中斷子程序中完成,位于子程序的尾部,它該過

20、程也是在中斷子程序中完成,位于子程序的尾部,它主要包括主要包括3個部分:個部分: 關(guān)中斷(關(guān)中斷(IF=0IF=0)使得中斷被禁止,可順利恢復(fù)現(xiàn)場。使得中斷被禁止,可順利恢復(fù)現(xiàn)場。 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場將壓棧保護(hù)的內(nèi)容順序出棧給相關(guān)寄存器將壓棧保護(hù)的內(nèi)容順序出棧給相關(guān)寄存器 中斷返回中斷返回中斷服務(wù)子程序的最后是一條中斷返回指令中斷服務(wù)子程序的最后是一條中斷返回指令 IRETIRET ,它,它執(zhí)行后處理器自動從堆棧中彈出執(zhí)行后處理器自動從堆棧中彈出 IPIP、CSCS和和FLAGSFLAGS的內(nèi)的內(nèi)容容, , 返回主程序繼續(xù)執(zhí)行。返回主程序繼續(xù)執(zhí)行。中斷過程(續(xù))中斷過程(續(xù))Y還有還有NMITE

21、MP1標(biāo)志寄存器入棧標(biāo)志寄存器入棧TEMPTF,IFTF0CS:IP入棧入棧獲取中斷向量獲取中斷向量執(zhí)行服務(wù)程序執(zhí)行服務(wù)程序彈出彈出CS:IP彈出標(biāo)志寄存器彈出標(biāo)志寄存器返回被中斷程序返回被中斷程序(1)(2)(3)(4)(7)NNY(9)(8)u中斷響應(yīng)中斷響應(yīng)過程圖示過程圖示u中斷響應(yīng)周期時序中斷響應(yīng)周期時序CPUCPU從引腳從引腳/INTA /INTA 發(fā)中斷響應(yīng)信號,接口芯片接收此信發(fā)中斷響應(yīng)信號,接口芯片接收此信號,把中斷類型號準(zhǔn)備好;號,把中斷類型號準(zhǔn)備好;CPUCPU再從引腳再從引腳/INTA /INTA 發(fā)中斷響應(yīng)信號,接口芯片接此信發(fā)中斷響應(yīng)信號,接口芯片接此信號后,將中斷類

22、型號送至數(shù)據(jù)總線上;號后,將中斷類型號送至數(shù)據(jù)總線上;CPUCPU從數(shù)據(jù)總線獲取中斷類型號。從數(shù)據(jù)總線獲取中斷類型號。向量類型向量類型 INTACLKAD7AD0T1T2T3T4第第 一一 個中斷響應(yīng)周期個中斷響應(yīng)周期T1T2T3T4第第 二二 個中斷響應(yīng)周期個中斷響應(yīng)周期中斷源優(yōu)先權(quán)中斷源優(yōu)先權(quán)n8086 8086 各種中斷源的優(yōu)先權(quán),實(shí)際上是指被識別出各種中斷源的優(yōu)先權(quán),實(shí)際上是指被識別出來的先后;來的先后;nCPUCPU查詢中斷請求,而查詢中斷的順序確定了中斷查詢中斷請求,而查詢中斷的順序確定了中斷源的優(yōu)先權(quán)源的優(yōu)先權(quán)n80868086系統(tǒng)的各種中斷源的優(yōu)先權(quán)順序?yàn)椋合到y(tǒng)的各種中斷源的優(yōu)

23、先權(quán)順序?yàn)椋簆軟件中斷軟件中斷除法錯中斷除法錯中斷指令中斷指令中斷溢出中斷溢出中斷p非屏蔽(非屏蔽(NMINMI)中斷)中斷p可屏蔽(可屏蔽(INTRINTR)中斷)中斷p單步中斷單步中斷高高低低NMIN軟件中斷軟件中斷INTRTF=1中斷響應(yīng)周期中斷響應(yīng)周期讀中斷向量號讀中斷向量號下條指令下條指令現(xiàn)行指令現(xiàn)行指令I(lǐng)F1NNNNYYYYY查詢中斷源優(yōu)先權(quán)順序圖示查詢中斷源優(yōu)先權(quán)順序圖示中斷向量與向量表中斷向量與向量表n中斷向量中斷向量中斷服務(wù)子程序的入口地址亦稱中斷向量;中斷服務(wù)子程序的入口地址亦稱中斷向量;每個中斷向量共占每個中斷向量共占4 4個字節(jié),它分為兩部分個字節(jié),它分為兩部分n中斷服

24、務(wù)子程序所在段的段基址中斷服務(wù)子程序所在段的段基址(2 (2個字節(jié)個字節(jié)) )n中斷服務(wù)子程序入口的偏移地址中斷服務(wù)子程序入口的偏移地址(2 (2個字節(jié)個字節(jié)) )圖示圖示中斷向量表中斷向量表一個中斷向量為一個中斷向量為4 4個字節(jié)個字節(jié), , 256 256種中斷的中斷向量總共占用種中斷的中斷向量總共占用 1K1K字節(jié)字節(jié)。在在 8086 8086 系統(tǒng)中,將所有的中斷向量按類型碼順序存放于系統(tǒng)中,將所有的中斷向量按類型碼順序存放于內(nèi)存的最低地址內(nèi)存的最低地址( (00000 H00000 H003 FFH003 FFH) )的的1K1K單元中。單元中。存放中斷向量的這存放中斷向量的這1K1

25、K內(nèi)存單元區(qū)稱為內(nèi)存單元區(qū)稱為中斷向量表中斷向量表圖示圖示n中斷向量在中斷向量表中的位置中斷向量在中斷向量表中的位置: :地址地址= N= N4 4( N N4 43 3 )N N 4 4 字單元存放偏移地址字單元存放偏移地址N N 4 4 2 2 的字單元存放段基址的字單元存放段基址中斷向量和中斷向量表中斷向量和中斷向量表u中斷向量表舉例中斷向量表舉例例例5.1 5.1 類型類型5 5的中斷向量在向量表中的位置在的中斷向量在向量表中的位置在: :5 54 45 54 43=14H3=14H17 H 17 H 的的 4 4 個單元中個單元中14 H14 H、15 H 15 H 單元存放中斷服務(wù)

26、子程序入口的偏移地址單元存放中斷服務(wù)子程序入口的偏移地址16 H16 H、17 H 17 H 單元存放中斷服務(wù)子程序入口的段基址單元存放中斷服務(wù)子程序入口的段基址例例5.2 5.2 處理器執(zhí)行處理器執(zhí)行INT 21H INT 21H 指令時指令時, , 中斷向量的引導(dǎo)過程。中斷向量的引導(dǎo)過程。設(shè)設(shè)21H21H型中斷服務(wù)程序被放在地址為型中斷服務(wù)程序被放在地址為: XX:YY: XX:YY開始的內(nèi)存區(qū);開始的內(nèi)存區(qū);中斷向量中斷向量XX:YYXX:YY存放在:存放在:4 421H21H4 421H21H3 3的單元中的單元中;處理器取出處理器取出INT 21HINT 21H指令后指令后, ,CS

27、:IPCS:IP為下一指令為下一指令( (標(biāo)號標(biāo)號NEXT:NEXT:) ) 存存放單元的物理地址。放單元的物理地址。圖示圖示處理器執(zhí)行處理器執(zhí)行INT 21H INT 21H 之后:之后:FAGSFAGS、CSCS、IPIP的當(dāng)前值被壓棧保護(hù);的當(dāng)前值被壓棧保護(hù);CPUCPU從向量表的從向量表的4 42121H H4 421H21H3 3的單元中取得中斷向量的單元中取得中斷向量,并寫入,并寫入IPIP, CSCS之中;之中;CPUCPU根據(jù)根據(jù)CSCS:IPIP值轉(zhuǎn)向值轉(zhuǎn)向2121H H型中斷服務(wù)程序。型中斷服務(wù)程序。中斷程序執(zhí)行完畢,執(zhí)行中斷程序執(zhí)行完畢,執(zhí)行 IRET IRET 指令,退

28、出中斷:指令,退出中斷:CPUCPU從棧頂順序彈出保護(hù)的斷點(diǎn)給從棧頂順序彈出保護(hù)的斷點(diǎn)給 IP IP 、 CSCS、FLAGSFLAGS;根據(jù)根據(jù) CS: IP CS: IP 返回斷點(diǎn)返回斷點(diǎn) ( NEXT:) ( NEXT:) ,繼續(xù)執(zhí)行主程序。,繼續(xù)執(zhí)行主程序。u中斷向量表舉例中斷向量表舉例中斷向量表的初始化中斷向量表的初始化由基本輸出入系統(tǒng)提供的服務(wù)程序由基本輸出入系統(tǒng)提供的服務(wù)程序, ,其中斷向量是在系統(tǒng)加電其中斷向量是在系統(tǒng)加電后由基本輸出入系統(tǒng)負(fù)責(zé)設(shè)置。后由基本輸出入系統(tǒng)負(fù)責(zé)設(shè)置。由操作系統(tǒng)提供的服務(wù)程序由操作系統(tǒng)提供的服務(wù)程序, , 其中斷向量是在啟動操作系統(tǒng)其中斷向量是在啟動操

29、作系統(tǒng)時由操作系統(tǒng)負(fù)責(zé)設(shè)置。時由操作系統(tǒng)負(fù)責(zé)設(shè)置。用戶開發(fā)的中斷服務(wù)程序用戶開發(fā)的中斷服務(wù)程序, , 需要設(shè)置中斷向量。需要設(shè)置中斷向量。n設(shè)置中斷向量的方法設(shè)置中斷向量的方法例例5.3 5.3 設(shè)置類型設(shè)置類型N N的中斷向量的中斷向量, , 其中斷服務(wù)程序名為:其中斷服務(wù)程序名為:INTHAND INTHAND 。直接將中斷向量傳送至中斷向量表中相應(yīng)單元存放直接將中斷向量傳送至中斷向量表中相應(yīng)單元存放u直接指令裝入法直接指令裝入法例例 5.3 5.3 設(shè)置中斷向量設(shè)置中斷向量, , 其中斷服務(wù)程序名為其中斷服務(wù)程序名為INTHANDINTHANDMOVMOV AX , 0 AX , 0 M

30、OVMOV ES , AXES , AX; set to base of interrupt vector; set to base of interrupt vectorMOVMOV BX , NBX , N4 4; offset of type N interrupt; offset of type N interruptMOVMOV AX , OFFSET INTHANDAX , OFFSET INTHANDMOVMOV ES: WORD PTR BX,AXES: WORD PTR BX,AX; set addr of; set addr of INTHANDINTHANDMOVMOV

31、AX , SEG INTHANDAX , SEG INTHANDMOVMOV ES:WORD PTR BX+2,AXES:WORD PTR BX+2,AXINTHAND:INTHAND:; interrupt processing routine; interrupt processing routine IRET IRETn設(shè)置中斷向量的方法設(shè)置中斷向量的方法u用用DOSDOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用 (INT 21 H) (INT 21 H) 設(shè)置中斷向量設(shè)置中斷向量p25 H 25 H 功能:設(shè)置中斷向量功能:設(shè)置中斷向量預(yù)置預(yù)置: :AH =25 HAH =25 H AL= AL= 中

32、斷類型號(中斷類型號(N N )DS: DX= DS: DX= 中斷向量中斷向量執(zhí)行執(zhí)行: :INT 21 HINT 21 Hn設(shè)置中斷向量的方法設(shè)置中斷向量的方法p35 H 35 H 功能:取中斷向量功能:取中斷向量預(yù)置預(yù)置: :AH =35 HAH =35 HAL= AL= 中斷類型號(中斷類型號(N N )執(zhí)行執(zhí)行: :INT 21 HINT 21 H返回返回: :ES: BX= ES: BX= 中斷向量中斷向量例例5.4 5.4 使用使用DOSDOS功能調(diào)用存取中斷向量。功能調(diào)用存取中斷向量。MOVMOV AL , NAL , N; type N interrupt; type N i

33、nterruptMOVMOV AH , 35HAH , 35H; get interrupt vector; get interrupt vectorINTINT 21H21HPUSHPUSHESES; save the old base and; save the old base andPUSHPUSHBXBX; offset of interrupt N; offset of interrupt NMOV MOV AX , SEG INTHANDAX , SEG INTHANDMOV MOV DS , AXDS , AX; base of INTHAND in DS; base of I

34、NTHAND in DSMOV MOV DX , OFFSET INTHANDDX , OFFSET INTHANDMOVMOV AL , NAL , N; type N; type NMOVMOV AH , 25HAH , 25H; set interrupt vector; set interrupt vectorINTINT 21H21Hn設(shè)置中斷向量的方法設(shè)置中斷向量的方法( (舉例)舉例)POP DXPOP DX; restore the old offset; restore the old offsetPOP DSPOP DS; and base of interrupt; an

35、d base of interruptMOV AL , NMOV AL , N; type N; type NMOV AH , 25HMOV AH , 25H; set interrupt vector; set interrupt vectorINT 21HINT 21HRETRET; return interrupt processing routine; return interrupt processing routineINTHAND:INTHAND: IRET IRET設(shè)置中斷向量的方法設(shè)置中斷向量的方法( (舉例)舉例)5.2.35.2.3 中斷程序的編寫中斷程序的編寫中斷程序的

36、結(jié)構(gòu)中斷程序的結(jié)構(gòu)為了實(shí)現(xiàn)中斷,要編寫主程序和中斷子程序;為了實(shí)現(xiàn)中斷,要編寫主程序和中斷子程序;主程序主程序包括:中斷向量表初始化(先保存原中斷向量的內(nèi)包括:中斷向量表初始化(先保存原中斷向量的內(nèi)容容, , 然后接管中斷向量使其指向編制的新中斷服務(wù)程序),然后接管中斷向量使其指向編制的新中斷服務(wù)程序),開中斷。在應(yīng)用程序終止退出前開中斷。在應(yīng)用程序終止退出前, , 從變量中獲取原中斷向量從變量中獲取原中斷向量恢復(fù)到中斷向量表中。恢復(fù)到中斷向量表中。中斷子程序中斷子程序包括:保護(hù)現(xiàn)場,中斷服務(wù),發(fā)中斷結(jié)束命令包括:保護(hù)現(xiàn)場,中斷服務(wù),發(fā)中斷結(jié)束命令(EOIEOI),中斷返回),中斷返回中斷程序

37、結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例)例例5.5 實(shí)際中斷程序的結(jié)構(gòu)如下實(shí)際中斷程序的結(jié)構(gòu)如下:; ; 堆棧段堆棧段STACKSTACK SEGMENT STACK STACK SEGMENT STACK STACK DWDW128 DUP(0)128 DUP(0)STACKSTACK ENDSENDS;數(shù)據(jù)段;數(shù)據(jù)段DATADATASEGMENT DATASEGMENT DATAINT_SEGINT_SEGDW ? ; DW ? ; 定義變量定義變量, ,以保存中斷向量段址以保存中斷向量段址INT_OFFINT_OFFDW ? ; DW ? ; 定義變量定義變量, ,以保存中斷向量偏移量以保存中

38、斷向量偏移量DATADATAENDSENDS ;代碼段;代碼段CODECODESEGMENT CODESEGMENT CODEASSUMEASSUMECS: CODE , DS: DATA , SS: STACKCS: CODE , DS: DATA , SS: STACKSTART: START: MOVMOVAX , DATAAX , DATA; ; 建立數(shù)據(jù)段址建立數(shù)據(jù)段址MOVMOVDS , AXDS , AXMOVMOVAL , N AL , N ; N; N為指定中斷號為指定中斷號MOVMOVAH , 35HAH , 35H; ; 獲取中斷向量獲取中斷向量INTINT21H21HM

39、OVMOVINT_SEG , ESINT_SEG , ES; ;保存中斷向量段址保存中斷向量段址MOVMOVINT_OFF , BXINT_OFF , BX; ; 保存中斷向量偏移量保存中斷向量偏移量CLICLI中斷程序結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例)MOVMOVAL , NAL , N; N; N為指定中斷號為指定中斷號MOVMOVAH , 25HAH , 25H; ; 設(shè)置中斷向量設(shè)置中斷向量MOVMOVDX , SEG INT_PRDX , SEG INT_PRMOVMOVDS , DXDS , DX; DS; DS指向新中斷向量段址指向新中斷向量段址MOVMOVDX , OFFSET

40、 INT_PRDX , OFFSET INT_PR; DX; DX指向新中斷指向新中斷INTINT21H21H; ; 向量偏移量向量偏移量MOVMOVAX , DATAAX , DATAMOVMOVDS , AXDS , AX; ; 恢復(fù)數(shù)據(jù)段尋址恢復(fù)數(shù)據(jù)段尋址STI STI ; ; 開中斷開中斷 ; ; 主程序主體主程序主體( (略略) )中斷程序結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例)CLI CLI ; ; 恢復(fù)中斷向量前關(guān)中斷恢復(fù)中斷向量前關(guān)中斷MOVMOVAL , NAL , N; N; N為指定中斷號為指定中斷號MOVMOVAH , 25HAH , 25H; ; 恢復(fù)原中斷向量恢復(fù)原中斷向

41、量MOVMOVDX , INT_OFFDX , INT_OFF; DX; DX指向原中斷向量偏移量指向原中斷向量偏移量MOVMOVBX , INT_SEGBX , INT_SEGMOVMOVDS , BXDS , BX; DS; DS指向原中斷向量段址指向原中斷向量段址INTINT21H STI21H STI; ; 開中斷開中斷MOVMOVAX , 4C00HAX , 4C00H; ; 主程序終止退出主程序終止退出INTINT21H21H; ; 返回返回DOSDOS中斷程序結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例);中斷子程序中斷子程序INT_PRINT_PRPROC FARPROC FAR; ; 新

42、中斷服務(wù)程序新中斷服務(wù)程序STISTI; ;入口處開中斷入口處開中斷PUSH PUSH ; ; 保存用到的寄存器保存用到的寄存器 PUSH PUSH 中斷服務(wù)程序主體中斷服務(wù)程序主體( (略略) ) 中斷程序結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例) POPPOP ; ; 恢復(fù)入口寄存器恢復(fù)入口寄存器 POPPOPMOVMOVAL , 020HAL , 020H ; ; 發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令( (EOI)EOI)OUTOUT020H , AL020H , ALIRET IRET ; ; 中斷返回中斷返回INT_PRINT_PRENDPENDP; ; 中斷程序結(jié)束中斷程序結(jié)束CODECODEEN

43、DSENDS; ; 主程序結(jié)束主程序結(jié)束END STARTEND START中斷程序結(jié)構(gòu)中斷程序結(jié)構(gòu)( (舉例)舉例)內(nèi)部中斷服務(wù)程序的編寫內(nèi)部中斷服務(wù)程序的編寫u編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令利用過程定義偽指令PROC/ENDPPROC/ENDP第第1 1條指令通常為開中斷指令條指令通常為開中斷指令STISTI最后用中斷返回指令最后用中斷返回指令I(lǐng)RETIRET通常采用寄存器傳遞參數(shù)通常采用寄存器傳遞參數(shù)u主程序需寫的語句主程序需寫的語句主程序需要調(diào)用中斷服務(wù)程序主程序需要調(diào)用中斷服務(wù)程序調(diào)用前,需要設(shè)置中斷向量調(diào)用前,需要設(shè)置中斷

44、向量利用利用INT nINT n指令調(diào)用中斷服務(wù)程序指令調(diào)用中斷服務(wù)程序u內(nèi)部中斷服務(wù)程序舉例例例5.65.6編寫編寫80H80H號中斷服務(wù)程序號中斷服務(wù)程序功能:顯示以功能:顯示以“0”0”結(jié)尾字符串的功能結(jié)尾字符串的功能利用顯示器功能調(diào)用利用顯示器功能調(diào)用INT 10HINT 10H(顯示一個字符)(顯示一個字符)字符串緩沖區(qū)首地址為入口參數(shù)字符串緩沖區(qū)首地址為入口參數(shù)DS:DXDS:DX(段地址:偏移地址)傳遞參數(shù)(段地址:偏移地址)傳遞參數(shù)數(shù)據(jù)段數(shù)據(jù)段intoffdw ?intsegdw ?intmsg db A Instruction Interrupt !db 0dh,0ah,0例

45、例5.65.6以以“0”結(jié)尾結(jié)尾回車、換行回車、換行保存中斷向量保存中斷向量mov ax , 3580hint21hmov intoff , bx;保存偏移地址保存偏移地址mov intseg,es;保存段基地址保存段基地址例例5.65.6獲取中斷向量(獲取中斷向量(DOSDOS功能調(diào)用功能調(diào)用INT 21HINT 21H)功能號:功能號:AHAH35H35H入口參數(shù):入口參數(shù):ALAL中斷向量號中斷向量號出口參數(shù):出口參數(shù):ES:BXES:BX中斷向量(段地址:偏移地址)中斷向量(段地址:偏移地址)設(shè)置中斷向量設(shè)置中斷向量push dsmov dx , offset new80hmov ax

46、 , seg new80hmov ds,axmov ax , 2580hInt 21hpop ds例例5.65.6設(shè)置中斷向量(設(shè)置中斷向量(DOSDOS功能調(diào)用功能調(diào)用INT 21HINT 21H)功能號:功能號:AHAH25H25H入口參數(shù):入口參數(shù):ALAL中斷向量號中斷向量號DS:DXDS:DX中斷向量(段地址:偏移地址)中斷向量(段地址:偏移地址)調(diào)用中斷服務(wù)程序調(diào)用中斷服務(wù)程序mov dx , offset intmsgint 80h ;調(diào)用;調(diào)用80H中斷服務(wù)程序中斷服務(wù)程序例例5.65.6A Instruction Interrupt !;設(shè)置入口參數(shù):;設(shè)置入口參數(shù): DSD

47、S段地址(已設(shè)置)段地址(已設(shè)置)DXDX偏移地址偏移地址進(jìn)入中斷服務(wù)程序進(jìn)入中斷服務(wù)程序new80h procsti;開中斷開中斷push ax;保護(hù)寄存器保護(hù)寄存器push bxpush si例例5.65.6A Instruction Interrupt !;80H80H號內(nèi)部中斷服務(wù)程序:號內(nèi)部中斷服務(wù)程序:;顯示字符串(以;顯示字符串(以“0”0”結(jié)尾)結(jié)尾);入口參數(shù):;入口參數(shù):DS:DXDS:DX緩沖器首地址緩沖器首地址顯示字符串顯示字符串mov si,dxnew1:mov al,sicmp al,0jz new2mov bx,0mov ah,0ehint 10hinc sijm

48、p new1例例5.65.6A Instruction Interrupt !退出中斷服務(wù)程序退出中斷服務(wù)程序new2:pop si;恢復(fù)寄存器恢復(fù)寄存器pop bxpop axiret;中斷返回中斷返回new80h endp例例5.65.6A Instruction Interrupt !主程序結(jié)束主程序結(jié)束mov dx , intoffmov ax , intsegmov ds , axmov ax , 2580hint 21hmov ax , 4c00hint 21h例例5.65.6A Instruction Interrupt !5.2.4 5.2.4 外部中斷源的管理外部中斷源的管理

49、u多個外部硬件中斷源共用一條多個外部硬件中斷源共用一條INTRINTR線時,要在程序線時,要在程序中采取一定措施或用外部硬件解決中斷源的優(yōu)先權(quán)中采取一定措施或用外部硬件解決中斷源的優(yōu)先權(quán)排列和多級中斷的嵌套。排列和多級中斷的嵌套。u中斷優(yōu)先權(quán)(優(yōu)先級):就是為每個中斷源所確定中斷優(yōu)先權(quán)(優(yōu)先級):就是為每個中斷源所確定的響應(yīng)級別,可通過軟件排序或硬件排序方式實(shí)現(xiàn)的響應(yīng)級別,可通過軟件排序或硬件排序方式實(shí)現(xiàn)外部中斷源的管理外部中斷源的管理n軟件排序軟件排序pCPUCPU響應(yīng)中斷后,在程序中用查詢的方法判定外設(shè)響應(yīng)中斷后,在程序中用查詢的方法判定外設(shè)的中斷請求的優(yōu)先順序。的中斷請求的優(yōu)先順序。p軟

50、件查詢排序的特點(diǎn)是:軟件查詢排序的特點(diǎn)是:查詢次序即優(yōu)先權(quán)排序查詢次序即優(yōu)先權(quán)排序節(jié)省硬件節(jié)省硬件修改方便,只要改變程序中的查詢次序即可修改方便,只要改變程序中的查詢次序即可由詢問轉(zhuǎn)至真正的服務(wù)程序入口時間長由詢問轉(zhuǎn)至真正的服務(wù)程序入口時間長外部中斷源的管理外部中斷源的管理n硬件排序:硬件排序:p采用優(yōu)先權(quán)的編碼電路,對各種外部硬中斷進(jìn)行采用優(yōu)先權(quán)的編碼電路,對各種外部硬中斷進(jìn)行排隊(duì)。排隊(duì)。p方法:方法:簡單簡單 排隊(duì)編碼電路排隊(duì)編碼電路菊花鏈?zhǔn)接布判螂娐肪栈ㄦ準(zhǔn)接布判螂娐分袛嗫刂萍尚酒袛嗫刂萍尚酒?259A8259Au軟件法排序的接口電路示意圖軟件法排序的接口電路示意圖u軟件查詢程

51、序流程圖軟件查詢程序流程圖u軟件法排序程序軟件法排序程序ININALAL,20H20H;讀中斷觸發(fā)器的狀態(tài);讀中斷觸發(fā)器的狀態(tài)TESTTESTALAL,80H80H;有電源故障請求?;有電源故障請求?JZJZB1B1;沒有,繼續(xù)查詢;沒有,繼續(xù)查詢JMPJMPPWFPWF;轉(zhuǎn)至電源故障程序入口;轉(zhuǎn)至電源故障程序入口B1B1:TESTTESTALAL,40H40H;有磁盤請求嗎?;有磁盤請求嗎?JZJZB2B2;無,繼續(xù)查詢;無,繼續(xù)查詢JMPJMPDISSDISS;轉(zhuǎn)至磁盤服務(wù)程序;轉(zhuǎn)至磁盤服務(wù)程序B2B2:TESTTESTALAL,20H20H;有磁帶請求嗎?;有磁帶請求嗎?JZJZB3B3

52、;無,繼續(xù)查詢;無,繼續(xù)查詢JMPJMPMTMT;轉(zhuǎn)至磁帶服務(wù)程序;轉(zhuǎn)至磁帶服務(wù)程序B3B3:TESTTESTALAL,10H10H;有;有CRTCRT請求?請求?JZJZB4B4;無,繼續(xù)查詢;無,繼續(xù)查詢u軟件法排序程序軟件法排序程序JMPJMPCRTCRT;轉(zhuǎn)至;轉(zhuǎn)至CRTCRT顯示服務(wù)程序顯示服務(wù)程序B4B4:TEST ALTEST AL,08H08H;有紙帶請求?;有紙帶請求?JZ JZ B5B5;無,繼續(xù)查詢;無,繼續(xù)查詢JMP JMP PINPIN;轉(zhuǎn)至紙帶輸入服務(wù)程序;轉(zhuǎn)至紙帶輸入服務(wù)程序B5B5:TEST ALTEST AL,04H04H;有紙帶穿孔請求嗎?;有紙帶穿孔請求嗎

53、?JZ JZ B6B6;無,繼續(xù)查詢;無,繼續(xù)查詢JMP JMP PHPH;轉(zhuǎn)至紙帶穿孔服務(wù)程序;轉(zhuǎn)至紙帶穿孔服務(wù)程序B6B6:TEST ALTEST AL,02H02H;是鍵盤輸入中斷請求嗎?;是鍵盤輸入中斷請求嗎?JZ JZ POUTPOUT;否,轉(zhuǎn)打印中斷服務(wù)程序;否,轉(zhuǎn)打印中斷服務(wù)程序JMP JMP KEYINKEYIN;轉(zhuǎn)至鍵盤輸入中斷服務(wù)程序;轉(zhuǎn)至鍵盤輸入中斷服務(wù)程序POUTPOUT: u硬件優(yōu)先權(quán)排序電路硬件優(yōu)先權(quán)排序電路u菊花鏈優(yōu)先排隊(duì)菊花鏈優(yōu)先排隊(duì)5.3 5.3 中斷控制器中斷控制器82598259A A8259A中斷控制器由中斷控制器由 INTEL公司設(shè)計。公司設(shè)計。1片片

54、8259A管理管理8級中斷源級中斷源, 多片多片8259A用級連方式可使管理級用級連方式可使管理級別擴(kuò)充。使用單一別擴(kuò)充。使用單一+5V電源供電。電源供電。5.35.3.1 .1 82598259A A的結(jié)構(gòu)及工作方式的結(jié)構(gòu)及工作方式82598259A A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)pIRR中斷請求寄存器中斷請求寄存器(8位位)保存保存8 8個(個(IR0IR0IR7IR7)外部中斷請求信號)外部中斷請求信號DiDi1 1,表示,表示IRiIRi引腳有中斷請求引腳有中斷請求DiDi0 0,表示,表示IRiIRi引腳無中斷請求引腳無中斷請求圖示圖示pIR中斷屏蔽寄存器中斷屏蔽寄存器(8位位)保存對中斷請

55、求信號保存對中斷請求信號IRiIRi的屏蔽狀態(tài);的屏蔽狀態(tài);DiDi1 1,則,則IRiIRi引入的中斷被屏蔽(關(guān)閉);引入的中斷被屏蔽(關(guān)閉);DiDi0 0,則,則IRiIRi引入的中斷被開放。引入的中斷被開放。82598259A A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)pPR優(yōu)先權(quán)判別器優(yōu)先權(quán)判別器(8位位)當(dāng)當(dāng)IR7IR7IR0IR0端有多個中斷請求同時發(fā)生時端有多個中斷請求同時發(fā)生時, , 由由PRPR判定其最高判定其最高優(yōu)先權(quán);優(yōu)先權(quán);在在INTAINTA脈沖期間將它置入中斷服務(wù)寄存器脈沖期間將它置入中斷服務(wù)寄存器ISRISR的相應(yīng)位。的相應(yīng)位。pISR中斷服務(wù)寄存器中斷服務(wù)寄存器(8位位)保存正在

56、被保存正在被8259A8259A服務(wù)著的中斷狀態(tài);服務(wù)著的中斷狀態(tài);DiDi1 1,表示,表示IRiIRi中斷正在服務(wù)中;中斷正在服務(wù)中;DiDi0 0,表示沒有被服務(wù)。,表示沒有被服務(wù)。p數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器8 8位雙向三態(tài)緩沖器,構(gòu)成位雙向三態(tài)緩沖器,構(gòu)成82598259A A與系統(tǒng)數(shù)據(jù)線的接口。對與系統(tǒng)數(shù)據(jù)線的接口。對82598259A A編程寫入的命令字和讀出編程寫入的命令字和讀出82598259A A狀態(tài)信息都是通過它狀態(tài)信息都是通過它傳送。傳送。p讀寫控制邏輯讀寫控制邏輯接收讀接收讀/ /寫控制信號寫控制信號RD / WRRD / WR、片選信號、片選信號CSCS和端口選擇

57、信號和端口選擇信號A0 A0 。一片一片82598259A A在系統(tǒng)中占用在系統(tǒng)中占用2 2個口地址個口地址, , 用地址線用地址線A0A0來選擇來選擇端口;用高位地址線通過譯碼產(chǎn)生端口;用高位地址線通過譯碼產(chǎn)生82598259A A的片選信號。的片選信號。82598259A A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)p控制電路控制電路包括命令字包括命令字( (ICW1ICW1ICW4ICW4) )寄存器,操作字寄存器,操作字( (OCW1OCW1OCW3OCW3) )寄存器和相關(guān)的控制邏輯;寄存器和相關(guān)的控制邏輯;通過通過INTINT端向端向CPUCPU發(fā)中斷請求信號發(fā)中斷請求信號, , 從從INTAINTA端

58、接收端接收CPUCPU的中的中斷響應(yīng)信號斷響應(yīng)信號, , 控制控制82598259A A進(jìn)入中斷狀態(tài)。進(jìn)入中斷狀態(tài)。p級連緩沖級連緩沖/比較器比較器一片一片82598259A A只能接收只能接收8 8級中斷級中斷, , 當(dāng)超過當(dāng)超過8 8級時級時, ,可用多片可用多片82598259A A級級連使用連使用, , 構(gòu)成主從結(jié)構(gòu),擴(kuò)充到構(gòu)成主從結(jié)構(gòu),擴(kuò)充到6464級。級。82598259A A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)中斷級連方式的連接中斷級連方式的連接一個系統(tǒng)中,一個系統(tǒng)中,8259A8259A可以級連,有一個主可以級連,有一個主8259A8259A,若干個,若干個(最多(最多8 8個)從個)從825

59、9A8259A級連時,主級連時,主8259A8259A的三條級連線的三條級連線CASCAS0 0CASCAS2 2作為輸出線,作為輸出線,連至每個從連至每個從8259A8259A的的CASCAS0 0CASCAS2 2每個從每個從8259A8259A的中斷請求信號的中斷請求信號INTINT,連至主,連至主8259A8259A的一個中的一個中斷請求輸入端斷請求輸入端IRIRi i主主8259A8259A的的INTINT線連至線連至CPUCPU的中斷請求輸入端的中斷請求輸入端INTRINTRSP/ENSP/EN在非緩沖方式下:在非緩沖方式下:當(dāng)當(dāng)SPSP1 1,該該8259A8259A是主片;是主

60、片;當(dāng)當(dāng)SPSP0 0,該該8259A8259A是從片是從片動畫動畫圖示圖示82598259A A的引腳功能的引腳功能D7D7D0 D0 : : 雙向數(shù)據(jù)總線。傳送控制、狀態(tài)信息和中斷類型號。雙向數(shù)據(jù)總線。傳送控制、狀態(tài)信息和中斷類型號。WRWR* * : : 寫信號。輸入寫信號。輸入, , 低電平有效。當(dāng)有效時低電平有效。當(dāng)有效時, 8259, 8259A A接收接收CPUCPU送來的命令字。送來的命令字。RDRD* * : : 讀信號。輸入讀信號。輸入, , 低電平有效。當(dāng)有效時低電平有效。當(dāng)有效時, 8259, 8259A A將狀態(tài)信將狀態(tài)信息放入數(shù)據(jù)總線供息放入數(shù)據(jù)總線供CPUCPU檢

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論