版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運行值班工作管理規(guī)程范文(2篇)
- 2025年銷售個人年度工作計劃(3篇)
- 公司第三產(chǎn)業(yè)創(chuàng)收實施方案例文(3篇)
- 單位讀書活動方案(3篇)
- 制粉系統(tǒng)火災(zāi)事故應(yīng)急預(yù)案(6篇)
- 幼兒園工會活動方案(2篇)
- 石化運輸有限公司工業(yè)事故應(yīng)急預(yù)案例文(3篇)
- 活動中心圖書室管理制度樣本(三篇)
- 清明節(jié)掃墓方案例文(5篇)
- 2025年保安個人工作總結(jié)參考范本(2篇)
- (完整word版)Word信紙(A4橫條直接打印版)模板
- 鋼結(jié)構(gòu)件運輸專項方案
- 物業(yè)公司車輛進(jìn)出登記表
- DCS基礎(chǔ)培訓(xùn)課程(和利時)課件
- 員工消防安全教育培訓(xùn)
- HART-375手操器說明書
- 文學(xué)批評與實踐-四川大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- (52)-12.1服裝的審美形態(tài)11.4
- 力行“五育”并舉融合“文化”育人
- 上海中心大廈介紹
- 管道試壓記錄表
評論
0/150
提交評論