Chap07 微型計算機(jī)中斷系統(tǒng)_第1頁
Chap07 微型計算機(jī)中斷系統(tǒng)_第2頁
Chap07 微型計算機(jī)中斷系統(tǒng)_第3頁
Chap07 微型計算機(jī)中斷系統(tǒng)_第4頁
Chap07 微型計算機(jī)中斷系統(tǒng)_第5頁
已閱讀5頁,還剩137頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章微型計算機(jī)中斷系統(tǒng)

第七章微型計算機(jī)中斷系統(tǒng)

7.1概述

7.2可屏蔽中斷處理過程

7.3中斷優(yōu)先級和中斷嵌套

7.4可編程中斷控制器8259A

7.5保護(hù)模式下的中斷

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity1

第七章微型計算機(jī)中斷系統(tǒng)

數(shù)當(dāng)要求

基本要求

知識點熟練正確一般備注

理解理解

斷中斷與中斷類型重點是中斷響應(yīng)

基中斷優(yōu)先級與中斷嵌套條件和中斷處理

本過程

念CPU響應(yīng)中斷的條件

中斷處理過程

斷程序查詢式識別與判優(yōu)著重了解、掌握

原理、特點

別中斷向量式識別與判優(yōu)

8255A的內(nèi)部結(jié)構(gòu)與功能重點了解內(nèi)部寄

8259A存器及讀寫控制

8255A的外部接口特性方法

8255A的中斷工作過程

可編程設(shè)置的工作方式難點,

應(yīng)用編程重點是初始化

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity2

第七章微型計算機(jī)中斷系統(tǒng)

7.1概述

行一、中斷的基本概念

日常例子計算機(jī)術(shù)語

某人看書執(zhí)行主程序

電話鈴響中斷信號INT=Of中斷請求

暫停看書暫停執(zhí)行主程序f中斷響應(yīng)

書中作記號當(dāng)前PC入棧f保護(hù)斷點

電話談話執(zhí)行I/O程序f中斷服務(wù)

繼續(xù)看書返回主程序一中斷返回

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity3

第七章微型計算機(jī)中斷系統(tǒng)

1.中斷的基本概念

所謂中斷,就是指當(dāng)CPU正在執(zhí)行程序時,外設(shè)(或其它

中斷源)向CPU發(fā)出請求,CPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)向

稱中斷服務(wù)程序,當(dāng)中斷服務(wù)程序運行結(jié)束后,返回原程

序繼續(xù)執(zhí)行的過程。

?中斷最初是作為處理器與外部設(shè)備交換信息的一種控制方

式提出的。由此,最初的中斷全部是對外部設(shè)備而言的,

稱為外部中斷或硬件中斷。

?隨著計算機(jī)技術(shù)的發(fā)展,中斷的范圍也隨之?dāng)U大,出現(xiàn)了

內(nèi)部軟件中斷的概念,它是為解決機(jī)器內(nèi)部運行時出現(xiàn)的

異常以及為編程方便而提出的。

?外部中斷或硬件中斷通常稱為中斷

?軟件中斷或異常中斷通常稱為異常(Exception)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity4

第七章微型計算機(jī)中斷系統(tǒng)

注:中斷與轉(zhuǎn)子程序的區(qū)別

1、調(diào)用子程序是在程序中插入調(diào)用指令,為事先安排好

的;而中斷服務(wù)程序的執(zhí)行則是由隨機(jī)的中斷事件引起的,

如請求I/O傳送;

2、子程序的執(zhí)行與主程序有關(guān),中斷程序可能與被中

斷的程序無關(guān);

3、在同一時刻,在程序中的同一處,只可有一條調(diào)用

指令,而在同一時刻可能出現(xiàn)多個中斷事件同時請求CPU為

其服務(wù)的情況;

4、中斷服務(wù)程序與子程序的編寫也不同。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity5

第七章微型計算機(jī)中斷系統(tǒng)

2.中斷源

能發(fā)出中斷請求的外部設(shè)備或引起中斷的內(nèi)部原因稱中斷源

?中斷源的要求:

/不僅要求能發(fā)出中斷請求信號,而且這個信號還能保持下

來,直到CPU響應(yīng)這個中斷請求后才允許撤消,所以每個中

斷源必須有一個中斷請求觸發(fā)器用來鎖存中斷請求信號。

,在多個中斷源的微機(jī)系統(tǒng)中,為了增加對中斷控制的靈活

性,可根據(jù)需要指定某些中斷源提出的中斷請求可以被CPU

響應(yīng),而另'一些中斷源提出的中斷請求暫時不被響應(yīng)。這

可在接口電路中設(shè)置一個中斷屏蔽觸發(fā)器,每個中斷源發(fā)

出的中斷請求信號能否送到CPU,取決于中斷源各自的中斷

屏蔽觸發(fā)器的狀態(tài)。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity6

第七章微型計算機(jī)中斷系統(tǒng)

3.中斷響應(yīng)

?對于外部硬件可屏蔽中斷而言CPU要每條指令的最后一

個T同期去檢測INTR引腳,CPU一旦檢測到有中斷請求,在

滿足中斷響應(yīng)的條件下(IF=1),CPU響應(yīng)中斷,向外設(shè)發(fā)

出INTA中斷響應(yīng)信號。并保護(hù)斷點,然后轉(zhuǎn)向中斷服務(wù)程

序。中斷服務(wù)程序執(zhí)行完畢,CPU返回原執(zhí)行程序的中斷

處,繼續(xù)向下執(zhí)行,稱為中斷返回。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity7

第七章微型計算機(jī)中斷系統(tǒng)

4.中斷向量表

?中斷類型號通過一個地址指針表與中斷服務(wù)程序的入口地址

相聯(lián),在實模式下,該表稱為中斷向量表。

?中斷向量表包含256個中斷向量。每個中斷向量包含兩個字

(4個字節(jié)),高地址字為中斷服務(wù)程序所在代碼段的段基址,

低地址字為代碼段中中斷服務(wù)程序第一條指令的偏移量。

低地征偏移量V'4nXXf中斷服務(wù)程序入口地址的偏移地址的低8位

、4n+lXXf中斷服務(wù)程序入口地址的偏移地址的高8位

'4n+2f中斷服務(wù)程序入口地址的段地址的低8位

點地址1,段基址VXX

-4n+3XX-中斷服務(wù)程序入口地址的段地址的高8位

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity8

第七章微型計算機(jī)中斷系統(tǒng)

>例:設(shè)某中斷源的類型碼為13H,該中斷源的中斷服務(wù)程

序的入口地址為FFOOH:2200H,試畫出中斷矢量表。

>解:n=13,則4n=13H*4=4CH,

>中斷矢量表如下:

實模式下,中斷向量表存放在內(nèi)存最低端的1K單元之中,

物理地址00000H?003FFH

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity9

第七章微型計算機(jī)中斷系統(tǒng)

5.中斷優(yōu)先級

?通常一個系統(tǒng)有多個中斷源,而CPU同一時刻只能響應(yīng)一

個中斷源的請求,那么當(dāng)多個中斷源同時請求中斷服務(wù)時,

應(yīng)該先響應(yīng)哪一個,有一個次序安排的問題。

A按中斷源的輕重緩急程度確定的優(yōu)先級別,稱為優(yōu)先級。

優(yōu)內(nèi)部中斷和異常

級軟件中斷

遞外部非屏蔽中斷

外部可屏蔽中斷

2012-5-10LZhm—SchoolofElectronicandInformationEngineeringsXianningUniversity10

第七章微型計算機(jī)中斷系統(tǒng)

6.中斷嵌套

A當(dāng)CPU正在響應(yīng)某一中斷源的請求,執(zhí)行為其服務(wù)的中

斷服務(wù)程序時,如果有優(yōu)先級更高的中斷源發(fā)出請求,

CPU圈中止正在執(zhí)行的中斷服務(wù)程序而轉(zhuǎn)入為新的中斷源

服務(wù),等新的中斷服務(wù)程序執(zhí)行完后,再返回到被中止

的中斷服務(wù)程序,這一過程稱為中斷嵌套。

A中斷嵌套可以有多級,具體級數(shù)原則上不限,只取決

于堆棧深度

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity11

第七章微型計算機(jī)中斷系統(tǒng)

中斷的優(yōu)先級與中斷嵌套(示意圖)

1#中斷2#中斷3#中斷

原主程序服務(wù)程序服務(wù)程序服務(wù)程序

中斷優(yōu)先級3#>2#>1#

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity12

第七章微型計算機(jī)中斷系統(tǒng)

守中斷嵌套(示意圖)IR1處理程序

它說明:中斷結(jié)束前要有EOI中斷結(jié)束命令,用來清除中斷服務(wù)寄存器中對應(yīng)位,允許

低級中斷進(jìn)入。EOI結(jié)束命令一般放在中斷返回指令I(lǐng)RET前面,若中斷處理中提前發(fā)

出了皿I命令,則清除正在執(zhí)行的中斷服務(wù)「允許響應(yīng)同級或低級的中斷申請;

2012-5-10LZhm—SchoolofElectronicandInformationEngineering,XianningUniversity13

第七章微型計算機(jī)中斷系統(tǒng)

行二、中斷分類

A8086/8088可以處理256種中斷,它們被分為二大類:

?外部中斷和內(nèi)部中斷

?外部中斷也稱硬件中斷,是由外部的硬件產(chǎn)生的,又分:

?不可屏蔽中斷和可屏蔽中斷

設(shè)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity14

第七章微型計算機(jī)中斷系統(tǒng)

1.外部中斷

1外部中斷是由于8086外部提出中斷請求引起的中斷

利用外部中斷,微機(jī)系統(tǒng)可以實時響應(yīng)外部設(shè)備的數(shù)據(jù)傳

送請求,能夠及時處理外部意外或緊急事件

鼠注1:外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的,所以是真

正的中斷(Interrupt)

鼠注2:內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)

常被稱為異常(Exception)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity15

第七章微型計算機(jī)中斷系統(tǒng)

行1)非屏蔽中斷

廓通過非屏蔽中斷請求信號向微處理器提出的中斷請求,

微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),

這個中斷被稱為非屏蔽中斷

副8088的非屏蔽中斷的向量號為2,非屏蔽中斷請求信號

為NMI

1非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。

例如:

-電源調(diào)電前的數(shù)據(jù)保護(hù)

-存儲器讀寫錯誤的處理

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity16

第七章微型計算機(jī)中斷系統(tǒng)

行2)可屏蔽中斷

同外部通過可屏蔽中斷請求信號向微處理器提出的中斷,微處

理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以

響應(yīng),同時輸出可屏蔽中斷響應(yīng)信號,這個中斷就是可屏蔽

中斷

8086的可屏蔽中斷請求和響應(yīng)信號分別是INTR和INTA*;由

IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號來自外部中斷

控制器

i8086通常需要配合中斷控制器8259A共同處理可屏蔽中斷

f可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity17

第七章微型計算機(jī)中斷系統(tǒng)

G.內(nèi)部中斷和異常

?內(nèi)部中斷也稱軟件中斷,是執(zhí)行特定指令時產(chǎn)生的中斷。

?軟件中斷通常有三種情況引起:

?31、中斷指令I(lǐng)NT引起的中斷;

?2.CPU的某些運算錯誤引起的中斷;

03、DEBUG設(shè)置的中斷;

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity18

第七章微型計算機(jī)中斷系統(tǒng)

^1)由中斷指令I(lǐng)NT引起的中斷

?CPU執(zhí)行一條INTN指令后會立即產(chǎn)生中斷,并調(diào)用系統(tǒng)

中相應(yīng)的中斷處理程序去完成中斷功能,指令中N指出

了中斷類型號。

/例:INT12H

?產(chǎn)生一個中斷,從中斷向量表的0:12H*4開始的單元中取出四個

字節(jié),其內(nèi)容為中斷服務(wù)程序的段地址及偏移地址,然后轉(zhuǎn)到此

入口去執(zhí)行中斷服務(wù)程序,完成對存儲器的測試。返回參數(shù)是存

儲器的大小,放在AX中。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity19

第七章微型計算機(jī)中斷系統(tǒng)

行2)由CPU的某些運算錯誤引起的中斷

(1)除法錯中斷

解在執(zhí)行除法指令時,若除數(shù)為0或商超過了寄存器所能

表達(dá)的范圍,則產(chǎn)生一個向量號為0的內(nèi)部中斷,稱為

除法錯中斷

例如:

movbl,0

idivbl;除數(shù)BL=0,產(chǎn)生除法錯中斷

movax,200h

movbl,1

divbl;商=200H,不能用AL表達(dá)

;產(chǎn)生除法錯中斷

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity20

第七章微型計算機(jī)中斷系統(tǒng)

?。?)溢出中斷

在執(zhí)行溢出中斷指令I(lǐng)NTO時,若溢出標(biāo)志OF為1,則產(chǎn)

生一個向量號為4的內(nèi)部中斷,被稱為溢出中斷

例如:

movax,2000h

addax,7000h

;2000H+7000H=9000H,溢出:OF=1

into;因為OF=1,所以產(chǎn)生溢出中斷

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity21

第七章微型計算機(jī)中斷系統(tǒng)

者3)由調(diào)試程序DEBUG設(shè)置的中斷

行1)單步中斷

日若單步中斷TF為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個

向量號為1的內(nèi)部中斷,稱為單步中斷

例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷

實現(xiàn)對程序的單步調(diào)試

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity22

第七章微型計算機(jī)中斷系統(tǒng)

行2)斷點中斷

斷點中斷為中斷類型3,用DEBUG程序時,可用G命令設(shè)

置斷點。當(dāng)CPU執(zhí)行到斷點時便產(chǎn)生中斷,同時顯示當(dāng)

前各寄存器和有關(guān)存儲器的內(nèi)容及下條要執(zhí)行的指令,

供用戶檢查。

例如:DEBUG.EXE調(diào)試程序的運行命令G設(shè)置的斷點,就

是利用INT3指令實現(xiàn)的

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity23

第七章微型計算機(jī)中斷系統(tǒng)

田7.2可屏蔽中斷處理過程

一般說來,中斷過程可以分為以下幾步:

一、提出申請

二、中斷識別

三、中斷響應(yīng)

四、中斷處理和返回

為了簡便問題討論,僅討論外設(shè)請求中斷的處理過程。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity24

第七章微型計算機(jī)中斷系統(tǒng)

LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity

25

2012-5-10

第七章微型計算機(jī)中斷系統(tǒng)

小一.中斷請求

中斷請求是由中斷源向CPU發(fā)出的某種信號,通知CPU某

臺外設(shè)正在請求CPU中斷現(xiàn)行程序的執(zhí)行,為它服務(wù)。

具有中斷能力的微處理器的外部引線中,都有一根或多

根中斷請求線,如8086CPU中的INTR和NMI。

中斷源接口電路中都設(shè)有一個中斷請求觸發(fā)器,由輸出

端的高電平來表示本外設(shè)提出了中斷請求。中斷請求觸發(fā)

器能將中斷請求信號一直保持,直到CPU響應(yīng)后,才由CPU

清除。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity26

第七章微型計算機(jī)中斷系統(tǒng)

中斷屏蔽觸發(fā)器

CPU外部必須設(shè)置一個中斷請求觸發(fā)器鎖存中斷請求信號,

以便CPU在現(xiàn)行指令周期結(jié)束時采樣,還可設(shè)置中斷屏蔽觸

發(fā)器。見下圖。

當(dāng)觸發(fā)器為“1”時,外設(shè)的中斷請求才能被送出至CPU。

外設(shè)發(fā)出中斷請求要具備以下兩個基本條件:

1.外設(shè)本身的準(zhǔn)備工作已完成。

2.系統(tǒng)允許該外設(shè)發(fā)中斷請求。

中斷請求輸出

中斷請求輸入

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity27

第七章微型計算機(jī)中斷系統(tǒng)

小二.中斷識別

CPU要對中斷請求進(jìn)行處理,必須要找到相應(yīng)中斷服

務(wù)程序(處理中斷的程序)的入口地址,這就是中斷源的識

另L尋找哪個中斷源發(fā)出中斷請求稱為中斷源的識別。

中斷識別的目的是要形成該中斷源的中斷服務(wù)程序的

入口地址,以便CPU修此地址置入CS:IP寄存器,從而實

現(xiàn)程序的轉(zhuǎn)移。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity28

第七章微型計算機(jī)中斷系統(tǒng)

中斷結(jié)構(gòu)

在中斷系統(tǒng)中,有多級中斷和單線中斷兩種結(jié)構(gòu),它

們中斷源的識別方法也不相同。

1

IRQ1

2

IRQ2

IRQ33

IRQ4CPU

4

IRQ5

N

多級中斷結(jié)構(gòu)單線中斷結(jié)構(gòu)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity29

第七章微型計算機(jī)中斷系統(tǒng)

田中斷源識別方法IRQ1_

IRQ2二

?對于多級中斷結(jié)構(gòu),微處理有多條中斷請求IRQ3—

CPU

線。若每一個中斷都有一根對應(yīng)的中斷輸入IRQ4——

IRQ5一

線,貝UCPU就不存在查詢問題,在任何一時

亥hCPU只接受優(yōu)先級高的那個中斷請求,多級中斷結(jié)構(gòu)

并同時禁止比它級別低的其它中斷。

?對于單線中斷結(jié)構(gòu),多個中斷源共用一根中

斷請求線。它一方面要判別哪個中斷優(yōu)先

級最高,另外一方面要將程序引導(dǎo)到相應(yīng)的

中斷處理程序入口。解決這種結(jié)構(gòu)的中斷源

識別問題,常常有兩種處理方法:中斷向量

法和查詢法。單線

中斷結(jié)構(gòu)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity30

第七章微型計算機(jī)中斷系統(tǒng)

行1.向量中斷

向量中斷:由中斷向量來指示服務(wù)程序的入口地址。

中斷向量包括中斷服務(wù)程序的段基址CS和偏移地址IP共4

個字節(jié)內(nèi)容。

每一個中斷服務(wù)程序都有一個確定的入口地址,把系統(tǒng)中

所有的中斷向量集中起來放到存儲器的某一區(qū)域內(nèi),這個存

放中斷向量的存儲區(qū)域就叫中斷向量表或中斷服務(wù)程序入口

地址表。

中斷向量表中的每一個向量的序號就是一個中斷號

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity31

第七章微型計算機(jī)中斷系統(tǒng)

^1)中斷向量表

?中斷向量:中斷服務(wù)程序的入口地址(首地址)

?邏輯地址含有段地址CS和偏移地址IP(32位)

?每個中斷向量的低字是偏移地址、高字是段地址,需占用

4個字節(jié)

?8086微處理器從物理地址00000H開始,依次安排各個中斷

向量,向量號也從0開始

?256個中斷占用1KB區(qū)域,就形成中斷向量表

j向量號為N的中斷向量的物理地址=Nx4

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity32

第七章微型計算機(jī)中斷系統(tǒng)

8086中斷向量表

IP

00000H類型號0指示器:除法出錯中斷’

00004H類型號1指示器:單步中斷CS

00008H類型號2指示器:非屏蔽中斷A專用的中斷指示器

0000CH類型號3指示器:斷點中斷(共5個)

00010H類型號4指示器:溢出錯中斷

00014H類型號5指示器(保留)

L保留的中斷指示器

[(共27個)

0007CH類型號31指示器(保留)

00080H類型號32指示器(用戶可用)

用戶可用的中斷指

1示器(共224個)

003FCH類型號31指示器(用戶可用)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity33

第七章微型計算機(jī)中斷系統(tǒng)

行8088中斷向量表

向量號255的CS值用戶中斷

3FCH向量號255的IP值(向量號255)

向量號2的CS值非屏蔽中斷

008H向量號2的IP值(向量號2)

向量號1的CS值單步中斷

004H向量號1的IP值(向量號1)

向量號0的CS值除法錯中斷

000H向量號0的IP值(向量號0)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity34

第七章微型計算機(jī)中斷系統(tǒng)

行例:INT68H,其中斷操作過程

1、取中斷類型號68H

2、計算中斷向量地址:68H*4=1AOH

3、取中斷向量地址分別送IP和CS

4、轉(zhuǎn)向中斷服務(wù)程序

5、中斷返回到INT68H指令的下一條指令

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity35

第七章微型計算機(jī)中斷系統(tǒng)

^2).中斷向量表的設(shè)置

?設(shè)置中斷向量表就是將中斷服務(wù)程序入口地址置

入中斷類型號(nn)所對應(yīng)的中斷向量表中。

?設(shè)置中斷向量表方法:

?利用指令設(shè)置,

?利用DOS功能調(diào)用設(shè)置

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity36

第七章微型計算機(jī)中斷系統(tǒng)

行方法一:利用指令設(shè)置中斷向量(1)

例:

MOVAX,0;主程序

MOVES,AX

MOVDI,N*4

MOVAX,OFFSETINTRAD;置入偏移地址

CLD

STOSW

MOVAX,CS;置入段地址

STOSW

STI

INTRAD:;中斷服務(wù)程序

IRET

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity37

第七章微型計算機(jī)中斷系統(tǒng)

行方法一:利用指令設(shè)置中斷向量(2)

例:

MOVAX,0;主程序

MOVES,AX

MOVBX,N*4

MOVAX,OFFSETINTRAD;置入偏移地址

MOVES:WORDPTR[BX],AX

MOVAX,SEGINTRAD;置入段地址

MOVES:WORDPTR[BX+2],AX

STI

INTRAD:;中斷服務(wù)程序

IRET

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity38

第七章微型計算機(jī)中斷系統(tǒng)

行方法二:利用DOS功能調(diào)用設(shè)置中斷向量

設(shè)置中斷向量:把由AL中指定中斷類型號的中斷向量DS:

DX,放置在中斷向量表中。

調(diào)用格式如下:

AL=中斷類型號

DS:口乂=中斷服務(wù)程序入口地址

AH=25H

執(zhí)行INT21H

例:

MOVAX,SEGINTRAD;設(shè)置中斷向量段地址DS

MOVDS,AX

MOVDX,OFFSETINTRAD

MOVAL,nn;中斷類型號

MOVAH,25H;設(shè)置中斷量

INT21H

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity39

第七章微型計算機(jī)中斷系統(tǒng)

^3).中斷向量號的獲取

?(1)對于除法中斷、單步中斷、不可屏蔽中斷NMI、斷點

中斷和溢出中斷,CPU分別自動提供中斷類型號0-4。

?(2)對于用戶自定義的軟件中斷INTnnH,類型號由nn

決定。

?(3)對外部可屏蔽中斷INTR,可以用可編程中斷控制器

8259A獲得中斷類型號。8259A收到CPU發(fā)出的第二個中斷

響應(yīng)信號INTA時,將對應(yīng)中斷源的中斷類型送給CPU,CPU

獲取中斷類型號后,自動轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity40

第七章微型計算機(jī)中斷系統(tǒng)

2.中斷查詢

1)軟件查詢

是在CPU響應(yīng)中斷后,用軟件查詢以確定是哪些外設(shè)申請中斷,并判斷

它們的優(yōu)先權(quán),即,CPU一旦檢測出有中斷請求時,就自動從固定地址為N的

單元取出一條指令,并執(zhí)行以這條指令開始的一段中斷識別程序,中斷識別

程序?qū)B接于中斷線上的每一臺設(shè)備按照預(yù)先安排好的優(yōu)先級次序逐臺查詢,

檢查每臺設(shè)備的接口中的中斷請求狀態(tài)位是否有效,若有效,則為其服務(wù),

否則,就查詢下一個緊挨著的優(yōu)先級的設(shè)備的中斷請求狀態(tài).

中斷源0

中斷源1

中斷源n

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity41

第七章微型計算機(jī)中斷系統(tǒng)

招2).硬件查詢——鏈?zhǔn)絻?yōu)先權(quán)排隊電路

POL------------?-----------------------

將所有的中來自CPU的查詢信號---------------------v——中斷輸入]

斷源排成'一個鏈。A]|A?

Vy

SYN-T-?

設(shè)備1選中V-----------1__________J

各中斷源在

-----------------------v----中斷輸入2

鏈中的前后順序

BjB2

SYN?

是根據(jù)中斷源優(yōu)設(shè)備2選中V----------J|

先級別的高低來-----------------------V----中斷輸入3

C,c2

排列。SYNI

設(shè)備3選中V----------J|

排在鏈前面<——中斷輸入

茴1-----------H------f---------------4

的優(yōu)先級最高。

SYN''丁'?

設(shè)備4選中V----------1JPOL

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity42

第七章微型計算機(jī)中斷系統(tǒng)

夕三、中斷響應(yīng)

1、CPU響應(yīng)中斷,通常要具備如下條件:

1)中斷源提出中斷請求信號,此信號要一直至CPU響應(yīng)這個

中斷信號后才可清除,且無總線請求信號。

2)本中斷未被屏蔽。即中斷源發(fā)出的中斷請求信號能夠傳

送到CPU中斷請求線。

3)CPU處于開中斷狀態(tài)。在CPU內(nèi)部有一個中斷允許觸發(fā)器,

其輸出端為“1”時才能響應(yīng)中斷,稱這“開中斷”,若輸出為

“0”,即為“關(guān)中斷”。當(dāng)CPU復(fù)位時,則自動關(guān)中斷;當(dāng)CPU

響應(yīng)任何中斷時,也立即自動關(guān)中斷。

4)CPU采樣INT線是在現(xiàn)行指令運行到最后一個機(jī)器周期的

最后一個T狀態(tài)。也就是說,中斷的出現(xiàn)是隨機(jī)的,但CPU響應(yīng)

中斷是在一條現(xiàn)行指令結(jié)束之后。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity43

第七章微型計算機(jī)中斷系統(tǒng)

行2.中斷響應(yīng)周期中CPU的工作

1)發(fā)中斷響應(yīng)信號。當(dāng)CPU響應(yīng)中斷時,將發(fā)中斷響應(yīng)信

號,如8086CPU發(fā)出中斷響應(yīng)信號為INTA

2)自動關(guān)中斷。CPU內(nèi)部的中斷允許觸發(fā)器自動關(guān)閉。

3)保護(hù)斷點。當(dāng)一條指令執(zhí)行完后,若CPU進(jìn)入中斷響應(yīng)

周期,這時PC中內(nèi)容就是被中止的現(xiàn)行程序中正在執(zhí)行的指

令的下一條指令地址,該地址為現(xiàn)行主程序的中斷地址,稱

為斷點。CPU必須將這個斷點壓入堆棧保存起來,以便中斷

處理程序執(zhí)行完后能從此斷點處繼續(xù)執(zhí)行主程序。

4)保護(hù)關(guān)鍵現(xiàn)場。通常為標(biāo)志位寄存器內(nèi)容入棧

5)尋址中斷源。根據(jù)中斷類型,確定中斷服務(wù)程序的人

口地址。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity44

第七章微型計算機(jī)中斷系統(tǒng)

e3、中斷響應(yīng)時序

CPU對可屏蔽中斷請求的響應(yīng)過程要執(zhí)行兩個連續(xù)的中斷

響應(yīng)INTA總線周期,每個總線周期包括4個時鐘周期:

?第一個INTA周期,CPU通知外設(shè)準(zhǔn)備響應(yīng)中斷,外設(shè)應(yīng)準(zhǔn)

備好中斷類型號——CPU將地址/數(shù)據(jù)總線置于浮動狀態(tài),在

T2-T4期間發(fā)出INTA給8259A,禁止來自其它總線控制器的總

線請求。

?第二個INTA周期,CPU接收外設(shè)接口發(fā)來的中斷類型號一

一在T2和T3周期將一個字節(jié)的中斷類型號N送數(shù)據(jù)總線低8位,

CPU讀取中斷類型號N,乘以4,得到中斷向量表的地址繼而查

得中斷服務(wù)程序入口地址,然后CPU保護(hù)PSW,清IF和TF,將

斷點CS和IP入棧,轉(zhuǎn)中斷服務(wù)程序入口。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity46

第七章微型計算機(jī)中斷系統(tǒng)

行四、中斷處理和返回

1.保護(hù)現(xiàn)場。將需要保護(hù)的寄存器中的內(nèi)容保存起來

2.開中斷。CPU接收并響應(yīng)一個中斷后自動關(guān)閉中斷。若允

許響應(yīng)更高中斷,需在中斷服務(wù)程序中用開中斷指令。

3.中斷服務(wù)。完成某特定的功能,如傳送數(shù)據(jù)等。

4.關(guān)中斷。如果在第2步開了中斷,則在此處應(yīng)用關(guān)中。

5.恢復(fù)現(xiàn)場。在返回主程序之前要將用戶保護(hù)的內(nèi)容。

6.開中斷返回。此處的開中斷對應(yīng)于CPU響應(yīng)中斷后自動關(guān)

閉中斷,在返回主程序之前,用開中斷指令開斷,使主程序

可以被其中斷請求信號所中斷。中斷服務(wù)程序中的最后一條

指令是返回指令,執(zhí)行返回指令自動從現(xiàn)行堆棧中彈出斷點

和標(biāo)志位寄存器內(nèi)容,以便繼續(xù)執(zhí)行主程序。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity47

第七章微型計算機(jī)中斷系統(tǒng)

行中斷處理和返回示意圖

INT

斷點

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity48

第七章微型計算機(jī)中斷系統(tǒng)

行CPU處理外部中斷時處理順序

?1.從數(shù)據(jù)線上讀取中斷類型碼,將中斷類型碼乘4,指向

中斷向量表的中斷處理子程序的入口地址。

?2.將狀態(tài)標(biāo)志位寄存器的內(nèi)容壓入堆棧。

?3.清除IF和TF的狀態(tài)標(biāo)志位,屏蔽新的INTR和單步中斷。

?4.將CS和IP的內(nèi)容進(jìn)棧保護(hù)

?5.轉(zhuǎn)中斷處理程序的入口地址,即將所指向的中斷向量表

中的低位字送IP,高位字送CS。

?6.轉(zhuǎn)中斷服務(wù)程序,執(zhí)行中斷處理程序。

?7.從堆棧中返回IP、CS、PSW返回到被中斷了的主程序的

斷點繼續(xù)執(zhí)行。

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity49

第七章微型計算機(jī)中斷系統(tǒng)

小五.中斷程序

>編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似

.:.利用過程定義偽指令PROC/ENDP

第1條指令通常為開中斷指令STI

最后用中斷返回指令I(lǐng)RET

通常采用寄存器傳遞參數(shù)

>主程序需要調(diào)用中斷服務(wù)程序

*調(diào)用前,需要設(shè)置中斷向量

設(shè)置必要的入口參數(shù)

利用INTn指令調(diào)用中斷服務(wù)程序

處理出口參數(shù)

2012-5-10LZhm-SchoolofElectronicandInformationEngineering,XianningUniversity50

第七章微型計算機(jī)中斷系統(tǒng)

e1、主程序中的初始化

1)設(shè)置中斷向量

2)設(shè)置8259A的中斷屏蔽寄存器的中斷屏蔽位

3)設(shè)置CPU中斷允許標(biāo)志位IF

行2、中斷服務(wù)程序

1)現(xiàn)場保護(hù)——PUSH

2)若允許中斷嵌套,則用STI指令開中斷

3)執(zhí)行中斷處理程序

4)用CLI指令關(guān)中斷

5)給中斷命令寄存器送中斷結(jié)束命令EOI

6)恢復(fù)中斷時現(xiàn)場——POP

7)用中斷返回指令I(lǐng)RET返回主程序

2012-5-10LZhm-SchoolofElect

溫馨提示

  • 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

提交評論