微機(jī)中斷控制_第1頁
微機(jī)中斷控制_第2頁
微機(jī)中斷控制_第3頁
微機(jī)中斷控制_第4頁
微機(jī)中斷控制_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章微機(jī)中斷系統(tǒng)7.1概述中斷的概念中斷分類7.2可屏蔽中斷處理過程CPU響應(yīng)中斷的過程中斷向量表中斷服務(wù)子程序中斷響應(yīng)時(shí)序7.3中斷優(yōu)先級和中斷嵌套7.4可編程中斷控制器8259A7.5保護(hù)模式下的中斷1教學(xué)重點(diǎn)

8088CPU的中斷系統(tǒng)內(nèi)部中斷服務(wù)程序的編寫

中斷控制器8259A的使用27.1概述中斷:

當(dāng)CPU正常運(yùn)行程序時(shí),由于隨機(jī)的事件(包括內(nèi)部和外部請求),引起CPU暫停正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行請求中斷的外設(shè)(或內(nèi)部事件)的中斷服務(wù)程序,中斷服務(wù)結(jié)束后再返回被中止的程序,繼續(xù)執(zhí)行,這一過程稱為中斷。中斷過程給分為5個(gè)步驟:

中斷請求、中斷判優(yōu)、中斷響應(yīng)、中斷服務(wù)、中斷返回。3中斷相關(guān)概念:1、中斷源:引起CPU產(chǎn)生程序中斷的事件,即中斷的來源。I/O設(shè)備。如鍵盤、紙帶讀入機(jī)、打印機(jī)。數(shù)據(jù)通道。如磁盤、磁帶。實(shí)時(shí)鐘,如外部所需的定時(shí)電路。故障源。如掉電、存儲(chǔ)器奇偶校驗(yàn)錯(cuò)等。CPU運(yùn)行指令引發(fā),或?yàn)檎{(diào)試程序而設(shè)置的中斷源。外設(shè)發(fā)來的中斷請求(隨機(jī)發(fā)生)(可屏蔽、不可屏蔽中斷)CPU內(nèi)部執(zhí)行指令引發(fā)的中斷,稱內(nèi)部中斷(預(yù)先安排的中斷指令,預(yù)設(shè)的)42.中斷響應(yīng)CPU停止現(xiàn)在正在進(jìn)行的處理任務(wù),轉(zhuǎn)向中斷請求相對應(yīng)的處理程序的過程.現(xiàn)場保護(hù)、關(guān)中斷、斷點(diǎn)保護(hù)、控制轉(zhuǎn)移到中斷服務(wù)子程序。3.中斷優(yōu)先級當(dāng)有多個(gè)中斷源同時(shí)請求中斷時(shí),因CPU不能同時(shí)處理,所以必須按事先安排的優(yōu)先級順序依次處理。CPU先響應(yīng)優(yōu)先級高的中斷,掛起優(yōu)先級低的中斷。中斷嵌套:高級中斷源能打斷低級中斷處理。當(dāng)CPU在運(yùn)行中斷服務(wù)子程序時(shí),又有新的更高優(yōu)先級的中斷申請進(jìn)入,CPU要掛起原中斷進(jìn)入更高級的中斷服務(wù)子程序,實(shí)現(xiàn)功能。所以中斷系統(tǒng)應(yīng)具有優(yōu)先權(quán)排隊(duì)功能。4.中斷屏蔽:由軟件設(shè)置,使某些中斷源即使有請求也不能被響應(yīng)。主程序高級中斷處理低級中斷處理5一個(gè)中斷系統(tǒng)的基本功能:(1)能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)、中斷返回、中斷屏蔽。(2)能實(shí)現(xiàn)中斷優(yōu)先級排隊(duì)(3)能實(shí)現(xiàn)中斷嵌套。67.1.28088/8086的中斷系統(tǒng)8088的中斷系統(tǒng)采用向量中斷機(jī)制指通過中斷向量進(jìn)入中斷服務(wù)程序的一種方法。中斷向量:中斷服務(wù)程序入口地址能夠處理256個(gè)中斷用中斷向量號0~255區(qū)別由中斷向量號查中斷向量表,得到中斷向量中斷源分兩大類:外部中斷和內(nèi)部中斷可屏蔽中斷還需要借助專用中斷控制器Intel8259A實(shí)現(xiàn)優(yōu)先權(quán)管理78088/8086的中斷系統(tǒng)結(jié)構(gòu)中斷邏輯INTO指令4單步中斷1除法錯(cuò)誤0INTN指令8088/8086CPUNMI8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源

INTA可屏蔽中斷請求

INTR可屏蔽中斷源內(nèi)部中斷非屏蔽中斷請求81.外部中斷外部中斷是由于8088外部通過CPU引腳提出中斷請求而引起的中斷。具有隨機(jī)性。不可屏蔽中斷(NMI):向量號固定為2外部通過非屏蔽中斷(NMI)請求(邊沿觸發(fā),上升沿之后維持兩個(gè)時(shí)鐘周期高電平有效),CPU必須響應(yīng)。不受IF的控制。非屏蔽中斷主要用于處理系統(tǒng)的意外或故障(如奇偶校驗(yàn)或協(xié)處理器運(yùn)算錯(cuò)誤等可屏蔽中斷(INTR):向量號由中斷控制器提供外部通過可屏蔽中斷引腳INTR請求(采用電平觸發(fā),高電平有效,響應(yīng)時(shí)將產(chǎn)生有效的INTA信號,進(jìn)入中斷響應(yīng)周期。得到響應(yīng)的條件:外設(shè)中斷請求是否被屏蔽

CPU是否開中斷IF=1可屏蔽中斷主要用于外設(shè)中斷請求(請求交換數(shù)據(jù)等服務(wù))9中斷標(biāo)志IF的狀態(tài)IF=0:可屏蔽中斷不會(huì)被響應(yīng)(禁止中斷,關(guān)中斷,中斷屏蔽)系統(tǒng)復(fù)位,使IF=0任何一個(gè)中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會(huì)被響應(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)中斷時(shí)都會(huì)影響IF的狀態(tài)11數(shù)據(jù)輸入的同時(shí)清除中斷請求信號具有中斷請求與中斷屏蔽的接口電路寫控制端口,同時(shí)設(shè)置中斷屏蔽寄存器

P240圖8-2122.內(nèi)部中斷內(nèi)部中斷是由于8088內(nèi)部執(zhí)行程序出現(xiàn)特殊情況而引起的中斷。除0號中斷外,其他都不具備隨機(jī)性。除法錯(cuò)中斷: 向量號為0單步中斷(TF=1):向量號為1斷點(diǎn)中斷(int3): 向量號為3溢出中斷(into): 向量號為4指令中斷(intn): 向量號為n內(nèi)部中斷的中斷向量號部分由Intel公司確定,DOS要占用一部分用戶也可以使用一部分,實(shí)現(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),實(shí)際上是指被識別出來的先后順序158088的中斷響應(yīng)過程(續(xù))Y又有NMITEMP=1標(biāo)志寄存器入棧TEMP=TF,IF=TF=0CS:IP入棧獲取中斷向量執(zhí)行服務(wù)程序彈出CS:IP彈出標(biāo)志寄存器返回被中斷程序(1)現(xiàn)場保護(hù)(2)關(guān)中斷,清除TF(3)斷點(diǎn)保護(hù)(4)據(jù)中斷向量號查中斷向量表,得入口地址(5)執(zhí)行中斷處理程序NNY(6)斷點(diǎn)恢復(fù),現(xiàn)場恢復(fù),返回單步中斷IRET★168088/8086的中斷優(yōu)先級高低采用查詢中斷方式,查詢的先后順序決定了各中斷源的優(yōu)先級別軟件中斷除法錯(cuò)中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷內(nèi)部中斷、NMI和INTR中斷處理過程的主要區(qū)別在于中斷向量號的獲得方法不同。177.2.4中斷響應(yīng)時(shí)序

兩個(gè)連續(xù)的INTA周期,在第2個(gè)INTA從數(shù)據(jù)總線上CPU得到中斷向量。在兩個(gè)INTA之間可能插入空閑狀態(tài)。P274圖7.6187.3中斷優(yōu)先級和中斷嵌套問題:若系統(tǒng)有多個(gè)可屏蔽中斷請求,CPU如何識別區(qū)分中斷源?

方法1:中斷查詢。軟件查詢(軟/硬件結(jié)合)

方法2:向量中斷(硬件):CPU響應(yīng)中斷時(shí),通過硬件獲取中斷向量,不同外設(shè),中斷向量不同。問題2:若多個(gè)中斷源同時(shí)請求中斷服務(wù),CPU應(yīng)先響應(yīng)哪一個(gè)?

根據(jù)事先規(guī)定的優(yōu)先級別來確定。如何規(guī)定優(yōu)先級:

1。軟件查詢中斷優(yōu)先級

2、硬件優(yōu)先權(quán)排隊(duì)

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)的前面部分)是哪個(gè)外設(shè)提出了中斷請求。屏蔽法:移位法:

INAL,20HXORAL,ALTESTAL,80HINAL,20HJNEP1RCLAL,1TESTAL,40HJCP1JNEP2RCLAL,1TESTAL,20HJCP2JNEP3…………優(yōu)點(diǎn):硬件簡單。缺點(diǎn):轉(zhuǎn)入中斷服務(wù)的時(shí)間長。先查詢的優(yōu)先級高212、硬件查詢優(yōu)先方式

鏈?zhǔn)街袛鄡?yōu)先權(quán)排隊(duì)電路A2A1C2C1D2D1B2B1中斷源A觸發(fā)器中斷源B觸發(fā)器中斷源C觸發(fā)器中斷矢量D中斷矢量C中斷矢量B中斷矢量A中斷源D觸發(fā)器緩沖器緩沖器緩沖器緩沖器INTA高優(yōu)先級223、矢量中斷優(yōu)先級—可編程中斷優(yōu)先級控制器23比較器失效信號(先前無中斷請求時(shí)有效)比較器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)排隊(duì)電路的工作原理8:3優(yōu)先權(quán)編碼器將輸出同時(shí)發(fā)生的中斷請求中,優(yōu)先權(quán)最高的請求對應(yīng)的編碼。(編碼數(shù)字小的優(yōu)先權(quán)最高)優(yōu)先權(quán)寄存器存放著正在進(jìn)行處理的中斷的優(yōu)先權(quán)編碼。(若有,表明CPU正在執(zhí)行一個(gè)中斷;若沒有,表明CPU不在進(jìn)行中斷處理)。比較器比較編碼A2A1A0和B2B1B0的大小,若A>=B,則控制輸出,使接口不向CPU發(fā)出新的中斷申請;只有A<B時(shí),才使電路向CPU的INTR端發(fā)申請中斷信號。25小結(jié)計(jì)算機(jī)當(dāng)中有相同任務(wù),即可用軟件實(shí)現(xiàn),也可用硬件實(shí)現(xiàn)。要權(quán)衡考慮。采用可編程中斷控制器是當(dāng)前微機(jī)系統(tǒng)中解決可屏蔽中斷優(yōu)先權(quán)管理的常用方法。268088的中斷向量表中斷向量:指示中斷服務(wù)程序的入口地址,該地址包括:偏移地址IP、段地址CS(共32位)每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)(低對低,高對高)。8088微處理器從物理地址000H開始到3FFH(1KB),依次安排各個(gè)中斷向量,向量號從0到255。256個(gè)中斷向量所占用的1KB區(qū)域,稱中斷向量表幾個(gè)概念:中斷向量號N/中斷向量/中斷服務(wù)程序的入口地址中斷向量的存放首址=N×427根據(jù)中斷優(yōu)先權(quán)處理中斷的一般原則1.不同級別中斷發(fā)生,按級別高低處理。2.當(dāng)處理低級別的中斷過程中,遇到高級別的中斷,暫停低,轉(zhuǎn)高的服務(wù)。3.當(dāng)處理高級別的過程中,遇到低級別或同一級別的中斷,不予理睬,待處理完后再服務(wù)低級別。4.同一級別按先后排隊(duì)。28中斷服務(wù)程序的代碼特點(diǎn):現(xiàn)場保護(hù)若允許中斷嵌套,則開中斷安排一條STI指令

….結(jié)束前恢復(fù)現(xiàn)場為了正常恢復(fù),在之前要先關(guān)中斷CLI,然后再作恢復(fù)工作結(jié)束時(shí)安排IRET中斷返回指令,起到恢復(fù)標(biāo)志位,開中斷和返回?cái)帱c(diǎn)的目的。P271297.2.3中斷服務(wù)程序設(shè)計(jì)1、用戶可編寫的中斷服務(wù)程序的種類:內(nèi)部中斷服務(wù)程序用INTn指令來調(diào)用外部可屏蔽中斷的服務(wù)程序由外設(shè)的中斷請求引發(fā)使用也可用INTn指令調(diào)用2、要事先選定中斷服務(wù)程序的向量號可以在系統(tǒng)預(yù)留給用戶的沒有被占用的中斷向量號中選則一個(gè)。303、編寫中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP現(xiàn)場保護(hù)完后的第1條指令,若為開中斷指令STI,則該中斷的級別低最后用中斷返回指令I(lǐng)RET內(nèi)部中斷通常采用寄存器傳遞參數(shù)外部中斷程序采用存儲(chǔ)器傳遞參數(shù)4、主程序需要調(diào)用中斷服務(wù)程序(只有該主程序需調(diào)用它)中斷服務(wù)程序和主程序在同一個(gè)程序中主程序調(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)表項(xià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)存后,它占用的存儲(chǔ)區(qū)就不會(huì)被其他軟件覆蓋。使程序駐留內(nèi)存,要求該程序以COM(此種結(jié)構(gòu)的程序要求入口定位于100H、并且數(shù)據(jù)和代碼均在同一個(gè)段內(nèi))形式運(yùn)行。使程序駐留內(nèi)存的方法是采用DOS的中斷調(diào)用,即: 向量號21H

功能號31H

入口參數(shù):DX=駐留程序字節(jié)數(shù);

該功能使當(dāng)前程序的DX個(gè)字節(jié)駐留內(nèi)存并返回DOS。即用DOS功能調(diào)用31H代替4CH終止程序并返回DOS即可。33讀取中斷向量表中某中斷號對應(yīng)中斷向量的原值用DOS的中斷功能(35功能),即:

向量號21H

功能號35H

入口參數(shù):AL=向量號。 出口參數(shù):ES=段地址;

BX=偏移地址;一般把讀出的中斷向量再轉(zhuǎn)存到存儲(chǔ)器中,以備恢復(fù)時(shí)使用。

34CSEGMENTASSUMECS:CORG100HB:MOVAX,SEGSUBPMOVDS,AXMOVDX,OFFSETSUBP

;建立50H中斷向量表項(xiàng)

MOVAH,25HMOVAL,50H

INT21H

例1:在微機(jī)中增加一中斷服務(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>

這時(shí)可運(yùn)行INC.COM程序,即:

C>INC回車 一旦運(yùn)行INC.COM程序后,在微機(jī)中就新增了一個(gè) 中斷子程序。在其后運(yùn)行的程序中,就如同調(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)容里面會(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

提交評論