




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第9章章 輸入輸出系統(tǒng)及中斷的使用輸入輸出系統(tǒng)及中斷的使用方法方法 本章重點(diǎn):本章重點(diǎn): 掌握接口的基本功能和輸入輸出指令。掌握CPU尋址外設(shè)的方式、外設(shè)端口的編址方式、CPU與外設(shè)間傳送信息的種類。掌握程序控制傳送方式、中斷傳送方式,了解DMA方式的特點(diǎn)。 重點(diǎn)掌握如何用匯編編寫一些功能程序。另外在理解中斷的相關(guān)概念基礎(chǔ)上進(jìn)一步掌握中斷服務(wù)程序的設(shè)計(jì)等。 9.1 輸入輸出接口概述輸入輸出接口概述 1. I/O接口的一般結(jié)構(gòu)及編址方式接口的一般結(jié)構(gòu)及編址方式 接口是一組電路,是中央處理器與存儲(chǔ)接口是一組電路,是中央處理器與存儲(chǔ)器、輸入輸出設(shè)備等外設(shè)之間協(xié)調(diào)動(dòng)作器、輸入輸出設(shè)備等外設(shè)之間協(xié)調(diào)動(dòng)
2、作的控制電路。的控制電路。 9.1 輸入輸出接口概述輸入輸出接口概述 2I/O設(shè)備接口的編址方式設(shè)備接口的編址方式 設(shè)備接口表現(xiàn)為一組寄存器,具有確定的地址碼設(shè)備接口表現(xiàn)為一組寄存器,具有確定的地址碼(即(即IO端口地址)。主機(jī)通過(guò)端口尋址寄存器端口地址)。主機(jī)通過(guò)端口尋址寄存器連接設(shè)備,其中數(shù)據(jù)寄存器提供傳輸數(shù)據(jù)的存儲(chǔ)連接設(shè)備,其中數(shù)據(jù)寄存器提供傳輸數(shù)據(jù)的存儲(chǔ)緩沖,狀態(tài)寄存器記錄設(shè)備工作狀態(tài),而控制寄緩沖,狀態(tài)寄存器記錄設(shè)備工作狀態(tài),而控制寄存器決定設(shè)備工作方式。存器決定設(shè)備工作方式。 80 x86系列采用獨(dú)立編址方式,具有64KB個(gè)8位端口,其中系統(tǒng)標(biāo)準(zhǔn)設(shè)備已占用部分端口。下面列出PC機(jī)部
3、分I/O端口的地址。 00H0FH:DMA控制器的端口地址。 20H21H:可編程中斷控制器PIC端口地址,其中ICR為20H,IMR為21H。 40H43H:時(shí)鐘/定時(shí)器的端口地址。 60H6FH:鍵盤控制器端口地址,60H為鍵盤輸入端口寄存器的地址。 61H:設(shè)備控制寄存器的端口地址。 70H71H:CMOS RAM端口地址 378H37AH:LPT1并行打印機(jī)端口地址,數(shù)據(jù)、狀態(tài)和控制端口地址依次為378H、379H、37AH 3F8H3FFH:COM1端口地址,其中數(shù)據(jù)寄存器的端口地址為3F8H、狀態(tài)寄存器為3FDH。 2F8H2FFH:COM2端口地址。 可見(jiàn),00HFFH用于微機(jī)主
4、板上的I/O設(shè)備端口,100H4FFH用于擴(kuò)展插件上的設(shè)備端口,500FFFFH為I/O擴(kuò)展區(qū),供用戶使用。當(dāng)設(shè)備端口分配存在沖突時(shí),系統(tǒng)將無(wú)法正常運(yùn)行。 9.1 輸入輸出接口概述輸入輸出接口概述 9.1.2 CPU與外設(shè)間的數(shù)據(jù)傳送方式與外設(shè)間的數(shù)據(jù)傳送方式 1無(wú)條件傳送方式無(wú)條件傳送方式 無(wú)條件傳送方式也叫直接程序控制輸入輸出。它無(wú)條件傳送方式也叫直接程序控制輸入輸出。它不需要查詢外設(shè)狀態(tài),直接使用不需要查詢外設(shè)狀態(tài),直接使用IO指令與外設(shè)指令與外設(shè)實(shí)現(xiàn)同步數(shù)據(jù)交換。采用這種控制方式的接口電實(shí)現(xiàn)同步數(shù)據(jù)交換。采用這種控制方式的接口電路和控制程序都比較簡(jiǎn)單。它一般應(yīng)用在工作速路和控制程序都比
5、較簡(jiǎn)單。它一般應(yīng)用在工作速度慢,接口電路較簡(jiǎn)單的外設(shè),如揚(yáng)聲器,度慢,接口電路較簡(jiǎn)單的外設(shè),如揚(yáng)聲器,LED顯示器、開(kāi)關(guān)、繼電器等。適合采用這種方式。顯示器、開(kāi)關(guān)、繼電器等。適合采用這種方式。9.1 輸入輸出接口概述輸入輸出接口概述 2程序查詢傳送方式程序查詢傳送方式 程序查詢控制是指CPU通過(guò)程序不斷地查詢外部設(shè)備的工作狀態(tài),看其是否為“準(zhǔn)備好”狀態(tài),只有在外部設(shè)備已“準(zhǔn)備好”的狀態(tài)下,微處理器才對(duì)指定端口進(jìn)行輸入輸出操作,否則微處理器繼續(xù)查詢等待。它是利用程序來(lái)不斷地測(cè)試外設(shè)的狀態(tài),根據(jù)狀態(tài)決定是否實(shí)現(xiàn)輸入輸出操作的信息傳送方式。例如對(duì)于打印機(jī),就可以采用此方式。CPU查詢打印機(jī)是否處于就
6、緒(Ready)狀態(tài),如果就緒,將要打印的字符首先提供給數(shù)據(jù)端口。然后查詢狀態(tài)端口,如果打印機(jī)能接收數(shù)據(jù),則利用控制端口將數(shù)據(jù)提供給打印機(jī)。下面的程序代碼就是常用的查詢方式。9.1 輸入輸出接口概述輸入輸出接口概述 3中斷傳送方式中斷傳送方式 當(dāng)CPU需要與外設(shè)交換數(shù)據(jù)時(shí),執(zhí)行一條指令去完成外設(shè)工作,然后繼續(xù)執(zhí)行自己的程序,這就是中斷傳送方式。輸入時(shí)若外設(shè)的輸入數(shù)據(jù)已送入數(shù)據(jù)寄存器,在輸出時(shí)若外設(shè)已把一個(gè)數(shù)據(jù)輸出,則由外設(shè)向CPU發(fā)出中斷請(qǐng)求。當(dāng)CPU響應(yīng)中斷時(shí),就暫停正在執(zhí)行的程序(即實(shí)現(xiàn)中斷),轉(zhuǎn)去執(zhí)行輸入或輸出操作(中斷服務(wù))。一次數(shù)據(jù)傳送完成后,返回到剛才暫停處(斷點(diǎn)地址),CPU繼續(xù)
7、執(zhí)行原來(lái)程序。9.1 輸入輸出接口概述輸入輸出接口概述 中斷控制方式的處理過(guò)程如下: 在中斷控制方式下,外部設(shè)備具有申請(qǐng)微處理器服務(wù)的主動(dòng)權(quán)。當(dāng)輸入設(shè)備“準(zhǔn)備好”輸入的數(shù)據(jù)或輸出設(shè)備“準(zhǔn)備好”接收微處理器數(shù)據(jù)時(shí),可以向微處理器發(fā)出中斷請(qǐng)求,觸發(fā)中斷請(qǐng)求信號(hào)線INTR。 中斷控制器具有中斷判優(yōu)的功能,當(dāng)輸入中斷請(qǐng)求信號(hào)具有較高的優(yōu)先級(jí)時(shí),會(huì)立即向微處理器發(fā)出中斷請(qǐng)求。 當(dāng)中斷標(biāo)志位IF=1(開(kāi)中斷)時(shí),執(zhí)行完當(dāng)前一條指令后,微處理器響應(yīng)外部設(shè)備的中斷請(qǐng)求。由中斷控制器將相應(yīng)的中斷矢量碼n送微處理器,微處理器根據(jù)中斷矢量碼從中斷矢量表取得中斷服務(wù)程序的入口地址,轉(zhuǎn)相應(yīng)的中斷服務(wù)程序。 執(zhí)行中斷服務(wù)
8、程序,微處理器與外部設(shè)備交換數(shù)據(jù)后,中斷返回。9.1 輸入輸出接口概述輸入輸出接口概述 4直接存儲(chǔ)器存取方式直接存儲(chǔ)器存取方式 程序查詢方式和中斷方式都是解決CPU和I/O設(shè)備間的信息交換,其共同特點(diǎn)是實(shí)現(xiàn)CPU寄存器與I/O端口間數(shù)據(jù)交換,且I/O操作都是由軟件(I/O指令)完成,而DMA方式下CPU不參與工作,在硬件DMAC控制下完成外設(shè)與存儲(chǔ)器間的直接傳輸數(shù)據(jù)的一種方式。直接存儲(chǔ)器存取(DMA)是利用專門的硬件電路DMAC(DMA控制器8237)讓外設(shè)接口可直接與內(nèi)存進(jìn)行高速數(shù)據(jù)傳送,而不必經(jīng)過(guò)CPU。DMA方式適合于大批量數(shù)據(jù)的傳輸,但硬件開(kāi)銷量較大。 采用DMA方式時(shí),如外設(shè)需要進(jìn)行
9、數(shù)據(jù)傳輸,首先向DMA控制器發(fā)出DMA請(qǐng)求,DMA控制器再向CPU發(fā)出總線請(qǐng)求,要求使用系統(tǒng)總線。CPU響應(yīng)DMA控制器的總線請(qǐng)求并把總線控制權(quán)交給DMA控制器,然后在DMA控制器的控制下開(kāi)始利用系統(tǒng)總線進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸結(jié)束后,DMA控制器自動(dòng)交出總線控制權(quán)。整個(gè)數(shù)據(jù)傳輸過(guò)程與CPU無(wú)關(guān)。這樣,數(shù)據(jù)傳輸速度基本上取決于外設(shè)和存儲(chǔ)器的速度。9.2 中斷處理技術(shù)中斷處理技術(shù) 9.2.1 中斷的概念中斷的概念 1中斷的基本概念中斷的基本概念 中斷是指正常執(zhí)行的程序被某種臨時(shí)發(fā)生的事件所打斷,當(dāng)前程序暫時(shí)中止,處理器轉(zhuǎn)去處理所發(fā)生的事件,處理完畢后再返回繼續(xù)執(zhí)行暫時(shí)中止的程序。就是說(shuō),在當(dāng)前程序
10、中插進(jìn)了一段別的程序中斷服務(wù)程序或中斷處理程序。CPU執(zhí)行的現(xiàn)行程序被中斷時(shí)的后繼指令(下一條指令)的地址稱為斷點(diǎn)地址。中斷時(shí),CPU執(zhí)行程序過(guò)程中所處的狀態(tài)稱為現(xiàn)場(chǎng)。9.2 中斷處理技術(shù)中斷處理技術(shù)2中斷的響應(yīng)過(guò)程中斷的響應(yīng)過(guò)程對(duì)于可屏蔽中斷,當(dāng)CPU檢測(cè)到有中斷請(qǐng)求時(shí),如果滿足響應(yīng)條件就要予以響應(yīng),具體過(guò)程如下: 關(guān)中斷,保護(hù)斷點(diǎn)。這一步為隱操作。 保護(hù)現(xiàn)場(chǎng)。在中斷服務(wù)程序中可能要用到某些寄存器,而這些寄存器也許在主程序被打斷時(shí)存放著有用的內(nèi)容,為了不破壞主程序在斷點(diǎn)處的狀態(tài),應(yīng)將這些寄存器的內(nèi)容進(jìn)壓棧保護(hù),這稱為現(xiàn)場(chǎng)保護(hù)。 開(kāi)中斷。由于CPU響應(yīng)中斷時(shí)自動(dòng)關(guān)閉了中斷,如果不用指令打開(kāi)中斷
11、,CPU就不再響應(yīng)可屏蔽的中斷,這樣就可能把更高級(jí)別的中斷請(qǐng)求屏蔽掉,返回?cái)帱c(diǎn)后CPU也就不能響應(yīng)其他的可屏蔽中斷。為此,要根據(jù)中斷系統(tǒng)的實(shí)際情況,在中斷服務(wù)程序的適當(dāng)位置打開(kāi)中斷。 具體中斷處理。這是中斷服務(wù)程序的主體。 關(guān)中斷。為安全起見(jiàn),在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí)都應(yīng)關(guān)中斷。防止這時(shí)響應(yīng)更高級(jí)別的中斷。 恢復(fù)現(xiàn)場(chǎng)。用一系列出棧指令,使保護(hù)現(xiàn)場(chǎng)時(shí)被保護(hù)的那些寄存器內(nèi)容還原。 開(kāi)中斷、中斷返回。因?yàn)榛謴?fù)現(xiàn)場(chǎng)是在關(guān)中斷狀態(tài)下進(jìn)行的,為了使返回?cái)帱c(diǎn)后CPU能響應(yīng)可屏蔽中斷,必須開(kāi)中斷。同時(shí),由返回指令(IRET)彈出斷點(diǎn)地址,從而返回?cái)帱c(diǎn)處繼續(xù)執(zhí)行被打斷了的程序。9.2 中斷處理技術(shù)中斷處理技術(shù) 1
12、硬件中斷硬件中斷 硬件中斷也稱外部中斷,是指通過(guò)外部的硬件產(chǎn)生的中斷。如打印機(jī)、硬盤等。硬件中斷可分為可屏蔽中斷(INTR)和不可屏蔽中斷(NMI)。 2軟件中斷軟件中斷 軟件中斷也稱內(nèi)部中斷,即由中斷指令引起的中斷,它與硬件電路無(wú)關(guān),也不受IF位控制。常見(jiàn)的有以下幾種。如除數(shù)為0,或用執(zhí)行軟中斷指令I(lǐng)NT n后,產(chǎn)生中斷,調(diào)用系統(tǒng)內(nèi)相應(yīng)的中斷服務(wù)程序。溢出中斷由INT 0指令引起,斷點(diǎn)中斷由INT 3指令引起。中斷類型由指令中的n指定,n稱為中斷號(hào),其范圍是0255 9.2 中斷處理技術(shù)中斷處理技術(shù) 3.中斷向量表是中斷類型號(hào)n與對(duì)應(yīng)的中斷服務(wù)處理程序之間的連接表,它提供了各個(gè)中斷類型號(hào)n對(duì)
13、應(yīng)的中斷服務(wù)程序的入口地址。當(dāng)中斷源發(fā)出中斷請(qǐng)求時(shí),即可查找該表,找出其中斷向量,就可轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序。在IBM-PC16位機(jī)中,中斷向量表占用主存至少1KB的地址空間,地址范圍是00000H003FFH。在中斷向量表中內(nèi)容分為256項(xiàng),分別對(duì)應(yīng)256個(gè)中斷類型號(hào)0255。每一項(xiàng)占用四個(gè)字節(jié),用來(lái)存放中斷處理程序的入口地址。高、低字單元分別用來(lái)存放中斷處理程序入口地址所在段的段地址和偏移地址。 9.2 中斷處理技術(shù)中斷處理技術(shù) 4中斷處理過(guò)程中斷處理過(guò)程 由于各中斷服務(wù)處理程序的段地址和偏移地址在中斷向量表中按中斷類型好依次存放,其入口地址由中斷類型號(hào)乘以4得到。 當(dāng)中斷發(fā)生時(shí),系統(tǒng)自
14、動(dòng)完成下列動(dòng)作: 取中斷類型號(hào)n 圖9-4 標(biāo)志寄存器(PSW)內(nèi)容壓入堆棧 當(dāng)前CS內(nèi)容入棧,IP內(nèi)容入棧 禁止硬件中斷和單步中斷(IF=0,TF=0) 從中斷向量表中取4n的字內(nèi)容送IP,取4n+2的字內(nèi)容送CS 轉(zhuǎn)入中斷服務(wù)子程序去執(zhí)行 中斷服務(wù)程序中通常有IRET指令,當(dāng)執(zhí)行該指令時(shí),它的功能是從堆棧中彈出中斷斷點(diǎn)地址,分別送入IP和CS,然后恢復(fù)標(biāo)志寄存器的內(nèi)容。所以,在執(zhí)行了IRET指令以后,便返回到被中斷的主程序,繼續(xù)原有程序的執(zhí)行。中斷傳送方式應(yīng)用程序舉例中斷傳送方式應(yīng)用程序舉例例例9.2.2:設(shè)計(jì)一個(gè)中斷服務(wù)程序。在60H67H號(hào)中斷是保留給用戶使用的,現(xiàn)要求編程設(shè)置其功能指
15、令“INT 60H”的功能是輸出字符“K”。分析:駐留程序通常使用TINY內(nèi)存模式,程序應(yīng)該盡量短。代碼如下。MODEL TINYCODESTARTUPNEWINT60 PROC NEAR ;自定義新的中斷60H服務(wù)程序STI ;開(kāi)中斷MOV AH,2MOV DL,KINT 2lHIRETNEWINT60 ENDPSTART PROC FAR;為60H號(hào)中斷設(shè)置新中斷向量LEA DX,MYINTMOV AX,SEGMYINTMOV DS,AXMOV AL,60HMOV AH,25HINT 21HMOV AH,31HMOV DX,15H ;其中10H節(jié)屬于PSPINT 2lHSTART ENDPCODE ENDSEND START習(xí)題簡(jiǎn)答題 1CPU和外設(shè)的數(shù)據(jù)傳輸方式有哪幾種?在一個(gè)系統(tǒng)中,確定采用數(shù)據(jù)傳輸?shù)姆绞降囊罁?jù)是什么? 2在一個(gè)系統(tǒng)中,有一I/O數(shù)據(jù)輸入端口,如CPU采用MOV指令從該端口讀入數(shù)據(jù),說(shuō)明該系統(tǒng)采用的是哪種I/O接口編址方式。 3簡(jiǎn)述中斷優(yōu)先級(jí)? 4中斷向量表的功能是什么?已知中斷類型碼分別是84H和FAH,它們的中斷向量應(yīng)放在中斷向量表的什么位置? 5什么叫DMA傳送方式?DMAC控制器的主要功能是什么?習(xí)題簡(jiǎn)答題
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)加盟代理合同范本
- 醫(yī)院護(hù)理合同范本
- 合同范本響應(yīng)說(shuō)明
- 合同范本排行
- 廠房與商鋪買賣合同范本
- 合伙買門市合同范例
- 協(xié)議合同與聯(lián)營(yíng)合同范例
- 合伙股權(quán)合同范例
- ab股股權(quán)合同范本
- 合租經(jīng)營(yíng)餐廳合同范本
- 24年追覓在線測(cè)評(píng)28題及答案
- 醫(yī)學(xué)教材 超聲引導(dǎo)下乳腺真空微創(chuàng)旋切(VABB)
- 2024年鐵路線路工(高級(jí)技師)技能鑒定理論考試題庫(kù)(含答案)
- 工程造價(jià)預(yù)算書
- 終止授權(quán)代理協(xié)議書模板
- 修建水壩施工合同模板
- 劍橋商務(wù)英語(yǔ)中級(jí)unit12
- 北師大版三年級(jí)下冊(cè)除法豎式計(jì)算題練習(xí)100道及答案
- 十堰2024年湖北十堰市茅箭區(qū)教育局所屬學(xué)校招聘教師134人筆試歷年典型考題及考點(diǎn)附答案解析
- 小白兔拔蘿卜(無(wú)背景音樂(lè))
- 人音版六年級(jí)下冊(cè)音樂(lè)教案及反思
評(píng)論
0/150
提交評(píng)論