版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2022/12/2316.3中斷技術(shù)版權(quán)所有,2000(c)南京航空航天大學提示本節(jié)是微型計算機及接口技術(shù)課程的一個重點和難點。
2022/12/232
6.3中斷技術(shù)基本概念
中斷(中斷源、中斷分類、中斷特點)中斷過程(請求、判優(yōu)、響應、處理、返回)中斷優(yōu)先權(quán)(軟件排優(yōu)、鏈形電路、專用中斷)80X86(PentiumⅣ)中斷系統(tǒng)80X86中斷結(jié)構(gòu)80X86中斷向量(中斷類型碼、中斷向量表)80X86中斷過程及應用(內(nèi)部中斷、NMI、INTR) 保護方式下的中斷過程*可編程中斷控制器8259A*
8259A內(nèi)部結(jié)構(gòu)及引腳功能 8259A工作原理及工作方式 8259A的編程及應用、高級中斷控制器*為選講部分2022/12/233一、基本概念中斷(概念、中斷源、中斷分類、中斷特點)中斷過程(請求、判優(yōu)、響應、處理、返回)中斷優(yōu)先權(quán)(軟件排優(yōu)、鏈形電路、專用中斷)2022/12/2341、中斷(中斷源)的概念(1)所謂中斷,是指處理器在執(zhí)行正常程序過程中,當出現(xiàn)某些異常情況或某個外部設備請求時,處理器暫時中止正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行其特定的服務程序,并在執(zhí)行完服務程序后返回原來被中止的程序處繼續(xù)執(zhí)行的過程。中斷申請主程序
中斷服務子程序中斷返回2022/12/235(2)中斷源——產(chǎn)生中斷的原因(由軟、硬件產(chǎn)生)輸入/輸出設備:鍵盤、顯示器、打印機數(shù)據(jù)通道:磁帶、磁盤等電源故障實時控制中的各種參數(shù)中斷指令INTn等1、中斷(中斷源)的概念2022/12/236(3)中斷的分類內(nèi)中斷:由CPU執(zhí)行軟中斷指令INTn或異常而產(chǎn)生的中斷。外中斷:外部中斷源向CPU提出請求而產(chǎn)生的中斷(如INTR、NMI引腳上出現(xiàn)的中斷源)。2022/12/237
“同步”操作CPU和多臺I/O外設同時工作,需要時服務一下。實時處理CPU可根據(jù)外部事件的情況,決定響應中斷服務的順序。中斷嵌套中斷嵌套,使得CPU即使在外理某一中斷源時,也可響應更重要的中斷源的申請。中斷方式與程序控制方式最大的不同是外設具有申請使用CPU的主動權(quán)。
圖示圖示(4)中斷的特點2022/12/238
2、中斷處理過程
中斷請求 中斷判優(yōu) 中斷響應 中斷處理 中斷返回1)
中斷請求:由中斷源提出中斷申請這是引起中斷的第一步(必要條件)中斷源產(chǎn)生中斷的條件,隨中斷源不同而不同如軟件中斷(除法出錯中斷,條件是除數(shù)為0或商過大)硬件中斷又分為可屏蔽和非屏蔽中斷,必須要使INTR或NMI信號有效。包括
五個基本過程2022/12/239
2)中斷判優(yōu):決定是否立即響應中斷申請由于中斷產(chǎn)生的隨機性,在出現(xiàn)多個中斷源同時申請中斷處理時,就必須根據(jù)設計者要求的輕重緩急來確定響應哪個中斷源的申請(中斷優(yōu)先權(quán))。在已進行中斷處理的情況下,可決定是否進行中斷嵌套。在新中斷源優(yōu)先權(quán)更高時,就產(chǎn)生中斷嵌套,否則等原中斷源處理完畢后,再響應新的中斷(非嵌套)。CPU在處理中斷時,又有優(yōu)先權(quán)更高的中斷請求,則CPU暫?,F(xiàn)在的中斷程序,轉(zhuǎn)去處理新的中斷程序,處理完畢后,返回原中斷處繼續(xù)執(zhí)行的現(xiàn)象。
中斷優(yōu)先權(quán):根據(jù)中斷源的輕重緩急,給每個中斷源確定一個中斷級別。2022/12/2310
3)中斷響應:CPU根據(jù)外設提供的中斷向量(中斷服務程序的入口地址)轉(zhuǎn)至服務程序入口地址。
CPU在執(zhí)行完每一條指令后,查詢是否有中斷申請,如果有中斷申請,且CPU的中斷允許是開放的,則CPU硬件自動完成下列工作:①
保留斷點把CPU響應中斷時的IP和CS的內(nèi)容稱為斷點,即程序在此被中斷,并把斷點壓入椎棧(80X86還把FR內(nèi)容壓入椎棧)。斷點:下一條指令的起始地址。2022/12/2311
②關(guān)中斷
CPU響應中斷后,就自動實現(xiàn)關(guān)中斷。(要實現(xiàn)中斷嵌套,必須在進入服務程序后用指令開中斷。)
③形成中斷程序的入口地址
CPU根據(jù)中斷源提供的中斷向量形成中斷入口地址(即中斷服務程序的首地址),分別送入IP和CS(其形成方法在下一節(jié)中介紹)。2022/12/2312
這里,提醒大家注意二點:
1、
CPU復位時,中斷允許是關(guān)閉的,即為’IF=0’。
因此,要使用中斷,必須用指令來開中斷(如 80X86的STI和CLI指令)。
2、只有中斷申請,還不一定能實現(xiàn)中斷過程。除了外設的優(yōu)先權(quán)高低條件外,在CPU內(nèi)部 還有中斷允許觸發(fā)器(80X86的IF標志),只有其 為’1’時,才能響應中斷。否則,既使有中斷 請求信號,CPU也不予響應(必要條件)。2022/12/2313
4)
中斷處理:
完成對中斷源的處理任務
在中斷處理時,首先要進行現(xiàn)場保護,(即把有關(guān)寄存器的內(nèi)容壓入堆棧),然后再進行中斷處理,這是中斷的核心部分。在中斷處理結(jié)束后,再用POP指令恢復有關(guān)寄存器的狀態(tài)。2022/12/2314
5)中斷返回 通常在執(zhí)行中斷返回指令IRET前,要求用指令 開中斷,以便CPU再次響應中斷,然后再執(zhí)行 IRET指令。對80X86CPU來說,由于IRET不僅具有彈出斷點 送IP和CS的功能,還具有恢復FR內(nèi)容的功能。
這一功能實際上起到了開中斷的作用。思考:80X86CPU在執(zhí)行IRET指令后,IF的狀態(tài)?2022/12/2315
3、中斷優(yōu)先權(quán) 在系統(tǒng)中如果有多個中斷源時,就要考慮其中斷級 別,即中斷優(yōu)先權(quán)的問題。通常CPU引腳只有一條 中斷請求線,這就提出了當有多個中斷源同時請求 時,CPU應響應哪個中斷源的問題。 另外,CPU如正在處理中斷時,也要求能響應更高 級的中斷申請,并屏蔽同級或較低的中斷申請。
中斷優(yōu)先權(quán)的一般處理原則:
1)不同級別中斷發(fā)生,按級別高低處理;
2)高級中斷可以打斷低級中斷的處理程序;
3)低級中斷不能打斷高級中斷的處理程序;
2)同級中斷不能相互打斷中斷處理程序。
目前大都采用軟件和硬件的方法來確定中斷優(yōu)先權(quán)2022/12/2316
1)軟件查詢法利用軟件查詢技術(shù)來確定中斷優(yōu)先權(quán)的方法。 軟件查詢法確定優(yōu)先級的方法: 先查詢的中斷源優(yōu)先級最高, 最后查詢的級別最低。 軟件查詢法的實現(xiàn)可用屏蔽法 (一位一位測試)或移位法(左、右 移位到CF中測試)。
如圖2022/12/2317
軟件查詢法的優(yōu)缺點:優(yōu)點:
①硬件電路簡單②無需優(yōu)先權(quán)的硬件排隊電路③可隨時修改優(yōu)先級缺點:
軟件查詢,影響中斷響應的實時性。2022/12/2318
2)硬件優(yōu)先權(quán)排隊電路利用硬件優(yōu)先權(quán)排隊電路可大大提高CPU中斷處理的速度。常用的方法有兩種:簡單硬件方法----菊花鏈法(鏈形優(yōu)先權(quán)排隊電路)①
其接口原理圖②
工作原理:當I/O接口有中斷請求時,如CPU是開中斷的,就會發(fā)出INTA信號,如果沒有級別高的外設中斷請求,那么中斷邏輯電路會允許INTA信號原封不動地往后傳遞,一直到發(fā)出中斷請求的接口;同時,本級的中斷請求信號通過中斷邏輯電路實行阻塞,使INTA信號不再傳到后面的接口,當某一接口收到中斷響應信號后,才撤消中斷請求信號并轉(zhuǎn)入中斷服務子程序。點擊看圖2022/12/2319
當多個外設同時發(fā)出中斷請求時,按上述原理,顯然最接近CPU的接口先得到中斷響應,而排在菊花鏈中較后位置的接口則收不到到中斷響應信號,從而一直保持中斷請求。此后,CPU進入某個中斷處理子程序的執(zhí)行,如果在子程序
中用開中斷指令又一次使CPU開中斷(IF=‘1’),則CPU就會響應高級別的中斷請求,又發(fā)出中斷響應信號,直到這時,第二個請求服務的接口才能撤消中斷請求。2022/12/2320
當CPU響應某個級別較低的中斷請求進行中斷處理時,如果又有級別較高的外設提出中斷請求,由于菊花鏈電路中級別低的外設不能屏蔽級別高的外設的中斷請求,故優(yōu)先權(quán)級別高的外設的中斷請求可傳遞到CPU。此時,如果CPU是開放的,CPU就立即響應該中斷,暫停當前優(yōu)先權(quán)級別較低的外設的中斷服務,轉(zhuǎn)入為高級別中斷外設服務,這就是中斷嵌套??芍?菊花鏈電路控制優(yōu)先權(quán)的辦法是:各外設在鏈中的位置決定了優(yōu)先權(quán)的級別,越靠近CPU的接口,其優(yōu)先權(quán)級別越高。2022/12/2321
專用硬件方式------可編程的中斷控制器采用可編程中斷控制器是當前微型計算機系統(tǒng)中解決中斷優(yōu)先權(quán)管理的常用辦法,其電路框圖見圖。通常,中斷控制器包括:中斷優(yōu)先權(quán)編碼電路、中斷請求鎖存器、中斷類型寄存器、當前中斷服務寄存器以及中斷屏蔽寄存器。2022/12/2322
引用了中斷控制器,CPU的中斷響應信號INTA和中斷請求信號就不再直接連到接口上,而是和中斷控制器連接。同時,外設的I/O接口送來的中斷請求信號也都并行地送到中斷控制器的輸入端,這些信號經(jīng)中斷控制器內(nèi)部的優(yōu)先權(quán)編碼電路分配各自的優(yōu)先級順序,如IR0、IR1……IR7等等。在80X86系統(tǒng)中,中斷控制器的型號為8259A。2022/12/2323二、80X86(PentiumⅣ)中斷系統(tǒng)
1、80X86的中斷結(jié)構(gòu)不可屏蔽中斷(NMI)可屏蔽中斷(INTR)中斷分類圖外部中斷:內(nèi)部中斷:
專用中斷
指令中斷(INTN)2022/12/2324不可屏蔽中斷NMI含義:不能用軟件來控制是否允許中斷的一種外部中斷。常見NMI中斷有:
(1)電源掉電;
(2)存儲器檢驗出錯;
(3)總線奇偶錯等。2022/12/2325可屏蔽中斷INTR含義:可用軟件控制是否允許中斷的外部中斷。即STI使IF=1,允許中斷;CLI使IF=0,禁止中斷。常見INTR中斷有:
所有外部設備中斷如鍵盤、鼠標、打印機、顯示器、聲卡、CD-ROM等。2022/12/23268086的內(nèi)部中斷專用中斷指令中斷在80X86系統(tǒng)中,通過執(zhí)行中斷指令或由CPU本身啟動的中斷稱為內(nèi)部中斷。2022/12/23272、80X86中斷向量術(shù)語及概念實方式下中斷服務程序入口地址保護方式下中斷服務程序入口地址*保護方式與實方式中斷主要區(qū)別*2022/12/2328(1)術(shù)語及概念中斷類型碼(中斷類型號)中斷向量中斷向量表中斷描述符*中斷描述符表*2022/12/2329中斷類型碼(中斷類型號)中斷類型碼:中斷源的唯一編號數(shù)量:256個編號:0~255適用范圍:8086~PentiumIV(各種工作方式)2022/12/2330中斷向量含義:
中斷服務程序的入口地址(CS:IP)組成及格式:
共4個字節(jié),段地址及偏移地址。2022/12/2331中斷向量表含義:
存放256個中斷向量的內(nèi)存區(qū)域。即存放中斷服務程序入口地址的內(nèi)存區(qū)域稱為中斷向量表。中斷向量表大?。?KB(256*4)中斷向量表地址范圍:00000H~003FFH適用范圍:實地址方式2022/12/2332中斷向量地址指針=中斷類型碼×
4中斷類型碼n與其對應的中斷向量存放起始地址之間的關(guān)系是:
起始地址=4×n;末地址=4×n+3
即中斷類型號n與其對應的中斷向量存放在4×n~4×n+3指示的內(nèi)存單元中。(2)實方式下中斷服務程序入口地址2022/12/2333
實地址方式下的中斷服務程序入口地址求法【例1】假設在實地址方式下,內(nèi)存單元00140H到00147H中存放的內(nèi)容如圖所示,求51H號中斷的中斷服務程序入口地址。
2022/12/2334例1求解(1)求中斷向量存放的首地址和末地址
由N=51H可知中斷向量存放的首地址=51H×4=144H(左移兩位方法)
末地址=51H×4+3=147H(2)從首、末地址對應的4個單元找出中斷向量
00144H~00147H中內(nèi)容就是51H號中斷源的中斷向量,對照中斷向量組成及格式可知:
段地址=4540H,偏移地址=3430H,所以,中斷服務程序入口地址的邏輯地址為4540:3430H物理地址為:
段地址×16+偏移地址=45400H+3430H=48830H2022/12/2335【例3】已知20H~23H單元存放中斷向量12H、34H、56H、78H,求該向量所對應的中斷類型碼。【例2】已知中斷向量為1234:5678H,中斷類型碼為17H,問該中斷向量應如何存入中斷向量表中?解:4×17H~4×17H+3=5CH~5FH四個單元,依次存放78H、56H、34H、12H。解:因為N×4=表地址20H所以N=20H/4(右移2位)=08H(中斷類型碼)
2022/12/2336中斷向量組成及格式2022/12/2337中斷描述符*含義:
描述某中斷對應中斷服務程序的入口地址信息及其屬性,
包括偏移地址和對應段的選擇子。組成及格式:8個字節(jié)2022/12/2338中斷描述符表*含義:
存放256個中斷描述符的內(nèi)存區(qū)域。中斷描述符表容量:2KB。適用范圍:保護地址和V86方式。2022/12/2339(3)保護方式下中斷服務程序入口地址*(1)通過中斷類型號n從中斷描述符表IDT中找出中斷描述符。 中斷描述符首地址=中斷類型號碼n×8+IDT基地從該地址開始取出8字節(jié)內(nèi)容就是中斷描述符。(2)通過中斷描述符中的選擇子從GDT或LDT中找出或求出段描述符。(3)據(jù)段描述符提供的段基地址與中斷描述符提供的偏移地址合成物理地址。示例2022/12/2340保護方式下的中斷服務程序入口地址求法(例子)【例4】已知保護方式下,內(nèi)存單元中有關(guān)單元存放的內(nèi)容如右圖所示,IDT的首地址為00280000H,GDT首地址為00500000H,求20H號中斷服務程序入口地址。解:2022/12/2341例4求解(1)求偏移地址先找中斷描述符,然后從中找出中斷服務程序偏移地址由n=20H知,中斷描述符存放在00280000H+20H×8=00280100H開始
的8個單元,所以中斷描述符為:0042
EE000013
2012H(2)求中斷服務程序所在段的段基地址
段選擇子為:0013H=0000000000010011B
TI=0,段描述符在GDT中,RPL=11為普通用戶程序請求,
索引值=0000000000010B所以中斷描述符所在段描述符在GDT中的位置為:索引值×8+GDT首地址=0000000000010000B+00500000H=00500010H因此,段描述符為:3918
40
423400
0096
H
段基地址=39423400H(3)合成物理地址服務程序入口地址=對應段的段基地址+偏移地址=39423400H+00422012H=39845412H2022/12/2342(3)保護方式與實方式中斷主要區(qū)別表的大小不同中斷描述符表2KB;中斷向量表1KB表的位置不同保護方式下的中斷描述符表可位于內(nèi)存的任何位置,由中斷描述符寄存器(IDTR)決定;實地址方式下的中斷向量表只能固定在00000H~003FFH的最低內(nèi)存1KB的區(qū)域。中斷服務程序存放位置不同保護方式下的中斷服務程序可以放到內(nèi)存的任何區(qū)域,而實地址方式下的中斷服務程序只能在存放的1MB以下的內(nèi)存區(qū)域。2022/12/2343中斷嵌套含義:在低級中斷中斷正在處理時高一級中斷請求,則進入高級中斷處理程序,處理完高級再返回低級中斷處理程序。示意圖2022/12/23441)內(nèi)部中斷—軟件中斷定義:在80X86系統(tǒng)中,通過執(zhí)行中斷指令或由CPU本身啟動的中斷稱為內(nèi)部中斷。專用中斷及指令中斷內(nèi)部中斷的處理過程內(nèi)部中斷的特點3、80X86中斷過程及應用2022/12/2345(1)專用中斷及指令中斷專用中斷0型中斷—除法出錯中斷(DIV或IDIV)類型碼為00H的0型中斷為除法出錯中斷。DIV或IDIV指令被執(zhí)行時,若除數(shù)為0或商超過寄存器的字長時,立即產(chǎn)生0型中斷。1型中斷—單步中斷(陷阱中斷)。當TF=‘1’時,80X86就處于單步工作方式。即每執(zhí)行完一條指令后,就自動產(chǎn)生1型中斷。2022/12/2346這里提醒注意兩點:中斷響應后CPU自動保護FR(入棧),并清除TF和IF。故進入單步中斷處理后,CPU就不再處于單步工作方式,而是以正常工作方式工作。只有單步處理結(jié)束后,從推棧中彈出FR標志,才能使CPU回到單步方式。在80X86指令中,沒有TF的設置或清除指令。如要設置或清除TF可利用PUSHF和POPF指令。2022/12/23473型中斷—斷點中斷(INT3以及INTn指令)3型中斷是專供在程序中設置斷點用的,故稱斷點中斷。用INT3表示。
INTn與INT3的區(qū)別在于前者是雙字節(jié),而后者是單字節(jié)。因而可方便地置于被調(diào)用程序之中,其指令置入處即為斷點。4型中斷—溢出中斷(INTO指令)主要用于算術(shù)運算出現(xiàn)溢出時(OF=‘1’)。通常與算術(shù)指令配合使用。2022/12/2348指令中斷(INTN)由指令中的操作數(shù)N來提供中斷類型碼(類型號)2022/12/2349
(2)內(nèi)部中斷的處理過程80X86的各種中斷類型的響應和處理過程是不完全相同的主要區(qū)別:如何獲取相應的中斷類型碼在內(nèi)部中斷中:①對專用中斷:類型碼是CPU自動形成的,即
中斷功能
中斷類型碼除法出錯0單步1斷點3溢出42022/12/2350
②對指令中斷INTN(
N為除0~4外的類型碼):類型碼由指令提供取得中斷類型碼N后,內(nèi)部中斷的處理過程是相同的,即:①
中斷類型碼×4→中斷向量表指針②
FR入棧(自動)→保護標志位(作用同PUSHF)③
清除IF和TF標志→屏蔽INTR中斷和TF中斷④
保護斷點:CS、IP入棧(自動)⑤從中斷向量表指針處取出中斷服務子程序入口地址,分別送IP和CS(低位在前,高位在后,偏移量在前,段基值在后)⑥
按新的CS:IP內(nèi)容執(zhí)行中斷處理子程序。保護現(xiàn)場、中斷處理、恢復現(xiàn)場、中斷返回(IRET)2022/12/2351(3)內(nèi)部中斷的特點用一條指令來進入中斷處理子程序,并且中斷類型碼或由指令提供,或是預定的。進入中斷時,不需執(zhí)行中斷響應周期。CPU既不發(fā)出中斷響應信號INTA,也不從數(shù)據(jù)總線上獲取中斷類型碼。除單步中斷外,內(nèi)部中斷無法用軟件禁止。即不管IF=‘1’或是‘0’,都不影響執(zhí)行內(nèi)部中斷。但單步中斷受TF控制。內(nèi)部中斷(單步中斷除外)比外部中斷具有更高的優(yōu)先權(quán)。除0型中斷外,一般內(nèi)部中斷沒有隨機性。2022/12/23522、外部中斷—硬件中斷
外屏蔽中斷NMI可屏蔽中斷INTR外部中斷響應及處理過程2022/12/23531)外屏蔽中斷NMI
NMI引腳上產(chǎn)生的中斷稱為外屏蔽中斷。由NMI引腳出現(xiàn)上升沿觸發(fā),高電平維持2個T。它不受IF的控制。其中斷類型碼為02,中斷矢量存于0008H~000BH這四個單元之中。NMI產(chǎn)生中斷請求后,不管CPU當前正在做何操作,都會響應這個中斷請求。故其中斷優(yōu)先權(quán)是最高的。2022/12/23542)可屏蔽中斷INTR從INTR引腳接受的中斷請求信號稱為可屏蔽中斷。它一般是外部設備產(chǎn)生的。從CPU的INTR端引入高電平觸發(fā)。INTR受IF的控制。只有IF=‘1’時,才有可能進入其中斷處理過程。而INTR的優(yōu)先權(quán)由上節(jié)介紹的軟、硬件優(yōu)先權(quán)排隊電路來決定。
2022/12/23553)外部中斷響應及處理過程NMI線上的請求信號是邊沿觸發(fā)的,由80X86內(nèi)部鎖存。故80X86要求NMI線上的請求脈寬要大于2個T。CPU采樣到NMI請求后自動提供02中斷類型碼。其后的處理過程同內(nèi)部中斷。INTR線上的請求信號是電平觸發(fā)的。CPU內(nèi)部由CLK來同步。INTR線上的請求信號的高電平必須保持到當前指令結(jié)束。2022/12/2356在INTR信號有效時,如果IF=‘1’,則CPU在執(zhí)行完當前指令后,就立即響應INTR,轉(zhuǎn)入中斷響應周期。中斷響應周期有兩個,每個由4個T構(gòu)成。在每個中斷響應周期CPU都向INTA引腳上發(fā)出一個INTA的負脈沖信號,請求中斷的外設在收到第二個負脈沖時,立即往數(shù)據(jù)總線上發(fā)送中斷類型碼。CPU在T4前沿采樣數(shù)據(jù)總線,獲取中斷類型碼。響應2022/12/2357如圖:T1T2T3T4TITITIT1CLKALEINTA
D7-D0中斷類型T4T2T3中斷響應總線周期2022/12/2358
處理過程:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,3210HMOVBX,0100HMOV[BX],AXMOVAX,7654HMOV2[BX],AXPOPDSSTI…MOVAX,2000HADDAX,AXMOV[BX],AX140H號I/O外設申請中斷3426587中斷類型碼40HCPU當前FR、CS、IP入棧78H56H34H12HFRLFRHSPSPIF=‘0’,TF=‘0’(4X40H)IP=3210H(4X40H+2)CS=7654H
形成子程序入口地址
7654:3210PUSHAX;保護現(xiàn)場
…STI;開中斷以備嵌套…;中斷處理
POPAX ;中斷返回IRET執(zhí)行完ADDCPU響應INTA=‘0’IP、CS、FR出棧形成返回地址1234:5678H和當時狀態(tài)FR1234:5678H80X86CPU處理INTR的完整過程共8步2022/12/2359
在時序上,共有7個總線周期來完成該中斷響應,即:①
執(zhí)行第一個INTA總線周期,以通知外設準備中斷類型碼;②
執(zhí)行第二個INTA總線周期,(8086時兩個周期之間插入2~3個T)這時,被響應的外設通過數(shù)據(jù)總線的低8位D7~D0,提供單字節(jié)的中斷類型碼n(8259A提供),CPU接收中斷類型碼后,立即左移二位,形成中斷向量表指針,存于暫存器;③
執(zhí)行一個總線寫周期,把FR的內(nèi)容壓堆棧。同時,清IF和TF
標志,以禁止其它INTR和單步中斷的進入;④執(zhí)行一個總線寫周期,CS內(nèi)容入棧;⑤執(zhí)行一個總線寫周期,IP內(nèi)容入棧;⑥執(zhí)行一個總線讀周期,從向量表中取出中斷服務子程序入口地址偏移量→IP;⑦
執(zhí)行一個總線讀周期,
從向量表中取出中斷服務子程序入口段地址→CS。然后就轉(zhuǎn)入中斷服務子程序的處理。斷點入棧2022/12/2360
概括整個中斷響應過程.我們發(fā)現(xiàn):對NMI和軟件中斷,則是跳過1~2步,從3~7開始執(zhí)行。2022/12/2361中斷優(yōu)先級識別中斷優(yōu)先級排隊:把多個中斷源按輕重緩急優(yōu)先處理權(quán)由高到低的順序排列起來。排隊方法:軟件排隊和硬件排隊。在8086~PentiumⅣ系統(tǒng)中,中斷優(yōu)先級從高到低依次為:
內(nèi)部異常中斷(除單步)>INTn>NMI>INTR>單步中斷2022/12/23622022/12/23632022/12/23647.4可編程中斷控制器8259A*基本情況:
(1)8位可編程中斷控制器,又稱優(yōu)先級控制器
(2)處理8級向量優(yōu)先級中斷
(3)具有單一+5V供電
(4)8259A芯片級聯(lián)組成強大的中斷管理系統(tǒng)(多至64級外部中斷)。
(5)優(yōu)先級方式可編程
(6)多級中斷管理主要內(nèi)容
一、內(nèi)部結(jié)構(gòu)及工作原理
和功能二、引腳信號
三、工作方式
四、編程方法2022/12/23658259A中斷控制器(可編程)(PIC)
中斷控制器的功能是在有多個中斷源的系統(tǒng)中,接收外部的中斷請求,判斷中斷優(yōu)先權(quán),并將級別最高的請求送到CPU的INTR端,當CPU響應中斷并進入中斷子程序的處理過程后,中斷控制器仍負責對外部中斷請求的管理。Intel8259A是專門設計的中斷控制芯片,它將中斷源優(yōu)先級排隊,判優(yōu),提供中斷類型碼的電路集于一體,可管理8級(64個)中斷。(級連)2022/12/2366一、內(nèi)部結(jié)構(gòu)及工作原理2022/12/2367內(nèi)部結(jié)構(gòu)
內(nèi)部由IRR(中斷請求R)優(yōu)先權(quán)電路、ISR(中斷服務R)、IMR(中斷屏蔽R)、數(shù)據(jù)總線緩沖器(DBBUF)、讀/寫電路(R/WC)控制邏輯(CL)和級連緩沖/比較器組成。 每片8259A有8條中斷請求信號線IR0~IR7,其中斷請求信號通過IRR和ISR來處理:IRR:寄存所有要求服務的中斷請求(8B)ISR:寄存所有正在被服務的中斷級(8B)IMR:寄存所有被屏蔽的中斷請求,(1→屏蔽該位中斷)(8B)2022/12/2368優(yōu)先權(quán)電路:對IRR中的中斷源判斷,并送至ISR數(shù)據(jù)總線緩沖器:(8B)三態(tài)雙向緩沖器,用于連接CPUDB和8279A內(nèi)部總線,輸入/輸出控制字,狀態(tài)字,狀態(tài)信息。讀寫電路:用來對8259進行初始化命令字(ICW)、操作字(OCW)的輸入,以確定其工作方式和控制模式,以及讀出有關(guān)狀態(tài)信息。級連緩沖器:用于多片8259A之間的連接,使8級中斷源可擴展至64級控制邏輯:完成對芯片的控制操作。2022/12/23698259A的工作原理
當系統(tǒng)通電后,首先應對8259A進行初始化,8259A處于待命狀態(tài)。當外設發(fā)出中斷請求后,8259A對其中斷請求的處理過程如下:1)IR0—IR7有一條或若干條(跳變或高電平),IRRi=‘1’
2)IR0—IR7至少有一個是中斷允許的,8259A由INT引腳向CPUINTR請求3)
STI→=‘1’→CPU用INTA響應(當前指令完成)2022/12/23704)
第一個INTR到達,最高優(yōu)先權(quán)的ISRi=‘1’→IRRi=‘0’5)
第二個INTR到達,8259A向DB輸出一個8位的向量號(類型號)INW2→D0—D7,CPU讀取此類型號*4(左移2位)→中斷向量指針→從向量表中取出入口地址(CS、IP)6)
若8259A工作于自動結(jié)束時→ISRi=‘0’。否則,直至終端服務程序結(jié)束,發(fā)出EOI命令→ISRi=‘0’2022/12/2371功能:具有8具有優(yōu)先權(quán)控制通過級連可擴展至64級優(yōu)先權(quán)控制;每一級都可以由軟件屏蔽或允許(開放);在中斷響應時,可提供相應的中斷類型碼;可通過軟件來設定其工作方式。2022/12/2372數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個三態(tài)、雙向的8位緩沖器,是8259A與CPU系統(tǒng)數(shù)據(jù)總線的接口。數(shù)據(jù)總線緩沖器的主要功能有:
(1)通過數(shù)據(jù)總線緩沖器,CPU向8259A內(nèi)部發(fā)送命令。
(2)CPU接收8259A狀態(tài)信息。
(3)在中斷響應周期,CPU從中獲得中斷類型號。2022/12/2373讀/寫邏輯接收CPU送來的讀/寫控制信號、片選信號以及地址選擇信號以對內(nèi)部控制邏輯編者編程以確定工作方式2022/12/2374級聯(lián)緩沖/比較器級聯(lián)緩沖/比較器在級聯(lián)方式的主從結(jié)構(gòu)中(兩個以上的8259A組成的系統(tǒng)),用來存放和比較系統(tǒng)中各8259A的從設備標志(ID)。2022/12/2375控制邏輯控制邏輯是控制8259A內(nèi)部各個部件的主要邏輯電路。主要功能包括:
(1)根據(jù)CPU對8259A編程設定的工作方式來產(chǎn)生內(nèi)部控制信號。
(2)如果中斷請求寄存器IRR有未被屏蔽的位,則控制邏輯對應于當時最高優(yōu)先的中斷源,向CPU發(fā)中斷請求信號INT。
(3)接收CPU送來的中斷響應信號,并允許中斷服務寄存器ISR的相應位(ISRi)置位。(4)控制發(fā)出相應的中斷類型號,通過數(shù)據(jù)總線緩沖器輸出到系統(tǒng)總線上。2022/12/2376中斷請求寄存器IRRIRR是一個專門用于記錄外部中斷源的中斷申請的8位寄存器。IRR的8個輸入端分別可接8個中斷源,只要有中斷請求即IRR的某端(IRRi)由低電平變高電平時,則相應的IRR位置1(IRRi=1),直到中斷服務寄存器相應位置1,IRR相應位才復位。2022/12/2377中斷優(yōu)先權(quán)分辨器PR優(yōu)先權(quán)分辨器PR用來確定存放在IRR中各個中斷請求信號對應中斷源的優(yōu)先級。
并總是選出當前最高優(yōu)先中斷源的中斷申請通知控制邏輯,以便控制邏輯發(fā)送中斷請求信號INT。2022/12/2378中斷服務寄存器ISRISR為用于記錄正在被CPU處理(服務)的中斷級的8位寄存器。當有中斷請求并被CPU響應時,即在CPU響應中斷后發(fā)來第一個中斷響應脈沖時,將對應的中斷服務寄存器相應位置1,直到結(jié)束中斷或有中斷結(jié)束命令才復位。2022/12/2379中斷屏蔽寄存器IMRIMR是8位的用于從硬件上屏蔽中斷源的寄存器。如果IMR相應位為1,則對應中斷源的中斷請求被屏蔽。只有相應位為0且IF=1,CPU才有可能響應可屏幕中斷。2022/12/2380二、引腳信號D7~D0為8位雙向的數(shù)據(jù)線INT:中斷請求輸出信號INTA:中斷響應輸入信號RD和WR:讀/寫控制信號CS:片選信號A0:端口選擇信號(兩個端口地址)IRRi:8個中斷源中斷請求端SP/EN:級聯(lián)控制
主:=1,從=02022/12/2381三、工作方式優(yōu)先級的方式屏蔽中斷源的方式結(jié)束中斷處理的方式連接系統(tǒng)總線的方式中斷請求信號方式2022/12/2382優(yōu)先級的方式全嵌套方式特殊全嵌套方式優(yōu)先級自動循環(huán)方式優(yōu)先級特殊循環(huán)方式2022/12/2383全嵌套方式僅允許高一級中斷進入嵌套。從高到低優(yōu)先級依次為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。2022/12/2384特殊全嵌套方式允許高一級,也允許同級中斷進入嵌套。從高到低優(yōu)先級依次為IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。2022/12/2385優(yōu)先級自動循環(huán)方式在這種方式下,中斷源的優(yōu)先級是變化的,當一個設備得到中斷服務以后,它的優(yōu)先級自動降為最低優(yōu)先。在初始狀態(tài)下的優(yōu)先級為IR0>IR1>...>IR7,下一次優(yōu)先級為IR1>IR2>....>IR6>IR7>IR0,依次類推。2022/12/2386優(yōu)先級特殊循環(huán)方式與優(yōu)先級自動循環(huán)方式只有一點區(qū)別:初始最優(yōu)者可由程序設定,可任意指定一個初始最高優(yōu)先級,以后再循環(huán)優(yōu)先。2022/12/2387屏蔽中斷源的方式普通屏蔽方式:設置8259A內(nèi)部中斷屏蔽寄存器IMR的相應位為1(通過OCW1),即可屏蔽對應中斷源的中斷申請。特殊屏蔽方式:先寫入特殊屏幕命令字OCW3,然后再寫屏蔽命令字OCW1。使當前中斷服務寄存器ISR的相應位自動復位。這就只屏蔽了當前正在處理的這級中斷。2022/12/2388結(jié)束中斷處理的方式自動結(jié)束方式:系統(tǒng)一旦進入中斷服務程序,8259A就自動將當前中斷服務寄存器相應位清0。(在第二個中斷響應脈沖)非自動結(jié)束方式:在中斷服務程序結(jié)束,返回主程序之前發(fā)一條中斷結(jié)束命令,使8259A的當前最高優(yōu)先級的中斷對應的ISR復位。2022/12/2389連接系統(tǒng)總線的方式緩沖方式:
一般在多片8259A級聯(lián)系統(tǒng)中,8259A通過總線驅(qū)動器與系統(tǒng)總線相連,而不是8259A直接與系統(tǒng)總線相連,這就是緩沖方式。非緩沖方式:
當系統(tǒng)只有一片8259A或少量幾片8259A時,一般將它直接與數(shù)據(jù)總線相連。這就是所謂的非緩沖方式。2022/12/2390中斷請求信號方式邊沿觸發(fā)方式:
在邊沿觸發(fā)方式下,8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號,且該信號可以一直保持為高電平。為了防止干擾,其高電平也應有一定的寬度。電平觸發(fā)方式:
8259A把中斷請求輸入端出現(xiàn)的高電平作為中斷請求信號。但應注意的是,當中斷請求被響應后,輸入端必須立即撤消高電平,以免引起再一次中斷。2022/12/2391四、編程方法一般原則:先進行初始化編程,再進行控制命令編程8259A的初始化編程8259A操作命令字的編程2022/12/23928259A的
初始化編程對8259A進行初始化編程就是向8259A寫入兩到四個初始化命令字。流程如圖。初始化編程任務:
●設定中斷請求信號的有效形式。
●設定8259A是單片還是多片級聯(lián)方式。
●設置中斷類型號。
●設置優(yōu)先排隊規(guī)則。
●設定中斷結(jié)束時的操作原則。2022/12/23938259A的編程
對8259A的編程可以分為二部分:①
初始化編程:由CPU向8259A送2~4個字節(jié)的初始化命令字ICW。(InitializationCommandWord),→使8259A處于準備就緒狀態(tài)(可接收Iri中斷請求)②
工作方式編程:由CPU向8259A送3個字節(jié)的工作(操作)命令字OCW(OperationCommandWord)→規(guī)定8259A的工作方式*OCW可在8259A已結(jié)束初始化后的任何時間內(nèi)寫入2022/12/23948259A的初始化編程
8259A有A0一條地址線,可選擇偶/奇兩個地址。。在初始化時,ICW,寫入偶地址命令寄存器,IC2~IC4(順序)寫入奇地址寄存器。初始化過程如圖1.
ICW1—芯片控制字目的(作用):①復位邊沿檢測電路,使(邊沿或電平)Iri上升沿才能產(chǎn)生中斷;②IMR=0(屏蔽開放)優(yōu)先權(quán)排隊IR0→IR7(最低)①②→復位8259A(∵8259A無RESET)②
指出系統(tǒng)中是單片還是多片8259A故在80X86系統(tǒng)中,ICW1定義如圖2022/12/23952.W2—中斷類型碼目的(作用):向CPU提供8個中斷類型碼*只提供高5位,低3位自動填入,如圖中斷類型碼8H(IR0)—0FH(IR7)*高5位一旦確定,IR0—IR7的中斷類型碼就確定了2022/12/23963.
ICW3—主/從控制字:指明級連狀態(tài)在ICW1(D1)中,D1=1,→不用ICW3Dr=0,→級連,用ICW3,級連可擴展至64個中斷源。這時,主/從控制字ICW3是不同的,分別為2022/12/23974.
ICW4—方式控制字奇地址*自動EOI:第2個INTA后清ISRi,不屏蔽中斷,(低級或同級)→無嵌套→可能亂*正常EOI:IRET前,發(fā)結(jié)束中斷命令字,清ISRi能屏蔽低級中斷,亦可中斷嵌套(高級)級連時,發(fā)二個EOI:一個給8259A主一個給8289A從*ICW1~ICW4在寫入時需完全按圖的流程順序?qū)懭朊钭忠允緟^(qū)別,否則8259A將不能正確的工作。2022/12/2398例,對8259A設置寢化命令字,設端口地址為20H,21H MOVAL,00010011BOUT20H,ALMOVAL,00011000BOUT21H,ALMOVAL,00001101BOUT21H,AL2022/12/2399;設置ICW1:邊沿觸發(fā),一片8259A要ICW4;設置ICW2:中斷類型碼為18H—1FH;設置ICW4:(ICW1(D1)=1→1片,不要ICW3:不用特殊主嵌套方式,也不用AEOI方式,而用緩沖方式,正常EOI命令清ISR2022/12/231008259A的操作命令字
8259初始化后,其工作方式就確定了,即,優(yōu)先權(quán)IR0—IR7(高→低)Iri服務時,ISRi=1,禁止同級或低級中斷,若Iri低,有Iri-1高級時,(IF=1)Iri-1,ISRi不變,掛起,至Iri-1結(jié)束發(fā)EOI,ISRi-1=0,IRET,返回低級Iri中斷處執(zhí)行。若要改變此方式,或讀出IRR、ISR、IMR內(nèi)容,則需要寫入操作命令字OCW。OCW有3個,即OCW1—OCW3,順序無定義。2022/12/231011.OCW1—屏蔽命令字作用:屏蔽Iri的中斷源申請,→間接改變優(yōu)先權(quán)。2.
OCW2—中斷方式字中斷優(yōu)先級循環(huán)—1非循環(huán)—02022/12/23102可知,OCW2的作用為:1.
設置優(yōu)先級循環(huán)方式2.
設置中斷結(jié)束方式8259有3種中斷結(jié)束方式(1)中斷自動結(jié)束方式:只用于一片2859,無中斷嵌套情況,IC·4的D1(AEOI)=1,CPU響應中斷后,立即清除ISRn,即第二個INTA到后,就清除了ISR,故無嵌套
2022/12/23103(2)
中
用的一般斷方式于全嵌套方式,CPU用OCW2(R、SL,EOI)=001發(fā)也一般(正常)中斷結(jié)束命令時,8259A把當前ISR的最高位復位,這時的最高位對應于最后一次被響應的中斷,故為結(jié)束當前中斷,2022/12/23104(3)
特殊的中斷結(jié)束方式當IR0—IR7優(yōu)先級改變時,就不能確定正常EOI清除的ISRn位,而必須通過OCW2的R、SL、EOI(011)且指定L2—L0為初清除的ISRn位。8259的優(yōu)先級設置方式有以下幾種:2022/12/231051:
全嵌套方式ICW4(D4)=0Irn申請中斷(優(yōu)先級IR0—IR7)→中斷類型碼n送D·B→對應的ISRn置位,→進入中斷服務程序→中斷結(jié)束時,CPU發(fā)出EOI(正常)命令→ISRn復位(當前)可能是中斷嵌套(優(yōu)先級允許高級中斷產(chǎn)生嵌套)2022/12/231062:
特殊全嵌套方式類似全嵌套方式,不同的是除高級中斷嵌套外,還允許同級中斷嵌套,主要用于多級8259管理。*對2級的8259來說,IR0—Irn有優(yōu)先級高低之分,但對1級8259來說,就只有Iri這一同級了2022/12/231073:
優(yōu)先級自動循環(huán)方式優(yōu)先級設定:利用OCW2改變優(yōu)先級,例,設IR3最高,則IR2就自然為最低了,IR3IR4、5、6、7、0、1、2同級中斷源,往往采用優(yōu)先級自動循環(huán)方式,即一個設備被服務后,其優(yōu)先級就變最低,原來次高的設備為最高,上例IR3響應后,優(yōu)先級為IR4、5、6、7、0、1、2、3自動循環(huán)方式又分為二種:2022/12/23108一種為在EOI下的循環(huán),由R、SL、EOI=101設置一種為在AEOI下的循環(huán),由R、SL、EOI=100設定,000清除,(即恢復循環(huán)前的優(yōu)先級)2022/12/23109特殊循環(huán):指定最低優(yōu)先級,例IR3最低則IR4最高由OCW2R、SL、EOI=110時,L2UL0指定最低級OCW2R、SL、EOI=111時,L2UL0指定最低級,同時清除當前ISRn位(特殊EOI方式下循環(huán))例:設IR5最高OCW4=1100010時,則IR5對應的ISR5復位,同時優(yōu)先級為IR3、4、5、6、7、1、22022/12/231103.
OCW3—狀態(tài)插操作命令字作用:①設置和撤消特殊民間蔽方式①
設置中斷查詢方式②
設置對8259內(nèi)部寄存器讀出命令無操作2022/12/231111.
OCW3—狀態(tài)插操作命令字作用:①設置和撤消特殊民間蔽方式①
設置中斷查詢方式②
設置對8259內(nèi)部寄存器讀出命令無操作2022/12/231128259共有4個狀態(tài)字可供查詢,它們是IRR:中斷請求RISR:中斷服務RIMR:中斷屏蔽R以及中斷狀態(tài)字有中斷請求—1無中斷請求—0最高請求優(yōu)先級編碼2022/12/23113例:MOVAL,0001010BOUT20H,ALINAL,20H;讀IRRMOVAL,00001011BOUT20H,AL2022/12/23114INAL,20H;讀ISRMOVAL,00001100BOUT20H,ALINAL,20H;讀中斷狀態(tài)INAL,21H;讀IMR2022/12/23115芯片初始化命令字ICW12022/12/23116中斷類型初始化命令字ICW2要寫入8259A的A0=1的端口2022/12/23117主/從片初始化命令字ICW3
——主片ICW3要寫入8259A的A0=1的端口IRi=1,指示IRRi處接一從片2022/12/23118主/從片初始化命令字ICW3
——從片ICW3要寫入8259A的A0=1的端口ID2,ID1,ID0編碼決定從片的IRRi接主片2022/12/23119控制初始化命令字ICW4要寫入8259A的A0=1的端口各位含義:
μPM:CPU類型,0=8080/8085,1=80X86。
AEOI:自動結(jié)束中斷方式,AEOI=1自動中斷結(jié)束方式。M/S:主/從片選擇,1=主片,0=從片。BUF:緩沖方式。BUF=1工作在緩沖方式。SFNM:特殊全嵌套方式。SFNM=1,特殊全嵌套方式。2022/12/231208259A初始化編程實例系統(tǒng)對主片8259A初始化的要求是:(如圖所示)
●主片的IR2接從片的INT端。
●主片中斷信號為邊沿觸發(fā)方式。
●級聯(lián)但無緩沖。
●起始中斷類型號為08H(IR0)。
●正常的中斷結(jié)束,不選擇特殊的全嵌套方式。
● 級聯(lián)方式要ICW3和ICW4。對從片的要求是:
●從片的INT接主片的IR2。
●從片起始中斷類型號為70H。
●級聯(lián)方式要ICW3和ICW4。2022/12/23121實例系統(tǒng)圖2022/12/23122編程實例解(主片)主片初始化程序段:
MOVAL,00010001B ;ICW1:邊沿,ICW4,ICW3
OUT20H,AL ;寫入ICW1
MOVAL,00001000H ;ICW2:IR0中斷類型號為08H
OUT21H,AL ;寫入ICW2
MOVAL,00000100B ;ICW3:主片IR2接從片INT
OUT21H,AL ;寫入ICW3
MOVAL,00000001B ;ICW4:非緩沖,正常中斷結(jié)束,非特殊全嵌套方式
OUT21H,AL ;寫入ICW42022/12/23123編程實例解(從片)從片初始化程序段:
MOVAL,00010001B ;ICW1:邊沿,ICW4,ICW3
OUT0A0H,AL ;寫入ICW1
MOVAL,01110000H ;ICW2:IR0中斷類型號為70H
OUT0A1H,AL ;寫入ICW2
MOVAL,00000010B ;ICW3:從片接主片的IR2
OUT0A1H,AL ;寫入ICW3
MOVAL,00000001B ;ICW4:非緩沖,正常結(jié)束,非特殊全嵌套方式
OUT0A1H,AL ;寫入ICW42022/12/231248259A操作命令字的編程中斷屏蔽命令字OCW1控制中斷和優(yōu)先級循環(huán)的操作命令字OCW2屏蔽查詢狀態(tài)命令字OCW32022/12/23125中斷屏蔽命令字OCW1
Mi=1表示對應的IRi中斷源被屏蔽,Mi=0則取消屏蔽(i=0,1,2,3,4,5,6,7)。要求寫入8259A的A0=1的端口2022/12/23126控制中斷和優(yōu)先級循環(huán)的操作命令字OCW2
R:優(yōu)先級循環(huán)位,R=1為循環(huán)優(yōu)先。SL:指定IRi級別位。SL=1時L2~L0有效。L2~L0:編碼指定IRRi要求寫入8259A的A0=0的端口2022/12/23127屏蔽查詢狀態(tài)命令字OCW3
ESMM:特殊屏蔽允許,SMM:特殊屏蔽位。P:管理查詢方式。當P=1時可用作查詢方式RR:讀寄存器命令位,RR=1讀寄存器IRR和ISR,RR=0禁止讀這兩個寄存器的內(nèi)容。RIS:寄存器選擇位,RR=1時且RIS=0讀IRR寄存器,RIS=1讀ISR寄存器的內(nèi)容。要求寫入8259A的A0=0的端口2022/12/23128操作命令編程實例MOVAL,11110000H;主片OCW1,屏蔽主片的IR7,IR6,IR5和IR4
OUT21H,AL ;寫入主片的OCW1MOVAL,10000001H;從片OCW1:屏蔽從片8259A的IR0和IR7
OUT0A1H,AL ;寫入從片的OCW1
MOVAL,00100000H;OCW2:結(jié)束最高中斷,清ISR相應位,發(fā)普通中斷結(jié)束命令
OUT0A0H,AL ;先向從片發(fā)中斷結(jié)束命令
OUT20H,AL ;后向主片發(fā)中斷結(jié)束命2022/12/231298259A狀態(tài)的讀取中斷屏蔽寄存器IMR的讀取
讀取IMR只需用一條IN指令
IN AL,21H ;A0=1的偶地址端口中斷請求寄存器IRR的讀取
MOVAL,0AH;發(fā)讀取IRR的OCW3命令字OUT20H,AL;寫入A=0的偶地址端口
IN AL,20H ;讀IRR內(nèi)容到AL中中斷服務寄存器ISR的讀取
MOVAL,0BH ;發(fā)讀取ISR的OCW3命令字 OUT20H,AL ;命令字寫入A0=0的端口
IN AL,20H ;讀ISR內(nèi)容到AL中2022/12/23130中斷調(diào)用及中斷程序設計版權(quán)所有,南京航空航天大學2022/12/23131理解中斷調(diào)用指令的執(zhí)行過程INTn指令IRET指令2022/12/23132INTn指令的執(zhí)行過程(1)SP=SP-2
(2)PSW(FLAGS)入棧
(3)SP=SP-2
(4)斷點地址(INTn的下一條指令)的CS入棧
(5)SP=SP-2
(6)斷點地址的IP入棧
(7)IP=[0000:n*4]
(8)CS=[0000:n*4+2]2022/12/23133IRET指令的執(zhí)行過程(1)IP=[SS:SP]
(2)SP=SP+2
(3)CS=[SS:SP]
(4)SP=SP+2
(6)PSW=[SS:SP]
(7)SP=SP+22022/12/23134中斷調(diào)用BIOS功能調(diào)用
供助于存于系統(tǒng)板ROM中的BIOS程序?qū)崿F(xiàn)功能調(diào)用,它是最直接控制硬件的系統(tǒng)程序,是其它程序(OS,用戶程序等)與硬件的接口程序。DOS功能調(diào)用
供助于DOS操作系統(tǒng)提供的處理程序?qū)崿F(xiàn)功能調(diào)用。2022/12/23135BIOS中斷調(diào)用BIOS中斷類型BIOS調(diào)用方法BIOS調(diào)用示例2022/12/23136BIOS中斷類型
2022/12/23137BIOS調(diào)用方法在AH寄存器中設置調(diào)用子程序的功能號根據(jù)要求設置入口參數(shù)使用INTn指令轉(zhuǎn)入BIOS程序入口,其中n為中斷類型號程序運行完畢后,如果有出口參數(shù),則按規(guī)定取得出口參數(shù)2022/12/23138BIOS調(diào)用示例顯示功能日期和時間鍵盤服務2022/12/23139BIOS顯示功能調(diào)用10H示例在當前光標處顯示一個字符‘$’,光標自動后移,功能號AH=0EH入口參數(shù):要顯示的字符在AL中調(diào)用方法:MOVAH,0EH
MOVAL,’$’
INT10H2022/12/23140利用BIOS日期調(diào)用讀取日期讀系統(tǒng)日期,功能號04H入口參數(shù):無出口參數(shù):CX=年(帶世紀),DH=月,DL=日調(diào)用方法:MOVAH,04
INT1AH2022/12/23141利用BIOS日期調(diào)用設置日期讀系統(tǒng)日期,功能號05H入口參數(shù):CX=年(帶世紀),DH=月,DL=日出口參數(shù):無調(diào)用方法:MOVCX,2002H;2002年
MOVDX,0512H;5月12日
MOVAH,05
INT1AH2022/12/23142利用BIOS時間調(diào)用讀取時間讀系統(tǒng)時間,功能號02H入口參數(shù):無出口參數(shù):CH=時,CL=分,DH=秒調(diào)用方法:MOVAH,02
INT1AH2022/12/23143利用BIOS時間調(diào)用設置時間讀系統(tǒng)時間,功能號03H入口參數(shù):CH=時,CL=分,DH=秒出口參數(shù):無調(diào)用方法:MOVAH,03
MOVCX,1209H;12:09
MOVDH,0
INT1AH2022/12/23144BIOS鍵盤服務調(diào)用16H示例從鍵盤緩沖區(qū)讀取字符入口參數(shù):AH=1出口參數(shù):ZF=0,AH=鍵盤掃描碼,AL=ACII碼字符
ZF=1,無鍵按下調(diào)用方法:MOVAH,1
INT16H2022/12/23145DOS中斷調(diào)用DOS中斷類型DOS調(diào)用方法DOS調(diào)用示例2022/12/23146DOS中斷類型
2022/12/23147D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年業(yè)務員辭職報告15篇
- 護士的實習報告模板錦集五篇
- 城中村改造項目建設方案
- 室內(nèi)設計師工作總結(jié)范文
- 藥學院學生實習報告
- 2024年國際貿(mào)易交涉流程與協(xié)議訂定指南
- 2024年委托代扣企業(yè)投資回報收益分配授權(quán)合同3篇
- 老舊廠區(qū)改造技術(shù)可行性分析
- 物聯(lián)網(wǎng)基礎課程設計
- 2024年股份投資合作協(xié)議模板版B版
- 門診病歷書寫模板全
- 煤油(火油)的理化性質(zhì)及危險特性表MSDS
- 鍋爐延期檢驗申請書
- 液壓與氣壓傳動中職PPT完整全套教學課件
- 國開大學2023年01月11067《知識產(chǎn)權(quán)法》期末考試答案
- 直接打印800字作文紙
- 石油產(chǎn)品密度基本知識認知
- (完整word版)人教版高中數(shù)學大綱
- 貨物供貨總體服務方案
- 青島版二年級數(shù)學下冊《周期問題》教案
- 第三章熱力學第二定律物理化學
評論
0/150
提交評論