中斷技術(shù)課件_第1頁
中斷技術(shù)課件_第2頁
中斷技術(shù)課件_第3頁
中斷技術(shù)課件_第4頁
中斷技術(shù)課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八章中斷技術(shù)

一、中斷的基本概念

二、中斷控制器Intel8259A

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

四、IBMPC/XT的基本中斷系統(tǒng)

五、PC/AT(80286)中8259的使用情況

六、Pentium的中斷系統(tǒng)簡介

、中斷的基本概念

1.中斷一CPU在正常運行程序時,由于程序的預(yù)先安排或計算機(jī)內(nèi)外部

事件,引起CPU中斷正在運行的程序,而轉(zhuǎn)到為預(yù)先安排的事件或內(nèi)外部

事件服務(wù)的程序中去。

預(yù)先安排的事件:

movah,1如:除法溢出;

int21h

電源故障;

addal,1

movah,2內(nèi)存錯誤;

movdl9al鍵盤輸入;

int21h與不同外設(shè)的信息交換;等。

2.中斷的類型

PC系列微機(jī)最多可以支持256種中斷,它們被分為四種類型:

?異常中斷

?軟件中斷

?外部可屏蔽中斷

?外部非屏蔽中斷

每個中斷都指定了一個類型碼,也稱為中斷號。

對應(yīng)每一種中斷應(yīng)當(dāng)有一個中斷服務(wù)程序(ISP)

(InterruptServiceProgram-----ISP)

中斷類型碼通過一個地址指針表與中斷服務(wù)

程序的入口地址相聯(lián)系:

在實模式下:該表稱為中斷向量表;

在保護(hù)模式下:該表稱為中斷描述符表。

⑴異常中斷

是指令執(zhí)行過程中引起的內(nèi)部異常操作處理。包括除法錯誤異常、

調(diào)試異常、斷點中斷等。

異常中斷的例子:

0型——除法錯誤異常

1型——調(diào)試異常

Q)軟件中斷

執(zhí)行有定義的INTn指令而引發(fā)的中斷,稱為軟件中斷。

軟件中斷使用05H、10H?OFFH中的若干個中斷號;

軟件中斷進(jìn)一步分為BIOS中斷和DOS中斷。

異常中斷和軟件中斷是由處理器內(nèi)部產(chǎn)生的。

(3)外部可屏蔽中斷

?外部可屏蔽中斷是處理器響應(yīng)各種外部硬件中斷的最常用的方法,

通過處理器的INTR引腳產(chǎn)生;

?外部可屏蔽中斷受處理器內(nèi)部的中斷允許標(biāo)志位IF的控制;

?處理器只有一個INTR引腳可以接受外部可屏蔽中斷請求,為了管理

眾多的外部中斷源,微機(jī)系統(tǒng)中采用可編程中斷控制器8259;

?PC系列機(jī)通過兩片8259級連可以響應(yīng)15個外部中斷源。

(4)外部非屏蔽中斷

?為外部緊急請求提供服務(wù)的中斷,通過處理器的NMI引腳產(chǎn)生;

?NMI與IF標(biāo)志的狀態(tài)無關(guān);

?NMI有一個專用的類型號02H;

?使用非屏蔽中斷的典型例子是電源故障中斷。

3.中斷的優(yōu)先級(權(quán))與中斷嵌套

優(yōu)先級(權(quán))

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

的請求,那么當(dāng)多個中斷源同時請求中斷服務(wù)時,應(yīng)該先響應(yīng)哪一個,

有一個次序安排的問題。按中斷源的輕重緩急程度確定的優(yōu)先級別,稱

為優(yōu)先級(權(quán))。

優(yōu)異常中斷

級軟件中斷

遞外部非屏蔽中斷

外部可屏蔽中斷

中斷嵌套

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

如果有優(yōu)先級更高的中斷源發(fā)出請求,CPU將中止正在執(zhí)行的中斷服務(wù)程

序而轉(zhuǎn)入為新的中斷源服務(wù),等新的中斷服務(wù)程序執(zhí)行完后,再返回到被

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

?中斷嵌套可以有多級,具體級數(shù)原則上不限,只取決于堆棧深度。

4.中斷向量與中斷向量表00000

當(dāng)中斷請求被響應(yīng)時,CPU將停止當(dāng)中

前運行的程序,轉(zhuǎn)入中斷服務(wù)程序,而每0000C向

個中斷服務(wù)程序都有一個程序的入口地址,

中斷向量表

這個入口地址就是中斷向量。

y

003FF

內(nèi)存中存放一組中斷向量的區(qū)域被稱為中

斷向量表。當(dāng)中斷被響應(yīng)后,CPU根據(jù)中斷

的類型號,計算出中斷向量在中斷向量表中

1F3C:O1OO3

的位置,然后從表中取出中斷向量(中斷服TNT

(1F4C0)中

務(wù)程序的入口地址),并進(jìn)入中斷服務(wù)程序。斷

movah,1務(wù)

int21h序

addal,1

int3

中斷向量表

中斷向量表包含256個中斷向量。每個中斷向量占用兩個字(4個字節(jié)),

高地址字為中斷服務(wù)程序所在代碼段的段基址,低地址字為代碼段中中斷服

務(wù)程序第一條指令的偏移量。

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

00000H?003FFH.

5.中斷指令

STI——開中斷指令(將標(biāo)志寄存器中的中斷標(biāo)志位IF置1,允許CPU

響應(yīng)來自INTR引腳的中斷請求)

CLI——關(guān)中斷指令(將標(biāo)志寄存器中的中斷標(biāo)志位IF清0,使CPU不

響應(yīng)來自INTR引腳的中斷請求)

INTn——軟件中斷指令(n為中斷號,調(diào)用n號中斷服務(wù)程序。)

①將標(biāo)志寄存器壓棧

②將TF置0,禁止單步操作,將IF置0,使CPU處于關(guān)中斷狀態(tài)

③斷點的CS、IP壓棧

④從中斷向量表取n號中斷向量IP、CS

⑤轉(zhuǎn)向n號中斷服務(wù)程序

IRET——中斷返回指令(中斷服務(wù)程序的出口指令,從棧頂彈出6個

字節(jié)依次寫入IP、CS和標(biāo)志寄存器)

6.CPU響應(yīng)中斷的工作過程

(1)關(guān)閉中斷:多數(shù)CPU在發(fā)出響應(yīng)中斷信號時,自動關(guān)閉中斷。

⑵保留斷點:CPU響應(yīng)中斷后,為了在處理完中斷請求后正確返回到主程序,

CPU要將返回地址壓入棧內(nèi)保存起來。

(3)保護(hù)現(xiàn)場:由于中斷具有很強(qiáng)的隨機(jī)性,所以,為了能保證中斷返回后主

程序正確運行,要將有關(guān)寄存器和運行狀態(tài)壓入棧內(nèi)保護(hù)起來。

(4)進(jìn)行中斷服務(wù)程序:要進(jìn)行中斷服務(wù)程序,就要取得入口地址,不同的

CPU有不同的取得入口地址方式,8086/8088CPU是通過中斷矢量形

成入口地址的。當(dāng)?shù)玫饺肟诘刂泛?,CPU就開始運行中斷服務(wù)程序。

⑸恢復(fù)現(xiàn)場:當(dāng)中斷服務(wù)程序結(jié)束時,將已保護(hù)的有關(guān)寄存器和狀態(tài)從棧中

彈出,為主程序的正確運行作好準(zhǔn)備。

(6)開放中斷并返回:在中斷服務(wù)程序的最后,要開放中斷為以后的中斷請

求作好準(zhǔn)備,然后使用中斷返回指令(如8086/8088中的IRET)

返回到主程序。

??\<備

1.功能

Intel8259A是兼容于8080/8085、8086/8088和80286系列的可編程中斷控

制器,其功能主要有:

1)單片8259A可管理8級中斷;

2)通過級連,可管理多于8級的中斷,在不增加其它電路的前提下,可使

用8片8259A構(gòu)成64級主從式中斷系統(tǒng);

3)每一級中斷都可通過編程使之被屏蔽或被允許;

4)8259A可通過編程被設(shè)定為幾種不同的工作方式;

8位雙向三態(tài)。是與CPU進(jìn)行數(shù)據(jù)

2,結(jié)構(gòu)交換的數(shù)據(jù)通道,CPU對它的讀出

和寫入都是通過該緩沖器進(jìn)行的。根據(jù)設(shè)定的工作方式

亂八INT管理整個芯片的工作

數(shù)據(jù)總線

?DOJ緩沖器㈡控制邏輯

用于CPU對8259A進(jìn)I用于識別和管理各種中

行讀寫控制二斷請求信號的優(yōu)先級別。

---1KU

RD讀/寫優(yōu)先——IR1

WR邏輯

rl權(quán)電

A0用于多片8259AIRR

CS進(jìn)行級連路

:級聯(lián)緩沖

CAS(T8位寄存器。用于存放來

CAS「

比較器IMR自外設(shè)的中斷請求信號,

CAS2當(dāng)某引腳有中斷請求信號

SP/EN8位寄存器。用于存放正在處H一卡日山的位被置1。

理的中斷請求信號,8259A8位寄存器。用于存放對中請求)10110

在接收到CPU的響應(yīng)信號的屏蔽信息。當(dāng)某位被編程設(shè)

(INTA)后,使相應(yīng)位置L置為1時,則相應(yīng)的中斷請求

ISRI00010100I信號被屏蔽,不會被送到CPU.

IMRI10000001I

管腳信號8259管腳對照表

D7?DO數(shù)據(jù)總線(雙向)

CS128Vcc

WR227——AORD讀輸入

RD326——INTA

WR寫輸入

D7425——IR7

D6524——IR6AO選擇內(nèi)部寄存器地址

D5623——IR5

CS片選

D4722——IR4

D3821——IR3CAS2?CAS2級連線

D2920——IR2

D11019——IR1SP/EN從程序/充許緩沖

DO1118——IR0INT中斷輸出

CASO1217——INT

CAS11316——SP/ENINTA中斷響應(yīng)輸入

——CAS2

GND-1415IRO?[R7中斷請求輸入

3.工作方式

[1]設(shè)置優(yōu)先級的方式

(1)全嵌套方式

全嵌套方式是8259最常用的工作方式。初始化后若沒有再設(shè)置其它

優(yōu)先級方式(如優(yōu)先權(quán)旋轉(zhuǎn)),8259自動進(jìn)入全嵌套方式。其特點是:

?中斷請求優(yōu)先級順序是IRQ0——IRQ7O

?當(dāng)一個中斷被響應(yīng)時,中斷服務(wù)寄存器ISR相應(yīng)的位被置為“1”,且

保持到中斷服務(wù)程序在返回前發(fā)中斷結(jié)束命令為止。

?在ISR位置位期間,禁止再發(fā)生同級或較低級的中斷,較高級的中斷

請求仍能產(chǎn)生中斷。

?每個中斷請求可分別由IMR相應(yīng)位屏蔽。

(2)特殊全嵌套

特殊全嵌套方式同全嵌套方式只有一點不同,即:在特殊全嵌套方

式下,當(dāng)正處理某一級中斷時,又有同級的中斷請求產(chǎn)生時,8259A也會

響應(yīng),從而實現(xiàn)一種對同級中斷請求的特殊嵌套。

特殊全嵌套方式一般用于多片8259A級連的系統(tǒng)中。

(3)優(yōu)先級自動旋轉(zhuǎn)方式

優(yōu)先級自動旋轉(zhuǎn)方式一般用于系統(tǒng)中有多個優(yōu)先級相等的中斷源的情況.

在這種方式下,優(yōu)先級隊列是變化的,一個設(shè)備受到服務(wù)后,其優(yōu)先級

自動降到最低。初始優(yōu)先級隊列是固定的,為:

IRQ0IRQ】IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7(由高至M氐)。

如果這時IRQi有中斷請求,則在完成其中斷服務(wù)后,優(yōu)先級隊列變?yōu)?

由高到低):

IRQ0IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7IRQt

優(yōu)先級自動旋轉(zhuǎn)方式由操作命令字ocw2設(shè)定。

(4)優(yōu)先級特殊旋轉(zhuǎn)方式

優(yōu)先級特殊旋轉(zhuǎn)方式與優(yōu)先級自動旋轉(zhuǎn)方式只有一點不同,即:在優(yōu)先

級特殊旋轉(zhuǎn)方式中,初始的最低優(yōu)先級由編程來決定,例如,設(shè)定IRQ3

為最低優(yōu)先級,那么,IRQ,即為最高優(yōu)先級。

優(yōu)先級自動旋轉(zhuǎn)方式也是由操作命令字OCW2設(shè)定。

[2]屏蔽中斷源的方式

(1)普通屏蔽方式

在該方式中,8259A的每一條中斷請求線都可根據(jù)需要設(shè)置屏蔽,從而

使這個中斷請求不能從8259A送到CPUo

可以通過操作命令字OCWi來設(shè)置屏蔽。8259A內(nèi)部有一個中斷屏蔽寄

存器IMR,它的每一位對應(yīng)了一個中斷請求輸入,通過設(shè)置OCWj使

IMR中任一位或幾位為1,當(dāng)某位為1時,對應(yīng)的中斷請求被屏蔽。

(2)特殊屏蔽方式

在某些應(yīng)用場合,希望能動態(tài)地改變系統(tǒng)的優(yōu)先級結(jié)構(gòu),即在執(zhí)行中

斷服務(wù)程序的某一部分時,希望禁止某些較低級的中斷請求,而在執(zhí)行

中斷服務(wù)程序的另一部分時,又能夠開放比自己級別低的中斷請求。要

達(dá)到這種目的,可采用特殊屏蔽方式。

設(shè)置了特殊屏蔽方式后,未被OCW1屏蔽的中斷,不管其優(yōu)先級如何,

都可申請中斷。

特殊屏蔽方式由操作命令字OCW3來設(shè)置。

[31結(jié)束中斷處理的方式

(1)自動中斷結(jié)束方式(AEOI)

自動中斷結(jié)束方式由初始化命令字ICW4設(shè)置。

(2)非自動中斷結(jié)束方式

在這種方式下,當(dāng)中斷服務(wù)程序結(jié)束返回時,必須向8259A送中斷結(jié)

束命令(EOI),8259A在接到該命令后,將中斷服務(wù)寄存器中相應(yīng)位復(fù)

位。它有兩種情況:

?非特殊EOI命令:在全嵌套方式下,EOI命令能自動地把當(dāng)前ISR中優(yōu)

先級最高的一位清0。因為在全嵌套方式中,最高的非零ISR位對應(yīng)了最后

一次被響應(yīng)和被處理的中斷。也就是當(dāng)前正在處理的中斷,所以,它的復(fù)

位相當(dāng)于結(jié)束了當(dāng)前正在處理的中斷。

?特殊EOI命令:在非全嵌套方式下,因無法確定最后響應(yīng)的是哪一級

中斷,故應(yīng)向8259A發(fā)特殊EOI命令。這個命令指出了要清除當(dāng)前中斷服

務(wù)寄存器ISR中的哪一位。

兩種EOI命令由操作命令字OCW2設(shè)定。

[4]中斷查詢方式

8259A不向CPU發(fā)INT請求信號,而由CPU發(fā)查詢命令來獲得對請求設(shè)備的中

斷優(yōu)先級。其特點是:

?外部設(shè)備仍然通過8259A發(fā)中斷請求信號要求CPU進(jìn)行服務(wù),但8259A不是用INT

信號向CPU發(fā)中斷請求信號。

?CPU內(nèi)部的中斷觸發(fā)器復(fù)位,禁止外部對CPU的中斷請求。

?CPU使用軟件查詢確認(rèn)中斷源,進(jìn)而對外部設(shè)備進(jìn)行中斷服務(wù)。

通過OCW3發(fā)出查詢命令。

[51多片級連方式

一個8259A主片至多帶8個從片,因此可擴(kuò)展控制64個中斷源。所有的主片和

從片均分別進(jìn)行初始化,且可設(shè)定位不同的工作方式。

[6]緩沖方式

?緩沖方式:在多片8259A級連的大系統(tǒng)中,8259A通過總線驅(qū)動器和數(shù)據(jù)總線

相連,這就是緩沖方式。

?非緩沖方式:當(dāng)系統(tǒng)中只有單片8259A,一般將它直接與數(shù)據(jù)總線相連;另

外,在一些不太大的系統(tǒng)中,即使有幾片8259A級連工作,也可以將8259A直

接與數(shù)據(jù)總線相連。這種連接即為非緩沖方式。

緩沖方式由ICW4設(shè)置。

4.8259A的編程

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

8259的編程結(jié)構(gòu)由三組共10個寄存器構(gòu)成,每個寄存器均為8位。

8259J/J/J/

CASU—

SP/ENINTAWRRDCAS1—

D7-D00CAS2—

D7~D0

當(dāng)前中斷優(yōu)先級裁中斷請求

》IR0

服務(wù)寄存決器寄存器

器ISRcPRERRIR1

zxIR2£

icwi芯片控制IR3£

IR4£

AO今AO

IR5£

ICW2類型碼OCW1屏蔽(IMR)

譯IR6

地址信號二〉

ACSIR7£

ICW3主從關(guān)系OCW2優(yōu)先級方式

INTRWINTICW4方式控制OCW3屏蔽方式

?Innm

[1]初始化命令字

初始化命令字ICW(InitializationCommandWord)通常是系統(tǒng)開機(jī)時

,由初始化程序填寫,且在整個系統(tǒng)工作過程中保持不變。初始化命令字

必須按順序填寫。

下面我們討論來討論它的格式及填寫規(guī)則。

⑴ICW1

(2)ICW2

D3D?

A。D7D6D5D4%

(3)ICW3(主控制器)

AoD7D6D5D4D3D2DIDO

ICW3(從控制器)從控制器

A。D?D6D5D4D3D2D]D0

100000ID,皿叫

從控制器ID,編碼000?

111分別對應(yīng)0?7IR輸入

從片。

(4)ICW4

AoD7D6D5D4D3D2D]DO

8259A初始化過程的流程圖如圖所示。

No(SGNL=1)

Yes(SGNL=0)

ICW3

No(ICW4=0)

Yes(ICW4=l)

ICW4

準(zhǔn)備接受中斷請求

[2]操作命令字

由CPU向8259A送三個字節(jié)的操作命令字OCW(OperationCommand

Word),用以規(guī)定8259A的工作方式,如:

?中斷屏蔽

?結(jié)束中斷

?優(yōu)線權(quán)旋轉(zhuǎn)

?中斷狀態(tài)等。

操作命令字是在應(yīng)用程序中設(shè)置的,設(shè)置時,順序上沒有嚴(yán)格的要求。

(1)OCW1

OCW1是中斷屏蔽命令字,命令格式如圖。命令字中的M7?Mo對應(yīng)IMR

的各位。Mj=l表示該中斷被屏蔽,Mj=0表示該中斷開放。

A。D7D6D5D4D3D?D]Do

MMM

17M6%43Mi

1VIo-----------

中斷屏蔽

1——置屏蔽

0——復(fù)位屏蔽

(2)OCW2

命令格式如圖。

?R、SL、EOI的不同組合決定了8259A的幾種工作方式。

?L2-L0這幾位確定當(dāng)SL=1時指定的特殊結(jié)束或特殊循環(huán)時的中斷優(yōu)先級.

A。D7D6D5D4D3D2DIDO

0RSLEOI00]L()

OOO0有

001非特殊EOI命令1

>'?斷結(jié)束OO11效

011特殊EOI命令

O1O2的

按非特殊命令旋轉(zhuǎn)、

101EOIO113中

100以自動EOI方式旋轉(zhuǎn)(設(shè)置)卜自動旋轉(zhuǎn)

1OO4斷

000以自動EOI方式旋轉(zhuǎn)(清除),1O15請

111按特殊EOI命令旋轉(zhuǎn)[特殊旋轉(zhuǎn)11O6求

1117級

110置優(yōu)先權(quán)命令J

010無操作別

??\<備

(3)OCW3

用于控制8259A的運行方式。命令格式如圖。

AoD7D6D5D4D3D2D]DO

00ESMMSMM01PRRRIS

讀寄存器命令

0101

特殊屏蔽方式0011

0101在下一個在下一個

0011無作用讀脈沖時讀脈沖時

復(fù)

置讀[RR讀ISR

無作用殊

1=查詢命令

0=非查詢命令

[31初始化編程

PC機(jī)中使用單片8259A,定義地址為:20H、21H,8259A的工作方

式設(shè)置如下:

⑴固定優(yōu)先權(quán)級別:I%最高,IR7最低;

(2)8個中斷類型碼分別是08H?0FH;

(3)中斷請求信號采用邊沿觸發(fā)方式;

(4)中斷服務(wù)結(jié)束時,采用一般中斷結(jié)束命令(EOI);

⑸采用一般屏蔽方式。

程序:

初始化程序如下:MOVAL,13H

初始化命令字:OUT20H,AL

ICWp0001001IB13HMOVAL,08H

OUT21H,AL

ICW2:00001000B08H

MOVAL,01H

ICW4:00000001B01H

OUT21H,AL

5.中斷的執(zhí)行

(1)軟中斷

當(dāng)PC機(jī)執(zhí)行INTn等指令時,即產(chǎn)生了軟中斷,起執(zhí)行過程如下:

?棧指針SP減2,標(biāo)志寄存器內(nèi)容入棧,然后清除T和I標(biāo)志,以屏蔽中斷。

?SP再次減2,將CS內(nèi)容入棧。

?用中斷類型碼n乘4,計算中斷向量地址,將向量中的后兩個字節(jié)送

CS寄存器。

?SP再次減2,把IP內(nèi)容入棧,把中斷向量中的前兩個字節(jié)送至IP。

?由當(dāng)前的CS和IP值作為段地址和偏移量,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序中

去執(zhí)行。

⑵硬中斷

中斷響應(yīng)周期

8088響應(yīng)中斷,到轉(zhuǎn)入中斷處理,要經(jīng)過兩個中斷響應(yīng)周期。

第一個中斷響應(yīng)周期第二個中斷響應(yīng)周期

CLK

ALE

INTA

AD7?AD

第一個INTA信號:將在服務(wù)寄存器ISR相應(yīng)位置位,表示正在為響應(yīng)的那一

級服務(wù);同時將中斷請求觸發(fā)器復(fù)位。為本級再次中斷請求做好準(zhǔn)備。

第二個INTA信號:要求8259A輸入中斷向量類型碼。

執(zhí)行過程

?接口設(shè)備通過中斷請求線IR0—以7中的一條,將8259A內(nèi)部中斷觸發(fā)器

IRR相應(yīng)位置1。

?8259A收到I&信號后,將其與同時申請中斷的信號及正掛起的中斷信號

比較分析優(yōu)先級,若其級別最高,則由8259A的INT腳向CPU發(fā)出中斷

請求信號INTR。

?8088響應(yīng)中斷,連續(xù)發(fā)出兩個INTA信號,第一個INTA信號將在服務(wù)寄

存器ISR相應(yīng)位置位,表示正在為響應(yīng)的那一級服務(wù);同時將中斷請求

觸發(fā)器復(fù)位。為本級再次中斷請求做好準(zhǔn)備。第二個INTA信號要求

8259A輸入中斷向量類型碼。

?8088收到8位類型碼后,將其乘4作為中斷向量的地址。

?8088屏蔽中斷,保護(hù)現(xiàn)場,并由取得的中斷向量得到IP和CS的值。

?以CS和IP值為段地址和偏移量,轉(zhuǎn)入中斷服務(wù)程序。

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

中斷服務(wù)程序的編程原則

?在進(jìn)入具體中斷處理之前要先初始化中斷向量,使其指向相應(yīng)的中斷服

務(wù)程序,但在此之前要先關(guān)中斷,以防接管中斷過程中再發(fā)生中斷;

?中斷是異步發(fā)生的(指外部中斷),進(jìn)入響應(yīng)時并不考慮當(dāng)前運行狀態(tài)。

因此中斷服務(wù)程序必須保護(hù)現(xiàn)場;

?在中斷服務(wù)程序入口處要立即開中斷,以允許較高優(yōu)先級的中斷產(chǎn)生;

?中斷服務(wù)程序的服務(wù)時間要盡量壓縮,以免干擾同級或低級中斷設(shè)備的工

作;

?由于PC機(jī)中8259采用正常結(jié)束中斷,因此在中斷服務(wù)程序執(zhí)行IRET返回

前應(yīng)向8259發(fā)結(jié)束中斷命令EOI:

MOVAL,20H;使當(dāng)前ISR中的對應(yīng)位復(fù)位

OUT20H,AL

IRET

中斷向量的設(shè)置

當(dāng)CPU響應(yīng)中斷,便從中斷向量表中取出中斷向量(即中斷服務(wù)程序

的入口地址),而轉(zhuǎn)移去執(zhí)行中斷服務(wù)程序。

因此,當(dāng)用戶要編寫自己的中斷服務(wù)程序時,必須將中斷向量(服務(wù)

程序的入口地址)填入系統(tǒng)的中斷向量表中。

下面所示程序表示怎樣填寫中斷向量表,以實現(xiàn)用戶所定義的60H中斷。

方法1:CLI

00000H0型中斷向量

MOVBX,4*60H

00004H1型中斷向量

MOVAX,OFFSETINTR

MOV[BX],AX

INCBX

INCBX4*nn型中斷向量

MOVAX,SEGINTR

MOV[BX],AX

STI003FCH255型中斷向量

方法:

2也可以DOS功能調(diào)用實現(xiàn)這一功能。

CLI

PUSHDS

MOVAX,SEGINTR

MOVDS,AX

MOVDX,OFFSETINTR;中斷服務(wù)程序入口地址放入DS:DX中

MOVAH,25H;功能號25H送入AH中

MOVAL,60H;類型碼放入AL

INT21H;調(diào)用21H中斷

POPDS

STI

中斷服務(wù)程序的編程

主程序編程

、r

應(yīng)用舉例用中斷方式將外設(shè)數(shù)據(jù)讀入內(nèi)存

Datasegmentsti

Bufferdb100dup(?)

Dataends

ret

Codesegment

mainendp

assumecs:codeds:data

9Intprprocfar

Mainprocfar

sti

Start:pushds

pushbx

xorax,ax

pushaxpushax

movax,datainal,50h

movds,axmov[bx],al若采用硬中斷,

leabx,bufferincbx則在中斷服務(wù)

clipopax程序結(jié)束時,

要送一個EOI中

movbx,4*0aHpopbx

斷結(jié)束命令給

movax,offsetintprmoval,20h8259A,對ISR復(fù)

mov[bx],axout20h,al位。

incbxiret

incbxIntprendp

movax,segint_prCodeends

mov[bx],axendstart

四、IBMPC/XT的基本中斷系統(tǒng)

1.中斷類型

IBMPC/XT中有兩種類型的中斷:

(1)內(nèi)部中斷:即軟件中斷。包括被零除、單步、溢出和中斷指令(INTn)等。

這是由8088執(zhí)行指令產(chǎn)生的中斷。

(2)外部中斷:

8088A有兩條外部中斷請求線——非屏蔽中斷請求線NMI和

可屏蔽中斷請求線INTR。

?非屏蔽中斷NMI。非屏蔽中斷來源于三方:

系統(tǒng)板的RAM在讀寫時產(chǎn)生奇偶校驗錯;

I/O通道中的擴(kuò)展選件出現(xiàn)奇偶校驗錯;

協(xié)處理器8087的異常狀態(tài)產(chǎn)生的中斷。

?可屏蔽中斷INTR。由外部設(shè)備通過一片8259A產(chǎn)生的中斷請求。

8087中斷請求

RAM奇偶錯

NMII/O通道檢查錯

8088

CPUNMI屏蔽寄存器屏蔽位

INTR

8253定時器

01

鍵盤

優(yōu)2

3擴(kuò)未用

4充異步通信卡(輔)

卡異步通信卡(主)

5插

硬盤

8259A;槽

軟盤

并行打印機(jī)

2.中斷向量表

地址(Hex)類型碼中斷名稱地址(Hex)類型碼中斷名稱

除以

0—30040—4310視頻顯示I/O調(diào)用

4—71單步

44—4711設(shè)備檢測調(diào)用

非屏蔽

8—B248—4B12存儲器容量檢測

C—F3斷點4C—4F13軟/硬盤I/O調(diào)用

10—134溢出50—5314通信I/O調(diào)用

14—175打印屏幕54—5715盒式磁帶I/O調(diào)用

18—IB6保留58—5B16鍵盤I/O調(diào)用

ID—IF7保留5C—5F17打印機(jī)I/O調(diào)用

20—238定時器60—6318ROMBASIC

24—279鍵盤64—6719引導(dǎo)程序入口

28—2BA保留的硬中斷68—6B1A時間調(diào)用

2C—2FB異步通信(COM2)6C—6F1B鍵盤CTRL-BREAK控缶

30—33C異步通信(COM1)70—731C定時器報時

34—37D硬盤74—771D顯不器參數(shù)表

38—3BE軟盤78—7B1E軟盤參數(shù)表

3C—3FF并行打印機(jī)

地址(Hex)類型碼中斷名稱

7C—7FIF字符點陣結(jié)構(gòu)參數(shù)表

80—8320程序結(jié)束,返回DOS

84—8721DOS系統(tǒng)功能調(diào)用

88—8B22程序結(jié)束地址

8C—8F23CTRL_BREAK退出地址

90—9324標(biāo)準(zhǔn)錯誤出口地址

94—9725絕對磁盤讀

98—9B26絕對磁盤寫

9C—9F27程序結(jié)束,駐留內(nèi)存

AO—FF28—3F為DOS保留

100—17F40—5F保留

180—19F60—67為用戶軟中斷保留

1AO—IFF68—7F不用

200—21780—85BASIC使用

218—3C386—FOBASIC運行時,用于解釋

3C4—3FFFl—FF未用

??\<令

五、PC/AT(80286)中8259的使用情況

PC/AT中,8259的使用情況為:

?2片8259級聯(lián),提供15級向量中斷。從片的INT接主片的IRQ2。

?端口地址:主片20H、21H,從片AOH、A1HO

?主片和從片均采用邊沿觸發(fā)。

?采用全嵌套優(yōu)先級排列方式

?采用非緩沖方式,主片甌/函接+5V,從片曲/函接地。

?主片的類型碼為08H?0FH,從片的類型碼為70H?77H。

lai

從兼容的角度出發(fā),奔騰的可屏蔽中斷類似于80286。盡管當(dāng)今的奔騰

計算機(jī)中已找不到8259A芯片及相應(yīng)的電路,而發(fā)展到高級可編程中斷控制

器(AdvancedProgrammableInterruptController)子系統(tǒng),但它是至今還

適用的中斷資源及其優(yōu)先級排序的來歷。

主片8259

從片3259

IRO備

D7~D0(IRO』

IR2€-

+5V—SP/ENSP/EN』

INTR<INTESTT<-

_______IR7m7

INTA___ESTTA€-

------CS

RFcsRD<e-

WRAUWRA0

1個小

CAS2-CAS0CAS2-CAS0

INTA

IOR

IOW

優(yōu)先級(按從高到低的順序):

IRQO->IRQ1->IRQ8->IRQ9-IRQ10'...->IRQ15->IRQ3->IRQ4

->IRQ7—

硬中斷資源的分配

中斷向量資源分配用戶使用中斷向量資源分配用戶使用

IRQO08H定時/計數(shù)器不可IRQ870H實時時鐘不可

IRQ109H鍵盤控制器不可IRQ971H保留可用

IRQ2OAH級連占用不口JIRQ1072H保留可用

IRQ3OBH串行口2可能IRQ1173H保留可用

IRQ4OCH串行口1可能IRQ1274HPS/2鼠標(biāo)可能

IRQ5ODH并行口2可用IRQ1375H協(xié)處理器不可

IRQ60E軟盤控制器不可IRQ1476H硬盤IDE1不口J

IRQ7OFH并行口1可能IRQ1577H硬盤IDE2不可

六、Pentium的中斷系統(tǒng)簡介

1.中斷系統(tǒng)

R/S——恢復(fù)/停止引腳

FLUSH------刷新引腳

SM1——系統(tǒng)管理中斷引腳

INIT—初始化引腳

2.可屏蔽中斷

系統(tǒng)中相當(dāng)于使用了兩個中斷控制器8259A級聯(lián),共提供15級可屏蔽的硬中斷:

第一個(主)控制器的I/0地址為20H和21H,它提供的8級中斷IRQO-IRQ7;

第二個(從)控制器的I/0地址為A0H和A1H,它的8級中斷被定義為IRQ8?IRQ15。

IRQ0IRQ8

IRQ]IRQ9

INTIRQ2------------------1NTIRQ1O

至CPUIRQ3IRQ11

IRQ4IRQ12

主片IRQ5從片1RQ13

IRQGIRQ14

IRQ71RQ15

IRQ0定時器通道0的系統(tǒng)定時中斷IRQ8系統(tǒng)CMOS/實時時鐘

IRQ1鍵盤輸出緩沖器滿IRQ9保留,軟件定位至IRQ2(1NT0AH)

IRQ2級聯(lián)第二個(從)控制器IRQ10保留,PCI聲卡與AGP顯卡

IRQ3串行端口COM21RQ11保留

IRQ4串行端口C0M11RQ12保留或PS/2鼠標(biāo)

1RQ5保留或并行端口21RQ13協(xié)處理器

IRQ6軟盤控制器IRQ14在板硬盤IDE1通道

IRQ7并行打印機(jī)端口1IRQ15在板硬盤IDE2通道KlAlYl.

空系統(tǒng)信息-ID!X|

|JTMCD1仁一鹵畫|iff鬻窗明留」。注舅甸____

樹1資源1設(shè)備

理系統(tǒng)信息IRQ9MicrosoftACPI-CompliantSystem

□系統(tǒng)摘要IRQ9NVIDIAVanta/VantaLT

日?(」硬件資源IRQ9YAMAHANativeDS1WDMDriver

⑥沖突/共享IRQ9RealtekRTL8139(A)PCIFastEthernetAdapter

□DMAIRQ9Intel(R)82801BA/BAMUSBUniversalHostController-2442

LJ強(qiáng)制硬件IRQ9Intel(R)82801BA/BAMUSBUniversalHostController-2444

1~1I/O

□IRQs

,_]內(nèi)存

ELJ組件

任:」軟件環(huán)境

E__|InternetExplorer

國"」應(yīng)用程序

系統(tǒng)信息.1□1x|

操作(④查看⑦工具(DJg,|色的囪昌囪阿、圖

樹|地址范圍1設(shè)備1狀態(tài)■

B系統(tǒng)信息0x0074-0x007FMotherboardresources確定

□系統(tǒng)摘要0x0091-0x0093Motherboardresources確定

BU硬件資源0x00A2-0x00BFMotherboardresources確定

U沖突供享OxOOEO-OxOOEFMotherboardresources確定

口DMA0x03F0-0x03FlMotherboardresources確定

U強(qiáng)制硬件0x04D0-0x04DlMotherboardresources確定

0x002E-0x002FMotherboardresour

溫馨提示

  • 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

提交評論