版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6.2中斷及中斷控制器82596.2.1中斷的基本概念(1)什么是中斷
在日常生活中,中斷現(xiàn)象俯拾皆是……在計(jì)算機(jī)系統(tǒng)中,一個(gè)CPU要處理若干事務(wù):數(shù)據(jù)采集,運(yùn)算,顯示,處理突發(fā)事件,通信,打印…….。這就要求采用中斷技術(shù),才能作到面面俱到而又不誤突發(fā)事件的處理時(shí)機(jī)。計(jì)算機(jī)用于測控領(lǐng)域,必然涉及中斷。在計(jì)算機(jī)中,中斷的含義很狹窄:從程序執(zhí)行的角度看:CPU正在執(zhí)行的當(dāng)前程序被外設(shè)打斷,轉(zhuǎn)而執(zhí)行為外設(shè)服務(wù)的所謂“中斷服務(wù)程序”(ISR:InterruptServiceRoutine)。
當(dāng)前程序外設(shè)n的中斷服務(wù)程序CPUINTR中斷請求觸發(fā)器
外設(shè)n當(dāng)前程序:CALLSUBR:子程序*外設(shè)隨機(jī)誘發(fā)中斷,轉(zhuǎn)入中斷服務(wù)程序*硬、軟件配合尋找入口地址*由CALL指令引起轉(zhuǎn)入子程序*預(yù)知何時(shí)轉(zhuǎn)入子程序*入口地址直接從CALL中取得SUBR
從數(shù)據(jù)傳送的角度看,是主機(jī)與外設(shè)交換信息的一種方式。6.2中斷及中斷控制器82596.2.1中斷的基本概念(2)中斷源與中斷向量表中斷源:能夠引發(fā)CPU中斷的信息源,稱為中斷源。80X86微機(jī)系統(tǒng)中最多允許有256種中斷源,其中中斷源類型編號(hào)為0~255。*中斷系統(tǒng):為了實(shí)現(xiàn)中斷而配置的硬件和軟件構(gòu)成的系統(tǒng)1)內(nèi)中斷(軟中斷)指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷,通常分為以下三類:①執(zhí)行INTn指令引起的中斷,n=00~FFH②CPU中斷在執(zhí)行指令的過程中出現(xiàn)某些需要處理的異常而產(chǎn)生的中斷。③使用調(diào)試程序中的單步或斷點(diǎn)設(shè)置操作引起的中斷.①INTn指令(n=0~255)如INT21H執(zhí)行該指令后,轉(zhuǎn)入系統(tǒng)的“21H型中斷服務(wù)程序”,執(zhí)行由AH指定的子程序
21H型中斷服務(wù)程序根據(jù)AH內(nèi)容進(jìn)入某一子程序AH=01
AH=02
AH=09
AH=0AAH=4C01H功能02H功能09H功能0AH功能4CH功能:::(2)中斷源與中斷向量表1)內(nèi)中斷(軟中斷)①INTn②CPU中斷
此類中斷使用了0、1、3、4、6、7中斷號(hào)*1除法錯(cuò)中斷(屬于CPU的0型中斷)除數(shù)為0或商超過有關(guān)寄存器所能表示的最大值,產(chǎn)生除法錯(cuò)中斷*2INTO指令溢出中斷指令(屬于CPU的4型中斷)例:ADDAL,BL
INTO;當(dāng)OF=0,不引起INTO操作;當(dāng)OF=1時(shí),引起溢出中斷*BOUND指令(數(shù)組邊界檢查指令)中斷檢查帶符號(hào)的數(shù)組下標(biāo)是在由包含上界和下界的存儲(chǔ)器塊所限定的范圍內(nèi)。下標(biāo)超出范圍就產(chǎn)生中斷。
③單步調(diào)試中斷
當(dāng)標(biāo)志寄存器中的自陷位TF=1且中斷允許標(biāo)志位IF=1時(shí),CPU處于單步工作方式。在TD環(huán)境下,F(xiàn)7,F(xiàn)8鍵作為設(shè)定功能鍵,在這兩個(gè)鍵的處理程序中,使TF=1,IF=1。在TD環(huán)境中,可以在程序中需要的位置處插入INT3指令,執(zhí)行到該指令處,CPU中斷正常執(zhí)行過程,便于調(diào)試程序。在用戶程序中執(zhí)行INT3無意義。
②CPU中斷③單步調(diào)試中斷(2)外中斷(重點(diǎn))由外設(shè)向CPU發(fā)出中斷請求。1)非屏蔽中斷NMI(Non-MaskableInterrupt)不受CPU內(nèi)部中斷允許標(biāo)志IF的屏蔽2)可屏蔽中斷INTR(maskableINTRrupt)
受CPU內(nèi)部中斷允許標(biāo)志IF的屏蔽
STI指令,使IF=1,CPU可以接受來自INTR引腳上的中斷請求。術(shù)語:開中斷/中斷允許/允中CLI指令,
使IF=0,CPU不接受來自INTR引腳上的中斷請求。術(shù)語:關(guān)中斷/中斷禁止
CPU
NMI
INTR當(dāng)NMI上有正跳變信號(hào)時(shí),即產(chǎn)生一個(gè)內(nèi)部引導(dǎo)的類型2中斷。NMI引腳上的中斷請求不受IF標(biāo)志的控制,IF不能屏蔽NMI引腳上的中斷請求。IF=1,CPU響應(yīng)INTR引腳上的中斷請求;IF=0,CPU不響應(yīng)INTR引腳上的中斷請求通過INTR引腳傳遞到CPU的可屏蔽中斷,中斷類型號(hào)可以為6~255*中斷系統(tǒng):為了實(shí)現(xiàn)中斷而配置的硬件和軟件構(gòu)成的系統(tǒng)
(2)外中斷(重點(diǎn))CPU當(dāng)NMI上有正跳變信號(hào)時(shí),即(3)中斷向量表(P166)(注意內(nèi)容的展開)1)中斷源的識(shí)別中斷技術(shù)的核心問題——尋找中斷服務(wù)程序的入口地址*識(shí)別中斷源和尋找入口地址的復(fù)雜性在INTR引腳上可以連接250(6~255)個(gè)中斷源。CPUINTR08號(hào)中斷源09號(hào)中斷源0A號(hào)中斷源FF號(hào)中斷源08號(hào)中斷服務(wù)程序09號(hào)中斷服務(wù)程序0A號(hào)中斷服務(wù)程序FF號(hào)中斷服務(wù)程序ADDR00ADDR01ADDR02:ADDR08:ADDRFF中斷向量表中斷控制器中斷向量表是中斷源與中斷服務(wù)程序之間的“紐帶”。ADDR08ADDR09ADDR02ADDRFF::(3)中斷向量表(P166)(注意內(nèi)容的展開)1)中斷源的任何一個(gè)中斷源發(fā)出中斷請求,CPU必須能夠迅速、準(zhǔn)確地找到為該中斷源服務(wù)的中斷服務(wù)程序的入口地址,怎么找?
從應(yīng)用角度看,很多中間過程并不需要用戶通過編程來完成,因而可以大大簡化中斷索引過程的敘述。這里,分四步(#1、#2、#3、#4)來敘述識(shí)別中斷源和尋找入口地址的問題。#1
識(shí)別中斷源及尋找入口地址概要從編程角度看,為了識(shí)別中斷源及尋找入口地址,外設(shè)與CPU必須進(jìn)行如圖所示的交流。CPU向外設(shè)索取的中斷向量號(hào),實(shí)際上就是索取中斷源的“身份證號(hào)”——標(biāo)識(shí)符。CPU取得它,也就識(shí)別了中斷源。當(dāng)CPU取得中斷向量號(hào)以后,又如何取得相應(yīng)中斷源的中斷服務(wù)程序的入口地址呢?必須借助于中斷向量表。
*識(shí)別中斷源及尋找入口地址概要示意任何一個(gè)中斷源發(fā)出中斷請求,CPU必須能夠迅INTRCPU
中斷源N*1請求中斷當(dāng)前程序,執(zhí)行N的中斷服務(wù)程序*2接受中斷請求。但不知道入口地址,請送標(biāo)識(shí)碼(中斷向量號(hào))!*3標(biāo)識(shí)碼是N,請按規(guī)則,在中斷向量表中獲取N的中斷服務(wù)程序的入口地址。什么是“中斷向量表”,如何根據(jù)標(biāo)識(shí)碼從中查找入口地址?#2中斷向量表
①中斷類型號(hào):即中斷源標(biāo)識(shí)碼或中斷向量號(hào)。80X86給每一個(gè)中斷源分配了一個(gè)序號(hào),從00—FFH,共256個(gè)。
在80X86中是通過中斷類型號(hào)來識(shí)別中斷源的。INTR*1請求中斷當(dāng)前程序,*2接受中斷請求。但不知道入口②中斷向量:中斷服務(wù)程序的入口地址
③中斷向量表:*80X86在內(nèi)存0段0000H—03FFH這1K字節(jié)中建立了一個(gè)中斷向量表,用以存放256個(gè)中斷向量。*各中斷源的中斷服務(wù)程序入口地址在內(nèi)存中斷向量表中有固定的存放位置——以中斷類型號(hào)X4開始的連續(xù)四個(gè)字節(jié)單元中,前兩個(gè)字節(jié)存放中斷服務(wù)程序的入口地址的偏移量,后兩個(gè)字節(jié)存放中斷服務(wù)程序的入口地址的段基址。對于0號(hào)中斷而言,設(shè)其中斷服務(wù)程序的入口地址是:
UUVV:XXYY(其物理地址是UUVV0+0XXYY),則有: 0000:0000YY 0000:0001XX 0000:0002VV 0000:0003UU對于0aH號(hào)中斷而言,設(shè)其中斷服務(wù)程序的入口地址是:0100:0051(其物理地址是
01000+0051),則有:
0ax4=0028H中斷向量0000:0028510000:0029000000:002A000000:002B01中斷向量地址②中斷向量:中斷服務(wù)程序的入口地址③中斷向量表:*80X8④中斷向量地址:存放中斷向量(入口地址)的存儲(chǔ)單元的地址,即N×4、N×4+1、N×4+2、N×4+3
#3如何根據(jù)中斷類型號(hào)在中斷向量表中尋找入口地址?
CPU在響應(yīng)中斷時(shí),根據(jù)中斷類型號(hào),從中斷向量表中取出高兩個(gè)字節(jié)(入口地址的段基址)裝入代碼段寄存器CS;低兩個(gè)字節(jié)(入口地址的偏移量)裝入指令指針寄存器IP中,轉(zhuǎn)入中斷服務(wù)程序。
中斷響應(yīng)時(shí),CPU將有以下操作:把F寄存器、IP寄存器和CS寄存器的內(nèi)容壓入堆棧;把0:N×4和0:N×4+1的內(nèi)容送入IP;把0:N×4+2和0:N×4+3的內(nèi)容送入CS;跳到CS:IP去執(zhí)行中斷服務(wù)程序。設(shè)某中斷源的中斷類型號(hào)為0aH,執(zhí)行中斷時(shí),CPU根據(jù)0aH,得到28H,從0028H,0029H,002AH和002BH這四個(gè)單元中取得
0100:0051
并把前兩個(gè)字節(jié)0051H送入IP,后兩個(gè)字節(jié)0100H送入CS。物理地址為01000H+00051H=01051H,即中斷服務(wù)程序的人口地址。
誰提供中斷類型號(hào)?當(dāng)中斷是由指令I(lǐng)NTn產(chǎn)生時(shí),
指令直接提供中斷向量;
④中斷向量地址:存放中斷向量(入口地址)的存儲(chǔ)單元的地址,#當(dāng)中斷是由外設(shè)產(chǎn)生時(shí),應(yīng)由該外設(shè)向CPU提供中斷向量YYXXVVUU
51000001CPU響應(yīng)中斷,則把中斷服務(wù)程序入口地址送入IP和CS0000:0000H
IP
IP
CSCS
IP
CS中斷號(hào)N
N×4內(nèi)存地址中斷向量表
00H
00H
0000:0004H
01H
04H
0AH
28H
0000:0028H
0000:0029H
0000:002AH
0000:002BH
N
N×4
FFH
03FCH
0000:03FCH
0000:03FFH
CPU根據(jù)中斷源提供的標(biāo)識(shí)碼(即:中斷類型號(hào),中斷向量號(hào))即可在中斷向量表中找到該中斷源的中斷服務(wù)程序入口地址。
在硬中斷中,向CPU提供中斷源識(shí)別碼是中斷技術(shù)的關(guān)鍵。需要硬軟件的有機(jī)配合。8259A可編程中斷控制器用于管理中斷,向CPU提供標(biāo)識(shí)碼(中斷向量號(hào)、中斷類型號(hào))當(dāng)中斷是由外設(shè)產(chǎn)生時(shí),應(yīng)由該外設(shè)向CPU提供中斷向量YYCP路線圖:中斷源提供類型號(hào)N—得到中斷向量地址4×N、4×N+1、4×N+2、4×N+3—在中斷向量表中取這4個(gè)單元的內(nèi)容送CS和IP——進(jìn)入中斷服務(wù)程序。例:設(shè)某外設(shè)的識(shí)別碼為0aH,其中斷服務(wù)程序的入口地址為:0100:0051HCPU0ax4=0028HINTR
IACK0aH外設(shè)0aH外設(shè)中斷服務(wù)程序51000001中斷向量表DB用戶編程填寫用戶編寫
中斷發(fā)生之前,用戶先要完成的兩項(xiàng)工作問題:在多個(gè)中斷源的情況下,如何把優(yōu)先級(jí)最高的中斷源的識(shí)別碼送給CPU?怎么送?0000:00280000:00290000:002A0000:002B②①③0a④⑤0100:0051路線圖:例:設(shè)某外設(shè)的識(shí)別碼為0aH,CPU0aH0aH形象地給出了與中斷操作有關(guān)的主要過程。設(shè)中斷類型號(hào)為0aH,其中斷服務(wù)程序的入口地址已經(jīng)填入到中斷向量表中正確的位置。中斷主要過程:①0aH號(hào)中斷源:情況緊急,請求CPU執(zhí)行0aH號(hào)中斷服務(wù)程序。②CPU:現(xiàn)在正好沒有比你更緊迫的事件要處理,可以接受你的請求,但苦于不知道你是誰,請送你的“身份證號(hào)”——中斷類型號(hào)。③0aH號(hào)中斷源:我是0aH號(hào)中斷源。④CPU嚴(yán)格按“游戲規(guī)則”,根據(jù)0aH,得到28H,從0028H,0029H,002AH和002BH這四個(gè)單元中取得0100:0051并把低兩個(gè)字節(jié)0051H送入IP,高兩個(gè)字節(jié)0100H送入CS。絕對地址為01000H+00051H=01051H,即中斷服務(wù)程序的人口地址。⑤CPU執(zhí)行0aH號(hào)中斷服務(wù)程序。
#4中斷向量的填入誰來填寫中斷向量表中各項(xiàng)的內(nèi)容?開機(jī)后,BIOS立即把有關(guān)的中斷向量填入中斷向量表中(包括0—7FH一段),當(dāng)BIOS引導(dǎo)DOS到內(nèi)存后,DOS進(jìn)行初始化時(shí),又把某些中斷向量填入中斷向量表,還要修改由BIOS裝入的某些中斷向量。用戶的中斷服務(wù)程序的入口地址應(yīng)當(dāng)由用戶自己填寫,中斷向量表的設(shè)置當(dāng)CPU響應(yīng)中斷時(shí),將從中斷向量表中讀取中斷向量送給CS和IP,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。因此,用戶必須事先將中斷服務(wù)程序的入口地址填入系統(tǒng)的中斷向量表中,填入的方法有兩種。
形象地給出了與中斷操作有關(guān)的主要過程。設(shè)中斷類型假設(shè)中斷類型號(hào)為32H,斷服務(wù)程序入口處的標(biāo)號(hào)為INTSUB。①用程序設(shè)置中斷向量表、、、CLI;關(guān)中斷MOV AX,0;0段MOV ES,AXMOV DI,4*32H;0段內(nèi)偏移地址LEA AX,INTSUB;取入口地址的偏移地址CLD;增址STOSW;把入口地址的偏移地址存入;0000:4*32字單元MOV AX,SEGINTSUB;取入口地址的段基址STOSW;把入口地址的段基址存入;0000:4*32+2字單元、、、DI+24×32+2DI4×32+0用CLD(ClearDF)設(shè)置DF=0,增址修改AL偏移AH地址AL段基AH址用STOSW指令完成填寫中斷向量中斷向量表
ES0段
假設(shè)中斷類型號(hào)為32H,斷服務(wù)程序入口處的標(biāo)號(hào)為INTSUBP167或:
、、、MOV AX,0;0段MOV DS,AXMOV BX,4*32H;0段內(nèi)偏移地址MOV AX,OFFSETINTSUB;取入口地址的偏移地址MOV[BX],AX;把入口地址的偏移地址存入;0000:4*32字單元MOV AX,SEGINTSUB;取入口地址的段基址MOV[BX+2],AX;把入口地址的段基址存入;0000:4*32+2字單元DI+24×32+2DI4×32+0AL偏移AH地址AL段基AH址中斷向量表
DS0段
用DOS功能設(shè)置中斷向量表(07/10/31007)*中斷向量的置換在中斷向量表中,系統(tǒng)占有若干單元存放系統(tǒng)自己的中斷服務(wù)程序的入口地址(中斷向量),微機(jī)在初始化過程中,把這些中斷向量填寫到中斷向量表中。例如:系統(tǒng)輔串口占用中斷向量號(hào)0BH,系統(tǒng)初始化時(shí),已經(jīng)在0B×4~0B×4+3(002CH~002FH)這4個(gè)單元中填寫了中斷向量;如果用戶也想占用0BH,也必須把用戶的中斷向量寫入這4個(gè)單元。為了不破壞系統(tǒng)設(shè)置的中斷向量,需要進(jìn)行中斷置換:P167或:、、、DI+24×32+2DIIPLIPHCSLCSH用戶中斷服務(wù)程序CS:IP原中斷向量
堆棧
CS:IP1
2
30000:002CH0000:002DH0000:002EH0000:002FH*借用DOS35H號(hào)功能,讀出原中斷向量;
*借用DOS25H號(hào)功能,把用戶中斷向量寫入中斷向量表把原中斷向量填回中斷向量表1)35H號(hào)功能:入口:AL:中斷向量號(hào)
出口:ES存放中斷向量的段基址;BX存放偏移地址2)25H號(hào)功能
入口:AL:中斷向量號(hào);DS:中斷向量的段基址;DX:偏移地址例:設(shè)某外設(shè)的中斷服務(wù)程序的入口地址為INTP,中斷類型號(hào)為0BH。用戶中斷CS:IP原中斷向量堆棧CS:IP1230如果把0BH改變0AH,程序中相關(guān)部分應(yīng)當(dāng)怎么處理?(3)中斷描述符表在DOS環(huán)境下,486工作在實(shí)模式時(shí),中斷服務(wù)程序的屬性比較單一,僅用中斷向量表明它的位置就可以了。:MOVAX,350BH;AH=35H,AL=0BHINT21H;從向量表中讀出原中斷向量
;存人ES:BPUSHES;把原中斷向量壓入堆棧PUSHBX
MOVAX,SEGINTP;取用戶中斷向量段基址MOVDS,AX;25H功能要求基地址送入DSMOVDX,OFFSETINTP;用戶中斷向量偏移地址MOVAX,250BH;AH=25H,AL=0BHINT21H;把用戶中斷服務(wù)程序入口地址:;填入中斷向量表POPDX;取原中斷向量POPDSMOVAX,250BHINT21H;把原中斷向量填回中斷向量表如果把0BH改變0AH,程序中相關(guān)部分應(yīng)當(dāng)怎么處理?(3)中在多任務(wù)操作系統(tǒng)(如:UNIX,WINDOWS)管理下,486工作在保護(hù)模式的時(shí)候,情況要復(fù)雜得多,僅僅用中斷向量已經(jīng)不能全面描述中斷服務(wù)程序的全部屬性了,而必須:用中斷描述符來描述中斷服務(wù)程序;用中斷描述符表來代替中斷向量表。
暫時(shí)了解到此(4)中斷優(yōu)先級(jí)與中斷嵌套CPU在執(zhí)行中斷服務(wù)程序的過程中,被高優(yōu)先級(jí)的中斷源中斷,又轉(zhuǎn)入另一個(gè)中斷服務(wù)程序的操作,叫中斷嵌套。P170圖6.12
嵌套原則:高級(jí)可以中斷低級(jí),低級(jí)不能中斷高級(jí)或同級(jí)。P170表6.1給出了在80486中,各大類中斷源的優(yōu)先級(jí)。(5)CPU響應(yīng)中斷的條件并非一產(chǎn)生中斷請求,CPU就響應(yīng)中斷。CPU響應(yīng)中斷是有一定條件的,其中以可屏蔽中斷的條件最多,以此為例,講解CPU響應(yīng)可屏蔽中斷的條件
①中斷源發(fā)出中斷請求信號(hào)
②中斷請求信號(hào)不被屏蔽(請求能夠被傳遞到INTR引腳),在I/O口這一級(jí)增加一道關(guān)口,增加控制的靈活性。
③CPU愿意接受中斷(CPU開中斷,允許中斷)
④沒有更高優(yōu)先級(jí)的中斷
⑤執(zhí)行完當(dāng)前指令
在多任務(wù)操作系統(tǒng)(如:UNIX,WINDOWS)管理下,48通過一張簡圖,解釋以上幾點(diǎn)的含義。CPU④⑤
③INTR與門中斷屏蔽(允許)觸發(fā)器控制端口中斷請求觸發(fā)器外設(shè)請求信號(hào)是否被屏蔽中斷是否打開保存請求信號(hào)直到被響應(yīng)為止①②有了以上基礎(chǔ),再看P164圖6.8。通過一張簡圖,解釋以上幾點(diǎn)的含義。CPU與門中斷屏*主干:外設(shè)數(shù)據(jù)—數(shù)據(jù)端口—DB—CPU*為配合中斷操作,增加若干環(huán)節(jié)。中斷允許觸發(fā)器受控于CPU,CPU對控制信號(hào)端口發(fā)出控制信號(hào),可以把允許觸發(fā)器置1(打開與門,請求信號(hào)能夠被傳送到INTR)或置0(屏蔽請求信號(hào))。
輸入裝置鎖存器數(shù)據(jù)D&&三態(tài)緩沖器RQM/IOW/RM/IOW/R+5VPdPs地址譯碼數(shù)據(jù)口地址總線(A7-A0)控制口CPU數(shù)據(jù)總線選通信號(hào)&DQ數(shù)據(jù)線D0位INTR中斷請求觸發(fā)器I/O環(huán)節(jié)的中斷允許觸發(fā)器*主干:外設(shè)數(shù)據(jù)—數(shù)據(jù)端口—DB—CPU輸入裝置鎖存器數(shù)(6)中斷處理過程內(nèi)中斷處理過程①CPU自動(dòng)產(chǎn)生中斷類型號(hào)n;②(SP)-2→(SP),標(biāo)志寄存器F內(nèi)容入棧;③(SP)-2→(SP),當(dāng)前代碼段CS內(nèi)容入棧;④(SP)-2→(SP),當(dāng)前指令計(jì)數(shù)器IP內(nèi)容入棧;⑤禁止外部中斷IF=0,禁止單步中斷TF=0;⑥從中斷向量表中取中斷服務(wù)程序入口地址(4*N單元的字內(nèi)容送IP,4*N+2單元里的內(nèi)容送CS);⑦轉(zhuǎn)中斷服務(wù)程序;⑧執(zhí)行中斷服務(wù)程序并返回,彈出IP,CS,F(xiàn),返回?cái)帱c(diǎn)。外中斷(INTR)執(zhí)行過程①CPU發(fā)出兩個(gè)中斷響應(yīng)信號(hào)INTA,第二個(gè)INTA時(shí),CPU從當(dāng)前數(shù)據(jù)總線上取中斷類型碼N(通常由管理INTR的控制器8259A提供);②(SP)-2→(SP),標(biāo)志寄存器F內(nèi)容入棧;③(SP)-2→(SP),當(dāng)前代碼段CS內(nèi)容入棧;④(SP)-2→(SP),當(dāng)前指令計(jì)數(shù)器IP內(nèi)容入棧;⑤禁止外部中斷IF=0,禁止單步中斷TF=0;⑥首先從中斷向量表中取4*N單元的字內(nèi)容送IP,然后再取4*N+2單元里的內(nèi)容送CS;⑦轉(zhuǎn)中斷服務(wù)程序;⑧執(zhí)行中斷服務(wù)程序并返回,彈出IP,CS,F(xiàn),返回?cái)帱c(diǎn),繼續(xù)執(zhí)行。(6)中斷處理過程(7)多中斷源的中斷識(shí)別與優(yōu)先級(jí)管理
1)中斷優(yōu)先級(jí)編碼電路CPU未響應(yīng)任何中斷,優(yōu)先級(jí)無效,此處為“1”;否則為“0”新中斷源的優(yōu)先級(jí)別高于CPU正在響應(yīng)的中斷源,此處為“1”存放CPU正在響應(yīng)的中斷源的中斷優(yōu)先級(jí)編碼多個(gè)中斷源同時(shí)發(fā)出中斷請求時(shí),只輸出級(jí)別最高的中斷源的優(yōu)先級(jí)編碼。任何一個(gè)中斷請求,均可通過‘或’門送到CPUCPU未響應(yīng)任何中斷時(shí),中斷請求信號(hào)通過與2傳遞給CPU;CPU正在為某一中斷源服務(wù)時(shí),由比較器決定是否通過與1把新中斷請求傳遞給CPU。新中斷源CPU正在響應(yīng)的優(yōu)先級(jí)編碼中斷源的編碼
A2A1A0
B2B1B0
111
高
111
110
110::000
低
000A>B,表明“新”級(jí)別高于“正”(7)多中斷源的中斷識(shí)別與優(yōu)先級(jí)管理1)中斷優(yōu)先級(jí)編碼電路2)菊花鏈排隊(duì)電路
IACKInterruptACKnowledge,中斷應(yīng)答(中斷響應(yīng))。該信號(hào)啟動(dòng)鎖存器,把中斷源狀態(tài)送入CPU,作為查詢依據(jù)。*每一個(gè)中斷源配有一個(gè)中斷向量發(fā)生器,當(dāng)IACK信號(hào)送達(dá)某中斷源時(shí),如果該中斷源沒有發(fā)出中斷請求信號(hào),則把IACK信號(hào)傳遞到后面。
如果該中斷源發(fā)出了中斷請求信號(hào),則在IACK信號(hào)作用下,該中斷源通過中斷向量發(fā)生器把自己的識(shí)別碼(中斷向量號(hào))回送CPU。CPU根據(jù)識(shí)別碼,在中斷向量表中,找到相應(yīng)的中斷服務(wù)程序的入口地址。
2)菊花鏈排隊(duì)電路IACKInterru6.2中斷及中斷控制器82596.2.1中斷的基本概念(1)什么是中斷
在日常生活中,中斷現(xiàn)象俯拾皆是……在計(jì)算機(jī)系統(tǒng)中,一個(gè)CPU要處理若干事務(wù):數(shù)據(jù)采集,運(yùn)算,顯示,處理突發(fā)事件,通信,打印…….。這就要求采用中斷技術(shù),才能作到面面俱到而又不誤突發(fā)事件的處理時(shí)機(jī)。計(jì)算機(jī)用于測控領(lǐng)域,必然涉及中斷。在計(jì)算機(jī)中,中斷的含義很狹窄:從程序執(zhí)行的角度看:CPU正在執(zhí)行的當(dāng)前程序被外設(shè)打斷,轉(zhuǎn)而執(zhí)行為外設(shè)服務(wù)的所謂“中斷服務(wù)程序”(ISR:InterruptServiceRoutine)。
當(dāng)前程序外設(shè)n的中斷服務(wù)程序CPUINTR中斷請求觸發(fā)器
外設(shè)n當(dāng)前程序:CALLSUBR:子程序*外設(shè)隨機(jī)誘發(fā)中斷,轉(zhuǎn)入中斷服務(wù)程序*硬、軟件配合尋找入口地址*由CALL指令引起轉(zhuǎn)入子程序*預(yù)知何時(shí)轉(zhuǎn)入子程序*入口地址直接從CALL中取得SUBR
從數(shù)據(jù)傳送的角度看,是主機(jī)與外設(shè)交換信息的一種方式。6.2中斷及中斷控制器82596.2.1中斷的基本概念(2)中斷源與中斷向量表中斷源:能夠引發(fā)CPU中斷的信息源,稱為中斷源。80X86微機(jī)系統(tǒng)中最多允許有256種中斷源,其中中斷源類型編號(hào)為0~255。*中斷系統(tǒng):為了實(shí)現(xiàn)中斷而配置的硬件和軟件構(gòu)成的系統(tǒng)1)內(nèi)中斷(軟中斷)指CPU執(zhí)行某些特殊操作或由INT指令引起的中斷,通常分為以下三類:①執(zhí)行INTn指令引起的中斷,n=00~FFH②CPU中斷在執(zhí)行指令的過程中出現(xiàn)某些需要處理的異常而產(chǎn)生的中斷。③使用調(diào)試程序中的單步或斷點(diǎn)設(shè)置操作引起的中斷.①INTn指令(n=0~255)如INT21H執(zhí)行該指令后,轉(zhuǎn)入系統(tǒng)的“21H型中斷服務(wù)程序”,執(zhí)行由AH指定的子程序
21H型中斷服務(wù)程序根據(jù)AH內(nèi)容進(jìn)入某一子程序AH=01
AH=02
AH=09
AH=0AAH=4C01H功能02H功能09H功能0AH功能4CH功能:::(2)中斷源與中斷向量表1)內(nèi)中斷(軟中斷)①INTn②CPU中斷
此類中斷使用了0、1、3、4、6、7中斷號(hào)*1除法錯(cuò)中斷(屬于CPU的0型中斷)除數(shù)為0或商超過有關(guān)寄存器所能表示的最大值,產(chǎn)生除法錯(cuò)中斷*2INTO指令溢出中斷指令(屬于CPU的4型中斷)例:ADDAL,BL
INTO;當(dāng)OF=0,不引起INTO操作;當(dāng)OF=1時(shí),引起溢出中斷*BOUND指令(數(shù)組邊界檢查指令)中斷檢查帶符號(hào)的數(shù)組下標(biāo)是在由包含上界和下界的存儲(chǔ)器塊所限定的范圍內(nèi)。下標(biāo)超出范圍就產(chǎn)生中斷。
③單步調(diào)試中斷
當(dāng)標(biāo)志寄存器中的自陷位TF=1且中斷允許標(biāo)志位IF=1時(shí),CPU處于單步工作方式。在TD環(huán)境下,F(xiàn)7,F(xiàn)8鍵作為設(shè)定功能鍵,在這兩個(gè)鍵的處理程序中,使TF=1,IF=1。在TD環(huán)境中,可以在程序中需要的位置處插入INT3指令,執(zhí)行到該指令處,CPU中斷正常執(zhí)行過程,便于調(diào)試程序。在用戶程序中執(zhí)行INT3無意義。
②CPU中斷③單步調(diào)試中斷(2)外中斷(重點(diǎn))由外設(shè)向CPU發(fā)出中斷請求。1)非屏蔽中斷NMI(Non-MaskableInterrupt)不受CPU內(nèi)部中斷允許標(biāo)志IF的屏蔽2)可屏蔽中斷INTR(maskableINTRrupt)
受CPU內(nèi)部中斷允許標(biāo)志IF的屏蔽
STI指令,使IF=1,CPU可以接受來自INTR引腳上的中斷請求。術(shù)語:開中斷/中斷允許/允中CLI指令,
使IF=0,CPU不接受來自INTR引腳上的中斷請求。術(shù)語:關(guān)中斷/中斷禁止
CPU
NMI
INTR當(dāng)NMI上有正跳變信號(hào)時(shí),即產(chǎn)生一個(gè)內(nèi)部引導(dǎo)的類型2中斷。NMI引腳上的中斷請求不受IF標(biāo)志的控制,IF不能屏蔽NMI引腳上的中斷請求。IF=1,CPU響應(yīng)INTR引腳上的中斷請求;IF=0,CPU不響應(yīng)INTR引腳上的中斷請求通過INTR引腳傳遞到CPU的可屏蔽中斷,中斷類型號(hào)可以為6~255*中斷系統(tǒng):為了實(shí)現(xiàn)中斷而配置的硬件和軟件構(gòu)成的系統(tǒng)
(2)外中斷(重點(diǎn))CPU當(dāng)NMI上有正跳變信號(hào)時(shí),即(3)中斷向量表(P166)(注意內(nèi)容的展開)1)中斷源的識(shí)別中斷技術(shù)的核心問題——尋找中斷服務(wù)程序的入口地址*識(shí)別中斷源和尋找入口地址的復(fù)雜性在INTR引腳上可以連接250(6~255)個(gè)中斷源。CPUINTR08號(hào)中斷源09號(hào)中斷源0A號(hào)中斷源FF號(hào)中斷源08號(hào)中斷服務(wù)程序09號(hào)中斷服務(wù)程序0A號(hào)中斷服務(wù)程序FF號(hào)中斷服務(wù)程序ADDR00ADDR01ADDR02:ADDR08:ADDRFF中斷向量表中斷控制器中斷向量表是中斷源與中斷服務(wù)程序之間的“紐帶”。ADDR08ADDR09ADDR02ADDRFF::(3)中斷向量表(P166)(注意內(nèi)容的展開)1)中斷源的任何一個(gè)中斷源發(fā)出中斷請求,CPU必須能夠迅速、準(zhǔn)確地找到為該中斷源服務(wù)的中斷服務(wù)程序的入口地址,怎么找?
從應(yīng)用角度看,很多中間過程并不需要用戶通過編程來完成,因而可以大大簡化中斷索引過程的敘述。這里,分四步(#1、#2、#3、#4)來敘述識(shí)別中斷源和尋找入口地址的問題。#1
識(shí)別中斷源及尋找入口地址概要從編程角度看,為了識(shí)別中斷源及尋找入口地址,外設(shè)與CPU必須進(jìn)行如圖所示的交流。CPU向外設(shè)索取的中斷向量號(hào),實(shí)際上就是索取中斷源的“身份證號(hào)”——標(biāo)識(shí)符。CPU取得它,也就識(shí)別了中斷源。當(dāng)CPU取得中斷向量號(hào)以后,又如何取得相應(yīng)中斷源的中斷服務(wù)程序的入口地址呢?必須借助于中斷向量表。
*識(shí)別中斷源及尋找入口地址概要示意任何一個(gè)中斷源發(fā)出中斷請求,CPU必須能夠迅INTRCPU
中斷源N*1請求中斷當(dāng)前程序,執(zhí)行N的中斷服務(wù)程序*2接受中斷請求。但不知道入口地址,請送標(biāo)識(shí)碼(中斷向量號(hào))!*3標(biāo)識(shí)碼是N,請按規(guī)則,在中斷向量表中獲取N的中斷服務(wù)程序的入口地址。什么是“中斷向量表”,如何根據(jù)標(biāo)識(shí)碼從中查找入口地址?#2中斷向量表
①中斷類型號(hào):即中斷源標(biāo)識(shí)碼或中斷向量號(hào)。80X86給每一個(gè)中斷源分配了一個(gè)序號(hào),從00—FFH,共256個(gè)。
在80X86中是通過中斷類型號(hào)來識(shí)別中斷源的。INTR*1請求中斷當(dāng)前程序,*2接受中斷請求。但不知道入口②中斷向量:中斷服務(wù)程序的入口地址
③中斷向量表:*80X86在內(nèi)存0段0000H—03FFH這1K字節(jié)中建立了一個(gè)中斷向量表,用以存放256個(gè)中斷向量。*各中斷源的中斷服務(wù)程序入口地址在內(nèi)存中斷向量表中有固定的存放位置——以中斷類型號(hào)X4開始的連續(xù)四個(gè)字節(jié)單元中,前兩個(gè)字節(jié)存放中斷服務(wù)程序的入口地址的偏移量,后兩個(gè)字節(jié)存放中斷服務(wù)程序的入口地址的段基址。對于0號(hào)中斷而言,設(shè)其中斷服務(wù)程序的入口地址是:
UUVV:XXYY(其物理地址是UUVV0+0XXYY),則有: 0000:0000YY 0000:0001XX 0000:0002VV 0000:0003UU對于0aH號(hào)中斷而言,設(shè)其中斷服務(wù)程序的入口地址是:0100:0051(其物理地址是
01000+0051),則有:
0ax4=0028H中斷向量0000:0028510000:0029000000:002A000000:002B01中斷向量地址②中斷向量:中斷服務(wù)程序的入口地址③中斷向量表:*80X8④中斷向量地址:存放中斷向量(入口地址)的存儲(chǔ)單元的地址,即N×4、N×4+1、N×4+2、N×4+3
#3如何根據(jù)中斷類型號(hào)在中斷向量表中尋找入口地址?
CPU在響應(yīng)中斷時(shí),根據(jù)中斷類型號(hào),從中斷向量表中取出高兩個(gè)字節(jié)(入口地址的段基址)裝入代碼段寄存器CS;低兩個(gè)字節(jié)(入口地址的偏移量)裝入指令指針寄存器IP中,轉(zhuǎn)入中斷服務(wù)程序。
中斷響應(yīng)時(shí),CPU將有以下操作:把F寄存器、IP寄存器和CS寄存器的內(nèi)容壓入堆棧;把0:N×4和0:N×4+1的內(nèi)容送入IP;把0:N×4+2和0:N×4+3的內(nèi)容送入CS;跳到CS:IP去執(zhí)行中斷服務(wù)程序。設(shè)某中斷源的中斷類型號(hào)為0aH,執(zhí)行中斷時(shí),CPU根據(jù)0aH,得到28H,從0028H,0029H,002AH和002BH這四個(gè)單元中取得
0100:0051
并把前兩個(gè)字節(jié)0051H送入IP,后兩個(gè)字節(jié)0100H送入CS。物理地址為01000H+00051H=01051H,即中斷服務(wù)程序的人口地址。
誰提供中斷類型號(hào)?當(dāng)中斷是由指令I(lǐng)NTn產(chǎn)生時(shí),
指令直接提供中斷向量;
④中斷向量地址:存放中斷向量(入口地址)的存儲(chǔ)單元的地址,#當(dāng)中斷是由外設(shè)產(chǎn)生時(shí),應(yīng)由該外設(shè)向CPU提供中斷向量YYXXVVUU
51000001CPU響應(yīng)中斷,則把中斷服務(wù)程序入口地址送入IP和CS0000:0000H
IP
IP
CSCS
IP
CS中斷號(hào)N
N×4內(nèi)存地址中斷向量表
00H
00H
0000:0004H
01H
04H
0AH
28H
0000:0028H
0000:0029H
0000:002AH
0000:002BH
N
N×4
FFH
03FCH
0000:03FCH
0000:03FFH
CPU根據(jù)中斷源提供的標(biāo)識(shí)碼(即:中斷類型號(hào),中斷向量號(hào))即可在中斷向量表中找到該中斷源的中斷服務(wù)程序入口地址。
在硬中斷中,向CPU提供中斷源識(shí)別碼是中斷技術(shù)的關(guān)鍵。需要硬軟件的有機(jī)配合。8259A可編程中斷控制器用于管理中斷,向CPU提供標(biāo)識(shí)碼(中斷向量號(hào)、中斷類型號(hào))當(dāng)中斷是由外設(shè)產(chǎn)生時(shí),應(yīng)由該外設(shè)向CPU提供中斷向量YYCP路線圖:中斷源提供類型號(hào)N—得到中斷向量地址4×N、4×N+1、4×N+2、4×N+3—在中斷向量表中取這4個(gè)單元的內(nèi)容送CS和IP——進(jìn)入中斷服務(wù)程序。例:設(shè)某外設(shè)的識(shí)別碼為0aH,其中斷服務(wù)程序的入口地址為:0100:0051HCPU0ax4=0028HINTR
IACK0aH外設(shè)0aH外設(shè)中斷服務(wù)程序51000001中斷向量表DB用戶編程填寫用戶編寫
中斷發(fā)生之前,用戶先要完成的兩項(xiàng)工作問題:在多個(gè)中斷源的情況下,如何把優(yōu)先級(jí)最高的中斷源的識(shí)別碼送給CPU?怎么送?0000:00280000:00290000:002A0000:002B②①③0a④⑤0100:0051路線圖:例:設(shè)某外設(shè)的識(shí)別碼為0aH,CPU0aH0aH形象地給出了與中斷操作有關(guān)的主要過程。設(shè)中斷類型號(hào)為0aH,其中斷服務(wù)程序的入口地址已經(jīng)填入到中斷向量表中正確的位置。中斷主要過程:①0aH號(hào)中斷源:情況緊急,請求CPU執(zhí)行0aH號(hào)中斷服務(wù)程序。②CPU:現(xiàn)在正好沒有比你更緊迫的事件要處理,可以接受你的請求,但苦于不知道你是誰,請送你的“身份證號(hào)”——中斷類型號(hào)。③0aH號(hào)中斷源:我是0aH號(hào)中斷源。④CPU嚴(yán)格按“游戲規(guī)則”,根據(jù)0aH,得到28H,從0028H,0029H,002AH和002BH這四個(gè)單元中取得0100:0051并把低兩個(gè)字節(jié)0051H送入IP,高兩個(gè)字節(jié)0100H送入CS。絕對地址為01000H+00051H=01051H,即中斷服務(wù)程序的人口地址。⑤CPU執(zhí)行0aH號(hào)中斷服務(wù)程序。
#4中斷向量的填入誰來填寫中斷向量表中各項(xiàng)的內(nèi)容?開機(jī)后,BIOS立即把有關(guān)的中斷向量填入中斷向量表中(包括0—7FH一段),當(dāng)BIOS引導(dǎo)DOS到內(nèi)存后,DOS進(jìn)行初始化時(shí),又把某些中斷向量填入中斷向量表,還要修改由BIOS裝入的某些中斷向量。用戶的中斷服務(wù)程序的入口地址應(yīng)當(dāng)由用戶自己填寫,中斷向量表的設(shè)置當(dāng)CPU響應(yīng)中斷時(shí),將從中斷向量表中讀取中斷向量送給CS和IP,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。因此,用戶必須事先將中斷服務(wù)程序的入口地址填入系統(tǒng)的中斷向量表中,填入的方法有兩種。
形象地給出了與中斷操作有關(guān)的主要過程。設(shè)中斷類型假設(shè)中斷類型號(hào)為32H,斷服務(wù)程序入口處的標(biāo)號(hào)為INTSUB。①用程序設(shè)置中斷向量表、、、CLI;關(guān)中斷MOV AX,0;0段MOV ES,AXMOV DI,4*32H;0段內(nèi)偏移地址LEA AX,INTSUB;取入口地址的偏移地址CLD;增址STOSW;把入口地址的偏移地址存入;0000:4*32字單元MOV AX,SEGINTSUB;取入口地址的段基址STOSW;把入口地址的段基址存入;0000:4*32+2字單元、、、DI+24×32+2DI4×32+0用CLD(ClearDF)設(shè)置DF=0,增址修改AL偏移AH地址AL段基AH址用STOSW指令完成填寫中斷向量中斷向量表
ES0段
假設(shè)中斷類型號(hào)為32H,斷服務(wù)程序入口處的標(biāo)號(hào)為INTSUBP167或:
、、、MOV AX,0;0段MOV DS,AXMOV BX,4*32H;0段內(nèi)偏移地址MOV AX,OFFSETINTSUB;取入口地址的偏移地址MOV[BX],AX;把入口地址的偏移地址存入;0000:4*32字單元MOV AX,SEGINTSUB;取入口地址的段基址MOV[BX+2],AX;把入口地址的段基址存入;0000:4*32+2字單元DI+24×32+2DI4×32+0AL偏移AH地址AL段基AH址中斷向量表
DS0段
用DOS功能設(shè)置中斷向量表(07/10/31007)*中斷向量的置換在中斷向量表中,系統(tǒng)占有若干單元存放系統(tǒng)自己的中斷服務(wù)程序的入口地址(中斷向量),微機(jī)在初始化過程中,把這些中斷向量填寫到中斷向量表中。例如:系統(tǒng)輔串口占用中斷向量號(hào)0BH,系統(tǒng)初始化時(shí),已經(jīng)在0B×4~0B×4+3(002CH~002FH)這4個(gè)單元中填寫了中斷向量;如果用戶也想占用0BH,也必須把用戶的中斷向量寫入這4個(gè)單元。為了不破壞系統(tǒng)設(shè)置的中斷向量,需要進(jìn)行中斷置換:P167或:、、、DI+24×32+2DIIPLIPHCSLCSH用戶中斷服務(wù)程序CS:IP原中斷向量
堆棧
CS:IP1
2
30000:002CH0000:002DH0000:002EH0000:002FH*借用DOS35H號(hào)功能,讀出原中斷向量;
*借用DOS25H號(hào)功能,把用戶中斷向量寫入中斷向量表把原中斷向量填回中斷向量表1)35H號(hào)功能:入口:AL:中斷向量號(hào)
出口:ES存放中斷向量的段基址;BX存放偏移地址2)25H號(hào)功能
入口:AL:中斷向量號(hào);DS:中斷向量的段基址;DX:偏移地址例:設(shè)某外設(shè)的中斷服務(wù)程序的入口地址為INTP,中斷類型號(hào)為0BH。用戶中斷CS:IP原中斷向量堆棧CS:IP1230如果把0BH改變0AH,程序中相關(guān)部分應(yīng)當(dāng)怎么處理?(3)中斷描述符表在DOS環(huán)境下,486工作在實(shí)模式時(shí),中斷服務(wù)程序的屬性比較單一,僅用中斷向量表明它的位置就可以了。:MOVAX,350BH;AH=35H,AL=0BHINT21H;從向量表中讀出原中斷向量
;存人ES:BPUSHES;把原中斷向量壓入堆棧PUSHBX
MOVAX,SEGINTP;取用戶中斷向量段基址MOVDS,AX;25H功能要求基地址送入DSMOVDX,OFFSETINTP;用戶中斷向量偏移地址MOVAX,250BH;AH=25H,AL=0BHINT21H;把用戶中斷服務(wù)程序入口地址:;填入中斷向量表POPDX;取原中斷向量POPDSMOVAX,250BHINT21H;把原中斷向量填回中斷向量表如果把0BH改變0AH,程序中相關(guān)部分應(yīng)當(dāng)怎么處理?(3)中在多任務(wù)操作系統(tǒng)(如:UNIX,WINDOWS)管理下,486工作在保護(hù)模式的時(shí)候,情況要復(fù)雜得多,僅僅用中斷向量已經(jīng)不能全面描述中斷服務(wù)程序的全部屬性了,而必須:用中斷描述符來描述中斷服務(wù)程序;用中斷描述符表來代替中斷向量表。
暫時(shí)了解到此(4)中斷優(yōu)先級(jí)與中斷嵌套CPU在執(zhí)行中斷服務(wù)程序的過程中,被高優(yōu)先級(jí)的中斷源中斷,又轉(zhuǎn)入另一個(gè)中斷服務(wù)程序的操作,叫中斷嵌套。P170圖6.12
嵌套原則:高級(jí)可以中斷低級(jí),低級(jí)不能中斷高級(jí)或同級(jí)。P170表6.1給出了在80486中,各大類中斷源的優(yōu)先級(jí)。(5)CPU響應(yīng)中斷的條件并非一產(chǎn)生中斷請求,CPU就響應(yīng)中斷。CPU響應(yīng)中斷是有一定條件的,其中以可屏蔽中斷的條件最多,以此為例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版科技公司股東股權(quán)分割與轉(zhuǎn)讓及管理層激勵(lì)協(xié)議3篇
- 2025版二手房公積金貸款買賣合同(含稅費(fèi)支付)4篇
- 二零二五年度施工現(xiàn)場大氣污染防治協(xié)議2篇
- 鍋爐課程設(shè)計(jì)與體會(huì)
- 鍋爐課程設(shè)計(jì)excel計(jì)算軟件
- 二零二五年駕校場地租賃與交通疏導(dǎo)服務(wù)合同2篇
- 2025年增資協(xié)議法規(guī)解釋說明
- 二零二五年科技型中小企業(yè)貸款抵押擔(dān)保協(xié)議3篇
- 二零二五年度自然災(zāi)害現(xiàn)場錄像采集合同2篇
- 施工方案明細(xì)
- 巖土工程勘察課件0巖土工程勘察
- 《腎上腺腫瘤》課件
- 2024-2030年中國典當(dāng)行業(yè)發(fā)展前景預(yù)測及融資策略分析報(bào)告
- 《乘用車越野性能主觀評(píng)價(jià)方法》
- 幼師個(gè)人成長發(fā)展規(guī)劃
- 2024-2025學(xué)年北師大版高二上學(xué)期期末英語試題及解答參考
- 動(dòng)物醫(yī)學(xué)類專業(yè)生涯發(fā)展展示
- 批發(fā)面包采購合同范本
- 乘風(fēng)化麟 蛇我其誰 2025XX集團(tuán)年終總結(jié)暨頒獎(jiǎng)盛典
- 2024年大數(shù)據(jù)分析公司與中國政府合作協(xié)議
- 一年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)匯編
評(píng)論
0/150
提交評(píng)論