第8章中斷技術(shù)_第1頁
第8章中斷技術(shù)_第2頁
第8章中斷技術(shù)_第3頁
第8章中斷技術(shù)_第4頁
第8章中斷技術(shù)_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第8 8章章 中斷技術(shù)中斷技術(shù)8.1 8.1 中斷的概念與類型中斷的概念與類型8.1.18.1.1 中斷的概念中斷的概念1 1、中斷:是指、中斷:是指CPUCPU在正常運(yùn)行程序時,由于內(nèi)部在正常運(yùn)行程序時,由于內(nèi)部/ /外外部事件或由程序,而轉(zhuǎn)到為中斷事件服務(wù)的程序部事件或由程序,而轉(zhuǎn)到為中斷事件服務(wù)的程序中去,服務(wù)完畢再返回執(zhí)行原程序,這一過程稱中去,服務(wù)完畢再返回執(zhí)行原程序,這一過程稱為中斷。為中斷。 硬件中斷硬件中斷: 由外部硬件產(chǎn)生的中斷。由外部硬件產(chǎn)生的中斷。 軟件中斷軟件中斷: 由程序預(yù)先安排的中斷。由程序預(yù)先安排的中斷。 中斷的特征中斷的特征:具有隨機(jī)性。:具有隨機(jī)性。2 2、

2、中斷系統(tǒng)應(yīng)具有的功能、中斷系統(tǒng)應(yīng)具有的功能(1 1)中斷接受功能)中斷接受功能(2 2)中斷響應(yīng)功能)中斷響應(yīng)功能(3 3)中斷屏蔽功能)中斷屏蔽功能(4 4)中斷排對功能)中斷排對功能(5 5)中斷嵌套功能)中斷嵌套功能(6 6)中斷返回功能)中斷返回功能(7 7)中斷共享功能)中斷共享功能8.1.2 8.1.2 中斷的類型中斷的類型 在在3232位微機(jī)中,位微機(jī)中,將外部硬件中斷稱為將外部硬件中斷稱為中中斷斷,而把內(nèi)部中斷稱為,而把內(nèi)部中斷稱為異常異常,系統(tǒng)最系統(tǒng)最多支持多支持256256個中斷或異常。個中斷或異常。1 1、中斷、中斷(1 1)可屏蔽中斷)可屏蔽中斷INTRINTR通過中斷

3、控制器向微處理器申請而產(chǎn)生的中通過中斷控制器向微處理器申請而產(chǎn)生的中斷,它可以用指令屏蔽與開放。斷,它可以用指令屏蔽與開放。(2 2)不可屏蔽中斷)不可屏蔽中斷NMINMI通過中斷請求線通過中斷請求線NMINMI向微處理器申請而產(chǎn)生向微處理器申請而產(chǎn)生的中斷,它可以用指令屏蔽與開放。的中斷,它可以用指令屏蔽與開放。2 2、異常、異常由由CPUCPU的內(nèi)部事件引起的中斷叫做異常的內(nèi)部事件引起的中斷叫做異常(1 1)軟件中斷)軟件中斷 由軟件中斷指令引起的中斷,例由軟件中斷指令引起的中斷,例INTnINTn、INT0INT0、INT3INT3等。無中斷響應(yīng)周期,中斷號由指令中給等。無中斷響應(yīng)周期,

4、中斷號由指令中給出;該中斷無法屏蔽。出;該中斷無法屏蔽。(2 2)異常)異常 指令執(zhí)行發(fā)生錯誤而引起的中斷,這種情況下指令執(zhí)行發(fā)生錯誤而引起的中斷,這種情況下必須啟動一個處理程序以解決問題,并恢復(fù)這必須啟動一個處理程序以解決問題,并恢復(fù)這條指令或下條指令的執(zhí)行。條指令或下條指令的執(zhí)行。8.2 8.2 中斷號中斷號1 1、中斷號、中斷號 系統(tǒng)給每個中斷與異常分配了一個中斷號,以系統(tǒng)給每個中斷與異常分配了一個中斷號,以便識別與處理。便識別與處理。3232位微機(jī)支持位微機(jī)支持256256個中斷號,并個中斷號,并對中斷和異常統(tǒng)一編號為對中斷和異常統(tǒng)一編號為0-2550-255號。在向量中斷號。在向量中

5、斷中,中,CPUCPU可通過它找到中斷服務(wù)程序的入口地址,可通過它找到中斷服務(wù)程序的入口地址,實(shí)現(xiàn)程序的轉(zhuǎn)移。實(shí)現(xiàn)程序的轉(zhuǎn)移。2 2、1616位微處理器的中斷號分配位微處理器的中斷號分配1616位位微微處處理理器器的的中中斷斷號號分分配配8.3 8.3 中斷優(yōu)先級中斷優(yōu)先級1 1、中斷優(yōu)先級、中斷優(yōu)先級 當(dāng)系統(tǒng)有多個中斷源同時申請中斷時,當(dāng)系統(tǒng)有多個中斷源同時申請中斷時,CPUCPU在在一個時刻只能響應(yīng)和處理一個中斷,因此必一個時刻只能響應(yīng)和處理一個中斷,因此必須進(jìn)行優(yōu)先級排隊(duì)。須進(jìn)行優(yōu)先級排隊(duì)。2 2、中斷的排隊(duì)方式、中斷的排隊(duì)方式按優(yōu)先級排隊(duì)按優(yōu)先級排隊(duì)循環(huán)輪流排隊(duì)循環(huán)輪流排隊(duì)3 3、中斷

6、嵌套、中斷嵌套 當(dāng)當(dāng)CPUCPU正處理某個中斷時,出現(xiàn)更高級中斷源正處理某個中斷時,出現(xiàn)更高級中斷源的申請,的申請,CPUCPU必須暫停該中斷服務(wù),轉(zhuǎn)而去處理更必須暫停該中斷服務(wù),轉(zhuǎn)而去處理更高級中斷的服務(wù),待處理完后,再返回到被中斷的高級中斷的服務(wù),待處理完后,再返回到被中斷的服務(wù)程序繼續(xù)執(zhí)行。服務(wù)程序繼續(xù)執(zhí)行。 高級中斷可中斷低級中斷高級中斷可中斷低級中斷響應(yīng)響應(yīng)1 1響應(yīng)響應(yīng)2 2中中斷斷服服務(wù)務(wù)返回返回返回返回主主程程序序中中斷斷服服務(wù)務(wù)8.4 8.4 中斷向量與中斷向量表中斷向量與中斷向量表1 1、中斷向量、中斷向量 CPUCPU響應(yīng)中斷后,中斷源提供地址信息響應(yīng)中斷后,中斷源提供地

7、址信息, ,由此地址信息對程序的執(zhí)行進(jìn)行導(dǎo)向,由此地址信息對程序的執(zhí)行進(jìn)行導(dǎo)向,引導(dǎo)到引導(dǎo)到中斷服務(wù)程序中去執(zhí)行中斷服務(wù)程序中去執(zhí)行,所以把,所以把這個地址稱為這個地址稱為中斷向量。中斷向量。 在實(shí)模式下,中斷向量包括中斷服務(wù)程序在實(shí)模式下,中斷向量包括中斷服務(wù)程序的段基址的段基址CSCS,偏址地址,偏址地址IPIP共共4 4個字節(jié)。個字節(jié)。 2 2、中斷向量表中斷向量表 所有的中斷向量集中存放到存儲器的某所有的中斷向量集中存放到存儲器的某一區(qū)域,這一區(qū)域稱之為中斷向量表。一區(qū)域,這一區(qū)域稱之為中斷向量表。 在實(shí)模式下,規(guī)定存儲器的在實(shí)模式下,規(guī)定存儲器的000H-03FFH000H-03FF

8、H作為中斷向量存儲區(qū)(共作為中斷向量存儲區(qū)(共10241024個字節(jié)),每個字節(jié)),每個中斷向量包含個中斷向量包含4 4個字節(jié),可容納個字節(jié),可容納256256個中斷個中斷向量,即可處理向量,即可處理256256個中斷服務(wù)程序。個中斷服務(wù)程序。3 3、中斷向量的填寫、中斷向量的填寫 對于系統(tǒng)中沒配置系統(tǒng)軟件時,需由用戶對于系統(tǒng)中沒配置系統(tǒng)軟件時,需由用戶自己裝入中斷向量。設(shè)中斷類型號為自己裝入中斷向量。設(shè)中斷類型號為60H60H用用MOVMOV指令填寫中斷向量指令填寫中斷向量CLICLICLDCLD ;內(nèi)存地址加;內(nèi)存地址加MOV AXMOV AX,0 0MOV ESMOV ES,AXAXMO

9、V DIMOV DI,4 4* *60H 60H ;中斷向量指針;中斷向量指針DIDIMOV AXMOV AX,OFFSET INTRn OFFSET INTRn ;中斷服務(wù)程序的偏移地址;中斷服務(wù)程序的偏移地址AXAXSTOSW STOSW ;AXAXDIDI+1DIDI+1中,然后中,然后DI+2DI+2MOV AXMOV AX,SEG INTRn SEG INTRn ;中斷服務(wù)程序的段基址;中斷服務(wù)程序的段基址AX AX STOSW STOSW ;AXAXDI+1DI+2DI+1DI+2STISTI4 4、中斷向量的修改、中斷向量的修改當(dāng)使用當(dāng)使用PCPC機(jī)的某個中斷號時,需分三步修改機(jī)

10、的某個中斷號時,需分三步修改: 用用35H35H號功能,獲取原中斷向量。號功能,獲取原中斷向量。 用用25H25H號功能,設(shè)置新中斷向量,取代原中斷向量。號功能,設(shè)置新中斷向量,取代原中斷向量。 新服務(wù)程序執(zhí)行完畢后,利用新服務(wù)程序執(zhí)行完畢后,利用25H25H號功能恢復(fù)原中斷向量。號功能恢復(fù)原中斷向量。例:修改中斷號為例:修改中斷號為60H60H的中斷向量。的中斷向量。 第第步:步:MOV AHMOV AH,35H35H;取原中斷向量;取原中斷向量MOV ALMOV AL,60H60H;60H60H為原中斷號為原中斷號INT 21HINT 21HMOV OLD_SEGMOV OLD_SEG,E

11、SES ;保存原中斷向量;保存原中斷向量MOV OLD_OFFMOV OLD_OFF,BXBX第第步:步:MOV AHMOV AH,25H25H ;設(shè)置新中斷向量;設(shè)置新中斷向量MOV ALMOV AL,60H 60H ;中斷號;中斷號MOV DXMOV DX,SEG INTRn SEG INTRn ;INTRnINTRn是新中斷程序的入口地址是新中斷程序的入口地址MOV DSMOV DS,DXDX ;DSDS指向新中斷程序段地址指向新中斷程序段地址MOV DXMOV DX,OFFSET INTRn OFFSET INTRn ;DXDX指向新中斷程序偏移地址指向新中斷程序偏移地址INT 21H

12、INT 21H第第步:步:MOV AHMOV AH,25H25H ;恢復(fù)舊的中斷向量;恢復(fù)舊的中斷向量MOV ALMOV AL,60H 60H ;中斷號;中斷號MOV DXMOV DX,OLD_SEGOLD_SEGMOV DSMOV DS,DXDX ;DSDS指向舊中斷程序段址指向舊中斷程序段址MOV DXMOV DX,OLD_OFF OLD_OFF ;DXDX指向舊中斷程序偏移地址指向舊中斷程序偏移地址INT 21HINT 21H在在PCPC機(jī)環(huán)境下,中斷服務(wù)程序的編寫格式:機(jī)環(huán)境下,中斷服務(wù)程序的編寫格式:1 1、在數(shù)據(jù)段中定義、在數(shù)據(jù)段中定義DATA SEGMENTDATA SEGMEN

13、T OLD_SEG OLD_SEGDWDW?;原中斷服務(wù)程序的段地址;原中斷服務(wù)程序的段地址 OLD_OFFOLD_OFFDWDW?;原中斷服務(wù)程序的偏移地址;原中斷服務(wù)程序的偏移地址DATA ENDSDATA ENDS2 2、在代碼段寫程序、在代碼段寫程序CODE SEGMENTCODE SEGMENT MOV AHMOV AH,35H35H ;取原中斷向量;取原中斷向量 MOV ALMOV AL,60H60H ;60H60H為原中斷號為原中斷號 INT 21HINT 21H MOV OLD_SEG MOV OLD_SEG,ESES ;保存原中斷向量;保存原中斷向量 MOV OLD_OFFM

14、OV OLD_OFF,BXBX MOV AHMOV AH,25H25H ;設(shè)置新中斷向量;設(shè)置新中斷向量 MOV ALMOV AL,60H 60H ;中斷號;中斷號 MOV DXMOV DX,SEG INTRn SEG INTRn ;INTRnINTRn是新中斷程序的入口是新中斷程序的入口 MOV DSMOV DS,DXDX ;DSDS指向新中斷程序段地址指向新中斷程序段地址 MOV DXMOV DX,OFFSET INTRn OFFSET INTRn ;DXDX指向新中斷程序偏移地址指向新中斷程序偏移地址 INT 21HINT 21H ;程序主體;程序主體 MOV AHMOV AH,25H2

15、5H;恢復(fù)舊的中斷向量;恢復(fù)舊的中斷向量 MOV ALMOV AL,60H 60H ;中斷號;中斷號 MOV DXMOV DX,OLD_SEGOLD_SEG MOV DS MOV DS,DXDX ;DSDS指向舊中斷程序段址指向舊中斷程序段址 MOV DXMOV DX,OLD_OFF OLD_OFF ;DXDX指向舊中斷程序偏移地址指向舊中斷程序偏移地址 INT 21HINT 21H MOV AH MOV AH,4CH4CH INT 21H INT 21HINTRn PROCINTRn PROC PUSH PUSHAXAX ;中斷服務(wù)程序的主體;中斷服務(wù)程序的主體 POP AXPOP AX I

16、RET IRETCODE ENDS CODE ENDS 微機(jī)中斷程序設(shè)計(jì)舉例微機(jī)中斷程序設(shè)計(jì)舉例【例【例8-18-1】利用中斷號】利用中斷號5 5來設(shè)計(jì)一個中斷處理程序,能輸出字符串來設(shè)計(jì)一個中斷處理程序,能輸出字符串“example example for int”for int”。 DATA DATASEGMENTSEGMENT OLD_SEG DW ? OLD_SEG DW ?;用來保存舊的中斷向量;用來保存舊的中斷向量 OLD_OFF DW ?OLD_OFF DW ? HELLO DB example for int,0Dh,0AH,$ HELLO DB example for int

17、,0Dh,0AH,$ DATA DATA ENDSENDS CODE CODE SEGMENTSEGMENT ASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATA START:MOV AX,DATA START:MOV AX,DATAMOV DS,AXMOV DS,AX MOV AH,35H MOV AH,35H ; ;取原中斷向量取原中斷向量 MOV AL,5H MOV AL,5H ;5H;5H為原中斷號為原中斷號 INT 21HINT 21H MOV OLD_SEG,ES MOV OLD_SEG,ES ; ;保存原中斷向量保存原中斷向量 MOV OLD_

18、OFF,BXMOV OLD_OFF,BX MOV AH,25H MOV AH,25H ; ;設(shè)置新中斷向量設(shè)置新中斷向量 MOV AL,5H MOV AL,5H ; ;中斷號中斷號 MOV DX,SEG INTRn MOV DX,SEG INTRn ;INTRn;INTRn是新中斷程序的入口是新中斷程序的入口 MOV DS,DX MOV DS,DX ;DS;DS指向新中斷程序段地址指向新中斷程序段地址 MOV DX,OFFSET INTRn MOV DX,OFFSET INTRn ;DX;DX指向新中斷程序偏移地址指向新中斷程序偏移地址 INT 21HINT 21HMOV AX,DATAMOV

19、 AX,DATA;恢復(fù)數(shù)據(jù)段;恢復(fù)數(shù)據(jù)段MOV DS,AXMOV DS,AX MOV CX,10 MOV CX,10;程序主體;程序主體 L1:L1: INT 5HINT 5HLOOP L1LOOP L1 MOV AH,25H MOV AH,25H ; ;恢復(fù)舊的中斷向量恢復(fù)舊的中斷向量 MOV AL,5H MOV AL,5H ; ;中斷號中斷號MOV DX,OLD_SEGMOV DX,OLD_SEG MOV DS,DX MOV DS,DX ;DS;DS指向舊中斷程序段址指向舊中斷程序段址 MOV DX,OLD_OFF MOV DX,OLD_OFF ;DX;DX指向舊中斷程序偏移地址指向舊中斷

20、程序偏移地址 INT 21HINT 21H MOV AH,4CH MOV AH,4CHINT 21HINT 21H INTRn PROC FAR INTRn PROC FAR PUSH AX PUSH AX PUSH DX PUSH DX LEA DX,HELLOLEA DX,HELLO MOV AH,9 MOV AH,9INT 21HINT 21HPOP DXPOP DX POP AX POP AX IRET IRET INTRn ENDP INTRn ENDP CODE ENDS CODE ENDS END START END START8.6 8.6 中斷中斷/ /異常處理異常處理8.6

21、.1 8.6.1 實(shí)模式下中斷實(shí)模式下中斷/ /異常處理異常處理1 1、可屏蔽中斷的處理、可屏蔽中斷的處理包括包括4 4個階段:個階段:(1 1)中斷申請與響應(yīng)握手)中斷申請與響應(yīng)握手(2 2)標(biāo)志位的處理與斷點(diǎn)保存)標(biāo)志位的處理與斷點(diǎn)保存(3 3)向中斷服務(wù)程序轉(zhuǎn)移并執(zhí)行中斷服務(wù)程序)向中斷服務(wù)程序轉(zhuǎn)移并執(zhí)行中斷服務(wù)程序(4 4)返回?cái)帱c(diǎn))返回?cái)帱c(diǎn)下面是中斷申請與響應(yīng)握手過程:下面是中斷申請與響應(yīng)握手過程:INTAINTA1 1使使CPUCPU輸出總線封鎖信號,而輸出總線封鎖信號,而8259A8259A將將 選中的最高優(yōu)先級置位選中的最高優(yōu)先級置位ISRISR,清相應(yīng),清相應(yīng)IRRIRR位。

22、位。INTAINTA2 2使使CPUCPU撤消總線封鎖信號,撤消總線封鎖信號,8259A8259A送對送對 應(yīng)的中斷號到數(shù)據(jù)總線上。應(yīng)的中斷號到數(shù)據(jù)總線上。T T1 1T T2 2T T3 3T T4 4T T1 1T T2 2T T3 3T T4 4中斷號中斷號CLKCLK(時鐘)(時鐘)ALEALE(地址允許)(地址允許)LOCKLOCK(總線鎖定)(總線鎖定)INTAINTA(中斷應(yīng)答)(中斷應(yīng)答)D D0 0D D7 7(數(shù)據(jù))(數(shù)據(jù))圖圖5.8 5.8 中斷響應(yīng)周期中斷響應(yīng)周期INATINAT1 1INATINAT2 2中中斷斷控控制制器器8 82 25 59 9A A中中斷斷類類型

23、型號號為為60H60H的的設(shè)設(shè)備備IRIR0 0INTRINTRINTAINTACPUCPU開中斷,接收開中斷,接收INTRINTR請求請求CPUCPU發(fā)發(fā)INTAINTA響應(yīng),在第二個響應(yīng),在第二個INTAINTA周周 期中,外部中斷控制器送中斷類型號期中,外部中斷控制器送中斷類型號OLDFLAG OLDFLAG STACKSTACKOLDCS OLDCS STACK STACK(60H(60H* *4+2)=(182H)=1240H 4+2)=(182H)=1240H CS CSOLDIP OLDIP STACK STACK (60H(60H* *4)=0200H=(180H) 4)=02

24、00H=(180H) IP IP執(zhí)行在執(zhí)行在CS=1240HCS=1240H,IP=0200HIP=0200H處的中處的中 斷服務(wù)程序斷服務(wù)程序執(zhí)行執(zhí)行IRETIRET中斷返回指令中斷返回指令 OLDIPOLDIP退棧退棧 OLDCSOLDCS退棧退棧 OLDFLAGOLDFLAG退棧退棧繼續(xù)執(zhí)行當(dāng)前程序中的下一條指令繼續(xù)執(zhí)行當(dāng)前程序中的下一條指令CPUCPU外設(shè)外設(shè)RAMRAM0200H0200H1240H1240HCSCS1240H1240HIPIP0200H0200H類型為類型為60H60H的中斷服的中斷服務(wù)程序務(wù)程序0180H0180H0182H0182HOLDIPOLDIPOLDCS

25、OLDCSOLDFLAGOLDFLAGSSSS3000H3000HSPSP0100H0100HCSCSOLDCSOLDCSIPIPOLDIPOLDIPINTRINTR當(dāng)當(dāng)前前程程序序堆堆棧棧中中斷斷服服務(wù)務(wù)程程序序中中斷斷向向量量表表中中斷斷控控制制器器8 82 25 59 9A A中中斷斷類類型型號號為為60H60H的的設(shè)設(shè)備備IRIR0 0INTRINTRINTAINTA CPUCPU開中斷,接收開中斷,接收INTRINTR請求請求 CPU CPU發(fā)發(fā)INTAINTA響應(yīng),在第二個響應(yīng),在第二個INTAINTA周周 期中,外部中斷控制器送中斷類型號期中,外部中斷控制器送中斷類型號 OLDF

26、LAG OLDFLAG STACKSTACK OLDCS OLDCS STACK STACK (60H (60H* *4+2)=(4+2)=(182H182H)=1240H )=1240H CS CS OLDIP OLDIP STACK STACK (60H (60H* *4)=(4)=(180H180H)=0200H )=0200H IP IP 執(zhí)行在執(zhí)行在CS=1240HCS=1240H,IP=0200HIP=0200H處的中處的中 斷服務(wù)程序斷服務(wù)程序 執(zhí)行執(zhí)行IRETIRET中斷返回指令中斷返回指令 OLDIPOLDIP退棧退棧 OLDCSOLDCS退棧退棧 OLDFLAGOLDFLA

27、G退棧退棧 繼續(xù)執(zhí)行當(dāng)前程序中的下一條指令繼續(xù)執(zhí)行當(dāng)前程序中的下一條指令CPUCPU外設(shè)外設(shè)RAMRAM0200H0200H1240H1240HCSCS1240H1240HIPIP0200H0200H類型為類型為60H60H的中斷服的中斷服務(wù)程序務(wù)程序0180H0180H0182H0182HOLDIPOLDIPOLDCSOLDCSOLDFLAGOLDFLAGSSSS3000H3000HSPSP0100H0100HCSCSOLDCSOLDCSIPIPOLDIPOLDIP斷點(diǎn)斷點(diǎn)INTRINTR當(dāng)當(dāng)前前程程序序堆堆棧棧中中斷斷服服務(wù)務(wù)程程序序中中斷斷向向量量表表中斷過程中斷過程2 2、不可屏蔽中斷

28、的處理、不可屏蔽中斷的處理也包括也包括4 4個階段個階段(1 1)中斷申請與響應(yīng)握手)中斷申請與響應(yīng)握手必須立即響應(yīng),但不發(fā)中斷響應(yīng)信號必須立即響應(yīng),但不發(fā)中斷響應(yīng)信號。(2 2)標(biāo)志位的處理與斷點(diǎn)保存)標(biāo)志位的處理與斷點(diǎn)保存與可屏蔽中斷類似。與可屏蔽中斷類似。(3 3)向中斷服務(wù)程序轉(zhuǎn)移并執(zhí)行中斷服務(wù)程序)向中斷服務(wù)程序轉(zhuǎn)移并執(zhí)行中斷服務(wù)程序NMINMI中斷向量的兩個字放在中斷向量的兩個字放在0008H0008H和和000AH000AH處處。(4 4)返回?cái)帱c(diǎn))返回?cái)帱c(diǎn)8.7 8.7 中斷控制器中斷控制器8.7.1 82C59A8.7.1 82C59A外部特性和內(nèi)部寄存器外部特性和內(nèi)部寄存器

29、1.1.外部特性外部特性面向面向CPUCPU的信號的信號面向外設(shè)的面向外設(shè)的8 8根中斷請求線根中斷請求線面向同類芯片的中斷請求級聯(lián)線面向同類芯片的中斷請求級聯(lián)線INT nINT n指令指令中斷邏輯中斷邏輯非屏蔽中斷請求非屏蔽中斷請求中中斷斷控控制制系系統(tǒng)統(tǒng)可可屏屏蔽蔽中中斷斷請請求求INT3INT3指令指令I(lǐng)NT4INT4指令指令單步單步中斷中斷除除0 0中斷中斷NMINMIINTRINTR軟件中斷軟件中斷硬件中斷硬件中斷82C59A82C59A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)圖圖8.5 82C59A8.5 82C59A的外部引腳與內(nèi)部寄存器的外部引腳與內(nèi)部寄存器數(shù)據(jù)總線數(shù)據(jù)總線緩沖器緩沖器讀讀/ /寫

30、寫邏輯邏輯級聯(lián)級聯(lián)緩沖緩沖/ /比較器比較器控制邏輯控制邏輯正在服務(wù)正在服務(wù)寄存器寄存器ISRISR優(yōu)先級優(yōu)先級分析器分析器PRPR中斷請求中斷請求寄存器寄存器IRRIRR中斷屏蔽寄存器中斷屏蔽寄存器 IMRIMRIRIR0 0IRIR1 1IRIR2 2IRIR3 3IRIR4 4IRIR5 5IRIR6 6IRIR7 7D D0 0D D7 7INTINTA A0 0CASCAS0 0CASCAS1 1CASCAS2 2SP/ENSP/ENCSCSWRWRRDRDINTAINTA2 2、內(nèi)部寄存器、內(nèi)部寄存器中斷請求寄存器中斷請求寄存器(IRRIRR) 它存放它存放IRIR線上提出了中斷請

31、求的中斷線上提出了中斷請求的中斷源,該寄存器源,該寄存器8 8位(位(D D0 0D D7 7)對應(yīng)于連接在)對應(yīng)于連接在IRIR0 0IRIR7 7線上的外設(shè)所產(chǎn)生的中斷請求。哪線上的外設(shè)所產(chǎn)生的中斷請求。哪 一根輸入線有請求,哪位就置一根輸入線有請求,哪位就置“1”1”。中斷屏蔽寄存器中斷屏蔽寄存器(IMRIMR) 是對中斷請求是對中斷請求IRIRi i起屏蔽作用,即對中起屏蔽作用,即對中斷請求斷請求IRIRi i是屏蔽還是允許,寄存器是屏蔽還是允許,寄存器8 8位對應(yīng)位對應(yīng)8 8級中斷屏蔽。哪一級中斷被屏蔽,哪位就級中斷屏蔽。哪一級中斷被屏蔽,哪位就寫寫“1”1”,即禁止,即禁止IRIR

32、i i提出中斷請求。提出中斷請求。D Di i= =0 0 開中斷開中斷1 1 關(guān)中斷關(guān)中斷正在服務(wù)寄存器正在服務(wù)寄存器ISRISR 在中斷響應(yīng)之后,第一個獲準(zhǔn)中斷請求在中斷響應(yīng)之后,第一個獲準(zhǔn)中斷請求的中斷級在相應(yīng)的的中斷級在相應(yīng)的ISRISR中置位(如中置位(如IRIR3 3獲準(zhǔn),獲準(zhǔn),ISRISR中的中的ISIS3 3置位,表明置位,表明IRIR3 3正處于服務(wù))。因正處于服務(wù))。因此,此,ISRISR被用來存放正在被服務(wù)的所有中斷級,被用來存放正在被服務(wù)的所有中斷級,包括尚沒服務(wù)完而中途被別的中斷所打斷了包括尚沒服務(wù)完而中途被別的中斷所打斷了的中斷級。的中斷級。 在非自動中斷結(jié)束方式下

33、,在非自動中斷結(jié)束方式下,ISRISR的復(fù)位,的復(fù)位,要有中斷結(jié)束命令要有中斷結(jié)束命令EOIEOI來執(zhí)行。來執(zhí)行。優(yōu)先權(quán)分析器優(yōu)先權(quán)分析器(PRPR) 優(yōu)先排隊(duì)當(dāng)在優(yōu)先排隊(duì)當(dāng)在IRIRi i輸入端有中斷產(chǎn)生時,輸入端有中斷產(chǎn)生時,送到送到PRPR,PRPR檢查進(jìn)來的中斷請求的優(yōu)先級并檢查進(jìn)來的中斷請求的優(yōu)先級并和和“正在服務(wù)中的中斷正在服務(wù)中的中斷”進(jìn)行比較,確定是進(jìn)行比較,確定是否讓這個中斷請求送給處理器。否讓這個中斷請求送給處理器。 8.7.1 82C59A8.7.1 82C59A的工作方式的工作方式1 1、中斷觸發(fā)方式、中斷觸發(fā)方式確定中斷請求的啟動方式確定中斷請求的啟動方式邊沿觸發(fā)方式

34、邊沿觸發(fā)方式。IR0-IR7IR0-IR7線上出現(xiàn)由低到高線上出現(xiàn)由低到高的跳變,表示有中斷請求。的跳變,表示有中斷請求。電平電平觸觸發(fā)方式發(fā)方式。 IR0-IR7IR0-IR7線上出現(xiàn)高電平時線上出現(xiàn)高電平時變,表示有中斷請求。變,表示有中斷請求。2 2、中斷級聯(lián)方式、中斷級聯(lián)方式 82C5982C59可以單片使用,也可以多片使用,可以單片使用,也可以多片使用,級聯(lián)方式應(yīng)用時有主片和從片的問題。級聯(lián)方式應(yīng)用時有主片和從片的問題。82C5982C59在在1616位微機(jī)上的級聯(lián)位微機(jī)上的級聯(lián)4 4、中斷優(yōu)先級排對、中斷優(yōu)先級排對 完全嵌套方式完全嵌套方式只能高優(yōu)先級中斷低優(yōu)先級的中斷。只能高優(yōu)先

35、級中斷低優(yōu)先級的中斷。 特殊完全嵌套方式特殊完全嵌套方式同級優(yōu)先級的中斷可以相互中斷。同級優(yōu)先級的中斷可以相互中斷。 優(yōu)先級輪換方式。被服務(wù)完的中斷源優(yōu)先級將優(yōu)先級輪換方式。被服務(wù)完的中斷源優(yōu)先級將自動變?yōu)樽畹?,而其后的中斷源的?yōu)先級將變?yōu)樽钭詣幼優(yōu)樽畹停浜蟮闹袛嘣吹膬?yōu)先級將變?yōu)樽罡?。高。?yōu)先級輪換方式有兩種優(yōu)先級輪換方式有兩種 優(yōu)先級自動輪換方式:當(dāng)一個中斷被服務(wù)后,優(yōu)先級自動輪換方式:當(dāng)一個中斷被服務(wù)后,自動降為最低,初始順序是:自動降為最低,初始順序是:IRIR0 0,IRIR1 1, 優(yōu)先級指定輪換方式:與優(yōu)先級指定輪換方式:與的差別是,初始輪的差別是,初始輪換的優(yōu)先級可以由程序指

36、定。換的優(yōu)先級可以由程序指定。5 5、中斷結(jié)束方式、中斷結(jié)束方式 自動結(jié)束方式自動結(jié)束方式 在中斷響應(yīng)周期,就自動清零了該中斷源在中斷響應(yīng)周期,就自動清零了該中斷源的的ISRISR寄存器中被置寄存器中被置1 1的位。這常用于沒有中斷的位。這常用于沒有中斷嵌套的系統(tǒng)。嵌套的系統(tǒng)。 非自動結(jié)束方式非自動結(jié)束方式 在中斷服務(wù)程序后,必須使用中斷結(jié)束命在中斷服務(wù)程序后,必須使用中斷結(jié)束命令令EOIEOI才能清除才能清除ISRISR中的相應(yīng)位。這是最常用的中的相應(yīng)位。這是最常用的中斷結(jié)束方式。中斷結(jié)束方式。它有兩種形式:它有兩種形式: 指定中斷結(jié)束命令:即要指定結(jié)束中斷指定中斷結(jié)束命令:即要指定結(jié)束中斷

37、 請求線請求線IRIRi i的編號。的編號。 不指定中斷結(jié)束命令:不指定不指定中斷結(jié)束命令:不指定IRIRi i的編號。的編號。8.7.3 82C59A8.7.3 82C59A的編程的編程中斷操作功能:中斷操作功能: 請求請求 屏蔽屏蔽 排隊(duì)排隊(duì) 結(jié)束結(jié)束 級聯(lián)級聯(lián) 中斷類型號中斷類型號 查詢查詢 下面討論為實(shí)現(xiàn)這些功能的各個命令字的含下面討論為實(shí)現(xiàn)這些功能的各個命令字的含義,為編程使用義,為編程使用82C59A82C59A提供一些思路。提供一些思路。1 1、初始化命令字(、初始化命令字( ICW1 ICW1 ICW4 ICW4 ) 必須在對必須在對82C59A82C59A初始化時完成。需要按

38、順初始化時完成。需要按順序發(fā)送序發(fā)送ICW1 ICW1 ICW4ICW4 1. 1.中斷請求觸發(fā)方式的設(shè)定中斷請求觸發(fā)方式的設(shè)定(ICWICW1 1)功能功能:設(shè)定中斷請求的觸發(fā)方式(電平觸發(fā)或:設(shè)定中斷請求的觸發(fā)方式(電平觸發(fā)或邊沿觸發(fā))、級聯(lián)和邊沿觸發(fā))、級聯(lián)和CPUCPU的特性。的特性。 ICWICW1 1的格式:的格式:ICWICW1 10 0A A0 00 00 00 01 1LTIMLTIMADIADISNGLSNGLICIC4 41616位機(jī)無效位機(jī)無效特征位特征位 電平觸發(fā)電平觸發(fā) 無效無效單片使用單片使用需要需要ICWICW4 4D D7 7D D6 6D D5 5D D4

39、4D D3 3D D2 2D D1 1D D0 0例例. .若若8259A8259A采用電平觸發(fā),單片使用,需要采用電平觸發(fā),單片使用,需要 ICWICW4 4(對(對1616位機(jī)以上,位機(jī)以上,D D0 0=1=1),),則:則: MOV ALMOV AL,00011011B 00011011B ;ICWICW1 1的內(nèi)容的內(nèi)容 OUT 20HOUT 20H,AL AL ;寫入;寫入ICWICW1 1端口端口 ;(;(A A0 0=0=0) 微機(jī)主片的端口微機(jī)主片的端口(地址(地址A0=0A0=0)2.2.中斷類型號的設(shè)定中斷類型號的設(shè)定(ICWICW2 2) 功能:提供給功能:提供給CPU

40、CPU的中斷類型號的中斷類型號ICWICW2 21 1A A0 0T T7 7T T6 6T T5 5T T4 4T T3 30 00 00 0中斷類型號的高中斷類型號的高5 5位位1616位機(jī)無效位機(jī)無效D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0設(shè):硬盤中斷號:設(shè):硬盤中斷號:0DH 0DH 即即 0000100001101101 0000100001000000注意注意:向:向ICWICW2 2寫入中斷類型號只寫高寫入中斷類型號只寫高5 5位,低位,低 3 3位寫位寫0 0,即,即08H08H。 MOV ALMOV AL,08H 08H

41、 ;中斷類型號的高;中斷類型號的高5 5位位 OUT 21HOUT 21H,AL AL ;寫入;寫入ICWICW2 2的端口(的端口(A A0 0=1=1)接到接到IRIR5 5上上高高5 5位位中斷類型號產(chǎn)生的示意圖:中斷類型號產(chǎn)生的示意圖:CPUCPU8259A8259AICW2ICW2IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7編碼編碼000000001001010010011011100100101101110110111111由硬件完成由硬件完成由軟件完成由軟件完成3.3.中斷級聯(lián)方式的設(shè)定中斷級聯(lián)方式的設(shè)定(ICWICW3 3)(

42、1 1)級聯(lián)的結(jié)構(gòu)形式)級聯(lián)的結(jié)構(gòu)形式ICWICW3 3的格式:的格式: a.a.主片主片ICWICW3 3主片主片ICWICW3 31 1S S7 7S S6 6S S5 5S S4 4S S3 3S S2 2S S1 1S S0 0A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0表示主片的哪個表示主片的哪個IRIRi i上接有從片的中斷請求上接有從片的中斷請求INTINTb.b.從片從片ICWICW3 3從片從片ICWICW3 3A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D

43、0 01 1IDID2 2IDID1 1IDID0 0從片標(biāo)志碼從片標(biāo)志碼 ID ID2 2IDID0 0有有8 8種編碼,種編碼,表示從片的表示從片的INTINT接到接到 主片的哪一個主片的哪一個IRIRi i位位。以下圖連接為例(以下圖連接為例(82C5982C59在在1616位微機(jī)上的級聯(lián)):位微機(jī)上的級聯(lián)):例如:從片的請求線例如:從片的請求線INTINT連到主片的連到主片的IRIR2 2,則:,則:主片的主片的ICWICW3 3=00000100B=04H=00000100B=04HMOV ALMOV AL,04H04H;主片的;主片的ICWICW3 3OUT 21HOUT 21H,

44、ALAL 從片的從片的ICWICW3 3=00000010B=02H=00000010B=02H MOV ALMOV AL,02H 02H ;從片的;從片的ICWICW3 3 OUT 0A1H OUT 0A1H,ALAL;從片的地址由譯碼決定;從片的地址由譯碼決定(0A1H0A1H為從片的端口地址)為從片的端口地址) 優(yōu)先級:優(yōu)先級:IRIR0 0,1 1,8-158-15,3 3,4 4,5 5,6 6,7 7ICWICW4 4格式:格式:A A0 0=1=1 D D5 5-D-D7 7高高3 3位為位為0 0 D D4 4(SFNMSFNM)=1 =1 主片為特定完全嵌套方式主片為特定完全

45、嵌套方式 =0 =0 一般完全嵌套方式一般完全嵌套方式 D D3 3(BUFBUF)=1 =1 為緩沖方式為緩沖方式 ,SP/EN SP/EN 作輸出作輸出 線,用于控制緩沖器的方向線,用于控制緩沖器的方向 =0 =0 為非緩沖方式,為非緩沖方式,SP/ENSP/EN作輸入線作輸入線ICWICW4 41 10 00 00 0SFNMSFNMBUFBUFM/SM/S AEOIAEOI PMPMA A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0 D D2 2(M/SM/S)=1 =1 為緩沖方式下作主片為緩沖方式下作主片 =0 =0 為緩沖

46、方式下作從片為緩沖方式下作從片 注:注:非緩沖方式(非緩沖方式(BUF=0BUF=0時),則時),則M/SM/S無意義,無意義, 此時主此時主/ /從由從由SPSP端決定。端決定。 D D1 1(AEOIAEOI)=1 =1 自動結(jié)束方式,自動結(jié)束方式,ISRISR有自動有自動 復(fù)位(清復(fù)位(清0 0)功能)功能 =0 =0 為非自動結(jié)束方式,要發(fā)為非自動結(jié)束方式,要發(fā)EOIEOI命令命令 D D0 0(uPMuPM)=1 =1 用于用于1616位以上微機(jī)位以上微機(jī) =0 =0 用于用于8 8位微機(jī)位微機(jī)例例1. 1. 某計(jì)算機(jī)的某計(jì)算機(jī)的CPUCPU為為8028680286,而,而8259A

47、8259A與系與系統(tǒng)總線之間采用緩沖器連接,非自動結(jié)束方統(tǒng)總線之間采用緩沖器連接,非自動結(jié)束方式,只用式,只用1 1片片8259A8259A,正常完全嵌套。,正常完全嵌套。則:則:ICWICW4 4=00001101B=0DH=00001101B=0DH相應(yīng)的初始化程序段:相應(yīng)的初始化程序段:MOV ALMOV AL,0DH0DH OUT 21HOUT 21H,ALAL初始化命令字的設(shè)置順序:初始化命令字的設(shè)置順序: 在系統(tǒng)運(yùn)行之前,系統(tǒng)在系統(tǒng)運(yùn)行之前,系統(tǒng)中的每個中的每個8259A8259A必須按先后必須按先后次序接收次序接收CPUCPU的的2-42-4個個ICWICW初初始化命令字進(jìn)行初始

48、化。初始化命令字進(jìn)行初始化。初始化命令字始化命令字必須按規(guī)定的順必須按規(guī)定的順序?qū)懭胄驅(qū)懭搿?對對1616位機(jī),且多片,則位機(jī),且多片,則主片與從片的主片與從片的ICWICW3 3要分別寫。要分別寫。2 2、操作命令字操作命令字( OCWOCW1 1-OCW-OCW3 3 ) 初始化后,即在程序執(zhí)行中,使用初始化后,即在程序執(zhí)行中,使用OCWOCW命令命令對中斷控制器進(jìn)行動態(tài)控制。對中斷控制器進(jìn)行動態(tài)控制。 不需要按順序發(fā)送,在程序中任意安排。不需要按順序發(fā)送,在程序中任意安排。1 1、中斷屏中斷屏蔽蔽操作操作(OCWOCW1 1) 格式為:格式為:OCWOCW1 11 1M M7 7M M6

49、 6M M5 5M M4 4M M3 3M M2 2M M1 1M M0 0A A0 0D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 01=1=屏蔽屏蔽 0=0=開放開放 例例1. 1. 要使中斷源要使中斷源IRIR3 3開放,其余被屏蔽。開放,其余被屏蔽。則:則:OCWOCW1 1=11110111B=F7H=11110111B=F7H相應(yīng)的程序段:相應(yīng)的程序段: MOV ALMOV AL,0F7H0F7H OUT 21HOUT 21H,AL AL ;OCWOCW1 1內(nèi)容送端口內(nèi)容送端口 IN ALIN AL,21H 21H ;回讀;回讀21

50、H21H端口的內(nèi)容端口的內(nèi)容OCWOCW2 20 0A A0 0R RSLSLEOIEOI0 00 0L L2 2L L1 1L L0 0指定中指定中斷等級斷等級特征位特征位中斷中斷結(jié)束結(jié)束D D7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0優(yōu)先級優(yōu)先級輪換輪換中斷等級編號中斷等級編號2 2、中斷結(jié)束控制和中斷優(yōu)先級排隊(duì)控制中斷結(jié)束控制和中斷優(yōu)先級排隊(duì)控制操作操作(OCWOCW2 2)其命令格式:其命令格式:中斷結(jié)束控制中斷結(jié)束控制(OCWOCW2 2格式中的格式中的D D5 5) 當(dāng)在初始化命令當(dāng)在初始化命令I(lǐng)CWICW4 4選用非自動結(jié)束方式選用

51、非自動結(jié)束方式時,就利用時,就利用OCWOCW2 2來控制中斷結(jié)束。當(dāng)來控制中斷結(jié)束。當(dāng)EOI=1 EOI=1 則:則:SLSL(D D6 6)=0 =0 不指定中斷結(jié)束(不指定中斷結(jié)束(清最高級清最高級) L L2 2L L0 0=000=000,OCWOCW2 2=00100000B=00100000B SL SL(D D6 6)=1=1,指定中斷結(jié)束(,指定中斷結(jié)束(特殊屏蔽特殊屏蔽) L L2 2L L0 0編碼是被指定的中斷等級編碼是被指定的中斷等級 即:即:OCWOCW2 2=01100L=01100L2 2L L1 1L L0 0例:指定例:指定IRIR5 5的中斷結(jié)束,則:的中

52、斷結(jié)束,則: OCWOCW2 2=01100101B=65H=01100101B=65H作中斷優(yōu)先級排隊(duì)控制作中斷優(yōu)先級排隊(duì)控制(OCWOCW2 2格式中的格式中的D D7 7)D D7 7(R R)1 1:需要輪換優(yōu)先權(quán),分二種:需要輪換優(yōu)先權(quán),分二種 SL=SL=0 0:優(yōu)先級固定方式,則為完全嵌套方式:優(yōu)先級固定方式,則為完全嵌套方式=1=1:優(yōu)先權(quán):優(yōu)先權(quán) 指定輪換指定輪換=0=0:自動輪換:自動輪換注意注意:中斷結(jié)束方式和中斷排隊(duì)方式都用:中斷結(jié)束方式和中斷排隊(duì)方式都用OCWOCW2 2 命令來實(shí)現(xiàn),因此它的某些位功能相互交叉顯然比命令來實(shí)現(xiàn),因此它的某些位功能相互交叉顯然比較復(fù)雜,

53、但其作用只有兩個:較復(fù)雜,但其作用只有兩個: 控制中斷結(jié)束方式控制中斷結(jié)束方式 控制中斷優(yōu)先權(quán)輪換方式控制中斷優(yōu)先權(quán)輪換方式OCWOCW2 2小結(jié)小結(jié): a.a.不指定不指定EOIEOI命令,全嵌套方式:命令,全嵌套方式:0010000000100000 b. b.指定指定EOIEOI命令,全嵌套方式:命令,全嵌套方式: 01100L01100L2 2L L1 1L L0 0 c. c.不指定不指定EOIEOI方式,優(yōu)先級自動輪換:方式,優(yōu)先級自動輪換:1010000010100000 d. d.自動自動EOIEOI方式,優(yōu)先級自動輪換:方式,優(yōu)先級自動輪換:1000000010000000

54、e. e.自動自動EOIEOI方式,取消優(yōu)先級自動輪換:方式,取消優(yōu)先級自動輪換:0000000000000000 f. f.指定指定EOIEOI方式,優(yōu)先級特殊輪換:方式,優(yōu)先級特殊輪換:11100L11100L2 2L L1 1L L0 0 g. g.優(yōu)先級特殊輪換:優(yōu)先級特殊輪換:11000L11000L2 2L L1 1L L0 03 3、OCWOCW3 3的功能是的功能是 用來設(shè)置查詢中斷方式用來設(shè)置查詢中斷方式 設(shè)置特定屏蔽方式設(shè)置特定屏蔽方式 讀取讀取8259A8259A的的IRRIRR,ISRISR寄存器的內(nèi)容寄存器的內(nèi)容OCWOCW3 3的格式:的格式:D D7 7D D6

55、6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0OCWOCW3 30 0A A0 0X XESMMESMMSMMSMM0 01 1P PRISRIS特定屏特定屏蔽允許蔽允許特征位特征位查詢查詢方式方式讀讀ISRISR讀寄存讀寄存器允許器允許RRRR特定屏特定屏蔽設(shè)置蔽設(shè)置不用不用 讀狀態(tài)操作讀狀態(tài)操作(OCWOCW3 3格式中的格式中的D D1 1 D D0 0 ) 8259A8259A內(nèi)部有內(nèi)部有3 3個寄存器個寄存器IRRIRR,ISRISR,IMRIMR可供可供CPUCPU讀出當(dāng)前的內(nèi)容。讀出當(dāng)前的內(nèi)容。(1 1)讀讀IRRIRR和和ISRISR的方法的方法 C

56、PUCPU先指定讀哪個寄存器,然后再發(fā)先指定讀哪個寄存器,然后再發(fā)ININ指令,指令,才能讀取才能讀取ISRISR和和IRRIRR中的內(nèi)容。當(dāng)中的內(nèi)容。當(dāng)8259A8259A初始化后,初始化后,自動指向讀自動指向讀IRRIRR寄存器。寄存器。(2 2)讀讀IMRIMR的方法的方法 不需要先發(fā)指定命令,只要讀奇地址端口。不需要先發(fā)指定命令,只要讀奇地址端口。例:讀例:讀ISRISR寄存器的內(nèi)容寄存器的內(nèi)容分兩步:分兩步: 通過通過OCWOCW3 3指定被讀的寄存器指定被讀的寄存器 OCWOCW3 3為為00001011B00001011B,表示下個,表示下個RDRD要讀要讀ISRISR 用用IN

57、IN指令讀出指令讀出ISRISR寄存器的內(nèi)容寄存器的內(nèi)容程序段如下:程序段如下: MOV ALMOV AL,0BH 0BH ;OCWOCW3 3表示讀表示讀ISRISR OUT 20H OUT 20H,AL AL ;20H20H為為OCWOCW3 3的口地址的口地址 IN ALIN AL,20H 20H ;讀;讀ISRISR寄存器寄存器 8259A8259A的編程命令的使用的編程命令的使用 8259A8259A有兩類編程命令,初始化命令字有兩類編程命令,初始化命令字ICWICW和操作和操作命令字命令字OCWOCW。ICWICW: 在初始化里完成,必須按一定的順序。在初始化里完成,必須按一定的順

58、序。 在在PCPC機(jī)中已有系統(tǒng)軟件完成,不需要機(jī)中已有系統(tǒng)軟件完成,不需要 也不允許由用戶自己去設(shè)置。也不允許由用戶自己去設(shè)置。 一般只一般只對于沒有配置完善操作系統(tǒng)的對于沒有配置完善操作系統(tǒng)的 單板微機(jī)上進(jìn)行。單板微機(jī)上進(jìn)行。OCWOCW: 沒有沒有一定的順序,一般也不安排在程一定的順序,一般也不安排在程 序的開頭。序的開頭。 在初始化后的任何時候在初始化后的任何時候進(jìn)行動態(tài)控制。進(jìn)行動態(tài)控制。8.8 8.8 實(shí)模式中斷應(yīng)用程序設(shè)計(jì)實(shí)模式中斷應(yīng)用程序設(shè)計(jì)實(shí)模式下編寫中斷程序應(yīng)注意的問題實(shí)模式下編寫中斷程序應(yīng)注意的問題中斷服務(wù)程序的編寫中斷服務(wù)程序的編寫INT-P PROC FARINT-P

59、PROC FARPUSH PUSH ;保護(hù)寄存器的內(nèi)容;保護(hù)寄存器的內(nèi)容 PUSH PUSH STISTI ;中斷服務(wù)程序體;中斷服務(wù)程序體 MOV ALMOV AL,20H 20H ;不指定中斷結(jié)束方式;不指定中斷結(jié)束方式 OUT 20HOUT 20H,AL AL ;發(fā);發(fā)EOIEOI命令,對微機(jī)命令,對微機(jī) POP POP ;恢復(fù)寄存器的內(nèi)容;恢復(fù)寄存器的內(nèi)容 POP POP IRETIRETINT-P ENDPINT-P ENDP另外要注意:另外要注意:開放開放IRQIRQ2 2中斷的方法:中斷的方法: IN ALIN AL,21H 21H ;讀;讀IMRIMR寄存器寄存器 AND AL

60、AND AL,0FBH 0FBH ;對應(yīng);對應(yīng)IRQIRQ2 2的位置的位置0 0 OUT 21H OUT 21H,ALAL關(guān)閉關(guān)閉IRQIRQ2 2中斷的方法:中斷的方法: IN ALIN AL,21H 21H ;讀;讀IMRIMR寄存器寄存器 OR ALOR AL,04H 04H ;對應(yīng);對應(yīng)IRQIRQ2 2的位置的位置1 1 OUT 21H OUT 21H,ALAL應(yīng)用程序編寫過程應(yīng)注意:應(yīng)用程序編寫過程應(yīng)注意:在數(shù)據(jù)段中加入內(nèi)存定義語句在數(shù)據(jù)段中加入內(nèi)存定義語句DATA SEGMENTS DATA SEGMENTS OLD_OFF DW OLD_OFF DW ? ;保存原向量的偏移地

溫馨提示

  • 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

提交評論