微機(jī)原理與接口技術(shù) 第6章 輸入輸出技術(shù)_第1頁
微機(jī)原理與接口技術(shù) 第6章 輸入輸出技術(shù)_第2頁
微機(jī)原理與接口技術(shù) 第6章 輸入輸出技術(shù)_第3頁
微機(jī)原理與接口技術(shù) 第6章 輸入輸出技術(shù)_第4頁
微機(jī)原理與接口技術(shù) 第6章 輸入輸出技術(shù)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機(jī)原理與接口技術(shù)任課教師:喬奎賢E-mail: cren616@126.com第6章輸入輸出與接口技術(shù)——CPU與外設(shè)的工作速度不一致,如何使兩者高效、可靠地進(jìn)行數(shù)據(jù)傳送,是本章討論的問題第6章輸入輸出與接口技術(shù)6.1 概述6.2 I/O接口6.3 中斷與中斷系統(tǒng)6.4 中斷控制器8259A6.5 DMA控制器8237A6.1 概述輸入和輸出設(shè)備——外部設(shè)備、I/O設(shè)備在微機(jī)系統(tǒng)中,被計算機(jī)處理的信息,如程序、原始數(shù)據(jù)和各種現(xiàn)場采集的數(shù)據(jù)需通過輸入設(shè)備送入計算機(jī)處理,而計算機(jī)處理的結(jié)果又需通過輸出設(shè)備顯示或打印。常用I/O設(shè)備:鍵盤、鼠標(biāo)、磁盤、顯示器、打印機(jī)、繪圖儀等I/O設(shè)備的類型:機(jī)械式、電動式、電子式、光電式等I/O設(shè)備的信息:數(shù)字量、模擬量、開關(guān)量等接口:將來自外部設(shè)備的各種信號變換之后傳送給CPU,而CPU將信息處理結(jié)果變換之后傳送給外部設(shè)備46.1 概述鍵盤、鼠標(biāo)——PS/2、USB掃描儀——EPP(增強并口)、USB顯示器——15針D接口,也叫VGA接口5第6章輸入輸出與接口技術(shù)6.1 概述6.2 I/O接口6.3 中斷與中斷系統(tǒng)6.4 中斷控制器8259A6.5 DMA控制器8237A6.2 I/O接口為什么需要I/O接口(電路)?微機(jī)的外部設(shè)備多種多樣工作原理、驅(qū)動方式、信息格式、以及工作速度方面彼此差別很大I/O設(shè)備的功能多種多樣I/O設(shè)備工作速度不同I/O設(shè)備處理的信號不同(模擬/數(shù)字信號、并行/串行)I/O設(shè)備所需的控制信號不同76.2 I/O接口I/O接口:將來自外設(shè)的各種信號變換之后傳送給CPU,而CPU將信息處理結(jié)果變換之后傳送給外部設(shè)備。I/O接口是CPU與外設(shè)之間傳送信息的連接部件,通過系統(tǒng)總線與CPU相連。I/O接口位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路。PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路。I/O接口的特點:通用性可編程性86.2 I/O接口I/O接口的分類:通用接口:供多種外設(shè)使用的標(biāo)準(zhǔn)接口,使微機(jī)正常工作通用接口通常制造成集成電路芯片,稱為接口芯片最初的IBM-PC使用了6塊接口芯片:8284、8288、8255、8259、8237、8253后來的微機(jī)將這些芯片集成為大規(guī)模集成電路芯片,稱為芯片組如:82430TX芯片組,由兩片芯片組成:北橋:82439TX南橋:82371AB專用接口:96.2 I/O接口I/O接口的分類:通用接口:專用接口:為某種用途或某類外設(shè)而專門設(shè)計的接口電路,目的在于擴(kuò)充微機(jī)系統(tǒng)的功能專用接口通常制成接口卡,插在主板總線插槽上使用通用接口和專用接口的界限并不嚴(yán)格106.2 I/O接口I/O接口的功能:I/O接口在它連接的CPU與I/O設(shè)備之間起信息轉(zhuǎn)換作用,應(yīng)具備如下功能:接口內(nèi)有特定的硬件電路供CPU直接存取,稱為I/O端口接口應(yīng)有地址譯碼功能接口可傳送除基本信息(數(shù)據(jù)信息)外的各種信息116.2 I/O接口6.2.1CPU與I/O設(shè)備間的信息種類CPUI/O接口外圍設(shè)備數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制I/O接口:與系統(tǒng)總線相連:實現(xiàn)與CPU的啟動、選中接口等控制信號的配合,提供傳輸數(shù)據(jù)信息的I/O端口。與I/O設(shè)備相連:隨接口類型的不同而異,其電路結(jié)構(gòu)與設(shè)備傳輸數(shù)據(jù)的要求以及數(shù)據(jù)格式緊密相關(guān)。126.2 I/O接口6.2.1CPU與I/O設(shè)備間的信息種類接口傳遞的不同信息用不同的I/O端口區(qū)分(數(shù)據(jù),狀態(tài)和控制信息)數(shù)據(jù)信息:CPU和外設(shè)之間交換的基本信息數(shù)字量:通常以8/16位的二進(jìn)制數(shù)及ASCII碼的形式傳輸開關(guān)量:用0/1表示信息,如開關(guān)的通/斷模擬量:模擬的電壓、電流或非電量狀態(tài)信息:反映當(dāng)前外設(shè)所處工作狀態(tài),外設(shè)通過接口往CPU傳送如:輸出設(shè)備是否空閑,輸入設(shè)備是否數(shù)據(jù)準(zhǔn)備好等控制信息:CPU通過接口發(fā)送控制信息給外設(shè)如:外設(shè)的啟動信號和停止信號就是常見的控制信息。實際上,控制信息常隨外設(shè)的具體工作原理不同而含義不同136.2 I/O接口I/O接口的典型結(jié)構(gòu):數(shù)據(jù)寄存器狀態(tài)寄存器控制寄存器數(shù)據(jù)緩沖器CS微處理器DBABCB數(shù)據(jù)控制狀態(tài)I/O接口譯碼讀寫控制邏輯I/O設(shè)備××寄存器——××端口146.2 I/O接口6.2.2I/O端口及編址方式端口:I/O接口中能被CPU訪問的寄存器端口地址:簡稱端口,為了使CPU能對端口進(jìn)行操作而分配的地址I/O接口的內(nèi)部端口(從應(yīng)用角度):數(shù)據(jù)寄存器——數(shù)據(jù)端口:保存CPU與外設(shè)之間傳送的數(shù)據(jù)狀態(tài)寄存器——狀態(tài)端口:保存外設(shè)或接口電路的狀態(tài)控制寄存器——控制端口:保存CPU給外設(shè)或接口電路的命令CPU同外設(shè)之間的信息傳遞,實質(zhì)上是對端口進(jìn)行讀/寫操作156.2 I/O接口6.2.2I/O端口及編址方式I/O接口的的外部特性:主要體現(xiàn)在引腳上,分成兩側(cè)信號面向CPU一側(cè)的信號:用于與CPU連接主要是數(shù)據(jù)、地址和控制信號面向外設(shè)一側(cè)的信號:用于與外設(shè)連接提供的信號五花八門功能定義、時序及有效電平等差異較大166.2 I/O接口6.2.2I/O端口及編址方式

許多接口電路具有多種功能和工作方式,可以通過編程的方法選定其中一種。接口需要進(jìn)行物理連接,還需要編寫接口軟件。接口軟件有兩類:初始化程序段——設(shè)定芯片工作方式等數(shù)據(jù)交換程序段——管理、控制、驅(qū)動外設(shè),負(fù)責(zé)外設(shè)和系統(tǒng)間信息交換176.2 I/O接口端口編址方式:端口與存儲器統(tǒng)一編址:(存儲器映像編址)

將I/O接口中的每個寄存器看作存儲器的一個存儲器的一個存儲單元,納入統(tǒng)一的存儲器地址空間,為每個端口分配一個存儲器地址,CPU可以以訪問存儲器的方式訪問端口。內(nèi)存部分I/O部分存儲器空間00000HFFFFFH優(yōu)點:不需專用IO指令,使程序設(shè)計靈活;I/O端口的地址空間可大可小,可使外設(shè)數(shù)量幾乎不受限制缺點:影響內(nèi)存容量;訪問I/O端口的執(zhí)行時間增加186.2 I/O接口端口編址方式:端口獨立編址:(專用的I/O端口編址)

I/O端口不占用存儲器的地址空間,端口地址是獨立的,CPU使用專門的I/O指令訪問I/O端口。內(nèi)存空間I/O空間FFFFFHFFFFH0優(yōu)點:I/O端口的地址短,譯碼電路簡單;M同I/O端口的操作指令不同,程序清晰;M和I/O端口控制結(jié)構(gòu)相互獨立,可分別設(shè)計缺點:需專用I/O指令;程序設(shè)計靈活性差80x86采用I/O端口獨立編址196.2 I/O接口8088的I/O端口地址

8088只能通過輸入輸出指令與外設(shè)進(jìn)行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設(shè)是端口(Port),即I/O地址8088用于尋址外設(shè)端口的地址線為16條,端口最多為216=65536(64K)個,端口號為0000H~FFFFH地址線上的地址信號用IO/M*來區(qū)分每個端口用于傳送一個字節(jié)的外設(shè)數(shù)據(jù)IBMPC只使用了1024個I/O地址(0~3FFH)206.2 I/O接口6.2.38086/8088的I/O指令I(lǐng)N輸入指令:指令格式:

IN AL, PORT ;從端口讀取字節(jié)信息

IN AX, PORT ;從端口讀取字信息指令功能:AL←(PORT)字節(jié)數(shù)據(jù);AX←(PORT)字?jǐn)?shù)據(jù)說明:端口地址可以是8位立即數(shù)(直接尋址),范圍:0~255(0~FFH)端口地址可存入DX寄存器(間接尋址),范圍:0~65535(0~FFFFH)I/O指令不影響標(biāo)志位例如: IN AX, 86H

IN AL, DX輸入端口數(shù)據(jù)線地址譯碼(RD,IO/M)IOR216.2 I/O接口OUT輸出指令:指令格式: OUT PORT,AL

;向端口輸出字節(jié)信息

OUT PORT,AX

;向端口輸出字信息指令功能:(PORT)←AL字節(jié)數(shù)據(jù);(PORT)←AX字?jǐn)?shù)據(jù)說明:端口地址和累加器的規(guī)定與輸入指令I(lǐng)N相同例如: OUT 84H, AX OUT DX, AL輸出端口數(shù)據(jù)線地址譯碼(WR,IO/M)IOW226.2 I/O接口6.2.38086/8088的I/O指令【例】向300H端口輸出一個字節(jié)唯一的方法:間接尋址MOV

AL

,

n

;n是字節(jié)數(shù)據(jù)MOV

DX

,

300HOUT

DX

,

AL236.2 I/O接口6.2.4主機(jī)與外設(shè)之間的數(shù)據(jù)傳輸方式CPU與外圍設(shè)備之間的數(shù)據(jù)轉(zhuǎn)送:即CPU與接口之間的數(shù)據(jù)傳送I/O數(shù)據(jù)傳送的方式:程序控制方式:直接傳送方式:(CPU與外設(shè)同步工作)外部控制過程各種動作時間是固定的,而且是已知的查詢傳送方式:(CPU與外設(shè)不同步工作):傳送前查詢外設(shè)狀態(tài),準(zhǔn)備好才傳送,否則CPU等待中斷控制方式:外設(shè)與CPU處于并行工作DMA(直接存儲器存?。﹤魉头绞剑河捎布崿F(xiàn)存儲器與外設(shè)之間交換數(shù)據(jù)246.2 I/O接口程序控制方式:I/O操作在程序控制下進(jìn)行,用IN和OUT指令直接訪問I/O端口直接傳送方式:——CPU與外設(shè)同步工作外部控制過程各種動作時間是固定的,而且是已知的。實現(xiàn)方法:⑴CPU不查詢外設(shè)工作狀態(tài);⑵與外設(shè)速度的匹配通過在軟件上延時完成;⑶程序中直接用I/O指令,完成數(shù)據(jù)傳送。特點:⑴這種傳送有前提:外設(shè)必須隨時就緒;⑵適合于簡單設(shè)備,如開關(guān)、發(fā)光二極管、LED數(shù)碼管、繼電器、按鍵或按紐等設(shè)備;⑶無條件傳送的接口和操作均十分簡單。256.2 I/O接口程序控制方式:直接傳送方式:接口電路——硬件保證:只在CPU執(zhí)行從相應(yīng)端口輸入數(shù)據(jù)時,

三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè);而CPU執(zhí)行其它指令時,

三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開AB輸入設(shè)備三態(tài)緩沖器地址譯碼器DB(D7~D0)IOR(RD,IO/M)輸入266.2 I/O接口程序控制方式:直接傳送方式:輸出AB輸出設(shè)備鎖存器地址譯碼器DB(D7~D0)IOW(WR,IO/M)276.2 I/O接口查詢傳送方式:CPU與外設(shè)不同步工作傳送前先查詢外設(shè)狀態(tài),準(zhǔn)備好才傳送,否則CPU處于等待狀態(tài)實現(xiàn)方法:在與外設(shè)進(jìn)行傳送數(shù)據(jù)前,CPU先查詢外設(shè)狀態(tài),當(dāng)外設(shè)準(zhǔn)備好后,才執(zhí)行I/O指令,實現(xiàn)數(shù)據(jù)傳送。準(zhǔn)備好——就緒(Ready)輸入:“就緒”說明輸入接口已準(zhǔn)備好送往CPU的數(shù)據(jù),正等著CPU來讀取。該狀態(tài)也可用接口中數(shù)據(jù)緩沖器已“滿”來描述。輸出:“就緒”說明輸出接口已做好準(zhǔn)備,等待接收CPU要輸出的數(shù)據(jù)該狀態(tài)也可用接口數(shù)據(jù)緩沖器已“空”、或者用接口(外設(shè))“閑”或不“忙(Busy)”來描述。286.2 I/O接口查詢傳送方式:CPU與外設(shè)不同步工作查詢傳送的兩個環(huán)節(jié)⑴查詢環(huán)節(jié)尋址狀態(tài)口讀取狀態(tài)寄存器的標(biāo)志位若不就緒就繼續(xù)查詢,直至就緒⑵傳送環(huán)節(jié)尋址數(shù)據(jù)口若是輸入,通過輸入指令從數(shù)據(jù)端口讀入數(shù)據(jù)若是輸出,通過輸出指令向數(shù)據(jù)端口輸出數(shù)據(jù)輸入狀態(tài)就緒?數(shù)據(jù)交換YN296.2 I/O接口查詢傳送方式:——CPU與外設(shè)不同步工作當(dāng)CPU需要對多個設(shè)備進(jìn)行操作時,則CPU按一定順序依次查詢。所謂的優(yōu)先級問題,先查詢的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換。CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配,CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配。缺點:不能對設(shè)備進(jìn)行實時處理查詢過程大大降低CPU的效率外設(shè)接口始終處于被動狀態(tài)306.2 I/O接口中斷控制方式:外設(shè)準(zhǔn)備數(shù)據(jù),CPU執(zhí)行程序,此時,CPU與外設(shè)并行工作。外設(shè)準(zhǔn)備就緒,向CPU發(fā)中斷申請,CPU暫停程序執(zhí)行,響應(yīng)中斷,進(jìn)行數(shù)據(jù)傳輸。此時,CPU與外設(shè)是串行工作。中斷服務(wù)程序中斷請求中斷請求外設(shè)中斷服務(wù)程序CPU的運行中斷方式下CPU執(zhí)行程序流程:當(dāng)外設(shè)準(zhǔn)備好,向CPU發(fā)出中斷請求信號CPU在滿足響應(yīng)中斷的條件下,發(fā)出中斷響應(yīng)信號CPU暫停當(dāng)前程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,完成與外設(shè)的數(shù)據(jù)傳送CPU從中斷服務(wù)程序返回,繼續(xù)執(zhí)行被中斷的程序316.2 I/O接口直接存儲器存?。―MA)傳送方式:外設(shè)可通過DMA控制器DMAC向CPU發(fā)出DMA請求CPU響應(yīng)DMA請求,系統(tǒng)轉(zhuǎn)變?yōu)镈MA工作方式,且將總線控制權(quán)交給DMAC由DMA控制器發(fā)送存儲器地址,且決定傳送數(shù)據(jù)塊的長度執(zhí)行DMA傳送DMA操作結(jié)束,且將總線控制權(quán)交還CPUDMA適用于大批量快速傳送傳送數(shù)據(jù)內(nèi)存地址的修改、記數(shù)等均由DMAC控制器硬件完成CPU放棄對總線的控制權(quán),其現(xiàn)場不受影響,無需進(jìn)行保護(hù)和恢復(fù)326.2 I/O接口(1)DMA方式與其它方式比較DMA控制器內(nèi)存/外設(shè)外設(shè)/內(nèi)存無需CPU指令外設(shè)/內(nèi)存CPUMOV[XX],ALOUTDX,ALINAL,DXMOVAL,[XX]內(nèi)存/外設(shè)336.2 I/O接口(2)DMA傳輸?shù)奶攸c外設(shè)內(nèi)存外設(shè)直接與存儲器進(jìn)行數(shù)據(jù)交換,CPU不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎呖偩€由DMA控制器(DMAC)進(jìn)行控制(CPU要放棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號均由DMAC提供優(yōu)點:數(shù)據(jù)傳輸由DMA硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率(可達(dá)幾MB/秒)346.2 I/O接口(3)DMA傳輸?shù)墓ぷ鬟^程由外設(shè)向DMAC發(fā)出DMA請求通過HOLD信號線發(fā)出DMA請求通過HLDA信號線發(fā)出DMA響應(yīng)發(fā)出DMA應(yīng)答信號通過HOLD信號線撤消DMA請求使HLDA信號無效與內(nèi)存?zhèn)魉蛿?shù)據(jù)(DMA控制器控制)外設(shè)DMA控制器CPU356.2 I/O接口(3)DMA傳輸?shù)墓ぷ鬟^程由DMA控制器向CPU發(fā)出總線請求CPU發(fā)回響應(yīng)信號,并同時讓出總線管理權(quán)給DMA控制器在DMA控制器控制下,數(shù)據(jù)在I/O接口與存儲器之間直接傳送傳送完畢,DMA控制器向CPU發(fā)回結(jié)束中斷請求,則CPU收回總線管理權(quán)366.2 I/O接口I/O數(shù)據(jù)傳送的方式比較:程序控制方式:特點:傳送數(shù)據(jù)可靠性高,計算機(jī)使用效率低應(yīng)用:常用在任務(wù)比較單一的系統(tǒng)中中斷控制方式:特點:傳送數(shù)據(jù)可靠性高,效率也高應(yīng)用:常用于外設(shè)工作速率比CPU慢很多而數(shù)據(jù)量不大的系統(tǒng)直接存儲器存?。―MA)傳送方式:特點:可靠性和效率都很高,但硬件電路復(fù)雜,開銷也大應(yīng)用:常用于傳送速率快、數(shù)據(jù)量很大的系統(tǒng)中37第6章輸入輸出與接口技術(shù)6.1 概述6.2 I/O接口6.3 中斷與中斷系統(tǒng)6.4 中斷控制器8259A6.5 DMA控制器8237A6.3中斷與中斷系統(tǒng)為何計算機(jī)中要引入中斷?提高數(shù)據(jù)傳輸率避免CPU不斷檢測外設(shè)狀態(tài),提高CPU的利用率實現(xiàn)對特殊事件的實時響應(yīng)。如多任務(wù)操作系統(tǒng)中:缺頁中斷設(shè)備中斷各類異常396.3中斷與中斷系統(tǒng)什么是中斷?事件發(fā)生事件處理繼續(xù)執(zhí)行程序?qū)嶋H場景執(zhí)行程序計算機(jī)中斷請求及響應(yīng)中斷處理中斷返回正在看書電話鈴響接電話繼續(xù)看書406.3中斷與中斷系統(tǒng)中斷:指CPU在正常執(zhí)行程序的過程中,由于內(nèi)部/外部事件或由程序的預(yù)先安排,引起CPU暫時中斷當(dāng)前程序的運行而轉(zhuǎn)去執(zhí)行為內(nèi)部/外部事件或預(yù)先安排的事件服務(wù)的子程序,待中斷服務(wù)子程序執(zhí)行完畢后,CPU再返回到暫停處(斷點)繼續(xù)執(zhí)行原來的程序中斷具有隨機(jī)性:CPU預(yù)先不知道外設(shè)何時產(chǎn)生中斷中斷的產(chǎn)生:-由外設(shè)硬件產(chǎn)生-由程序軟件產(chǎn)生斷點CPU響應(yīng)中斷中斷返回中斷請求現(xiàn)行程序中斷服務(wù)程序416.3中斷與中斷系統(tǒng)中斷的處理過程:1.中斷請求:當(dāng)外設(shè)要求CPU為其服務(wù)時,外設(shè)接口(中斷源)發(fā)出中斷請求信號,送到CPU的INTR或NMI引腳CPU每執(zhí)行完一條指令都要檢測中斷請求輸入線CPU是否響應(yīng)取決于CPU的中斷允許控制位IF——對于可屏蔽中斷中斷屏蔽:有中斷請求但未被允許對于可屏蔽中斷是否響應(yīng)——中斷觸發(fā)器IF/中斷允許控制位IFIF=1:允許中斷 通過SLI開中斷指令打開IFIF=0:允許中斷 通過CLI關(guān)中斷指令關(guān)閉IF426.3中斷與中斷系統(tǒng)對于可屏蔽中斷是否響應(yīng)——中斷觸發(fā)器IF/中斷允許控制位IFIF=0:可屏蔽中斷不會被響應(yīng)關(guān)中斷、禁止中斷、中斷屏蔽系統(tǒng)復(fù)位,使IF=0任何一個中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會被響應(yīng)開中斷、允許中斷、中斷開放執(zhí)行指令STI,使IF=1執(zhí)行中斷返回指令I(lǐng)RET恢復(fù)原IF狀態(tài)436.3中斷與中斷系統(tǒng)2.中斷響應(yīng):

當(dāng)CPU檢測到外設(shè)有中斷請求時,即INTR高電平有效,而CPU又處于允許中斷狀態(tài)時(IF=1),則CPU進(jìn)入中斷響應(yīng)周期。在中斷響應(yīng)周期,CPU將自動完成如下操作:⑴連續(xù)發(fā)出兩個中斷響應(yīng)信號INTA完成一個中斷響應(yīng)周期。⑵關(guān)中斷(IF清零),避免在中斷過程中受到其他中斷源的干擾⑶保護(hù)處理的現(xiàn)行狀態(tài),即保護(hù)現(xiàn)場將斷點地址(IP、CS)及程序狀態(tài)字(PSW)進(jìn)棧保存446.3中斷與中斷系統(tǒng)2.中斷響應(yīng):⑷在中斷響應(yīng)的第二個總線周期,讀取中斷類型號,獲得中斷服務(wù)程序的入口地址,自動將程序轉(zhuǎn)到此中斷源設(shè)備的中斷處理程序的首地址,即將中斷服務(wù)程序的段地址和偏移地址分別裝入CS和IP。⑸從響應(yīng)中斷請求到中斷現(xiàn)行程序且將程序轉(zhuǎn)移到中斷處理地址的過程稱為中斷響應(yīng)過程。456.3中斷與中斷系統(tǒng)3.中斷處理:由中斷服務(wù)程序?qū)崿F(xiàn)中斷服務(wù)程序:為實現(xiàn)中斷源所期望達(dá)到的功能而編寫的程序中斷服務(wù)程序的組成:保護(hù)現(xiàn)場:將有關(guān)寄存器的內(nèi)容壓入堆棧中斷服務(wù):完成為相應(yīng)的中斷服務(wù)恢復(fù)現(xiàn)場:將原壓棧的寄存器內(nèi)容彈回CPU相應(yīng)的寄存器中斷返回:4.中斷返回:執(zhí)行中斷返回指令I(lǐng)RETIRET指令:將使CPU把堆棧內(nèi)保存的斷點信息彈出到IP、CS和FLAG中,保證被中斷的程序從斷點處能夠繼續(xù)往下執(zhí)行466.3中斷與中斷系統(tǒng)中斷服務(wù)程序:編寫中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP第1條指令通常為開中斷STI(允許嵌套)最后用中斷返回指令I(lǐng)RET通常采用寄存器傳遞參數(shù)主程序需要調(diào)用中斷服務(wù)程序調(diào)用前,需要設(shè)置中斷向量利用INTn指令調(diào)用中斷服務(wù)程序476.3中斷與中斷系統(tǒng)中斷服務(wù)程序:①保護(hù)現(xiàn)場②開中斷——為實現(xiàn)中斷嵌套,必須設(shè)置開中斷③中斷處理——這是中斷服務(wù)程序的核心④關(guān)中斷——為保證下一步恢復(fù)現(xiàn)場的操作不被打斷⑤恢復(fù)現(xiàn)場⑥開中斷——使系統(tǒng)可以響應(yīng)中斷⑦中斷返回486.3中斷與中斷系統(tǒng)中斷源的類型:中斷源:引起中斷的原因或發(fā)出中斷請求的來源8086/8088的256種中斷分為:外部中斷:由外部硬件中斷源引起的中斷可屏蔽中斷:由INTR信號線請求的中斷,受IF標(biāo)志位的影響和控制通常通過8259A中斷控制器進(jìn)行優(yōu)先級控制后向CPU發(fā)送INTR非屏蔽中斷:由NMI信號線請求的中斷,不受IF標(biāo)志位禁止的中斷通常用于處理應(yīng)急事件,如電源掉電內(nèi)部中斷:所有內(nèi)部中斷都是非屏蔽的內(nèi)部硬件中斷:系統(tǒng)運行程序時,內(nèi)部硬件出錯或某些特殊事件發(fā)生軟中斷:CPU執(zhí)行軟件中斷指令I(lǐng)NTn引起的中斷496.3中斷與中斷系統(tǒng)中斷源的類型: ◆外部中斷:可屏蔽中斷、非屏蔽中斷

◆內(nèi)部中斷:內(nèi)部硬件中斷、軟中斷單步中斷除法錯誤中斷指令中斷INTn斷點中斷INT3溢出中斷INTO中斷邏輯不可屏蔽中斷請求中斷控制系統(tǒng)8259ANMIINTR8086CPU內(nèi)部中斷外部中斷

可屏蔽中斷請求506.3中斷與中斷系統(tǒng)◆外部中斷:外部中斷是由于8088外部提出中斷請求引起的利用外部中斷,微機(jī)系統(tǒng)可以實時響應(yīng)外設(shè)的數(shù)據(jù)傳送請求,及時處理外部意外或緊急事件外部中斷的原因是處理器外部隨機(jī)產(chǎn)生的(Interrupt)內(nèi)部中斷的原因是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為異常(Exception)非屏蔽中斷——中斷類型碼n=2可屏蔽中斷——中斷類型碼n由申請中斷的中斷源提供516.3中斷與中斷系統(tǒng)⑴非屏蔽中斷NMI通過非屏蔽中斷請求信號NMI向微處理器提出的中斷請求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個中斷被稱為非屏蔽中斷8088的非屏蔽中斷的向量號為2非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:電源掉電前的數(shù)據(jù)保護(hù)存儲器讀寫錯誤的處理526.3中斷與中斷系統(tǒng)⑵可屏蔽中斷INTR外部通過可屏蔽中斷請求信號INTR向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng)INTA*,同時輸出可屏蔽中斷響應(yīng)信號,這個中斷就是可屏蔽中斷IF=1,允許中斷;IF=0,禁止中斷8088通常需要配合中斷控制器8259A共同處理可屏蔽中斷可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)536.3中斷與中斷系統(tǒng)◆內(nèi)部中斷:8088內(nèi)部執(zhí)行程序出現(xiàn)異常引起利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時異常情況的有效途徑例如,ROM-BIOS和DOS系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用內(nèi)部中斷的中斷向量號已定。546.3中斷與中斷系統(tǒng)⑴除法錯中斷:執(zhí)行除法指令時,若除數(shù)為0或商超過了寄存器所能表達(dá)的范圍,則CPU自動產(chǎn)生一個向量號為0的內(nèi)部中斷,稱為除法錯中斷0號中斷沒有對應(yīng)的中斷指令例如:MOV BL, 0IDIV BL

;除數(shù)BL=0,產(chǎn)生除法錯中斷MOVAX, 200HMOVBL, 1DIVBL

;商=200H,不能用AL表達(dá)

;產(chǎn)生除法錯中斷556.3中斷與中斷系統(tǒng)(2)單步中斷:由CPU對狀態(tài)標(biāo)志寄存器中的陷阱標(biāo)志TF的測試而產(chǎn)生的1號中斷若TF=1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生1號內(nèi)部中斷,稱為單步中斷。類似0號(除法錯)中斷:不是由外部硬件或者軟件指令產(chǎn)生,是由CPU對標(biāo)志位TF的測試而產(chǎn)生的。例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實現(xiàn)對程序的單步調(diào)試。566.3中斷與中斷系統(tǒng)(3)斷點中斷:CPU執(zhí)行INT指令而產(chǎn)生的3號中斷。是8086提供給用戶使用的一種調(diào)試程序手段。對較長程序,通過設(shè)置斷點(插入INT指令),使程序運行一段后進(jìn)入斷點中斷,檢查程序是否達(dá)到要求。例如:DEBUG.EXE調(diào)試程序的運行命令G設(shè)置的斷點,就是利用INT3指令實現(xiàn)的。576.3中斷與中斷系統(tǒng)(4)溢出中斷:由于CPU本身不能判別當(dāng)前處理的數(shù)據(jù)是否帶符號,因此,它提供了INTO指令給用戶。在帶符號運算后安排一條INTO指令,當(dāng)運算后OF=1,則產(chǎn)生4號內(nèi)部中斷(溢出中斷),進(jìn)入溢出中斷服務(wù)程序進(jìn)行處理。MOV AX, 2000HADD AX,

7000H

;2000H+7000H=9000H,溢出:OF=1INTO

;因為OF=1,所以產(chǎn)生溢出中斷586.3中斷與中斷系統(tǒng)(5)軟件中斷:在執(zhí)行中斷調(diào)用指令I(lǐng)NTn時產(chǎn)生的一個向量號為n(0~255)的內(nèi)部中斷,n為一個字節(jié)的中斷類型碼,稱為指令中斷。用INTn指令來產(chǎn)生中斷,運行用戶自行設(shè)計的一些中斷服務(wù)程序,這與段間調(diào)用子程序相似。如:系統(tǒng)功能調(diào)用INT21H596.3中斷與中斷系統(tǒng)中斷向量表:中斷向量表:也稱中斷指針表,用來按中斷類型號順序存放256種中斷源對應(yīng)的中斷服務(wù)程序入口地址表內(nèi)容:所有中斷服務(wù)程序的入口地址,即256個中斷向量表長度:一個中斷向量4個字節(jié),256個中斷向量共256×4=1024字節(jié),即占用1K存儲空間表位置:物理地址00000H(0~3FFH)開始,依次安排各個中斷向量,向量號也從0開始存放次序:按中斷類型碼從小到大依次存放。每個中斷向量占用的4個單元中,小地址存放偏移地址,大地址存放段地址向量號為N的中斷向量的物理地址=N×4606.3中斷與中斷系統(tǒng)8088的中斷向量表:003FFH向量號255的CS值用戶中斷(向量號FFH)003FCH向量號255的IP值……(中斷向量)向量號2的CS值非屏蔽中斷(向量號2)00008H向量號2的IP值向量號1的CS值單步中斷(向量號1)00004H向量號1的IP值向量號0的CS值除法錯中斷(向量號0)00000H向量號0的IP值中斷向量地址616.3中斷與中斷系統(tǒng)中斷的優(yōu)先級:軟件中斷除法錯中斷指令中斷溢出中斷非屏蔽中斷NMI可屏蔽中斷INTR單步中斷高低626.3中斷與中斷系統(tǒng)例題1:如果在00080H~00083H這

溫馨提示

  • 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

提交評論