中斷和異常課件_第1頁(yè)
中斷和異常課件_第2頁(yè)
中斷和異常課件_第3頁(yè)
中斷和異常課件_第4頁(yè)
中斷和異常課件_第5頁(yè)
已閱讀5頁(yè),還剩102頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第七章

中斷和異常

1

第一節(jié)中斷及異常的基本概念

第二節(jié)80x86CPU的中斷系統(tǒng)

第三節(jié)可編程中斷控制器8259A

2

第一節(jié)中斷及異常的基本概念

一、什么是中斷

二、中斷源和中斷優(yōu)先權(quán)

三、中斷服務(wù)程序

四、斷點(diǎn)和中斷現(xiàn)場(chǎng)

五、硬件中斷和軟件中斷

六、異常

一、什么是中斷

在CPU正常運(yùn)行程序時(shí),

由于內(nèi)部或外部某個(gè)非預(yù)料事件的發(fā)生,

使CPU暫停正在運(yùn)行的程序,

而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序,

然后再返回被中斷了的程序,繼續(xù)執(zhí)行。

這個(gè)過(guò)程就是中斷。

4

CPU執(zhí)行流程

非預(yù)料事件1

中斷服務(wù)程序1

非預(yù)料事件2

中斷服務(wù)程序2

5

二、中斷源和中斷優(yōu)先權(quán)

引起中斷的因素很多,

將發(fā)出中斷申請(qǐng)的外設(shè)或內(nèi)部原因,稱(chēng)為中斷源

□給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱(chēng)為中斷優(yōu)先權(quán)

□當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請(qǐng)求時(shí),

CPU按照中斷優(yōu)先權(quán)的高低順序,依次響應(yīng)。

6

三、中斷服務(wù)程序

處理中斷源,完成其所要求功能的程序,

稱(chēng)中斷服務(wù)程序(中斷例行程序、中斷子程)。

CPU執(zhí)行流程

非預(yù)料事件1一

-------------?—

中斷服務(wù)程序1

非預(yù)料事件2―1

中斷服務(wù)程序2

7

非預(yù)料事件是指事件發(fā)生的時(shí)間無(wú)法預(yù)知,

即中斷源何時(shí)產(chǎn)生中斷不確定,是隨機(jī)的。

但事件的性質(zhì)及處理方法則是已知的,確定的,

即中斷服務(wù)程序是事先編寫(xiě)好的,

只是何時(shí)執(zhí)行未知。

中斷源產(chǎn)生中斷的隨機(jī)性,

使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,

即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。

8

四、斷點(diǎn)和中斷現(xiàn)場(chǎng)

斷點(diǎn):

是指CPU執(zhí)行的現(xiàn)行程序被中斷時(shí)的下一條指令的地址,

又稱(chēng)斷點(diǎn)地址。

中斷現(xiàn)場(chǎng):

是指CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),

包括CPU內(nèi)部各寄存器、斷點(diǎn)地址等。

9

斷點(diǎn)概念:

CPU在執(zhí)行此指令時(shí),

MOVAX,0某中斷源發(fā)申請(qǐng)中斷;

ADDAX,DX一CPU在執(zhí)行完該指令后,

1000:150HMOV[DI],AX轉(zhuǎn)去執(zhí)行中斷子程序

地址1000:150H為斷點(diǎn)

PUSHAX

IRET

10

五、硬件中斷和軟件中斷

?早期中斷概念的引入,

是為解決CPU與外設(shè)間的速度匹配問(wèn)題,

提高CPU的工作效率。

中斷源主要是由外部硬件產(chǎn)生。

?當(dāng)今的中斷技術(shù),

不再限于外部硬件產(chǎn)生中斷(稱(chēng)硬件中斷或外中斷),

還可由CPU內(nèi)部產(chǎn)生(如被零除操作),

或者由程序預(yù)先安排,即由指令調(diào)用中斷服務(wù)程序。

(稱(chēng)軟件中斷或內(nèi)中斷)

11

軟件中斷

用指令

調(diào)用中斷程序

MOVAH,01

INT21H用指令調(diào)用中斷程序

1000:150HCMPAL,ODh

PUSHAX

、、

、、

IRET

12

六、異常

異常:是在指令執(zhí)行期間檢測(cè)到的不正

常的或非法的狀態(tài),使指令不能成功執(zhí)

行。它與所執(zhí)行指令有直接聯(lián)系。

13

(一)異常分類(lèi)

產(chǎn)生異常后,系統(tǒng)根據(jù)引起異常的程序是否可被恢復(fù)這

一原則,進(jìn)一步又把異常分為故障(fault),陷阱(trap)和中

止(abort)3類(lèi)。

故障是引起故障的程序可被恢復(fù)執(zhí)行的異常,它也是在引

起故障的指令執(zhí)行之前就報(bào)告給系統(tǒng)的一種異常。一旦故

障被檢測(cè)出,便在保護(hù)斷點(diǎn)地址后,將程序轉(zhuǎn)入故障處理

程序,執(zhí)行完該程序后,引起故障的指令便可正確執(zhí)行。

陷阱是在指令執(zhí)行期間被檢測(cè)到的,并在引起異常的指令

執(zhí)行之后向系統(tǒng)報(bào)告的一種異常。陷阱產(chǎn)生后,程序轉(zhuǎn)向

故障處理程序,這時(shí)保存的斷點(diǎn)指向引起陷阱的指令的下

一條應(yīng)該執(zhí)行的指令。

中止是微處理器面臨嚴(yán)重錯(cuò)誤時(shí)產(chǎn)生的異常。引起中止的

指令無(wú)法確定,產(chǎn)生中止時(shí),正在執(zhí)行的程序不能被恢復(fù),

系統(tǒng)需重建各種系統(tǒng)表格或需重新啟動(dòng)操作系統(tǒng)。

14

產(chǎn)生異常時(shí),CPU在異常處理程序的棧中壓入一

個(gè)錯(cuò)誤碼,存放錯(cuò)誤碼的堆棧放在一個(gè)特定的段中,

對(duì)一些無(wú)錯(cuò)誤信息的異常,CPU向棧中壓入錯(cuò)誤碼0。

異常錯(cuò)誤碼中的選擇器索引用來(lái)查找異常處理程序

的入口地址。

異常錯(cuò)誤碼

描述

中斷的程序引起異常

外部事件引起異常

由TI位決定表

選擇器用于門(mén)描述符

選擇器用于GDT

=1選擇器用于LDT

15

(二)處理器定義的異常

所謂處理器定義的異常是80*86處理器中保留自用的異常,共用16個(gè).

I、異常0

異常o定義為除法出錯(cuò)異常,是一種故障型異常.

2、異常1

異常1定義為排錯(cuò)異?;蛘{(diào)試異常.

3、異常3

異常3為斷點(diǎn)中斷,是一個(gè)采用單字節(jié)指令I(lǐng)NT3的軟件中斷.

4、異常4

異常4定義為溢出陷阱.

5、異常5

異常5定義為邊界檢查故障.

16

6、異常6

異常6定義為無(wú)效操作碼故障.

7、異常7

異常7定義為協(xié)處理器無(wú)效故障.

8、異常8

異常8定義為雙重故障,雙重故障屬中止異常.

9、異常9

異常9定義為協(xié)處理器段越界異常,屬中止類(lèi)異常.

10、異常10

異常10定義為無(wú)效TSS故障.

11、異常n

異常11定義為段不存在異常,屬故障類(lèi)型.

17

12、異常12

異常12定義為棧段故障.

13、異常13

異常13定義為通用保護(hù)故障.

14、異常14

異常14定義為頁(yè)故障.

313210域值描述

未定義p0失效由不存在也頁(yè)引起

1失效由頁(yè)級(jí)別保護(hù)沖突引起

R/W0失效由讀引起

1失效由寫(xiě)引起

U/S0失效發(fā)生在管理方式

15、異常161失效發(fā)生在用戶(hù)方式

異常16定義為協(xié)處理器出錯(cuò)故障.

18

(三)中斷及異常的暫時(shí)屏蔽

中斷和排錯(cuò)異常在某些條件下可忽略或屏蔽,其條

件如下:

1、EFLAGS中的IF=O,屏蔽外部可屏蔽中斷.

2、IF=O時(shí),執(zhí)行STI指令,則在STI指令及下面一條指令執(zhí)行期間,屏蔽

外部可屏蔽中斷.

3、EFLAGS中的RF=1,屏蔽排錯(cuò)故障.

4、系統(tǒng)正處理一個(gè)非屏蔽外部中斷,則屏蔽任何新的非屏蔽中斷.

5、執(zhí)行以SS為目的寄存器的MOV及POP指令時(shí),將在該指令及下面

一條指令執(zhí)行期間屏蔽各種中斷及排錯(cuò)異常.

6、在指令前綴LOCK及被鎖定的指令之間不允許中斷.

19

(四)中斷及異常的優(yōu)先級(jí)

當(dāng)CPU正在執(zhí)行一條指令時(shí),檢測(cè)到多個(gè)

中斷和異常,CPU將按其優(yōu)先級(jí)順序響應(yīng)和處理。

首先把優(yōu)先級(jí)最高的中斷或異常通知系統(tǒng),將

優(yōu)先級(jí)較低的異常廢棄,而將優(yōu)先級(jí)較低的中

斷掛起,當(dāng)較高優(yōu)先級(jí)的中斷處理完后,再按

優(yōu)先級(jí)次序響應(yīng)和處理掛起的中斷。同時(shí)當(dāng)較

高優(yōu)先級(jí)的異常被處理后,重新啟動(dòng)較低異常

的指令時(shí),任何丟失的異常均可重新發(fā)生。

20

中斷/異常類(lèi)型優(yōu)先級(jí)

排錯(cuò)故障最高

非排錯(cuò)故障

陷阱指令I(lǐng)NTnINTO

NMI中斷

最低

INTR中斷

中斷/異常的優(yōu)先級(jí)

21

第二節(jié)80x86CPU的中斷系統(tǒng)

一、8088CPU的中斷分類(lèi)

二、8088CPU的中斷優(yōu)先權(quán)

三、8088CPU響應(yīng)中斷的過(guò)程

四、8088CPU如何獲取中斷類(lèi)型號(hào)

五、保護(hù)方式下的中斷和異常

22

-、8088CPU的中斷分類(lèi)

按中斷源的不同,中斷分為內(nèi)中斷和外中斷。

1、內(nèi)中斷(軟中斷)

指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷

①被零除操作或OF=1時(shí)執(zhí)行INTO指令引起

②使用DEBUG中的單步或斷點(diǎn)設(shè)置操作引起

③執(zhí)行INTn指令引起

最大組態(tài)(最小組態(tài))

2、外中斷(硬中斷)

GND--vcc

A14"-A15

指外部芯片通過(guò)A13--A16/S3

A12--A17/S4

All-?A18/S5

CPU的INTR引腳或NMI引腳A10--A19/S6

A9-8j.(HIGH)(SSO)

發(fā)出中斷申請(qǐng)引起的中斷。A8--MN/MX

AD7"0■RD

AD6-■RQ/GTO(HOLD)

AD5-8-RQ/GT1(HLDA)

AD4-?LOCK(WR)

當(dāng)INTR上有高電平信號(hào)AD3"o?S2(IO/M)

AD2--S1(DT/R)

當(dāng)NMI上有上升沿信號(hào)AD1"■SO(DEN)

ADO--QSO(ALE)

NMI--QSl(INTA)

INTR-.TEST

CLK--READY

GND-?RESET

24

80386,80486支持兩種類(lèi)型的中斷:

可屏蔽中斷及不可屏蔽中斷(非屏蔽中斷),并有

相應(yīng)的兩個(gè)中斷請(qǐng)求引腳信號(hào)——INTR及NML

25

?可屏蔽中斷

由INTR引腳引起的中斷,稱(chēng)可屏蔽中斷。CPU是否

響應(yīng)INTR引腳上的中斷請(qǐng)求取決于IF標(biāo)志:

IF=1,CPU響應(yīng)INTR引腳上的中斷請(qǐng)求

IF=O,CPU不響應(yīng)INTR引腳上的中斷請(qǐng)求

即當(dāng)IF=O時(shí),將INTR引腳上的中斷申請(qǐng)屏蔽。

?非屏蔽中斷

由NMI引腳引起的中斷,稱(chēng)非屏蔽中斷。

當(dāng)NMI引腳上產(chǎn)生上升沿信號(hào),CPU必響應(yīng)此中斷請(qǐng)

求,即NMI弓|腳上的中斷請(qǐng)求不受IF標(biāo)志的控制,

IF不能屏蔽NMI引腳上的中斷請(qǐng)求。

26

8086/80881斷源

IR0系統(tǒng)定時(shí)器

8259A

IRi<02鍵盤(pán)

IR?彩色/圖形接口

INTRINT

o

IRO2VB保留(通信)

可編程IR串行通信接口

中斷

IR<QH保留(ALT打印機(jī)

控制器U

(PIC)IR6心軟盤(pán)

IR7<°E保留(打印機(jī))

27

二、8088CPU的中斷優(yōu)先權(quán)

優(yōu)先級(jí)

高低

一?

內(nèi)中斷(除零,INT指令,斷點(diǎn),INTO指令)

非屏蔽中斷

可屏蔽中斷

低J內(nèi)中斷(單步)

當(dāng)有多個(gè)中斷源同時(shí)產(chǎn)生中斷申請(qǐng)時(shí),

CPU先響應(yīng)優(yōu)先權(quán)最高的中斷源,

再響應(yīng)優(yōu)先級(jí)較低的中斷源。

28

三、8088CPU響應(yīng)中斷的過(guò)程

當(dāng)中斷源產(chǎn)生中斷申請(qǐng)后,

不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,

只要滿(mǎn)足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,

CPU內(nèi)部硬件會(huì)自動(dòng)完成下列響應(yīng)中斷的過(guò)程:

①取中斷類(lèi)型號(hào)N

②當(dāng)前PSW的內(nèi)容入棧

③清IF、TF標(biāo)志為0

》保存現(xiàn)場(chǎng)

④當(dāng)前CS的內(nèi)容入棧

⑤當(dāng)前IP的內(nèi)容入棧

⑥取內(nèi)存單元(0:N*4)字內(nèi)容送IP取中斷子程

⑦取內(nèi)存單元(0:N*4+2)字內(nèi)容送CS}入口地址

此時(shí)CS:IP指向中斷程序的入口,開(kāi)始執(zhí)行中斷程序。

29

實(shí)方式下的中斷

中斷矢量FFH

中斷矢量

FEH

中斷矢量FDH

中斷矢量2

中斷矢量1

中斷矢量0

中斷矢量表物理地址

30

可屏蔽中斷的響應(yīng)和處理過(guò)程:

CPU和總線(xiàn)控制邏輯8259A

(1)條件

IF=1(2)中斷請(qǐng)求INT=11R0外

INTRv

NMI=0INT設(shè)

HOLD=0IR1中

無(wú)內(nèi)部中斷⑶INTA=O送8259A斷

INTA

IP?——INTA請(qǐng)

;4)類(lèi)型碼N送CPU求

cs?--------D0-D7

DO-DTIR7

PSW(T*IF

(6)10-?TF

P

⑺S:XJcs轉(zhuǎn)入中斷處理程序

STI

IRET

可屏蔽中斷的響應(yīng)和處理過(guò)程31

32

中斷處理流程圖

當(dāng)前指令執(zhí)行完的含義

?CPU正在執(zhí)行一條指令,執(zhí)行完本條指令,響應(yīng)中斷;

?對(duì)于帶重復(fù)前綴的串指令(如REPMOVSB),執(zhí)行一

次重復(fù)和串指令即可響應(yīng)中斷;

?對(duì)MOV和POP指令,處理對(duì)象為段寄存器,以及STI和

IRET指令執(zhí)行完本條指令后,再執(zhí)行一條指令才響應(yīng)

中斷。

33

、q

0:0000-

0:NX4-0200h>中斷向量表0:0?3FFH

0:NX4+2'3000h

o:3FFH

、某中斷源發(fā)申請(qǐng)中斷,

申請(qǐng)執(zhí)行類(lèi)型號(hào)為N的中斷子程序

MOVAX,0

ADDAX,DX

堆棧

1000:150hMOV[DI],AX

(IP)=0200h執(zhí)行

(CS)=3000h

IRET后

響應(yīng)中斷后

SS:SP0150(IP)

3000:200hMOVBX,CX1000(CS)

類(lèi)型N(PSW)

?中斷子程響應(yīng)中斷前

SS:SP

IRET序

SS:SP

34

內(nèi)存

0:0000從中斷子程序返回?cái)帱c(diǎn)處,

靠的是執(zhí)行中斷子程序最后的指令I(lǐng)RET,

0:NX4一0200h

0:NX4+2-3000h從堆棧中取出斷點(diǎn)地址給CS:IP,

繼續(xù)執(zhí)行被中斷的程序。

故中斷子程序最后應(yīng)安排IRET指令。

MOVAX,0

堆棧

ADDAX,DX(IP)=0200h

I執(zhí)行

1000:150hMOV[DI],AX(CS)=3000h

--------[RET后

響應(yīng)中斷后0150卜(IP)

SS:SP-

1000L(CS)

3000:200hMOVBX,CX(PSW)—(PSW)

響應(yīng)中斷前

SS:SP

SS:SP

IRET

35

四、8088CPU如何獲取中斷類(lèi)型號(hào)

由前面介紹知,當(dāng)中斷源產(chǎn)生中斷請(qǐng)求后,

不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,

只要滿(mǎn)足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,

CPU內(nèi)部硬件會(huì)自動(dòng)完成響應(yīng)中斷的過(guò)程,共七個(gè)步驟

而第一步就是獲取中斷類(lèi)型號(hào)。

不同的中斷源,8088CPU獲取中斷類(lèi)型號(hào)的方法不同。

36

根據(jù)8088CPU對(duì)中斷的分類(lèi),各中斷獲取類(lèi)型號(hào)的方法

①CPU執(zhí)行除零或OF為1執(zhí)行INTO指令

除零固定類(lèi)型號(hào)00H

內(nèi)OF為1執(zhí)行INTO指令固定類(lèi)型號(hào)04H

②使用DEBUG下的單步和斷點(diǎn)操作

單步固定類(lèi)型號(hào)01H

斷點(diǎn)固定類(lèi)型號(hào)03H

③執(zhí)行中斷調(diào)用指令I(lǐng)NTN

由指令中給出指令中指定類(lèi)型號(hào)N

①非屏蔽中斷

外引腳NMI上有中斷申請(qǐng)信號(hào)(上升沿信號(hào))

非屏蔽中斷固定類(lèi)型號(hào)02H

中②可屏蔽中斷(參看中斷響應(yīng)時(shí)序圖)

當(dāng)IF=1,引腳INTR上有中斷申請(qǐng)信號(hào)(高電平信號(hào))

CPU按中斷響應(yīng)周期時(shí)序,從數(shù)據(jù)總線(xiàn)上獲取中斷類(lèi)型號(hào)

可屏蔽中斷外部接口送上類(lèi)型號(hào)

37

中斷響應(yīng)周期時(shí)序

接口芯片接收此信號(hào),把中斷類(lèi)型號(hào)準(zhǔn)備好;同時(shí)ISRi=l,IRRi=O。

?CPU再?gòu)囊_而X發(fā)中斷響應(yīng)信號(hào),

接口芯片接此信號(hào)后,將中斷類(lèi)型號(hào)送至數(shù)據(jù)總線(xiàn)上;

?CPU從數(shù)據(jù)總線(xiàn)獲取中斷類(lèi)型號(hào)。

38

五、保護(hù)方式下的中斷和異常

保護(hù)方式下發(fā)生中斷和異常時(shí),要使用中斷描述符表IDT

中斷描述符表

中斷N的門(mén)

8N

中斷N-1的門(mén)

8(N-1)

中斷2的門(mén)

10H

150

<------中斷1的門(mén)

限量8

<------

中斷0的門(mén)

基地址0

39

保護(hù)方式的中斷描述符表

中斷描述符表IDT的基地址由IDTR提供,保護(hù)方式

下的IDT由稱(chēng)為門(mén)的8字節(jié)中斷描述符組成,每個(gè)描述

符為IDT中的一項(xiàng),對(duì)應(yīng)一個(gè)中斷類(lèi)型,共有256個(gè)中

斷類(lèi)型號(hào),IDT中最多可容納256個(gè)項(xiàng)。

IDT中每一項(xiàng)可能含有3種特殊類(lèi)型描述符之一:

中斷門(mén);陷阱門(mén);任務(wù)門(mén)。

可用中斷類(lèi)型號(hào)乘8來(lái)索引IDT中的一個(gè)門(mén)描述符。

中斷、故障、陷阱及中止可由三種門(mén)中的任何一種來(lái)處

理。

通過(guò)中斷門(mén)或陷阱門(mén)的轉(zhuǎn)移,使程序轉(zhuǎn)移到當(dāng)前任

務(wù)的處理程序,而通過(guò)任務(wù)門(mén)的轉(zhuǎn)移,可使程序轉(zhuǎn)移到

不同任務(wù)的處理程序。

40

1514121170

保留(必須為0)

802861116

中斷或陷阱門(mén)PDPL0類(lèi)型未用

4

代碼段選擇器

2

便移量

0

150

偏移量(高)

80386/804866

中斷或陷阱門(mén)1L型1

PDPL0000保留

4

代碼段選擇器

2

偏移量(低1)

0

保留

任務(wù)門(mén)

PDPL0類(lèi)型保留

TSS段選擇器

保留41

中斷描述符格式0

通過(guò)中斷門(mén)及陷阱門(mén)的轉(zhuǎn)移

線(xiàn)性地址空間42

若通過(guò)中斷類(lèi)型號(hào)乘8從IDT表中檢索的IDT描述

符是一個(gè)中斷門(mén)或陷阱門(mén),則表示中斷(或異常)處理

程序與當(dāng)前正執(zhí)行程序處于同一任務(wù)中,并且中斷(或

異常)處理程序的首地址由中斷門(mén)或陷阱門(mén)提供。其門(mén)

中選擇子用來(lái)選擇GDT或LDT中的描述符。該描述符

必須指定一個(gè)可執(zhí)行的存儲(chǔ)器段。該可執(zhí)行的存儲(chǔ)器段

即為中斷(或異常)處理程序所在的存儲(chǔ)段,它的起始

地址及限量均由其對(duì)應(yīng)的存儲(chǔ)段描述符給出,而中斷

(或異常)處理程序首地址在該存儲(chǔ)段中的偏移地址由

門(mén)描述符的偏移量給出。

門(mén)中選擇子所指可執(zhí)行存儲(chǔ)段描述符的類(lèi)型及DPL

字段,用來(lái)確定中斷或異常是轉(zhuǎn)移到當(dāng)前特權(quán)級(jí)的某一

處理程序,還是轉(zhuǎn)移到一個(gè)新的特權(quán)級(jí)的處理程序。中

斷和異??梢赞D(zhuǎn)移到同一特權(quán)級(jí)或內(nèi)層特權(quán)級(jí)的處理程

序。

43

通過(guò)中斷門(mén)或陷阱門(mén)向內(nèi)層轉(zhuǎn)移:

向內(nèi)中斷

向外返回

LIMIT

長(zhǎng)

中斷前及IRET

后的ESP指針

SS

外層棧

44

通過(guò)任務(wù)門(mén)的轉(zhuǎn)移

若通過(guò)中斷類(lèi)型號(hào)乘8從IDT表中檢索的IDT

描述符是一個(gè)任務(wù)門(mén),則表示要轉(zhuǎn)移到不同任務(wù)

的處理程序,任務(wù)門(mén)提供一個(gè)16位選擇子以指向

處理程序任務(wù)的TSS段。通過(guò)任務(wù)門(mén)到一個(gè)可用的

TSS段,轉(zhuǎn)入中斷或異常的處理程序,中斷或異常

同過(guò)任務(wù)門(mén)引起的任務(wù)切換和程序轉(zhuǎn)移提供錯(cuò)誤

碼。在轉(zhuǎn)入過(guò)程中EFLAGS中NT位置L

45

第三節(jié)可編程中斷控制器8259A

一、引言

二、8259A的引腳、編程結(jié)構(gòu)和工作過(guò)程

三、8259A的編程

1.設(shè)置中斷屏蔽字

2?發(fā)中斷結(jié)束命令EOI

四、8259A在IBMPC/XT系統(tǒng)中的應(yīng)用

五、8259A在Pentium機(jī)中的應(yīng)用

46

、引言

47

中斷申請(qǐng)管理接口的主要功能:

1.向CPU的引腳INTR發(fā)中斷申請(qǐng)信號(hào)

當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請(qǐng)求時(shí),

能按照一定的優(yōu)先級(jí)順序,向CPU發(fā)出中斷申請(qǐng),

使CPU能優(yōu)先響應(yīng)優(yōu)先級(jí)最高的外部設(shè)備的中斷申請(qǐng)。

2.送中斷類(lèi)型號(hào)

在CPU中斷響應(yīng)周期,針對(duì)不同外設(shè)的中斷請(qǐng)求,

向CPU傳送不同的中斷類(lèi)型號(hào),

使CPU執(zhí)行相應(yīng)的中斷子程序。

在IBMPC機(jī)由8259A可編程中斷控制器(PIC)來(lái)完成。

48

二、8259A的引腳、編程結(jié)構(gòu)和工作過(guò)程

1.8259A結(jié)構(gòu)及引腳

2.8259A的編程結(jié)構(gòu)

3.8259A的工作過(guò)程

49

1.8259A結(jié)構(gòu)及引腳雙列直插式芯片,28個(gè)引腳

8259A

定時(shí)

總線(xiàn)Hz

18.2波

數(shù)據(jù)線(xiàn)IRO三

D0DO盤(pán)

IR1

D7IR2留

D7串

口2

IR3二

串1

IORRD口

IR4

iow硬

WR盤(pán)

IR5軟

盤(pán)

AOAO一

IR6沖

TR7一

A5

譯20?3FHSP/cEAN0用于多片

碼cA1

a8259A

A9cA2

級(jí)連情況

INTAINTAND

INTRINT

_L.

50

cs128—?vcc

-

W%

-227?AO

-D

326?—?INTA

RDI

7

<?1R7

D425

826

D524IR6

5

59十^IR5

AD623

?~~?

的4

DIR4

722??

弓3

DIR3

821?~?

D2

920-一IR2

D1

1019?IR1

o

1118―?IRO

CASO1217?INT

CAS11316—SP/EN

GND15―?CAS2

1451

INTAINT

D0-D7

RD

WR

AO

cs

CASO

CAS1

CAS2

SP/EN

內(nèi)部總線(xiàn)

52

8259A的結(jié)構(gòu)框圖

功能及工作特點(diǎn)

1)可用9片8259A來(lái)構(gòu)成64級(jí)的主從式中斷系統(tǒng)。

2)每一級(jí)中斷都可以屏蔽或允許。

3)8259A可提供相應(yīng)的中斷向量,從而能迅速地

轉(zhuǎn)至中斷服務(wù)程序。

4)通過(guò)編程使8259A工作在多種不同的方式。

5)工作時(shí)只需要一組+5V電源。

53

2.8259A的編程結(jié)構(gòu)

處理部分

總線(xiàn)mIR0

ISRnrIRRIR1

DO數(shù)據(jù)線(xiàn)DO當(dāng)前-r中斷IR2

苧申請(qǐng)IR3

D7D7服務(wù)PR寄存器IR4

A0寄存器nr優(yōu)先級(jí)IR5

AOnrIR6

片nr裁決器IR7

A5選

CS

A9譯iqwj§戶(hù)華基AOA。

碼口。卜1沖1。|1|。1。|1|。1”。1。11

中斷類(lèi)型號(hào)OCW1中斷屏蔽寄存器IMR

RDICW2-SP/EN

IOR

II口。1。1III。-CA0

IOWWR

OCW2優(yōu)先級(jí)設(shè)置、發(fā)EOI-CA1

ICW3主從片連接關(guān)系-CA2

INTA1

INTAIIIIIIIIIII口。川口I°-VCC

INT

INTRICW4方式控制OCW3特殊屏蔽,查詢(xún)方式設(shè)置

-GND

控制部分

8259A的編程結(jié)構(gòu)8259A中斷控制器

處理部分IRR

8259A內(nèi)部有9個(gè)ISR中斷申請(qǐng)u

寄存器o

可讀寫(xiě)的寄存器當(dāng)前u

PRu

4個(gè)初始化命令寄存器服務(wù)u

寄存器優(yōu)先級(jí)u

ICW1.ICW2裁決器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論