第九章中斷控制_第1頁
第九章中斷控制_第2頁
第九章中斷控制_第3頁
第九章中斷控制_第4頁
第九章中斷控制_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

斷控制

工系統(tǒng)

中斷控制器

4

1

本章學(xué)習(xí)目標(biāo)

掌握有關(guān)中斷的基本概念、中斷優(yōu)先級、中斷嵌

套、中斷屏蔽、中斷向量等基本概念。

?了解8086/8088中斷系統(tǒng)中的中斷源分類、IBM-PC

機(jī)中斷系統(tǒng)結(jié)構(gòu)。

?掌握可編程中斷控制器8259A的功能、內(nèi)部結(jié)構(gòu)、

工作方式及初始化命令和操作命令的定義、使用方法,

服務(wù)程序的基本編寫方法。

2

計算機(jī)采用中斷控制技術(shù)的主要用途

計算機(jī)采用中斷控制技術(shù)主要

用在以下三個方面:

?(1)故障處理

?(2)分時操作

?(3)實時處理

3

1中斷的基本概念

一CPU與外設(shè)之間的數(shù)據(jù)傳送控制方式

(即I/O控制方式),通常有以下三種:

?:?程序控制方式

?:?中斷方式

DMA方式(DirectMemoryAccess)

4

CPU通過執(zhí)行程序不斷讀

取并檢測外設(shè)的狀態(tài),只

程序控制方式有在外設(shè)確實已準(zhǔn)備就緒

的情況下,才進(jìn)行數(shù)據(jù)傳

人為?十人、工口—、去工口歷n送;否則,還要繼續(xù)不斷

輸入輸出程序流程圖地查詢外設(shè)的狀態(tài)。

OI」

O,---------------------------JI---------------------------k

*

讀取狀態(tài)信息讀取狀態(tài)信息

5

程序控制方式

程序查詢傳送方式比無條件傳送方式要準(zhǔn)

確可靠,但在此種方式下,CPU要不斷查詢

外設(shè)的狀態(tài),占用了大量CPU時間,而真正

用于數(shù)據(jù)傳送的時間卻很少,即CPU的工作

效率很低;另外,采用這種方式,也很難滿

足實時系統(tǒng)對I/O處理的要求。因此,出現(xiàn)了

中斷控制方式。

6

中斷方式

、中斷基本概念

定義:CPU穿插處理隨機(jī)事件的過程。

中斷過程:

中斷請求中場響應(yīng)中斷服務(wù)中吵結(jié)束

中斷處理

中斷處理的隱操作:程序狀態(tài)及程序斷點地址的進(jìn)

棧及出棧。

7

中斷的全過程及有關(guān)概念

5%種

優(yōu)

應(yīng)

?

?

?:9

?斷

8

?:?“”是指中斷源(引起中斷的事件或設(shè)備)向CPU發(fā)出的

請求中斷的要求;

?當(dāng)有多個中斷源發(fā)出中斷請求時,需要通過適當(dāng)?shù)霓k法(軟件的

硬件的;軟、硬件結(jié)合的)決定究竟先處理哪個中斷請求,這就

是““;

"是藉CPU中止現(xiàn)行程序轉(zhuǎn)至中斷服務(wù)程序的過程;

"就是指CPU執(zhí)行中斷服務(wù)程序;

執(zhí)行完中斷服務(wù)程序后,返回到原先被中斷的程序稱為“

為了能K確返回到原來程序被中斷的地方(也稱一即主程序

中當(dāng)前指令下面一條指令的地址),在中斷服務(wù)程序的最后應(yīng)專

門放置一■條O

另外,,為7使主程序在返向后仍能從斷點處繼續(xù)執(zhí)行,

在中斷服務(wù)程序的開頭一保護(hù)現(xiàn)場(通過PUSH指令實現(xiàn)),在中

-恢復(fù)現(xiàn)場(通過POP指令實現(xiàn))。

中斷響應(yīng)和處理過程

。需要指出:

?:?不同的中斷類型(如可屏蔽中斷、不可屏蔽中斷;

外部中斷、內(nèi)部中斷…),處理器(CPU)進(jìn)行響應(yīng)

和處理的具體過程并不完全相同;另外,就是對

同一種中斷類型(如可屏蔽中斷).

不同的處理器(如Z80,80X86)進(jìn)行響應(yīng)和處理的

過程也不盡相同。

10

?:?書P357中斷響應(yīng)過程6點(1,2,3,4,5,6)

。其中,前2項一般由硬件(處理器內(nèi)部)完成;而后4

項一般是由軟件(由程序設(shè)計者編寫的中斷服務(wù)程序)

來完成,即整個中斷響應(yīng)和處理過程是由CPU內(nèi)部

的有關(guān)和密切配合,共同完成的。

?:?針對一個具體的系統(tǒng)(機(jī)型),中斷服務(wù)程序設(shè)

計者應(yīng)該清楚在中斷響應(yīng)時,“”完成了

哪些操作(如FR是否已被壓入堆棧),還需要

“”(中斷服務(wù)程序)完成哪些操作。

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

。中斷優(yōu)先級(Priority)的解決方法

?:?系統(tǒng)中多個中斷請求可能同時出現(xiàn),CPU只能按

一定的次序(優(yōu)先級策略)予以響應(yīng)和處理,這個

響應(yīng)的次序稱為中斷優(yōu)先級。

?:?一般的方法有:

軟件查詢法——程序查詢識別(需要少量硬件)

硬件查詢法---菊花鏈(daisychain)優(yōu)先級排隊電路

。中斷向量法識別——采用可編程中斷控制器(如8259)

12

DO

CPU

INTR1DI

INTR2

INTR

INTR3CPU

CPU07

INTR

Ca)學(xué)叁

微處理器的3種中斷技術(shù)示意圖

13

INT

(1)軟件查詢法

端口號=

XXH

C打

RT印

。把各個外設(shè)的中斷請求信號“相或”,產(chǎn)生一個總的INT

信號

?當(dāng)CPU響應(yīng)中斷后,進(jìn)入中斷處理程序,在中斷處理程序

的開始部分安排一段帶有優(yōu)先級的查詢程序。

。優(yōu)點:省硬件

。缺點:中斷響應(yīng)慢

恢亞現(xiàn)場

中斷返I川

15

⑵菊花鏈優(yōu)先級排隊電路

16

⑵菊花鏈優(yōu)先級排隊電路

?INTR=INT1+INT2+INT3

?當(dāng)INTA信號沿菊花鏈行進(jìn)時,最

一靠近CPU并發(fā)出INT請求的接口將

中斷請求首先攔截住INTA信號,并送出中

______斷類型碼,進(jìn)入相應(yīng)的中斷處理

_程序;在服務(wù)完成后撤銷其請求

(解除對下一級的阻塞和封鎖)。

INTA(3)可編程中斷控制器(如8259)

INTR

17

排隊鏈優(yōu)先權(quán)的控制方法

18

中斷iff求

允許接受

矢量中斷優(yōu)先權(quán)的控制系統(tǒng)

19

INTR1IR

「INTA1,設(shè)備接口

LINTM11

IM

L1NTR2

INTRIR

.INTA2.

設(shè)備接口

權(quán)INTM2

INTAIM

主機(jī)----------------r

?編

石馬

向量地址

/LINTRn

電IR

路INTAn

1—11

INTMn

IMn

向量中斷示意圖

20

?I'斷控制器按利優(yōu)原則選KP

當(dāng)前優(yōu)先級最島的中斷由求

CPU執(zhí)行完當(dāng)前一條指令

CPU取下條將令

21

單級中斷處理和多級中斷處理

?:?單級中斷處理不允許其他設(shè)備再中斷CPU的

程庠;

多級中斷處理允許優(yōu)先級高的中斷打斷優(yōu)先

級低的中斷服務(wù)程序。

22

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

23

B請求A、C請求

(a)單級中斷處理(b)多級中斷處理

同時中斷請求的處理方法

24

中斷嵌套

*通常,正在執(zhí)行較低級的中斷服務(wù)程序時,

可以響應(yīng)較高級的中斷請求,而將正在處理

的中斷暫時掛起,稱為中斷嵌套。

STI

—777----可實現(xiàn)

----------“多重嵌套”

IRET

25

28086/8088的中斷系統(tǒng)

。一、中斷的分類:在8086/8088系統(tǒng)中,可將中

斷分為兩大類:

。第一類硬件中斷:是由外部的中斷請求信號啟動

的中斷,也稱為外部中斷。又可分為:

?:?非屏蔽中斷NMI:整個系統(tǒng)只有一個,不受IF屏蔽

。可屏蔽中斷INTR:受IF屏蔽,在中斷控制器8259的統(tǒng)一管

理下,可屏蔽中斷可有幾個至幾十個。

26

中斷的分類

?:?(注意,這里的IF是CPU內(nèi)部的標(biāo)志寄存器的IF位,

IF=O,則對所有從INTR引腳進(jìn)入的中斷請求均

不予響應(yīng)(“總開關(guān)”);另外,也可以在CPU外部

的中斷控制器(8259)中以及各個I/O接口電路(如

8255)中對某一級中斷或某個中斷源單獨進(jìn)行屏

蔽)。

?:?第二類軟件中斷:是由CPU內(nèi)部的標(biāo)志狀態(tài)(如TF、

OF)或執(zhí)行一條中斷指令(INTn),以及除數(shù)為。弓I起

的中斷,也稱為內(nèi)部中斷。

27

中斷向量和中斷向量表

?:?所謂中斷向量,即中斷服務(wù)程序的入口地址。

?中斷向量表是存放中斷向量(中斷服務(wù)程序入口地址)

的一個特定的內(nèi)存區(qū)域(最低地址區(qū)).

?:?一個中斷向量占4個字節(jié)單元,其中:

?低地址的兩個字節(jié)單元存放中斷服務(wù)程序入口地址的偏移量

(IP)—低字節(jié)在前(低地址),高字節(jié)在后(高地址);

。高地址的兩個字節(jié)單元存放中斷服務(wù)程序入口地址的段地址

(CS)—低字節(jié)在前(低地址),高字節(jié)在后(高地址)。

28

中斷向量和中斷向量表

?8086/8088的中斷向量表如書P377圖9.22所示

。8086/8088可以處理256種中斷,對每種中斷都指定一個中斷

類型號也稱中斷向量號),每個中斷類型號與一個中斷服務(wù)

程序的X口地址相對應(yīng)。

?:*256個中斷向量要占256*4=1024個字節(jié)單元,地址編號從

00000H?003FFH

5個專用中斷(類型0?類型4),它們有固定的定義和處理功能;

?27個保留的中斷(類型5?類型31)。占0000:0014H?0000:007FH,共

108個字節(jié)單元。這個區(qū)域供系統(tǒng)使用,不允許用戶自行定義。

224個用戶可定義的中斷(類型32?類型255)。占一

0000:0080H~0000:03FFHMTU;使用時,要由用戶自行填寫相應(yīng)的中

斷入口地址。(其中有些中斷類型已經(jīng)有了固定用途,例如,類型

21H的中斷已用作MS-Dos的系統(tǒng)功能調(diào)用)。

29

用戶口丁用

中斷向量

C224個)

系統(tǒng)保留斷

斗】用fl??J量

〈27個)

^^0001411

4*J'|>?J?ii(Hi)

OOO12H

■3'-5」?::

OOOOCH

專用2紀(jì)?向展《北屏蔽》

,11斷向最nnnn?ii

(5個)■1號[向lit(41-步)

0000411

cs

■O號向量:(除¥去坐昔)

IP

\^OOOOOU

.

30

IBMPC/XT機(jī)的中斷類型號的安排(一)

中斷塵型號(H)中斷6能中斷次型號mt£(H)中斷6能

00-3酸等除1040-43視潁顯示I/O峭用

14-7壬步1144-47雄備配置最耐

28-BNMI1248-4B存花器尊備繪制

3C-F沒點134C-4F的或I/O調(diào)用

410-13/出1450國RS232I/O調(diào)用

514-17打m,驊勒1554-57窗式電帝I/O調(diào)用

618-IB保留1658-5B鍵盤I/O調(diào)用

71C-1F保留175C-5F打卬機(jī)I/O聞用

820-23定時需1860-63ROMBASIC

924-27鍥般1964-67SI導(dǎo)(BOOT)

A28-2B保留1A68-6B時間調(diào)用

B2C-2F率021B6C-6F鍵款CTRL_BREAK校前

C30-33串口11C70-73定時器時悼

D34-37硬融豉1D74-77顯示器分?jǐn)?shù)表

E38-3B族跌起1E78-7B的盤詼數(shù)表

3O3F打印機(jī)________1F__________顯示圖隨泰數(shù)表

31

IBMPC/XT機(jī)的中斷類型號的安排(二)

中斷類地址中斷類地址

中斷功能中斷功能

型號(H)型號(H)

2080-83程序結(jié)束2698-9B絕對磁盤寫

DOS系統(tǒng)程序結(jié)束,駐

2184-87279C-9F

調(diào)用留內(nèi)存

2288-8B結(jié)束地址28A0-A3DOS內(nèi)部使用

238C-8F中止處理29?2EA4-BBDOS保留

2490-93錯誤處理2FBC-BFDOS內(nèi)部使用

絕對磁盤

2594-9730?3FC0-FFDOS保留

32

I

中斷類型B

8259輸入當(dāng)中斷源M

P

IRQO08電子鐘時間基準(zhǔn)C

'

X

IRQ109T

機(jī)

IRQ20A為用戶保留中

IRQ30B異步通信:COM2

IRQ40C異步通信:COM1

IRQ50D硬盤斷

IRQ60E軟盤型

IRQ70F并行打印機(jī)33

中斷向量和中斷向量表

中斷向量在中斷向量表是按中斷類型號順序存放的;

中斷向量的地址=中斷類型號X4

?:.CPU響應(yīng)中斷時,需把中斷類型號N乘以4,得到中斷向量

的對應(yīng)地址4N(該中斷向量所占4個字節(jié)單元的第一個字節(jié)

單元的地址)一

?然后把由此地址開始的兩個低字節(jié)單元的內(nèi)容裝入IP寄存

器:IP?N,4N+1),再把兩個高字節(jié)單元的內(nèi)容裝入CS寄

存器:CS(4N+2,4N+3),這就是轉(zhuǎn)入中斷類型號為N的中

斷服務(wù)程序的控制過程。

?:eN的來源,對于不同的中斷類型(內(nèi)部,外部:NMI、INTR)

情況有所不同,詳見后述

34

。例1:若中斷類型號為3,則由中斷類型號取得中斷

服務(wù)入口地址的過程如下圖所示:

內(nèi)存

中斷類型號3X40000QH

=OOOCH00001H

0000CH

(0000:000CH)

1EA00H

(1EOO:OAOOH)

FFFFFH35

。例2.中斷類型號為20H,中斷服務(wù)程序的入口地

址存放在0000:0080H開始的4個單元中。若:

?(0080H)=10H

則:中斷服務(wù)程序的入口地址

?(0081H)=20H為________________________

?(0082H)=30H

?:?(0083H)=40H

36

例3.中斷類型號為23(17H),中斷服務(wù)程序的入口地址

為:2340:7890H,由于中斷類型號17H對應(yīng)的中斷向量

存放在0段的0000:005CH(17HX4=5CH)處,所以有:

?(005CH尸

?(005DH尸、00010111B

左移2位:01011100B

\_____________J\_____________)

?(005EH尸YY

5CH

?(005FH尸

37

上2

(6^

:-

優(yōu)

欣n

(>-?*io

Z必_

H'l

H父

*英

-

一2

/二

;

J

L不I

G

)

8086/8088中斷處理流程圖

中斷優(yōu)先級一

?8086(Priority)中斷優(yōu)先

?:?說明:級

除法錯,INTn,INTO最高

?(1)?(5)步是CPU的內(nèi)部處理(由NMI

硬件自動完成)INTRy

。所有內(nèi)部中斷(除法錯、INTn、單步中斷最低

INTO、單步)以及NMI中斷不

需要從數(shù)據(jù)總線上讀取中斷類

型碼,而INTR中斷需讀取中

斷類型碼,中斷類型碼由發(fā)出

INTR信號的接口提供。

39

單步運(yùn)行方式時發(fā)生中斷的處理過程

40

單步運(yùn)行方式時發(fā)生中斷的處理過程

堆棧的情形:作業(yè):

畫出在單步運(yùn)行時(TF=1)發(fā)

rp生INTR中斷的處理流程及堆棧的情

形。假定當(dāng)前指令下一條指令的地

>CS址為4030H:2080H;INTR中斷服

務(wù)程序的入口地址為9080H:3020H.

TF=O

TP

-X

1CS

TF=1

四軟件中斷(內(nèi)部中斷)

?:?除法錯中斷(也稱除數(shù)為0中斷)一類型0

?在執(zhí)行DIV(無符號除法)或IDIV(帶符號除法)指令時,若發(fā)

現(xiàn)除數(shù)為0,則立即產(chǎn)生一個類型號為0的內(nèi)部中斷,CPU轉(zhuǎn)

向除法錯中斷處理程序。

?溢出中斷一類型4

。若上一條指令執(zhí)行的結(jié)果使溢出標(biāo)識位OF被置1,則接著執(zhí)

行INTO指令時,將引起類型為4的內(nèi)部中斷,CPU轉(zhuǎn)入對溢

出錯誤處理程序,若OF=0時,INTO指令執(zhí)行空操作,即

INTO指令不起作用。INTO指令通常安排在算術(shù)指令之后,

以便在溢出時能及時處理。

42

?:?軟件(指令)中斷(執(zhí)行INTn指令引起的中斷)

。雙字節(jié)指令,第一個字節(jié)為操作碼;第二個字節(jié)為中斷類型

號,該指令控制CPU轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序。

43

。斷點中斷一類型3

?:TNT3或簡寫為INT,是單字節(jié)指令。調(diào)試程序時可

以在一些關(guān)鍵性的地方設(shè)置斷點,使CPU在此斷點

處執(zhí)行中斷服務(wù)程序。

。單步中斷一類型1

TF=1

單步執(zhí)行

44

軟件中斷(內(nèi)部中斷)的特點

中斷類型號由CPU內(nèi)部自動提供(包括由中斷指

令第二字節(jié)提供的中斷類型號),不需去執(zhí)行中

斷響應(yīng)總線周期讀取中斷類型號。

。除單步中斷外,所有內(nèi)部中斷(除法錯,INTO,

INTn)均不可以用軟件來屏蔽。

?:?除單步中斷外,所有內(nèi)部中斷都比外部中斷優(yōu)

先級高。

45

五中斷服務(wù)程序的一般結(jié)構(gòu)

例如:

(保護(hù)現(xiàn)場(將需要保護(hù)的寄存器壓入堆棧)

PUSHAX

STI(可選);

_________________PUSHBX

I^中斷處理PUSHCX

恢復(fù)現(xiàn)場POPCX

〔IRET

溫馨提示

  • 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

提交評論