版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
7.3中斷技術(shù)7.3.1中斷的基本概念
1.中斷的定義
在CPU執(zhí)行程序的過程中,出現(xiàn)了某種緊急或異常的事件(中斷請求),CPU需暫停正在執(zhí)行的程序,轉(zhuǎn)去處理該事件(執(zhí)行中斷服務(wù)程序),并在處理完畢后返回斷點(diǎn)處繼續(xù)執(zhí)行被暫停的程序,這一過程稱為中斷。斷點(diǎn)處是指返回主程序時執(zhí)行的第一條指令的地址。中斷過程如圖7.10所示。為實(shí)現(xiàn)中斷功能而設(shè)置的硬件電路和與之相應(yīng)的軟件,稱為中斷系統(tǒng)。7.3中斷技術(shù)7.3.1中斷的基本概念1圖7.10中斷過程示意圖圖7.10中斷過程示意圖22.中斷源任何能夠引發(fā)中斷的事件都稱為中斷源,可分為硬件中斷源和軟件中斷源兩類。硬件中斷源主要包括外設(shè)(如鍵盤、打印機(jī)等)、數(shù)據(jù)通道(如磁盤機(jī)、磁帶機(jī)等)、時鐘電路(如定時計數(shù)器8253)和故障源(如電源掉電)等;軟件中斷源主要包括為調(diào)試程序設(shè)置的中斷(如斷點(diǎn)、單步執(zhí)行等)、中斷指令(如INT21H等)以及指令執(zhí)行過程出錯(如除法運(yùn)算時除數(shù)為零)等。2.中斷源33.中斷處理過程對于一個中斷源的中斷處理過程應(yīng)包括以下幾個步驟,即中斷請求、中斷響應(yīng)、保護(hù)斷點(diǎn)、中斷處理和中斷返回。
1)中斷請求
中斷請求是中斷源向CPU發(fā)出的請求中斷的要求。軟件中斷源是在CPU內(nèi)部由中斷指令或程序出錯直接引發(fā)中斷;而硬件中斷源必須通過專門的電路將中斷請求信號傳送給CPU,CPU也有專門的引腳接收中斷請求信號。例如,8086/8088CPU用INTR引腳(可屏蔽中斷請求)和NMI引腳(非屏蔽中斷請求)接收硬件中斷請求信號。一般外設(shè)發(fā)出的都是可屏蔽中斷請求。3.中斷處理過程4圖7.11中斷請求與屏蔽接口電路圖7.11中斷請求與屏蔽接口電路5
當(dāng)外設(shè)準(zhǔn)備好一個數(shù)據(jù)時,便發(fā)出選通信號,該信號一方面把數(shù)據(jù)存入接口的鎖存器中,另一方面使中斷請求觸發(fā)器置1。此時,如果中斷屏蔽觸發(fā)器Q端的狀態(tài)為1,則產(chǎn)生了一個發(fā)往CPU的中斷請求信號INT。中斷屏蔽觸發(fā)器的狀態(tài)決定了系統(tǒng)是否允許該接口發(fā)出中斷請求??梢?,要想產(chǎn)生一個中斷請求信號,需滿足兩個條件:一是要由外設(shè)將接口中的中斷請求觸發(fā)器置1,二是要由CPU將接口中的中斷屏蔽觸發(fā)器Q端置1。
當(dāng)外設(shè)準(zhǔn)備好一個數(shù)據(jù)時,便發(fā)出選通信號,該信號62)中斷響應(yīng)
CPU在每條指令執(zhí)行的最后一個時鐘周期檢測其中斷請求輸入端,判斷有無中斷請求,若CPU接收到了中斷請求信號,且此時CPU內(nèi)部的中斷允許觸發(fā)器的狀態(tài)為1,則CPU在現(xiàn)行指令執(zhí)行完后,發(fā)出INTA信號響應(yīng)中斷。從圖7.11中可以看到,一旦進(jìn)入中斷處理,立即清除中斷請求信號。這樣可以避免一個中斷請求被CPU多次響應(yīng)。圖7.12給出了CPU內(nèi)部產(chǎn)生中斷響應(yīng)信號的邏輯電路。對于8086/8088CPU可以用開中斷(STI)或關(guān)中斷(CLI)指令來改變中斷允許觸發(fā)器(即IF標(biāo)志位)的狀態(tài)。2)中斷響應(yīng)7圖7.12CPU內(nèi)部設(shè)置中斷允許觸發(fā)器圖7.12CPU內(nèi)部設(shè)置中斷允許觸發(fā)器83)保護(hù)斷點(diǎn)
CPU一旦響應(yīng)中斷,需要對其正在執(zhí)行程序的斷點(diǎn)信息進(jìn)行保護(hù),以便在中斷處理結(jié)束后仍能回到該斷點(diǎn)處繼續(xù)執(zhí)行。對于8086/8088CPU,保護(hù)斷點(diǎn)的過程由硬件自動完成,主要工作是關(guān)中斷、將標(biāo)志寄存器內(nèi)容入棧保存以及將CS和IP內(nèi)容入棧保存。3)保護(hù)斷點(diǎn)94)中斷處理中斷處理的過程實(shí)際就是CPU執(zhí)行中斷服務(wù)程序的過程。用戶編寫的用于CPU為中斷源進(jìn)行中斷處理的程序稱為中斷服務(wù)程序。由于不同中斷源在系統(tǒng)中的作用不同,所要完成的功能不同,因此,不同中斷源的中斷服務(wù)程序內(nèi)容也各不相同。例如,對于圖7.11所示的輸入設(shè)備,其中斷服務(wù)程序的主要任務(wù)是用輸入指令(IN)從接口中的數(shù)據(jù)端口向CPU輸入數(shù)據(jù)。4)中斷處理10
另外,主程序中有些寄存器的內(nèi)容在中斷前后需保持一致,不能因中斷而發(fā)生變化,但在中斷服務(wù)程序中又用到了這些寄存器,為了保證在返回主程序后仍能從斷點(diǎn)處繼續(xù)正確執(zhí)行,還需要在中斷服務(wù)程序的開頭對這些寄存器內(nèi)容進(jìn)行保護(hù)(即保護(hù)現(xiàn)場),在中斷服務(wù)程序的末尾恢復(fù)這些寄存器的內(nèi)容(即恢復(fù)現(xiàn)場)。保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場一般用PUSH和POP指令實(shí)現(xiàn),所以要特別注意寄存器內(nèi)容入棧和出棧的次序。
另外,主程序中有些寄存器的內(nèi)容在中斷前后需保115)中斷返回執(zhí)行完中斷服務(wù)程序,返回到原先被中斷的程序,此過程稱為中斷返回。為了能正確返回到原來程序的斷點(diǎn)處,在中斷服務(wù)程序的最后應(yīng)專門放置一條中斷返回指令(如8086/8088的IRET指令)。中斷返回指令的作用實(shí)際上是恢復(fù)斷點(diǎn),也就是保護(hù)斷點(diǎn)的逆過程。5)中斷返回127.3.2中斷優(yōu)先級和中斷的嵌套
1.中斷優(yōu)先級
中斷請求是隨機(jī)發(fā)生的,當(dāng)系統(tǒng)具有多個中斷源時,有時會同時出現(xiàn)多個中斷請求,CPU只能按一定的次序予以響應(yīng)和處理,這個響應(yīng)的次序稱為中斷優(yōu)先級。對于不同級別的中斷請求,一般的處理原則是:
(1)不同優(yōu)先級的多個中斷源同時發(fā)出中斷請求,按優(yōu)先級由高到低依次處理。7.3.2中斷優(yōu)先級和中斷的嵌套13(2)低優(yōu)先級中斷正在處理,出現(xiàn)高優(yōu)先級請求,應(yīng)轉(zhuǎn)去處理高優(yōu)先級請求,服務(wù)結(jié)束后再返回原優(yōu)先級較低的中斷服務(wù)程序繼續(xù)執(zhí)行。
(3)高優(yōu)先級中斷正在處理,出現(xiàn)低優(yōu)先級請求,可暫不響應(yīng)。
(4)中斷處理時,出現(xiàn)同級別請求,應(yīng)在當(dāng)前中斷處理結(jié)束以后再處理新的請求。(2)低優(yōu)先級中斷正在處理,出現(xiàn)高優(yōu)先級請求,應(yīng)轉(zhuǎn)142.中斷優(yōu)先級的確定在微機(jī)系統(tǒng)中通常用三種方法來確定中斷源的優(yōu)先級別,即軟件查詢法、硬件排隊電路法和專用中斷控制芯片法。本節(jié)簡要介紹前兩種方法,第三種方法將在本章的最后一節(jié)作詳細(xì)介紹。
1)軟件查詢法軟件查詢法需要簡單的硬件電路支持。以8個中斷源為例,其硬件電路如圖7.13所示,將8個外設(shè)的中斷請求組合起來作為一個端口(中斷寄存器),并將各個外設(shè)的中斷請求信號相或,產(chǎn)生一個總的INT信號。2.中斷優(yōu)先級的確定15
任一個外設(shè)有中斷請求,該電路都可向CPU發(fā)中斷請求信號(INT),CPU響應(yīng)后進(jìn)入中斷處理程序,在中斷處理程序的開始先把中斷寄存器的內(nèi)容讀入CPU,再對寄存器內(nèi)容進(jìn)行逐位查詢,查到某位狀態(tài)為1,表示與該位相連的外設(shè)有中斷請求,于是轉(zhuǎn)到與其相應(yīng)的中斷服務(wù)程序,同時該外設(shè)撤消其中斷請求信號。軟件查詢方式的流程圖如圖7.14所示。任一個外設(shè)有中斷請求,該電路都可向CPU發(fā)中16圖7.13
軟件查詢法的硬件電路圖7.13軟件查詢法的硬件電路17圖7.14軟件查詢方式的流程圖圖7.14軟件查詢方式的流程圖18
對于圖7.13所示電路,設(shè)中斷寄存器端口號為n,則軟件查詢的程序段如下:
IN AL,nTEST AL,80H ;1號外設(shè)有請求?JNZ II1 ;有,轉(zhuǎn)1號中斷服務(wù)程序
TEST AL,40H ;2號外設(shè)有請求?JNZ II2 ;有,轉(zhuǎn)2號中斷服務(wù)程序?qū)τ趫D7.13所示電路,設(shè)中斷寄存器端口號為n,則軟19
可以看出,采用軟件查詢方式,各中斷源的優(yōu)先級是由查詢順序決定的,最先查詢的設(shè)備,其優(yōu)先級最高,最后查詢的設(shè)備,其優(yōu)先級最低。采用軟件查詢方式的優(yōu)點(diǎn)是節(jié)省硬件。但是,由于CPU每次響應(yīng)中斷時都要對各中斷源進(jìn)行逐一查詢,所以其響應(yīng)速度較慢。對于優(yōu)先級較低的中斷源來說,該缺點(diǎn)更為明顯??梢钥闯?,采用軟件查詢方式,各中斷源的優(yōu)先級202)硬件排隊電路采用硬件排隊電路法,各個外設(shè)的優(yōu)先級與其接口在排隊電路中的位置有關(guān)。常用的硬件優(yōu)先權(quán)排隊電路有鏈?zhǔn)絻?yōu)先權(quán)排隊電路、硬件優(yōu)先級編碼加比較器的排隊電路等。圖7.15給出了一個鏈?zhǔn)絻?yōu)先級排隊電路。2)硬件排隊電路21
圖7.15中,當(dāng)響應(yīng)信號沿鏈?zhǔn)诫娐愤M(jìn)行傳遞時,最靠近CPU并發(fā)出中斷請求的接口將首先攔截住響應(yīng)信號,CPU進(jìn)入相應(yīng)外設(shè)的中斷處理程序,在服務(wù)完成后,該外設(shè)撤消其中斷請求,解除對下一級外設(shè)的封鎖。例如,當(dāng)CPU收到中斷請求信號并響應(yīng)中斷時,若1號外設(shè)有中斷請求(高電平),則立即向1號外設(shè)接口發(fā)出應(yīng)答信號,同時封鎖2號、3號等外設(shè)的中斷請求,轉(zhuǎn)去對1號外設(shè)服務(wù);若1號外設(shè)沒有中斷請求,而2號外設(shè)有中斷請求時,響應(yīng)信號便傳遞給2號外設(shè),向2號外設(shè)接口發(fā)出應(yīng)答信號,同時封鎖3號外設(shè)的中斷請求;若CPU在為2號外設(shè)進(jìn)行中斷服務(wù)時1號外設(shè)發(fā)出了中斷請求,CPU會掛起對2號外設(shè)的服務(wù)轉(zhuǎn)去對1號外設(shè)服務(wù),1號外設(shè)處理結(jié)束后,再繼續(xù)為2號外設(shè)服務(wù)。圖7.15中,當(dāng)響應(yīng)信號沿鏈?zhǔn)诫娐愤M(jìn)行傳遞時22圖7.15鏈?zhǔn)街袛鄡?yōu)先級電路圖7.15鏈?zhǔn)街袛鄡?yōu)先級電路23
上述兩種方法雖然可以解決中斷優(yōu)先級控制問題,但實(shí)現(xiàn)起來在硬件和軟件上都要做大量的工作,十分麻煩。目前,最方便的辦法就是利用廠家提供的可編程中斷控制器,這樣的器件在各種微機(jī)中得到普遍應(yīng)用。本章后面將介紹廣泛應(yīng)用于80x86微機(jī)系統(tǒng)中的專用可編程中斷控制芯片8259A。上述兩種方法雖然可以解決中斷優(yōu)先級控制問題,24
3.中斷嵌套
CPU在執(zhí)行低級別中斷服務(wù)程序時,又收到較高級別的中斷請求,CPU暫停執(zhí)行低級別中斷服務(wù)程序,轉(zhuǎn)去處理這個高級別的中斷,處理完后再返回低級別中斷服務(wù)程序,這個過程稱為中斷嵌套,如圖7.16所示。圖7.16中斷嵌套示意圖3.中斷嵌套圖7.16中斷嵌套示意圖25
一般CPU響應(yīng)中斷請求后,在進(jìn)入中斷服務(wù)程序前,硬件會自動實(shí)現(xiàn)關(guān)中斷,這樣,CPU在執(zhí)行中斷服務(wù)程序時將不能再響應(yīng)其他中斷請求。為了實(shí)現(xiàn)中斷嵌套,應(yīng)在低級別中斷服務(wù)程序的開始處加一條開中斷指令STI。能夠?qū)崿F(xiàn)中斷嵌套的中斷系統(tǒng),其軟、硬件設(shè)計都非常復(fù)雜,如果采用了可編程中斷控制器,就會方便很多。一般CPU響應(yīng)中斷請求后,在進(jìn)入中斷服務(wù)程序前,硬件267.48086/8088中斷系統(tǒng)7.4.18086/8088的中斷源類型
8086/8088CPU可以處理256種不同類型的中斷,每一種中斷都給定一個編號(0255),稱為中斷類型號,CPU根據(jù)中斷類型號來識別不同的中斷源。8086/8088的中斷源如圖7.17所示。從圖中可以看出8086/8088的中斷源可分為兩大類:一類來自CPU的外部,由外設(shè)的請求引起,稱為硬件中斷(又稱外部中斷);另一類來自CPU的內(nèi)部,由執(zhí)行指令時引起,稱為軟件中斷(又稱內(nèi)部中斷)。7.48086/8088中斷系統(tǒng)7.4.1808627圖7.178086/8088中斷源圖7.178086/8088中斷源28
1.軟件中斷(內(nèi)部中斷)8086/8088的軟件中斷主要有五種,分為三類。
1)處理運(yùn)算過程中某些錯誤的中斷執(zhí)行程序時,為及時處理運(yùn)算中的某些錯誤,CPU以中斷方式中止正在運(yùn)行的程序,提醒程序員改錯。
(1)除法錯中斷(中斷類型號為0)。在8086/8088CPU執(zhí)行除法指令(DIV/IDIV)時,若發(fā)現(xiàn)除數(shù)為0,或所得的商超過了CPU中有關(guān)寄存器所能表示的最大值,則立即產(chǎn)生一個類型號為0的內(nèi)部中斷,CPU轉(zhuǎn)去執(zhí)行除法錯中斷處理程序。1.軟件中斷(內(nèi)部中斷)29(2)溢出中斷INTO(中斷類型號為4)。CPU進(jìn)行帶符號數(shù)的算術(shù)運(yùn)算時,若發(fā)生了溢出,則標(biāo)志位OF=1,若此時執(zhí)行INTO指令,會產(chǎn)生溢出中斷,打印出一個錯誤信息,結(jié)束時不返回,而把控制權(quán)交給操作系統(tǒng)。若OF=0,則INTO不產(chǎn)生中斷,CPU繼續(xù)執(zhí)行下一條指令。INTO指令通常安排在算術(shù)指令之后,以便在溢出時能及時處理。例如:
ADDAX,BX INTO ;測試加法的溢出(2)溢出中斷INTO(中斷類型號為4)。CPU進(jìn)302)為調(diào)試程序設(shè)置的中斷
(1)單步中斷(中斷類型號為1)。當(dāng)TF=1時,每執(zhí)行一條指令,CPU會自動產(chǎn)生一個單步中斷。單步中斷可一條一條指令地跟蹤程序流程,觀察各個寄存器及存儲單元內(nèi)容的變化,幫助分析錯誤原因。單步中斷又稱為陷阱中斷,主要用于程序調(diào)試。
(2)斷點(diǎn)中斷(中斷類型號為3)。調(diào)試程序時可以在一些關(guān)鍵性的地方設(shè)置斷點(diǎn),它相當(dāng)于把一條INT3指令插入到程序中,CPU每執(zhí)行到斷點(diǎn)處,INT3指令便產(chǎn)生一個中斷,使CPU轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序。2)為調(diào)試程序設(shè)置的中斷313)中斷指令I(lǐng)NTn引起的中斷(中斷類型號為n)
程序設(shè)計時,可以用INTn指令來產(chǎn)生軟件中斷,中斷指令的操作數(shù)n給出了中斷類型號,CPU執(zhí)行INTn指令后,會立即產(chǎn)生一個類型號為n的中斷,轉(zhuǎn)入相應(yīng)的中斷處理程序來完成中斷功能。3)中斷指令I(lǐng)NTn引起的中斷(中斷類型號為n)322.硬件中斷(外部中斷)8086/8088CPU有兩條外部中斷請求線NMI(非屏蔽中斷)和INTR(可屏蔽中斷)。
1)非屏蔽中斷NMI(中斷類型號為2)
整個系統(tǒng)只有一個非屏蔽中斷,它不受IF標(biāo)志位的屏蔽。出現(xiàn)在NMI上的請求信號是上升沿觸發(fā)的,一旦出現(xiàn),CPU將予以響應(yīng)。非屏蔽中斷一般用于緊急故障處理。2.硬件中斷(外部中斷)332)可屏蔽中斷INTR
可屏蔽中斷請求信號從INTR引腳送往CPU,高電平有效,受IF標(biāo)志位屏蔽,IF=0時,對于所有從INTR引腳進(jìn)入的中斷請求,CPU均不予響應(yīng);另外,也可以在CPU外部的中斷控制器(8259A)中以及各個I/O接口電路中對某一級中斷或某個中斷源單獨(dú)進(jìn)行屏蔽。2)可屏蔽中斷INTR34
當(dāng)外設(shè)的中斷請求未被屏蔽,且IF=1,則CPU在當(dāng)前指令周期的最后一個T狀態(tài)去采樣INTR引腳,若有效,CPU予以響應(yīng)。CPU將執(zhí)行兩個連續(xù)的中斷響應(yīng)周期,送出兩個中斷響應(yīng)信號
INTA。第一個響應(yīng)周期,CPU將地址及數(shù)據(jù)總線置高阻;在第二個響應(yīng)周期,外設(shè)向數(shù)據(jù)總線輸送一個字節(jié)的中斷類型號,CPU讀入后,就可在中斷向量表中找到該類型號的中斷服務(wù)程序的入口地址,轉(zhuǎn)入中斷處理。值得注意的是,對于非屏蔽中斷和軟件中斷,其中斷類型號由CPU內(nèi)部自動提供,不需去執(zhí)行中斷響應(yīng)周期讀取中斷類型號。當(dāng)外設(shè)的中斷請求未被屏蔽,且IF=1,則CPU在當(dāng)353.8086/8088中斷源的優(yōu)先級
8086/8088中斷源的優(yōu)先級順序由高到低依次為:軟件中斷(除單步中斷外)、非屏蔽中斷、可屏蔽中斷、單步中斷。在PC機(jī)系統(tǒng)中,外設(shè)的中斷請求通過中斷控制器8259A連接到CPU的INTR引腳,外設(shè)中斷源的優(yōu)先級別由8259A進(jìn)行管理。3.8086/8088中斷源的優(yōu)先級367.4.2中斷向量表中斷向量表是存放中斷向量的一個特定的內(nèi)存區(qū)域。所謂中斷向量,就是中斷服務(wù)程序的入口地址。對于8086/8088系統(tǒng),所有中斷服務(wù)程序的入口地址都存放在中斷向量表中。
8086/8088可以處理256種中斷,每種中斷對應(yīng)一個中斷類型號,每個中斷類型號與一個中斷服務(wù)程序的入口地址相對應(yīng)。每個中斷服務(wù)程序的入口地址占4個存儲單元,其中低地址的兩個單元存放中斷服務(wù)程序入口地址的偏移量(IP);高地址的兩個單元存放中斷服務(wù)程序入口地址的段地址(CS)。256個中斷向量要占256×4=1024個單元,即中斷向量表長度為1?K個單元。8086/8088系統(tǒng)的中斷向量表位于內(nèi)存的前1K字節(jié),地址范圍為00000H~003FFH。8086/8088的中斷向量表如圖7.18所示。
7.4.2中斷向量表37圖7.188086/8088的中斷向量表圖7.188086/8088的中斷向量表38
圖7.18所示的中斷向量表中有5個專用中斷(類型0~類型4),它們已經(jīng)有固定用途;27個系統(tǒng)保留的中斷(類型5~類型31)供系統(tǒng)使用,不允許用戶自行定義;224個用戶自定義中斷(類型32~類型255),這些中斷類型號可供軟中斷INTn或可屏蔽中斷INTR使用,使用時,要由用戶自行填入相應(yīng)的中斷服務(wù)程序入口地址。(其中有些中斷類型已經(jīng)有了固定用途,例如,類型21H的中斷已用做DOS的系統(tǒng)功能調(diào)用)。圖7.18所示的中斷向量表中有5個專用中斷(39
由于中斷服務(wù)程序入口地址在中斷向量表中是按中斷類型號順序存放的,因此每個中斷服務(wù)程序入口地址在中斷向量表中的位置可由“中斷類型號×4”計算出來。CPU響應(yīng)中斷時,把中斷類型號N乘以4,得到對應(yīng)地址4N(該中斷服務(wù)程序入口地址所占4個單元的第一個單元的地址),然后把由此地址開始的兩個低字節(jié)單元(4N,4N+1)的內(nèi)容裝入IP寄存器,再把兩個高字節(jié)單元(4N+2,4N+3)的內(nèi)容裝入CS寄存器,于是CPU轉(zhuǎn)入中斷類型號為N的中斷服務(wù)程序。這種采用向量中斷的方法,CPU可直接通過向量表轉(zhuǎn)向相應(yīng)的處理程序,而不需要去逐個檢測和確定中斷源,因而可以大大加快中斷響應(yīng)的速度。由于中斷服務(wù)程序入口地址在中斷向量表中是按中斷類型號407.4.38086/8088的中斷處理過程圖7.198086/8088CPU中斷處理的基本過程7.4.38086/8088的中斷處理過程圖7.1941
在圖示流程中,(1)(5)是CPU的內(nèi)部處理,由硬件自動完成。所有內(nèi)部中斷(除法錯、INTn、INTO、單步和斷點(diǎn)中斷)以及NMI中斷不需要從數(shù)據(jù)總線上讀取中斷類型碼,而INTR中斷需由CPU讀取中斷類型碼,其中斷類型碼由發(fā)出INTR信號的接口電路提供。該流程圖還反映出了8086/8088系統(tǒng)中各中斷源優(yōu)先級的高低。在圖示流程中,(1)(5)是CPU的內(nèi)部處理,由427.4.4中斷服務(wù)程序的設(shè)計中斷服務(wù)程序的一般結(jié)構(gòu)如圖7.20所示。如前所述,若該中斷處理能被更高級別的中斷源中斷,則需加入開中斷指令。在中斷服務(wù)程序的最后,一定要有中斷返回指令,以保證斷點(diǎn)的恢復(fù)。用戶在設(shè)計中斷服務(wù)程序時要預(yù)先確定一個中斷類型號,不論是采用軟件中斷還是硬件中斷,都只能在系統(tǒng)預(yù)留給用戶的類型號中選擇。7.4.4中斷服務(wù)程序的設(shè)計43圖7.20中斷服務(wù)程序的一般結(jié)構(gòu)圖7.20中斷服務(wù)程序的一般結(jié)構(gòu)44
1.DOS系統(tǒng)功能調(diào)用法功能號:(AH)=25H。入口參數(shù):(AL)=中斷類型號
(DS)=中斷服務(wù)程序入口地址的段地址
(DX)=中斷服務(wù)程序入口地址的偏移地址1.DOS系統(tǒng)功能調(diào)用法45下面程序段完成中斷類型號為60H的入口地址置入。PUSH DS ;保護(hù)DSMOV DX,OFFSETINT60 ;取服務(wù)程序偏移地址MOV AX,SEGINT60 ;取服務(wù)程序段地址MOV DS,AXMOV AH,25H ;送功能號MOV AL,60H ;送中斷類型號INT 21H ;DOS功能調(diào)用POP DS ;恢復(fù)DS下面程序段完成中斷類型號為60H的入口地址置入。462.直接裝入法用傳送指令直接將中斷服務(wù)程序首地址置入矢量表中。設(shè)中斷類型號為60H(此類型號對應(yīng)的矢量表地址為從00180H開始的四個連續(xù)存儲單元)。程序段如下:XOR AX,AXMOV DS,AXMOV AX,OFFSETINT60MOV DS:[0180H],AX ;置服務(wù)程序偏移地址MOV AX,SEGINT60MOV DS:[0180H+2],AX ;置服務(wù)程序所在代碼段的段地址
2.直接裝入法477.3中斷技術(shù)7.3.1中斷的基本概念
1.中斷的定義
在CPU執(zhí)行程序的過程中,出現(xiàn)了某種緊急或異常的事件(中斷請求),CPU需暫停正在執(zhí)行的程序,轉(zhuǎn)去處理該事件(執(zhí)行中斷服務(wù)程序),并在處理完畢后返回斷點(diǎn)處繼續(xù)執(zhí)行被暫停的程序,這一過程稱為中斷。斷點(diǎn)處是指返回主程序時執(zhí)行的第一條指令的地址。中斷過程如圖7.10所示。為實(shí)現(xiàn)中斷功能而設(shè)置的硬件電路和與之相應(yīng)的軟件,稱為中斷系統(tǒng)。7.3中斷技術(shù)7.3.1中斷的基本概念48圖7.10中斷過程示意圖圖7.10中斷過程示意圖492.中斷源任何能夠引發(fā)中斷的事件都稱為中斷源,可分為硬件中斷源和軟件中斷源兩類。硬件中斷源主要包括外設(shè)(如鍵盤、打印機(jī)等)、數(shù)據(jù)通道(如磁盤機(jī)、磁帶機(jī)等)、時鐘電路(如定時計數(shù)器8253)和故障源(如電源掉電)等;軟件中斷源主要包括為調(diào)試程序設(shè)置的中斷(如斷點(diǎn)、單步執(zhí)行等)、中斷指令(如INT21H等)以及指令執(zhí)行過程出錯(如除法運(yùn)算時除數(shù)為零)等。2.中斷源503.中斷處理過程對于一個中斷源的中斷處理過程應(yīng)包括以下幾個步驟,即中斷請求、中斷響應(yīng)、保護(hù)斷點(diǎn)、中斷處理和中斷返回。
1)中斷請求
中斷請求是中斷源向CPU發(fā)出的請求中斷的要求。軟件中斷源是在CPU內(nèi)部由中斷指令或程序出錯直接引發(fā)中斷;而硬件中斷源必須通過專門的電路將中斷請求信號傳送給CPU,CPU也有專門的引腳接收中斷請求信號。例如,8086/8088CPU用INTR引腳(可屏蔽中斷請求)和NMI引腳(非屏蔽中斷請求)接收硬件中斷請求信號。一般外設(shè)發(fā)出的都是可屏蔽中斷請求。3.中斷處理過程51圖7.11中斷請求與屏蔽接口電路圖7.11中斷請求與屏蔽接口電路52
當(dāng)外設(shè)準(zhǔn)備好一個數(shù)據(jù)時,便發(fā)出選通信號,該信號一方面把數(shù)據(jù)存入接口的鎖存器中,另一方面使中斷請求觸發(fā)器置1。此時,如果中斷屏蔽觸發(fā)器Q端的狀態(tài)為1,則產(chǎn)生了一個發(fā)往CPU的中斷請求信號INT。中斷屏蔽觸發(fā)器的狀態(tài)決定了系統(tǒng)是否允許該接口發(fā)出中斷請求。可見,要想產(chǎn)生一個中斷請求信號,需滿足兩個條件:一是要由外設(shè)將接口中的中斷請求觸發(fā)器置1,二是要由CPU將接口中的中斷屏蔽觸發(fā)器Q端置1。
當(dāng)外設(shè)準(zhǔn)備好一個數(shù)據(jù)時,便發(fā)出選通信號,該信號532)中斷響應(yīng)
CPU在每條指令執(zhí)行的最后一個時鐘周期檢測其中斷請求輸入端,判斷有無中斷請求,若CPU接收到了中斷請求信號,且此時CPU內(nèi)部的中斷允許觸發(fā)器的狀態(tài)為1,則CPU在現(xiàn)行指令執(zhí)行完后,發(fā)出INTA信號響應(yīng)中斷。從圖7.11中可以看到,一旦進(jìn)入中斷處理,立即清除中斷請求信號。這樣可以避免一個中斷請求被CPU多次響應(yīng)。圖7.12給出了CPU內(nèi)部產(chǎn)生中斷響應(yīng)信號的邏輯電路。對于8086/8088CPU可以用開中斷(STI)或關(guān)中斷(CLI)指令來改變中斷允許觸發(fā)器(即IF標(biāo)志位)的狀態(tài)。2)中斷響應(yīng)54圖7.12CPU內(nèi)部設(shè)置中斷允許觸發(fā)器圖7.12CPU內(nèi)部設(shè)置中斷允許觸發(fā)器553)保護(hù)斷點(diǎn)
CPU一旦響應(yīng)中斷,需要對其正在執(zhí)行程序的斷點(diǎn)信息進(jìn)行保護(hù),以便在中斷處理結(jié)束后仍能回到該斷點(diǎn)處繼續(xù)執(zhí)行。對于8086/8088CPU,保護(hù)斷點(diǎn)的過程由硬件自動完成,主要工作是關(guān)中斷、將標(biāo)志寄存器內(nèi)容入棧保存以及將CS和IP內(nèi)容入棧保存。3)保護(hù)斷點(diǎn)564)中斷處理中斷處理的過程實(shí)際就是CPU執(zhí)行中斷服務(wù)程序的過程。用戶編寫的用于CPU為中斷源進(jìn)行中斷處理的程序稱為中斷服務(wù)程序。由于不同中斷源在系統(tǒng)中的作用不同,所要完成的功能不同,因此,不同中斷源的中斷服務(wù)程序內(nèi)容也各不相同。例如,對于圖7.11所示的輸入設(shè)備,其中斷服務(wù)程序的主要任務(wù)是用輸入指令(IN)從接口中的數(shù)據(jù)端口向CPU輸入數(shù)據(jù)。4)中斷處理57
另外,主程序中有些寄存器的內(nèi)容在中斷前后需保持一致,不能因中斷而發(fā)生變化,但在中斷服務(wù)程序中又用到了這些寄存器,為了保證在返回主程序后仍能從斷點(diǎn)處繼續(xù)正確執(zhí)行,還需要在中斷服務(wù)程序的開頭對這些寄存器內(nèi)容進(jìn)行保護(hù)(即保護(hù)現(xiàn)場),在中斷服務(wù)程序的末尾恢復(fù)這些寄存器的內(nèi)容(即恢復(fù)現(xiàn)場)。保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場一般用PUSH和POP指令實(shí)現(xiàn),所以要特別注意寄存器內(nèi)容入棧和出棧的次序。
另外,主程序中有些寄存器的內(nèi)容在中斷前后需保585)中斷返回執(zhí)行完中斷服務(wù)程序,返回到原先被中斷的程序,此過程稱為中斷返回。為了能正確返回到原來程序的斷點(diǎn)處,在中斷服務(wù)程序的最后應(yīng)專門放置一條中斷返回指令(如8086/8088的IRET指令)。中斷返回指令的作用實(shí)際上是恢復(fù)斷點(diǎn),也就是保護(hù)斷點(diǎn)的逆過程。5)中斷返回597.3.2中斷優(yōu)先級和中斷的嵌套
1.中斷優(yōu)先級
中斷請求是隨機(jī)發(fā)生的,當(dāng)系統(tǒng)具有多個中斷源時,有時會同時出現(xiàn)多個中斷請求,CPU只能按一定的次序予以響應(yīng)和處理,這個響應(yīng)的次序稱為中斷優(yōu)先級。對于不同級別的中斷請求,一般的處理原則是:
(1)不同優(yōu)先級的多個中斷源同時發(fā)出中斷請求,按優(yōu)先級由高到低依次處理。7.3.2中斷優(yōu)先級和中斷的嵌套60(2)低優(yōu)先級中斷正在處理,出現(xiàn)高優(yōu)先級請求,應(yīng)轉(zhuǎn)去處理高優(yōu)先級請求,服務(wù)結(jié)束后再返回原優(yōu)先級較低的中斷服務(wù)程序繼續(xù)執(zhí)行。
(3)高優(yōu)先級中斷正在處理,出現(xiàn)低優(yōu)先級請求,可暫不響應(yīng)。
(4)中斷處理時,出現(xiàn)同級別請求,應(yīng)在當(dāng)前中斷處理結(jié)束以后再處理新的請求。(2)低優(yōu)先級中斷正在處理,出現(xiàn)高優(yōu)先級請求,應(yīng)轉(zhuǎn)612.中斷優(yōu)先級的確定在微機(jī)系統(tǒng)中通常用三種方法來確定中斷源的優(yōu)先級別,即軟件查詢法、硬件排隊電路法和專用中斷控制芯片法。本節(jié)簡要介紹前兩種方法,第三種方法將在本章的最后一節(jié)作詳細(xì)介紹。
1)軟件查詢法軟件查詢法需要簡單的硬件電路支持。以8個中斷源為例,其硬件電路如圖7.13所示,將8個外設(shè)的中斷請求組合起來作為一個端口(中斷寄存器),并將各個外設(shè)的中斷請求信號相或,產(chǎn)生一個總的INT信號。2.中斷優(yōu)先級的確定62
任一個外設(shè)有中斷請求,該電路都可向CPU發(fā)中斷請求信號(INT),CPU響應(yīng)后進(jìn)入中斷處理程序,在中斷處理程序的開始先把中斷寄存器的內(nèi)容讀入CPU,再對寄存器內(nèi)容進(jìn)行逐位查詢,查到某位狀態(tài)為1,表示與該位相連的外設(shè)有中斷請求,于是轉(zhuǎn)到與其相應(yīng)的中斷服務(wù)程序,同時該外設(shè)撤消其中斷請求信號。軟件查詢方式的流程圖如圖7.14所示。任一個外設(shè)有中斷請求,該電路都可向CPU發(fā)中63圖7.13
軟件查詢法的硬件電路圖7.13軟件查詢法的硬件電路64圖7.14軟件查詢方式的流程圖圖7.14軟件查詢方式的流程圖65
對于圖7.13所示電路,設(shè)中斷寄存器端口號為n,則軟件查詢的程序段如下:
IN AL,nTEST AL,80H ;1號外設(shè)有請求?JNZ II1 ;有,轉(zhuǎn)1號中斷服務(wù)程序
TEST AL,40H ;2號外設(shè)有請求?JNZ II2 ;有,轉(zhuǎn)2號中斷服務(wù)程序?qū)τ趫D7.13所示電路,設(shè)中斷寄存器端口號為n,則軟66
可以看出,采用軟件查詢方式,各中斷源的優(yōu)先級是由查詢順序決定的,最先查詢的設(shè)備,其優(yōu)先級最高,最后查詢的設(shè)備,其優(yōu)先級最低。采用軟件查詢方式的優(yōu)點(diǎn)是節(jié)省硬件。但是,由于CPU每次響應(yīng)中斷時都要對各中斷源進(jìn)行逐一查詢,所以其響應(yīng)速度較慢。對于優(yōu)先級較低的中斷源來說,該缺點(diǎn)更為明顯??梢钥闯觯捎密浖樵兎绞?,各中斷源的優(yōu)先級672)硬件排隊電路采用硬件排隊電路法,各個外設(shè)的優(yōu)先級與其接口在排隊電路中的位置有關(guān)。常用的硬件優(yōu)先權(quán)排隊電路有鏈?zhǔn)絻?yōu)先權(quán)排隊電路、硬件優(yōu)先級編碼加比較器的排隊電路等。圖7.15給出了一個鏈?zhǔn)絻?yōu)先級排隊電路。2)硬件排隊電路68
圖7.15中,當(dāng)響應(yīng)信號沿鏈?zhǔn)诫娐愤M(jìn)行傳遞時,最靠近CPU并發(fā)出中斷請求的接口將首先攔截住響應(yīng)信號,CPU進(jìn)入相應(yīng)外設(shè)的中斷處理程序,在服務(wù)完成后,該外設(shè)撤消其中斷請求,解除對下一級外設(shè)的封鎖。例如,當(dāng)CPU收到中斷請求信號并響應(yīng)中斷時,若1號外設(shè)有中斷請求(高電平),則立即向1號外設(shè)接口發(fā)出應(yīng)答信號,同時封鎖2號、3號等外設(shè)的中斷請求,轉(zhuǎn)去對1號外設(shè)服務(wù);若1號外設(shè)沒有中斷請求,而2號外設(shè)有中斷請求時,響應(yīng)信號便傳遞給2號外設(shè),向2號外設(shè)接口發(fā)出應(yīng)答信號,同時封鎖3號外設(shè)的中斷請求;若CPU在為2號外設(shè)進(jìn)行中斷服務(wù)時1號外設(shè)發(fā)出了中斷請求,CPU會掛起對2號外設(shè)的服務(wù)轉(zhuǎn)去對1號外設(shè)服務(wù),1號外設(shè)處理結(jié)束后,再繼續(xù)為2號外設(shè)服務(wù)。圖7.15中,當(dāng)響應(yīng)信號沿鏈?zhǔn)诫娐愤M(jìn)行傳遞時69圖7.15鏈?zhǔn)街袛鄡?yōu)先級電路圖7.15鏈?zhǔn)街袛鄡?yōu)先級電路70
上述兩種方法雖然可以解決中斷優(yōu)先級控制問題,但實(shí)現(xiàn)起來在硬件和軟件上都要做大量的工作,十分麻煩。目前,最方便的辦法就是利用廠家提供的可編程中斷控制器,這樣的器件在各種微機(jī)中得到普遍應(yīng)用。本章后面將介紹廣泛應(yīng)用于80x86微機(jī)系統(tǒng)中的專用可編程中斷控制芯片8259A。上述兩種方法雖然可以解決中斷優(yōu)先級控制問題,71
3.中斷嵌套
CPU在執(zhí)行低級別中斷服務(wù)程序時,又收到較高級別的中斷請求,CPU暫停執(zhí)行低級別中斷服務(wù)程序,轉(zhuǎn)去處理這個高級別的中斷,處理完后再返回低級別中斷服務(wù)程序,這個過程稱為中斷嵌套,如圖7.16所示。圖7.16中斷嵌套示意圖3.中斷嵌套圖7.16中斷嵌套示意圖72
一般CPU響應(yīng)中斷請求后,在進(jìn)入中斷服務(wù)程序前,硬件會自動實(shí)現(xiàn)關(guān)中斷,這樣,CPU在執(zhí)行中斷服務(wù)程序時將不能再響應(yīng)其他中斷請求。為了實(shí)現(xiàn)中斷嵌套,應(yīng)在低級別中斷服務(wù)程序的開始處加一條開中斷指令STI。能夠?qū)崿F(xiàn)中斷嵌套的中斷系統(tǒng),其軟、硬件設(shè)計都非常復(fù)雜,如果采用了可編程中斷控制器,就會方便很多。一般CPU響應(yīng)中斷請求后,在進(jìn)入中斷服務(wù)程序前,硬件737.48086/8088中斷系統(tǒng)7.4.18086/8088的中斷源類型
8086/8088CPU可以處理256種不同類型的中斷,每一種中斷都給定一個編號(0255),稱為中斷類型號,CPU根據(jù)中斷類型號來識別不同的中斷源。8086/8088的中斷源如圖7.17所示。從圖中可以看出8086/8088的中斷源可分為兩大類:一類來自CPU的外部,由外設(shè)的請求引起,稱為硬件中斷(又稱外部中斷);另一類來自CPU的內(nèi)部,由執(zhí)行指令時引起,稱為軟件中斷(又稱內(nèi)部中斷)。7.48086/8088中斷系統(tǒng)7.4.1808674圖7.178086/8088中斷源圖7.178086/8088中斷源75
1.軟件中斷(內(nèi)部中斷)8086/8088的軟件中斷主要有五種,分為三類。
1)處理運(yùn)算過程中某些錯誤的中斷執(zhí)行程序時,為及時處理運(yùn)算中的某些錯誤,CPU以中斷方式中止正在運(yùn)行的程序,提醒程序員改錯。
(1)除法錯中斷(中斷類型號為0)。在8086/8088CPU執(zhí)行除法指令(DIV/IDIV)時,若發(fā)現(xiàn)除數(shù)為0,或所得的商超過了CPU中有關(guān)寄存器所能表示的最大值,則立即產(chǎn)生一個類型號為0的內(nèi)部中斷,CPU轉(zhuǎn)去執(zhí)行除法錯中斷處理程序。1.軟件中斷(內(nèi)部中斷)76(2)溢出中斷INTO(中斷類型號為4)。CPU進(jìn)行帶符號數(shù)的算術(shù)運(yùn)算時,若發(fā)生了溢出,則標(biāo)志位OF=1,若此時執(zhí)行INTO指令,會產(chǎn)生溢出中斷,打印出一個錯誤信息,結(jié)束時不返回,而把控制權(quán)交給操作系統(tǒng)。若OF=0,則INTO不產(chǎn)生中斷,CPU繼續(xù)執(zhí)行下一條指令。INTO指令通常安排在算術(shù)指令之后,以便在溢出時能及時處理。例如:
ADDAX,BX INTO ;測試加法的溢出(2)溢出中斷INTO(中斷類型號為4)。CPU進(jìn)772)為調(diào)試程序設(shè)置的中斷
(1)單步中斷(中斷類型號為1)。當(dāng)TF=1時,每執(zhí)行一條指令,CPU會自動產(chǎn)生一個單步中斷。單步中斷可一條一條指令地跟蹤程序流程,觀察各個寄存器及存儲單元內(nèi)容的變化,幫助分析錯誤原因。單步中斷又稱為陷阱中斷,主要用于程序調(diào)試。
(2)斷點(diǎn)中斷(中斷類型號為3)。調(diào)試程序時可以在一些關(guān)鍵性的地方設(shè)置斷點(diǎn),它相當(dāng)于把一條INT3指令插入到程序中,CPU每執(zhí)行到斷點(diǎn)處,INT3指令便產(chǎn)生一個中斷,使CPU轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序。2)為調(diào)試程序設(shè)置的中斷783)中斷指令I(lǐng)NTn引起的中斷(中斷類型號為n)
程序設(shè)計時,可以用INTn指令來產(chǎn)生軟件中斷,中斷指令的操作數(shù)n給出了中斷類型號,CPU執(zhí)行INTn指令后,會立即產(chǎn)生一個類型號為n的中斷,轉(zhuǎn)入相應(yīng)的中斷處理程序來完成中斷功能。3)中斷指令I(lǐng)NTn引起的中斷(中斷類型號為n)792.硬件中斷(外部中斷)8086/8088CPU有兩條外部中斷請求線NMI(非屏蔽中斷)和INTR(可屏蔽中斷)。
1)非屏蔽中斷NMI(中斷類型號為2)
整個系統(tǒng)只有一個非屏蔽中斷,它不受IF標(biāo)志位的屏蔽。出現(xiàn)在NMI上的請求信號是上升沿觸發(fā)的,一旦出現(xiàn),CPU將予以響應(yīng)。非屏蔽中斷一般用于緊急故障處理。2.硬件中斷(外部中斷)802)可屏蔽中斷INTR
可屏蔽中斷請求信號從INTR引腳送往CPU,高電平有效,受IF標(biāo)志位屏蔽,IF=0時,對于所有從INTR引腳進(jìn)入的中斷請求,CPU均不予響應(yīng);另外,也可以在CPU外部的中斷控制器(8259A)中以及各個I/O接口電路中對某一級中斷或某個中斷源單獨(dú)進(jìn)行屏蔽。2)可屏蔽中斷INTR81
當(dāng)外設(shè)的中斷請求未被屏蔽,且IF=1,則CPU在當(dāng)前指令周期的最后一個T狀態(tài)去采樣INTR引腳,若有效,CPU予以響應(yīng)。CPU將執(zhí)行兩個連續(xù)的中斷響應(yīng)周期,送出兩個中斷響應(yīng)信號
INTA。第一個響應(yīng)周期,CPU將地址及數(shù)據(jù)總線置高阻;在第二個響應(yīng)周期,外設(shè)向數(shù)據(jù)總線輸送一個字節(jié)的中斷類型號,CPU讀入后,就可在中斷向量表中找到該類型號的中斷服務(wù)程序的入口地址,轉(zhuǎn)入中斷處理。值得注意的是,對于非屏蔽中斷和軟件中斷,其中斷類型號由CPU內(nèi)部自動提供,不需去執(zhí)行中斷響應(yīng)周期讀取中斷類型號。當(dāng)外設(shè)的中斷請求未被屏蔽,且IF=1,則CPU在當(dāng)823.8086/8088中斷源的優(yōu)先級
8086/8088中斷源的優(yōu)先級順序由高到低依次為:軟件中斷(除單步中斷外)、非屏蔽中斷、可屏蔽中斷、單步中斷。在PC機(jī)系統(tǒng)中,外設(shè)的中斷請求通過中斷控制器8259A連接到CPU的INTR引腳,外設(shè)中斷源的優(yōu)先級別由8259A進(jìn)行管理。3.8086/8088中斷源的優(yōu)先級837.4.2中斷向量表中斷向量表是存放中斷向量的一個特定的內(nèi)存區(qū)域。所謂中斷向量,就是中斷服務(wù)程序的入口地址。對于8086/8088系統(tǒng),所有中斷服務(wù)程序的入口地址都存放在中斷向量表中。
8086/8088可以處理256種中斷,每種中斷對應(yīng)一個中斷類型號,每個中斷類型號與一個中斷服務(wù)程序的入口地址相對應(yīng)。每個中斷服務(wù)程序的入口地址占4個存儲單元,其中低地址的兩個單元存放中斷服務(wù)程序入口地址的偏移量(IP);高地址的兩個單元存放中斷服務(wù)程序入口地址的段地址(CS)。256個中斷向量要占256×4=1024個單元,即中斷向量表長度為1?K個單元。8086/8088系統(tǒng)的中斷向量表位于內(nèi)存的前1K字節(jié),地址范圍為00000H~003FFH。8086/8088的中斷向量表如圖7.18所示。
7.4.2中斷向量表84圖7.188086/8088的中斷向量表圖7.188086/8088的
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康管理師崗前基礎(chǔ)在崗考核試卷含答案
- 井礦鹽制鹽工QC管理模擬考核試卷含答案
- 玻璃鋼制品纏繞工道德水平考核試卷含答案
- 勞動保障協(xié)理員成果評優(yōu)考核試卷含答案
- 箔材精制工班組協(xié)作知識考核試卷含答案
- 平板顯示膜涂布工崗前節(jié)能考核試卷含答案
- 互動訓(xùn)練操課件
- 鐵門焊接合同范本
- 收購儲存合同范本
- 投資商寫合同協(xié)議
- 重慶醫(yī)科大學(xué)《配器Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024高速公路瀝青路面養(yǎng)護(hù)工程方案設(shè)計圖集
- GB/T 27612.2-2025農(nóng)業(yè)灌溉設(shè)備噴頭第2部分:結(jié)構(gòu)和運(yùn)行要求
- 2024年淄博市中級人民法院招聘聘用制書記員筆試真題
- 尾礦庫相關(guān)知識培訓(xùn)課件
- 2025年四川中國鐵路成都局集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 非煤露天礦邊坡工程技術(shù)規(guī)范
- 義警服裝管理制度
- 2025北京西城高三(上)期末物理試卷(含答案)
- 2025年全國法制宣傳日憲法知識競答題庫及答案(共120題)
- 職業(yè)健康安全基礎(chǔ)知識培訓(xùn)
評論
0/150
提交評論