微機(jī)原理課件-5版第8章8.1中斷_第1頁
微機(jī)原理課件-5版第8章8.1中斷_第2頁
微機(jī)原理課件-5版第8章8.1中斷_第3頁
微機(jī)原理課件-5版第8章8.1中斷_第4頁
微機(jī)原理課件-5版第8章8.1中斷_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《微型計算機(jī)原理與接口技術(shù)》第5版第8章

中斷和可編程中斷

控制器8259A本章主要內(nèi)容:

§8.1中斷§8.28259A的工作原理§8.38259A應(yīng)用舉例§8.1中斷8.1.1中斷概念和分類8.1.2中斷的響應(yīng)與處理過程8.1.1中斷概念和分類1.中斷的定義和功能中斷定義:

計算機(jī)在執(zhí)行正常程序過程中,暫時中止當(dāng)前程序的運(yùn)行,轉(zhuǎn)到中斷處理程序去處理臨時發(fā)生的事件,處理完后又恢復(fù)原來程序的運(yùn)行,這個過程稱為中斷(Interrupt)。中斷功能:使CPU和外設(shè)在部分時間內(nèi)并行工作,大大提高CPU的利用率;在實時控制系統(tǒng)中,現(xiàn)場數(shù)據(jù)可及時接收處理,避免丟失;故障的處理,如電源掉電、奇偶校驗錯、運(yùn)算中溢出錯等;利用中斷指令,直接調(diào)用大量系統(tǒng)已編寫好的中斷服務(wù)程序,實現(xiàn)對硬件的控制。1.中斷的定義和功能2.中斷源和中斷分類引起中斷的原因或能發(fā)出中斷請求的來源稱為中斷源。8086有兩種中斷源,中斷分為兩大類:1)外部中斷或硬件中斷,從不可屏蔽中斷引腳NMI和可屏蔽中斷引腳INTR引入;2)內(nèi)部中斷或軟件中斷,是為解決CPU運(yùn)行過程中出現(xiàn)的一些意外事件或便于程序調(diào)試而設(shè)置的。圖8.1IBMPC機(jī)中8086的中斷分類和中斷源2.中斷源和中斷分類1)外部中斷不可屏蔽中斷NMI,處理較緊急的情況,如存儲器或I/O校驗錯、掉電、協(xié)處理器異常中斷請求等,不受中斷標(biāo)志IF的影響??善帘沃袛嘤?259A的INT引腳輸出,連到CPU的INTR上。只有當(dāng)CPU的FLAGS的IF=1時,才允許響應(yīng)此類中斷請求。8259A的輸入引腳IR0~IR7可引入8級中斷:時鐘、鍵盤、串行通信口COM1和COM2、硬盤、軟盤、打印機(jī)。經(jīng)芯片內(nèi)部判別后,將優(yōu)先級高的中斷請求信號送到INT引腳。2.中斷源和中斷分類2.中斷源和中斷分類2)內(nèi)部中斷(1)除法錯中斷執(zhí)行除法運(yùn)算指令時,如除數(shù)為0或商超過了結(jié)果寄存器能容納的范圍,則產(chǎn)生除法錯中斷。(2)單步中斷單步標(biāo)志TF置1,指令執(zhí)行完后,產(chǎn)生單步中斷。結(jié)果是將CPU的內(nèi)部寄存器和有關(guān)存儲器的內(nèi)容顯示出來,便于跟蹤程序的執(zhí)行過程,實現(xiàn)動態(tài)排錯。2.中斷源和中斷分類8086沒有直接使TF標(biāo)志置1或清0的指令,如何使TF標(biāo)志置1或清0?使TF標(biāo)志置1的程序段: PUSHF ;標(biāo)志寄存器FLAGS入棧 POP AX ;AX←FLAGS內(nèi)容 OR AX,0100H ;使AX(即標(biāo)志寄存器)的

;D8=1,其余位不變 PUSH AX ;AX入棧 POPF ;FLAGS寄存器←AX用類似方法將標(biāo)志寄存器與FEFFH相與,可使TF標(biāo)志清0,從而禁止單步中斷。

2.中斷源和中斷分類(3)溢出中斷溢出標(biāo)志=1,則可由溢出中斷指令I(lǐng)NTO產(chǎn)生中斷類型號為4的溢出中斷。若OF=0,不會產(chǎn)生中斷。帶符號數(shù)加、減指令后應(yīng)安排一條INTO指令,一旦溢出就能及時向CPU提出中斷請求,CPU響應(yīng)中斷后可進(jìn)行相應(yīng)的處理。2.中斷源和中斷分類(4)軟件中斷指令I(lǐng)NTn中斷類型號n=0~255。它可以安排在程序的任何位置上。(5)斷點(diǎn)中斷程序運(yùn)行到斷點(diǎn)時便產(chǎn)生中斷,像單步中斷一樣,查看各寄存器和有關(guān)存儲單元的內(nèi)容。斷點(diǎn)可設(shè)在程序任何地方并可以設(shè)多個斷點(diǎn),設(shè)置的方法是插入一條INT3指令。利用斷點(diǎn)中斷可以調(diào)試一段程序,比單步中斷的調(diào)試速度快得多。3.中斷向量表1)中斷響應(yīng)和返回CPU響應(yīng)中斷時,首先要把CS、IP寄存器的值(斷點(diǎn))以及標(biāo)志寄存器FLAGS的值推入堆棧保護(hù)。然后找到中斷服務(wù)程序的入口地址,轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。中斷服務(wù)程序結(jié)束時,執(zhí)行中斷返回指令I(lǐng)RET返回正常程序繼續(xù)執(zhí)行。如何尋找中斷服務(wù)程序的入口地址,是中斷處理過程中的一個重要環(huán)節(jié)。3.中斷向量表2)中斷向量表中斷向量表用來存放中斷服務(wù)程序的入口地址。8086可處理256(0~FFH)類中斷,每類中斷有一個入口地址(中斷向量),包含CS和IP,共4個字節(jié)。因此存儲256個地址,需要占用1K字節(jié),它們位于內(nèi)存00000~003FFH的區(qū)域中。將中斷類型號n乘以4就能找到規(guī)定類型的中斷向量,規(guī)定IP在前,CS在后。類型號為0~4的專用中斷:0-除法錯中斷、1-單步中斷、2-不可屏蔽(NMI)中斷、3-斷點(diǎn)中斷和4-溢出中斷,它們的中斷向量分別存放在00H、04H、08H、0CH和10H開始的4個連續(xù)單元中。3.中斷向量表例如,對n=2的NMI中斷,其中斷服務(wù)程序的入口地址放在00008~0000BH單元中,入口地址的CS存放在0000AH開始的字單元中,IP存放在00008H開始的字單元中。在PC機(jī)中,在8259A的中斷輸入端IR0~IR7引入的中斷類型號為08~0FH,如何求它們的中斷服務(wù)程序入口地址?存放在中斷向量表中的什么位置上?3.中斷向量表3.中斷向量表舉例說明中斷類型號n與中斷向量表的關(guān)系。例8.1類型號n=44H的中斷服務(wù)程序的入口地址為3600:2000H,它們在中斷向量表中應(yīng)如何存放?中斷類型號n=44H=01000100B它的中斷服務(wù)程序的入口地址應(yīng)放在44H4開始的4個字節(jié)單元中,乘4操作只要將類型號n左移2位,右邊補(bǔ)2個0即可。44H4=0100010000B=0110H從0110H開始存放3600:2000H

如圖8.33.中斷向量表例8.2若在中斷向量表中,(0040H)=240BH,而(0042H)=D169H,如圖8.4所示,試問這4個單元中的內(nèi)容對應(yīng)的中斷類型號n=?該中斷服務(wù)程序的起始地址是什么?中斷服務(wù)程序的入口地址從0040H單元開始存放,其類型號n=40H/4=10H(右移2位)由圖可知,中斷類型號為10H的中斷服務(wù)程序的入口地址=D169:240BH。4.中斷優(yōu)先級和中斷嵌套1)中斷優(yōu)先級按中斷源的重要性和實時性,排出響應(yīng)中斷的次序,這種次序稱為中斷優(yōu)先級。

在8086中,中斷優(yōu)先級從高到低的次序為:除法錯、INTn、INTO ;最高級,同一行的

;有同等優(yōu)先級NMI ;次高級INTR ;較低級(由8259A引入)單步中斷

;最低級4.中斷優(yōu)先級和中斷嵌套2)中斷嵌套CPU響應(yīng)中斷時,一般先響應(yīng)優(yōu)先級高的,后響應(yīng)優(yōu)先級低的中斷請求。如CPU正在執(zhí)行中斷服務(wù)程序時,有優(yōu)先級較高的中斷源提出請求,則將正在處理的中斷暫時掛起,先為高級中斷服務(wù),服務(wù)完后再返回較低級中斷,稱為中斷嵌套。4.中斷優(yōu)先級和中斷嵌套如何實現(xiàn)中斷嵌套?機(jī)器進(jìn)入中斷服務(wù)程序后,硬件會自動關(guān)中斷。只有用STI指令將中斷打開后,才允許高級中斷進(jìn)入,實現(xiàn)中斷嵌套。中斷服程序結(jié)束前,必須用EOI命令結(jié)束該級中斷,并用IRET指令返回到中斷前的斷點(diǎn)處去繼續(xù)執(zhí)行原程序。4.中斷優(yōu)先級和中斷嵌套可屏蔽中斷從8259A的8個輸入端引入,一般情況下,優(yōu)先級從高到低排列的次序為IR0~IR7。中斷嵌套的示意圖如圖所示,說明見下頁。4.中斷優(yōu)先級和中斷嵌套圖中的中斷嵌套情況的執(zhí)行過程:主程序運(yùn)行中,IR2、IR4同時提出中斷請求。IR2優(yōu)先級高,先為IR2服務(wù)。在IR2的服務(wù)程序中,要用STI指令開中斷,允許更高級中斷進(jìn)入。IR2服務(wù)時,IR1提出請求,IR2被掛起,為IR1服務(wù)。IR1結(jié)束前用EOI指令清除IR1的服務(wù)寄存器,結(jié)束IR1中斷,并用IRET指令返回IR2服務(wù)程序,繼續(xù)運(yùn)行。運(yùn)行至EOI命令時結(jié)束IR2的服務(wù),響應(yīng)IR4的中斷。IR4結(jié)束后,由IRET指令返回IR2服務(wù)程序,最后從IR2返回主程序。這樣就完成了多重嵌套中斷程序的執(zhí)行過程。在中斷服務(wù)程序中,如不安排開中斷指令STI,則高級中斷不能打斷低級中斷,也就不能實現(xiàn)中斷的嵌套?!?.1中斷8.1.1中斷概念和分類8.1.2中斷的響應(yīng)與處理過程8.1.2中斷的響應(yīng)與處理過程1.中斷響應(yīng)過程如圖,可屏蔽中斷的響應(yīng)和處理流程。每條指令執(zhí)行完,CPU都要查NMI和INTR腳上是否有中斷請求,若無,繼續(xù)取下一條指令執(zhí)行。如有則響應(yīng)中斷,硬件自動完成關(guān)閉中斷和保護(hù)斷點(diǎn)操作,將下條要執(zhí)行指令的CS和IP(即斷點(diǎn))推入堆棧;然后尋找中斷服務(wù)程序的入口地址,找到后就轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序?;謴?fù)現(xiàn)場,開中斷,返回斷點(diǎn)。2.8086的中斷

響應(yīng)與處理圖8.7:8086的中斷響應(yīng)與處理的流程中斷響應(yīng)和請求流程分為:中斷查詢、中斷響應(yīng)、中斷處理和返回三個部分。2.8086的中斷響應(yīng)與處理1)中斷查詢CPU在執(zhí)行完每條指令后,會順序檢查是否有軟中斷、NMI、INTR和單步中斷,如有,則進(jìn)入中斷響應(yīng)周期。2)中斷響應(yīng)根據(jù)不同的中斷源形成不同的中斷類型碼n,再在中斷向量表中,根據(jù)n找到各自的中斷服務(wù)程序的入口地址,轉(zhuǎn)入相應(yīng)的中斷處理程序。例如n=2,則形成中斷類型碼2,再在中斷向量表中找到n4=24=8開始的連續(xù)4個字節(jié)單元,從中取出CS:IP,轉(zhuǎn)去執(zhí)行可屏蔽中斷。2.8086的中斷響應(yīng)與處理重點(diǎn)介紹從INTR引腳引入的可屏蔽中斷的類型碼是如何形成的。CPU響應(yīng)INTR中斷后,要執(zhí)行兩個連續(xù)的中斷響應(yīng)INTA總線周期,其時序圖如圖8.82.8086的中斷響應(yīng)與處理第一個周期,CPU使數(shù)據(jù)線D7~D0浮空,

T2~T4期間向8259A發(fā)第1個中斷響應(yīng)信號

表示CPU已響應(yīng)此中斷,禁止其它總線控制器競爭總線。第二個周期,8259A收到第二個信號后,將中斷類型號n置于數(shù)據(jù)總線上,由此找到中斷服務(wù)程序的入口地址。2.8086的中斷響應(yīng)與處理從8259A的IR7~IR0上可引入8級中斷,形成8個8位中斷類型碼,其中高5位D7~D3由用戶通過對8259A編程來確定,在PC/XT機(jī)中為00001,低3位D2~D0由IR7~IR0的序號來決定,見表8.1。高5位確定后,8級中斷類型碼就確定了。2.8086的中斷響應(yīng)與處理3)中斷處理和返回(1)由硬件自動完成以下工作FLAGS的內(nèi)容入棧;保護(hù)單步標(biāo)志TF;清IF標(biāo)志,關(guān)中斷,中斷處理過程中禁止其它中斷進(jìn)入;清TF標(biāo)志,使CPU不會以單步形式執(zhí)行中斷處理程序;保護(hù)斷點(diǎn),CS

溫馨提示

  • 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

提交評論