版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1第一節(jié)中斷的基本概念一、什么是中斷二、中斷源和中斷優(yōu)先權(quán)三、中斷服務(wù)程序四、斷點(diǎn)和中斷現(xiàn)場五、硬件中斷和軟件中斷第二節(jié)8088CPU的中斷系統(tǒng)一、8088CPU的中斷分類二、8088CPU的中斷優(yōu)先權(quán)三、8088CPU響應(yīng)中斷的過程四、8088CPU如何獲取中斷類型號第三節(jié)可編程中斷控制器8259A一、引言二、8259A的引腳、編程結(jié)構(gòu)和工作過程三、8259A的編程1.設(shè)置中斷屏蔽字2.發(fā)中斷結(jié)束命令EOI四、8259A在IBMPC/XT系統(tǒng)中的應(yīng)用五、8259A在Pentium機(jī)中的應(yīng)用第四節(jié)中斷程序設(shè)計(jì)一、中斷向量的保存、設(shè)置和恢復(fù)二、軟中斷程序設(shè)計(jì)三、可屏蔽硬中斷程序設(shè)計(jì)四、問題討論1.中斷嵌套問題2.中斷向量的保存、恢復(fù)問題第七章中斷技術(shù)2聽課思考
1、中斷類型
3、內(nèi)部(軟)和外部(硬)中斷類型號怎樣取得?
2、內(nèi)部(軟)和外部(硬)中斷執(zhí)行過程不同點(diǎn)與相同點(diǎn);
4、CPU在響應(yīng)中斷自動完成哪幾件事?5、中斷向量如何設(shè)置?
6、從外設(shè)的中斷請求到CPU響應(yīng)中斷,有哪兩個(gè)控制條件?
7、每次硬中斷結(jié)束后為什么要發(fā)中斷結(jié)束命令字?軟中斷需要嗎?8、屏蔽字的作用是什么?3第七章中斷技術(shù)第一節(jié)中斷的基本概念第二節(jié)8088CPU的中斷系統(tǒng)第三節(jié)可編程中斷控制器8259A第四節(jié)中斷程序設(shè)計(jì)4第一節(jié)中斷的基本概念一、什么是中斷二、中斷源和中斷優(yōu)先權(quán)三、中斷服務(wù)程序四、斷點(diǎn)和中斷現(xiàn)場五、硬件中斷和軟件中斷5一、什么是中斷在CPU正常運(yùn)行程序時(shí),由于內(nèi)部或外部某個(gè)非預(yù)料事件的發(fā)生,使CPU暫停正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行處理引起中斷事件的程序,然后再返回被中斷了的程序,繼續(xù)執(zhí)行。這個(gè)過程就是中斷。6中斷服務(wù)程序1中斷服務(wù)程序
2非預(yù)料事件1CPU執(zhí)行流程非預(yù)料事件
27二、中斷源和中斷優(yōu)先權(quán)
引起中斷的因素很多,將發(fā)出中斷申請的外設(shè)或內(nèi)部原因,稱為中斷源給每個(gè)中斷源指定一個(gè)優(yōu)先權(quán),稱為中斷優(yōu)先權(quán)當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷請求時(shí),
CPU按照中斷優(yōu)先權(quán)的高低順序,依次響應(yīng)。8三、中斷服務(wù)程序
處理中斷源,完成其所要求功能的程序,稱中斷服務(wù)程序(中斷例行程序、中斷子程)。CPU執(zhí)行流程中斷服務(wù)程序1中斷服務(wù)程序2非預(yù)料事件2非預(yù)料事件19非預(yù)料事件是指事件發(fā)生的時(shí)間無法預(yù)知,即中斷源何時(shí)產(chǎn)生中斷不確定,是隨機(jī)的。但事件的性質(zhì)及處理方法則是已知的,
確定的,
即中斷服務(wù)程序是事先編寫好的,
只是何時(shí)執(zhí)行未知。中斷源產(chǎn)生中斷的隨機(jī)性,使中斷服務(wù)程序的執(zhí)行也具有隨機(jī)性,即何時(shí)執(zhí)行中斷服務(wù)程序不是在程序中安排好的。10四、斷點(diǎn)和中斷現(xiàn)場斷點(diǎn):
是指CPU執(zhí)行的現(xiàn)行程序被中斷時(shí)的下一條指令的地址,又稱斷點(diǎn)地址。中斷現(xiàn)場:
是指CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序前的運(yùn)行狀態(tài),包括CPU內(nèi)部各寄存器、斷點(diǎn)地址等。111000:150H
、、、、、、、、、、MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、
PUSHAX
、、
、、
IRETCPU在執(zhí)行此指令時(shí),某中斷源發(fā)申請中斷;CPU在執(zhí)行完該指令后,轉(zhuǎn)去執(zhí)行中斷子程地址1000:150H為斷點(diǎn)斷點(diǎn)概念:12早期中斷概念的引入,是為解決CPU與外設(shè)間的速度匹配問題,提高CPU的工作效率。
中斷源主要是由外部硬件產(chǎn)生。當(dāng)今的中斷技術(shù),不再限于外部硬件產(chǎn)生中斷(稱硬件中斷或外中斷),還可由CPU內(nèi)部產(chǎn)生(如被零除操作),或者由程序預(yù)先安排,即由指令調(diào)用中斷服務(wù)程序。(稱軟件中斷或內(nèi)中斷)五、硬件中斷和軟件中斷131000:150H
、、、、、、、、、、MOVAH,01INT21HCMPAL,0Dh、、、、、、、、、、
PUSHAX
、、、、IRET用指令調(diào)用中斷程序軟件中斷用指令調(diào)用中斷程序14第二節(jié)8088CPU的中斷系統(tǒng)一、8088CPU的中斷分類二、8088CPU的中斷優(yōu)先權(quán)三、8088CPU響應(yīng)中斷的過程四、8088CPU如何獲取中斷類型號15一、8088CPU的中斷分類按中斷源的不同,中斷分為內(nèi)中斷和外中斷。1、內(nèi)中斷(軟中斷)指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷①
被零除操作或OF=1時(shí)執(zhí)行INTO指令引起②使用DEBUG中的單步或斷點(diǎn)設(shè)置操作引起③執(zhí)行INTn指令引起16指外部芯片通過CPU的INTR引腳或NMI引腳發(fā)出中斷申請引起的中斷。當(dāng)INTR上有高電平信號當(dāng)NMI上有上升沿信號2、外中斷(硬中斷)8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND最大組態(tài)(最小組態(tài))VCCA15A16/S3A17/S4A18/S5A19/S6(HIGH)(SSO)MN/MXRDRQ/GT0(HOLD)RQ/GT1(HLDA)LOCK(WR)S2(IO/M)S1(DT/R)S0(DEN)QS0(ALE)QS1(INTA)TESTREADYRESET17
可屏蔽中斷
由INTR引腳引起的中斷,稱可屏蔽中斷。
CPU是否響應(yīng)INTR引腳上的中斷請求取決于IF標(biāo)志:
IF=1,CPU響應(yīng)INTR引腳上的中斷請求
IF=0,CPU不響應(yīng)INTR引腳上的中斷請求 即當(dāng)IF=0時(shí),將INTR引腳上的中斷申請屏蔽。
非屏蔽中斷
由NMI引腳引起的中斷,稱非屏蔽中斷。當(dāng)NMI引腳上產(chǎn)生上升沿信號,CPU必響應(yīng)此中斷請求,即NMI引腳上的中斷請求不受IF標(biāo)志的控制,
IF不能屏蔽NMI引腳上的中斷請求。但在系統(tǒng)通電瞬間或屏蔽寄存器最高位置“0”可屏蔽NMI。將最高位置“1”又可以開放NMI。MOVDX,A0H;A0H~BFH為屏蔽寄存器MOVDX,A0HMOVAL,00H MOVAL,80HOUTDX,AL;屏蔽NMI OUTDX,AL;開放NMI18保留(ALT打印機(jī))中斷邏輯INTn指令I(lǐng)NTO指令除法錯(cuò)誤單步TF=1非屏蔽中斷請求IR0IR6IR5IR4IR3IR2IR1IR7可編程中斷控制器(PIC)8259AINTn4012CPUINTRNMI08090A0B0C0D0E0F系統(tǒng)定時(shí)器鍵盤保留(打印機(jī))軟盤串行通信接口保留(通信)彩色/圖形接口8086/8088中斷源19當(dāng)有多個(gè)中斷源同時(shí)產(chǎn)生中斷申請時(shí),CPU先響應(yīng)優(yōu)先權(quán)最高的中斷源,再響應(yīng)優(yōu)先級較低的中斷源。二、8088CPU的中斷優(yōu)先權(quán)優(yōu)先級
高
低
內(nèi)中斷(除零,INT指令,斷點(diǎn),INTO指令)
非屏蔽中斷可屏蔽中斷
低內(nèi)中斷(單步)
20三、8088CPU響應(yīng)中斷的過程當(dāng)中斷源產(chǎn)生中斷申請(INTR)后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,響應(yīng)中斷,給出INTACPU內(nèi)部硬件會自動完成下列響應(yīng)中斷的過程:①
取中斷類型號N②
當(dāng)前PSW的內(nèi)容入棧③
清IF、TF標(biāo)志為0④當(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í),CPU中的指令地址寄存器CS:IP指向中斷程序的入口,在下一個(gè)總線周期,開始執(zhí)行中斷程序。保存現(xiàn)場中斷服務(wù)程序入口地址
21當(dāng)前指令執(zhí)行完的含義CPU正在執(zhí)行一條指令,執(zhí)行完本條指令,響應(yīng)中斷;
對于帶重復(fù)前綴的串指令(如REPMOVSB),執(zhí)行一次重復(fù)和串指令即可響應(yīng)中斷;
對MOV和POP指令,處理對象為段寄存器,以及STI和IRET指令執(zhí)行完本條指令后,再執(zhí)行一條指令才響應(yīng)中斷。22內(nèi)存中斷向量表0:0~3FFH1000:150h3000:200h0:N×40:N×4+20:0000
、、、、、、
0200h3000h
、、、、、、、、、
MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、、、、
MOVBX,CX、、、、、、
IRET、、、類型N中斷子程
某中斷源發(fā)申請中斷,申請執(zhí)行類型號為N的中斷子程響應(yīng)中斷前
SS:SP響應(yīng)中斷后SS:SP
堆棧執(zhí)行IRET后
(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h0:3FFH0:023從中斷子程返回?cái)帱c(diǎn)處,靠的是執(zhí)行中斷子程最后的指令I(lǐng)RET,從堆棧中取出斷點(diǎn)地址給CS:IP,繼續(xù)執(zhí)行被中斷的程序。故中斷子程最后應(yīng)安排IRET指令。1000:150h3000:200h0:N×40:N×4+20:0000
、、、、、、
0200h3000h
、、、、、、、、、
MOVAX,0ADDAX,DXMOV[DI],AX、、、、、、、、、
MOVBX,CX、、、
IRET、、、響應(yīng)中斷前
SS:SP響應(yīng)中斷后SS:SP
堆棧執(zhí)行IRET后
(IP)(CS)(PSW)01501000(PSW)SS:SP(IP)=0200h(CS)=3000h24四、8088CPU如何獲取中斷類型號由前面介紹知,當(dāng)中斷源產(chǎn)生中斷請求后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,CPU內(nèi)部硬件會自動完成響應(yīng)中斷的過程,共七個(gè)步驟而第一步就是獲取中斷類型號。不同的中斷源,8088CPU獲取中斷類型號的方法不同。25根據(jù)8088CPU對中斷的分類,各中斷獲取類型號的方法26向量類型
INTACLKAD7~AD0T1T2T3T4第一個(gè)中斷響應(yīng)周期T1T2T3T4第二個(gè)中斷響應(yīng)周期
中斷響應(yīng)周期時(shí)序
CPU從引腳INTA發(fā)中斷響應(yīng)信號,接口芯片接收此信號,把中斷類型號準(zhǔn)備好;同時(shí)ISRi=1,IRRi=0。
CPU再從引腳INTA發(fā)中斷響應(yīng)信號,接口芯片接此信號后,將中斷類型號送至數(shù)據(jù)總線上;
CPU從數(shù)據(jù)總線獲取中斷類型號。27第三節(jié)可編程中斷控制器8259A
一、引言
二、8259A的引腳、編程結(jié)構(gòu)和工作過程
三、8259A的編程
1.
設(shè)置中斷屏蔽字
2.
發(fā)中斷結(jié)束命令EOI
四、8259A在IBMPC/XT系統(tǒng)中的應(yīng)用五、
8259A在Pentium機(jī)中的應(yīng)用28一、引言中斷申請管理接口INT中斷申請接口1網(wǎng)絡(luò)接口2硬盤接口3軟盤接口4打印機(jī)8088CPUINTRIF291.
向CPU的引腳INTR發(fā)中斷申請信號當(dāng)有多個(gè)外設(shè)同時(shí)發(fā)出中斷請求時(shí),能按照一定的優(yōu)先級順序,向CPU發(fā)出中斷申請,使CPU能優(yōu)先響應(yīng)優(yōu)先級最高的外部設(shè)備的中斷申請。2.
送中斷類型號在CPU中斷響應(yīng)周期,針對不同外設(shè)的中斷請求,向CPU傳送不同的中斷類型號,使CPU執(zhí)行相應(yīng)的中斷子程。中斷申請管理接口的主要功能:在IBMPC機(jī)由8259A可編程中斷控制器(PIC)來完成。30二、8259A的引腳、編程結(jié)構(gòu)和工作過程1.
8259A的引腳
2.
8259A的編程結(jié)構(gòu)
3.
8259A的工作過程311.
8259A的引腳
雙列直插式芯片,28個(gè)引腳
(參看教材圖6-37)方波鍵盤保留串口2
硬盤軟盤打印機(jī)IOW18.2HzA0CS8259A總線A0數(shù)據(jù)線IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A級連情況INTAINTINTAINTR串口1
定時(shí)器322.8259A的編程結(jié)構(gòu)(參看教材圖6-36)SP/ENCA0CA1CA2IORIOW總線D0~D7數(shù)據(jù)線D0~D7INTAINTRA0片選譯碼A5~A9CSA0RD
INTAWRINT
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片連接關(guān)系
ICW4
方式控制0111A010010100OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級設(shè)置、發(fā)EOI
01
OCW3特殊屏蔽,查詢方式設(shè)置處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中斷申請寄存器00000000
334個(gè)初始化命令寄存器
ICW1、ICW2ICW3、ICW4
3個(gè)操作命令寄存器
OCW1(IMR)
OCW2、OCW3當(dāng)前中斷服務(wù)寄存器ISR中斷申請寄存器IRR
8259A內(nèi)部有9個(gè)可讀寫的寄存器8259A的編程結(jié)構(gòu)
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
中斷屏蔽寄存器IMROCW2
10010100
00
01
OCW3OCW18259A中斷控制器34(1)初始化命令字(ICW1-ICW4)
決定8259A的工作方式
通常是在計(jì)算機(jī)系統(tǒng)啟動時(shí)在初始程序設(shè)置,一旦設(shè)定,一般在系統(tǒng)工作過程不再改變。例開機(jī)后,BIOS將8259A初始化為:①
IR0~IR7中斷申請信號為上升沿觸發(fā)方式;②
IR0~IR7對應(yīng)的中斷類型號分別為08H~0FH;③優(yōu)先級IR0最高,IR7最低;(2)操作命令字(OCW1,OCW2,OCW3)
在應(yīng)用程序中設(shè)定,動態(tài)地控制CPU處理中斷的過程(3)ISR和IRR存放當(dāng)前8259A的狀態(tài)
通過讀取ISR和IRR的內(nèi)容,可了解當(dāng)前8259A工作情況35分兩步:
(1)處理外設(shè)中斷申請,決定是否向CPU發(fā)中斷申請信號。(2)若發(fā)中斷申請信號,且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號。3.8259A的工作過程36(1)處理外設(shè)中斷申請,決定是否向CPU發(fā)中斷申請信號②
中斷屏蔽寄存器IMR決定IRR中的中斷申請是否進(jìn)入優(yōu)先級裁決器PR。
IMR對應(yīng)位為
0,允許中斷申請進(jìn)入優(yōu)先級裁決器,為1,不允許進(jìn)入,中斷申請被IMR屏蔽。①
中斷申請寄存器IRR鎖存外部的中斷申請。
若IR0~IR7引腳上有中斷申請,則將IRR相應(yīng)位置1③
當(dāng)前中斷服務(wù)寄存器ISR
記錄CPU正在響應(yīng)的中斷。
ISR中的某位為1,表示CPU正在響應(yīng)此級中斷,
ISR中的某位為0,表示CPU沒有或已響應(yīng)完此級中斷,
④
優(yōu)先級裁決器PR據(jù)新進(jìn)入的中斷申請和ISR的內(nèi)容,
決定是否發(fā)中斷申請信號。
如果進(jìn)入的中斷申請比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進(jìn)入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。37①
中斷申請寄存器IRR鎖存外部的中斷申請。若IR0~IR7引腳上有中斷申請,則將IRR相應(yīng)位置1IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
10010100INTR1138②中斷屏蔽寄存器IMR決定IRR中的中斷申請是否進(jìn)入優(yōu)先級裁決器PR。
IMR對應(yīng)位為
0,允許中斷申請進(jìn)入優(yōu)先級裁決器,
為1,不允許進(jìn)入,中斷申請被IMR屏蔽。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR39③
當(dāng)前中斷服務(wù)寄存器ISR
記錄CPU正在響應(yīng)的中斷。ISR中的某位為1,表示CPU正在響應(yīng)此級中斷,即正在執(zhí)行此中斷源的中斷子程;ISR中的某位為0,表示CPU沒有或已響應(yīng)完此級中斷,即不在執(zhí)行此中斷源的中斷子程IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR40④優(yōu)先級裁決器PR據(jù)新進(jìn)入的中斷申請和ISR的內(nèi)容,
決定是否發(fā)中斷申請信號。
如果進(jìn)入的中斷申請比ISR中記錄的中斷優(yōu)先級高,則通過8259A的INT引腳向CPU發(fā)出中斷請求信號;如果進(jìn)入的中斷申請不比ISR中記錄的中斷優(yōu)先級高,同級或低級,則不向CPU發(fā)中斷請求信號。IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR41(2)若發(fā)中斷申請信號,且CPU響應(yīng),則在CPU中斷響應(yīng)周期送出中斷類型號
CPU接收到INTR上的中斷申請信號后:如果IF標(biāo)志為0,則CPU不響應(yīng)此中斷申請信號,
即中斷申請被IF屏蔽。如果IF標(biāo)志為1,則處理完當(dāng)前的指令后,進(jìn)入中斷響應(yīng)周期通過INTA引腳發(fā)出兩個(gè)負(fù)脈沖信號,從數(shù)據(jù)總線上獲取中斷類型號,進(jìn)入中斷響應(yīng)的過程。42向量類型
INTACLKAD7~AD0T1T2T3T4第一個(gè)中斷響應(yīng)周期T1T2T3T4第二個(gè)中斷響應(yīng)周期
8088CPU中斷響應(yīng)周期時(shí)序43①將ISR中相應(yīng)位置1,表示CPU響應(yīng)此級中斷,執(zhí)行此中斷源的中斷子程。8259A在接收到第一個(gè)INTA中斷響應(yīng)信號后:001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR
INTAINTD0~D7INTR01②
把IRR中對應(yīng)的位清0,清除IRR中鎖存的中斷申請信號。44①
通過數(shù)據(jù)線,將被響應(yīng)申請的中斷類型號送給CPU。類型號由ICW2提供,在初始化8259A時(shí)已設(shè)定好。8259A在接收到第二個(gè)INTA中斷響應(yīng)信號后:001
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置10010100IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RDWR
INTAINTD0~D7INTR01②
CPU獲得中斷類型號后,進(jìn)入CPU響應(yīng)中斷的過程,
執(zhí)行中斷子程,處理中斷源申請的功能。45①
取中斷類型號N②
當(dāng)前PSW的內(nèi)容入棧③清IF、TF標(biāo)志為0④當(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指向中斷程序的入口,開始執(zhí)行中斷程序。保存現(xiàn)場CPU響應(yīng)中斷過程:
執(zhí)行完中斷子程中最后一條指令I(lǐng)RET后,返回被中斷處,繼續(xù)執(zhí)行被中斷的程序。46三、8259A的編程1.8259A的編程2.8259A的編程方法
(1)設(shè)置中斷屏蔽字
(2)發(fā)中斷結(jié)束命令EOI474個(gè)初始化命令寄存器
ICW1、ICW2ICW3、ICW4
3個(gè)操作命令寄存器
OCW1(IMR)
OCW2、OCW3當(dāng)前中斷服務(wù)寄存器ISR中斷申請寄存器IRR
8259A內(nèi)部有9個(gè)可讀寫的寄存器1.8259A的編程
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
中斷屏蔽寄存器IMROCW2
10010100
00
01
OCW3OCW18259A中斷控制器488259A有兩個(gè)I/O端口地址A0=0
偶地址端口A0=1
奇地址端口
對
9個(gè)寄存器的讀寫均通過這兩個(gè)端口實(shí)現(xiàn)寫入數(shù)據(jù)的特征位寫入的先后順序
區(qū)分是對哪個(gè)寄存器進(jìn)行操作根據(jù)
1×
I3I4ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制處理部分控制部分00000000
ISR當(dāng)前中斷服務(wù)寄存器PR優(yōu)先級裁決器IRR中斷申請寄存器00000000
中斷屏蔽寄存器OCW2
10010100
00
01
OCW3OCW18259A中斷控制器D0~D7A0CSRDWR80111A0100A049(1)通過中斷屏蔽寄存器IMR的讀寫,設(shè)置中斷屏蔽字(2)
通過OCW2操作命令寄存器,發(fā)中斷結(jié)束EOI命令由于課時(shí)所限,只要求掌握如下編程:2.8259A的編程方法8259A有多種工作方式,這些工作方式均可編程選擇,使用相當(dāng)靈活。50通過往寄地址端口寫入IMR內(nèi)容實(shí)現(xiàn)對應(yīng)位為0,允許該級中斷申請進(jìn)入對應(yīng)位為1,禁止該級中斷申請進(jìn)入(1)設(shè)置中斷屏蔽字IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR51
新增允許IR2的中斷申請
INAL,21H;讀入原IMR的內(nèi)容
ANDAL,11111011B;D2=0,允許IR2的中斷申請
OUT21H,AL;寫入IMR
禁止IR4的中斷申請
INAL,21H;讀入原IMR的內(nèi)容
ORAL,00010000B;D4=1,禁止IR4的中斷申請
OUT21H,AL;寫入IMR例
已知IBMPC/XT系統(tǒng)中
8259A的奇地址端口地址為21H52設(shè)置完成后的結(jié)果:IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制00000000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010000INTR53(2)發(fā)中斷結(jié)束命令EOI由8259A的工作過程可知:ISR中的內(nèi)容是優(yōu)先級裁決器進(jìn)行裁決的重要依據(jù)
CPU響應(yīng)某級中斷后,8259A自動將ISR的對應(yīng)位置1,如果CPU已執(zhí)行完中斷子程,而ISR中的對應(yīng)位仍為1,8259A的優(yōu)先級裁決器仍會據(jù)ISR的內(nèi)容做裁決,從而會屏蔽同級或低級的中斷申請。在中斷響應(yīng)后,對ISR中相應(yīng)位的清0很重要,它是8259A認(rèn)為中斷結(jié)束的標(biāo)志。54IORIOW總線數(shù)據(jù)線D0~D7INTAA0片選譯碼A5~A9CSA0RD
INTAWRINTD0~D7
ICW1
芯片控制
ICW2
中斷類型號
ICW3
主從片關(guān)系
ICW4
方式控制101
00000
ISR當(dāng)前中斷服務(wù)寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1
中斷屏蔽寄存器IMR
00
OCW2
優(yōu)先級、發(fā)EOI
OCW3特殊屏蔽設(shè)置PR優(yōu)先級裁決器IRR中斷申請寄存器10000001
10010100INTR55一、初始化8259A時(shí),設(shè)置8259A工作方式為自動清0方式,
則在CPU響應(yīng)中斷后,硬件自動將ISR的對應(yīng)位清0。清ISR內(nèi)容的方法有兩種:二、初始化8259A時(shí),設(shè)置8259A工作方式為非自動清0方式,
需在中斷子程中,通過軟件方式清0。方法是:通過往OCW2寫入20H實(shí)現(xiàn),即由偶地址端口寫入:
EOI00100000特征位,表示對OCW2操作20H56編程在中斷子程IRET返回前,發(fā)中斷結(jié)束命令EOI例
已知IBMPC系統(tǒng)中,8259A的偶地址端口地址為20H;
BIOS初始化8259A時(shí),設(shè)置8259A工作方式為非自動清0方式。intsubPROC
、、、、、、、、、
MOVAL,20H;將中斷結(jié)束命令字20H送AL
OUT20H,AL;寫入OCW2中
IRET;中斷返回
intsubENDP57四、8259A在IBMPC/XT系統(tǒng)中的應(yīng)用1.8259A與系統(tǒng)的連線。2.BIOS初始化程序?qū)?259A的設(shè)置。581.與系統(tǒng)的連線+5V
CLKRESETREADYMN/MXVCCRDQS0QS1LOCKTESTHIGHNMIGNDGND地址鎖存器8282(兩片)STB
數(shù)據(jù)收發(fā)器OE8286T
MRDC8288MWTC
總線IORC控制器IOWCINTA8259A及有關(guān)電路DT/RDENALE地址總線數(shù)據(jù)總線控制總線PC總線A15~A8S6~S3/A19~A16AD7~AD08088CPUS0S1S2INTRRQ/GT0RQ/GT1內(nèi)存I/O接口注意:8259A在連線中的位置59①
8259A的片選地址范圍為20~3FH
偶、奇端口地址通常取用20H、21H方波鍵盤保留串口2
硬盤軟盤打印機(jī)IOW18.2HzA0CS8259A總線A0數(shù)據(jù)線IORRDWR片選譯碼IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A級連情況INTAINTINTAINTR串口1
60IR0接一個(gè)頻率為18.2Hz的方波;
若CPU對該申請給予響應(yīng),
則每秒執(zhí)行18.2次該申請對應(yīng)的中斷子程。
IR1接鍵盤接口發(fā)出的中斷申請;每按下一鍵,若CPU對該申請給予響應(yīng),
則執(zhí)行一次該申請對應(yīng)的中斷子程。
IR2~IR7通過系統(tǒng)總線引出,
對應(yīng)引腳信號為IRQ2~IRQ7。18.2Hz時(shí)鐘信號
②8259A的8個(gè)中斷申請與外設(shè)的連接618088INTR主板IF鍵盤18.2Hz方波8259AINT中斷屏蔽寄存器鍵盤中斷申請IR1IR2~IR7IR0當(dāng)前中斷服務(wù)寄存器鍵盤接口IRQ2~IRQ7PC總線外設(shè)接口外設(shè)08h09h0Ah~0FhIBMPC/XT微機(jī)可屏蔽中斷響應(yīng)過程示意圖
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GH/T 1448-2024雅安藏茶原料要求
- 2024屆內(nèi)蒙古自治區(qū)錫林郭勒盟高三上學(xué)期期末考試歷史試題(解析版)
- 2024-2025學(xué)年浙江省杭州地區(qū)(含周邊)重點(diǎn)中學(xué)高二上學(xué)期期中考試歷史試題(解析版)
- 廣東省廣州市天河區(qū)2025屆高三上學(xué)期綜合測試(一)英語試卷含答案
- 《美術(shù)基本種類》課件
- 單位管理制度集合大合集【人員管理】十篇
- 單位管理制度匯編大合集【人力資源管理篇】十篇
- 單位管理制度合并匯編人員管理
- 單位管理制度分享匯編【職員管理】十篇
- 高中語文一些重要的文化常識
- 裝配作業(yè)指導(dǎo)書
- 教代會會場背景(紅旗)圖片課件
- 腦出血護(hù)理查房-中醫(yī)院
- 森林生態(tài)系統(tǒng)固碳現(xiàn)狀、速率、機(jī)制和潛力研究實(shí)施方案細(xì)則
- 公眾責(zé)任保險(xiǎn)知識培訓(xùn)教育課件
- 深基坑事故案例
- 中國茶文化(中文版)
- 02J401鋼梯安裝圖集
- 川省成都市2022屆高二上學(xué)期期末考試:英語
- 人教版小學(xué)三年級語文上冊第三單元集體備課活動記錄
- 消防安全操作規(guī)程
評論
0/150
提交評論