第六章輸入輸出和中斷技術(shù)_第1頁
第六章輸入輸出和中斷技術(shù)_第2頁
第六章輸入輸出和中斷技術(shù)_第3頁
第六章輸入輸出和中斷技術(shù)_第4頁
第六章輸入輸出和中斷技術(shù)_第5頁
已閱讀5頁,還剩181頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 第六章 輸入輸出及中斷技術(shù)2主要內(nèi)容n基本概念基本概念n輸入輸出系統(tǒng)輸入輸出系統(tǒng)nI/O接口和端口接口和端口n端口的編址方式端口的編址方式n簡單接口芯片及其應(yīng)用簡單接口芯片及其應(yīng)用n基本輸入輸出方法基本輸入輸出方法n中斷的基本概念及工作過程中斷的基本概念及工作過程36.1 輸入輸出系統(tǒng)4了解和掌握:n接口的基本功能接口的基本功能n端口的概念端口的概念n端口的編址方式端口的編址方式nI/O地址譯碼地址譯碼5一、為什么要引入一、為什么要引入I/O接口微機(jī)和微機(jī)和I/OI/O設(shè)備的信息類型和格式可能不一樣。設(shè)備的信息類型和格式可能不一樣。微機(jī)和微機(jī)和I/OI/O設(shè)備信號(hào)傳輸處理的速度可能不匹配。

2、設(shè)備信號(hào)傳輸處理的速度可能不匹配。不用接口,不用接口, I/OI/O直接接直接接CPUCPU,隨著外設(shè)增加,會(huì)大大,隨著外設(shè)增加,會(huì)大大降低降低CPUCPU的效率。的效率。I/OI/O直接接直接接CPUCPU,會(huì)使外設(shè)硬件結(jié)構(gòu)過于依賴,會(huì)使外設(shè)硬件結(jié)構(gòu)過于依賴CPUCPU,對(duì),對(duì)外設(shè)本身發(fā)展不利。外設(shè)本身發(fā)展不利。6接口的功能n數(shù)據(jù)的緩沖與暫存數(shù)據(jù)的緩沖與暫存n信號(hào)電平與類型的轉(zhuǎn)換信號(hào)電平與類型的轉(zhuǎn)換n增加信號(hào)的驅(qū)動(dòng)能力增加信號(hào)的驅(qū)動(dòng)能力n對(duì)外設(shè)進(jìn)行監(jiān)測(cè)、控制與管理,中斷處理對(duì)外設(shè)進(jìn)行監(jiān)測(cè)、控制與管理,中斷處理接口的功能7通過寄存器或鎖存器實(shí)現(xiàn)。存放數(shù)據(jù)的寄存器或鎖存器稱之為存放CPU命令代碼

3、的寄存器稱之為存放執(zhí)行狀態(tài)信息的寄存器稱之為CPU通過地址譯碼選擇不同外設(shè)。即CPU通過地址譯碼選擇不同I/O接口和I/O接口中連接的不同的設(shè)備。協(xié)調(diào)總線信號(hào)與I/O設(shè)備信號(hào)。轉(zhuǎn)換包括信號(hào)的邏輯關(guān)系、時(shí)序配合和電平轉(zhuǎn)換。增加接口的靈活性和智能性。接口的概念8定義:接口是CPU與“外部世界”的連接電路,負(fù)責(zé)“中 轉(zhuǎn)”各種信息。分類:存儲(chǔ)器接口和I/O接口。位置:介于系統(tǒng)總線與外部設(shè)備之間。9PS2鼠標(biāo)PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口顯示器接口13941394a音箱/線入接口/麥克風(fēng)串行口10二、二、I/O端口數(shù)據(jù)端口數(shù)據(jù)端口狀態(tài)端口狀態(tài)端口控制端口控制端口端口端口

4、n電腦“端口”是英文port的義譯,可以認(rèn)為是計(jì)算機(jī)與外界通訊交流的出口。其中硬件領(lǐng)域的端口又稱接口,如:USB端口、串行端口等。軟件領(lǐng)域的端口一般指網(wǎng)絡(luò)中面向連接服務(wù)和無連接服務(wù)的通信協(xié)議端口,是一種抽象的軟件結(jié)構(gòu),包括一些數(shù)據(jù)結(jié)構(gòu)和I/O(基本輸入輸出)緩沖區(qū)。11數(shù)據(jù)信息數(shù)據(jù)信息是最基本的一種信息。它又包括數(shù)據(jù)信息是最基本的一種信息。它又包括3 3種:種:p數(shù)字量:通常為數(shù)字量:通常為8 8位二進(jìn)制數(shù)或位二進(jìn)制數(shù)或ASCIIASCII代碼。代碼。p模擬量:連續(xù)變化的物理量(如溫度、壓力、流模擬量:連續(xù)變化的物理量(如溫度、壓力、流量、位移、速度等量、位移、速度等p開關(guān)量:是一些開關(guān)量:是

5、一些“0”0”或或“1”1”兩個(gè)狀態(tài)的量,用兩個(gè)狀態(tài)的量,用一位一位“0”0”或或“1”1”二進(jìn)制數(shù)表示。一臺(tái)字長為二進(jìn)制數(shù)表示。一臺(tái)字長為8 8位位的微機(jī)一次輸入或輸出可控制的微機(jī)一次輸入或輸出可控制8 8個(gè)這類物理量。個(gè)這類物理量。 12狀態(tài)信息狀態(tài)信息是反映外設(shè)當(dāng)前所處工作狀態(tài)的信息,以作狀態(tài)信息是反映外設(shè)當(dāng)前所處工作狀態(tài)的信息,以作為為CPUCPU與外設(shè)間可靠交換數(shù)據(jù)的條件。與外設(shè)間可靠交換數(shù)據(jù)的條件。狀態(tài)信息在輸入與輸出時(shí)的作用:狀態(tài)信息在輸入與輸出時(shí)的作用:p當(dāng)輸入時(shí),它告知當(dāng)輸入時(shí),它告知CPUCPU:有關(guān)輸入設(shè)備的數(shù)據(jù)是否準(zhǔn):有關(guān)輸入設(shè)備的數(shù)據(jù)是否準(zhǔn)備好(備好(Ready=1?

6、Ready=1?););p輸出時(shí),它告知輸出時(shí),它告知CPUCPU:輸出設(shè)備是否空閑(:輸出設(shè)備是否空閑(Busy=0?Busy=0?)。CPUCPU是通過接口電路來掌握輸入輸出設(shè)備的狀態(tài),是通過接口電路來掌握輸入輸出設(shè)備的狀態(tài),以決定可否輸入或輸出數(shù)據(jù)。以決定可否輸入或輸出數(shù)據(jù)。 13控制信息控制信息用于控制外設(shè)的啟動(dòng)或停止??刂菩畔⒂糜诳刂仆庠O(shè)的啟動(dòng)或停止。pCPUCPU與外設(shè)傳送的信息存放在哪里?與外設(shè)傳送的信息存放在哪里? 存儲(chǔ)器或寄存器中,引入端口的概念存儲(chǔ)器或寄存器中,引入端口的概念pCPUCPU與外設(shè)傳送的控制信息與狀態(tài)信息是不同的與外設(shè)傳送的控制信息與狀態(tài)信息是不同的性質(zhì)的信息

7、,如何將它們區(qū)分開?性質(zhì)的信息,如何將它們區(qū)分開? 使用不同的端口,所以接口中有若干的端口,每使用不同的端口,所以接口中有若干的端口,每個(gè)端口給予不同的地址個(gè)端口給予不同的地址1415I/O端口CPU數(shù)據(jù)數(shù)據(jù)狀態(tài)狀態(tài)控制控制外設(shè)外設(shè)I/O接口接口DB16接口和端口接口接口1接口接口2接口接口N端口端口1端口端口2端口端口m端口端口1端口端口1端口端口2端口端口2端口端口m端口端口m端口端口編址編址端口地址端口地址=芯片地址(高位地址)芯片地址(高位地址)+片內(nèi)地址片內(nèi)地址17三、I/O端口的編址方式n8086/8088的尋址能力:的尋址能力:n內(nèi)存:內(nèi)存:n1MBn端口:端口:n64K個(gè)個(gè)n編

8、址方式:編址方式:n與內(nèi)存統(tǒng)一編址與內(nèi)存統(tǒng)一編址n獨(dú)立編址獨(dú)立編址18端口與內(nèi)存的統(tǒng)一編址特點(diǎn):特點(diǎn):n指令及控制信號(hào)統(tǒng)一;指令及控制信號(hào)統(tǒng)一;n內(nèi)存地址資源減少內(nèi)存地址資源減少內(nèi)存內(nèi)存地址地址960KBI/O地址地址64KB00000HF0000HFFFFFH19端口的獨(dú)立編址特點(diǎn):特點(diǎn):n內(nèi)存地址資源充分利用內(nèi)存地址資源充分利用n能夠應(yīng)用于端口的指令能夠應(yīng)用于端口的指令 較少較少內(nèi)存內(nèi)存地址地址I/O地址地址00000HFFFFFHFFFFH0000H20端口的尋址n8088/8086尋址端口數(shù):尋址端口數(shù):n64K個(gè)個(gè)n尋址端口的信號(hào):尋址端口的信號(hào):nIOR、IOWnA15 A0在輸入

9、輸出指令中直接寫上在輸入輸出指令中直接寫上8位位I/O端口地址號(hào)。端口地址號(hào)。例:IN AL, 50H ;50H端口的字節(jié)讀入AL例:OUT 80H, AX ;AX中的內(nèi)容輸出到80H、81H兩個(gè)端口直接尋址 16/8位I/O端口地址號(hào)存入DX,在輸入輸出指令中寫DX,表示從其指示的I/O端口中輸入輸出數(shù)據(jù)。例:MOV DX,0050H IN AX, DX ;從DX和DX+1所指的2個(gè)端口輸入1個(gè)字例:例:MOV DX,FF02H MOV DX,FF02H OUT DX, AL OUT DX, AL ;ALAL中的字節(jié)輸出到中的字節(jié)輸出到DXDX所指端口中所指端口中注意:16位I/O端口地址必

10、須使用DX寄存器間接尋址間接尋址指令格式:指令格式:IN AL/AX/EAXIN AL/AX/EAX,imm8/DXimm8/DX OUT imm8/DX OUT imm8/DX,AL/AX/EAXAL/AX/EAX例:例:輸入字?jǐn)?shù)據(jù)輸入字?jǐn)?shù)據(jù)mov dx,20hmov dx,20h ;間接尋址,字?jǐn)?shù)據(jù)輸入間接尋址,字?jǐn)?shù)據(jù)輸入in ax,dxin ax,dxin ax,20h in ax,20h ;直接尋址,字?jǐn)?shù)據(jù)輸入直接尋址,字?jǐn)?shù)據(jù)輸入in al,21hin al,21h ;直接尋址,字節(jié)數(shù)據(jù)輸入直接尋址,字節(jié)數(shù)據(jù)輸入mov ah,almov ah,alin al,20hin al,20h

11、三段功能相同;三段功能相同; 字?jǐn)?shù)據(jù)傳送實(shí)際字?jǐn)?shù)據(jù)傳送實(shí)際上實(shí)現(xiàn)了連續(xù)的兩上實(shí)現(xiàn)了連續(xù)的兩個(gè)端口地址的字節(jié)個(gè)端口地址的字節(jié)數(shù)據(jù)傳送。數(shù)據(jù)傳送。輸入指令執(zhí)行過程輸入指令執(zhí)行過程輸入輸出指令248088/8086的I/O端口編址n采用采用I/O獨(dú)立編址方式獨(dú)立編址方式(但地址線與存儲(chǔ)器共用但地址線與存儲(chǔ)器共用)n地址線上的地址信號(hào)用地址線上的地址信號(hào)用IO/M來區(qū)分來區(qū)分nI/O操作只使用操作只使用20根地址線中的根地址線中的16根:根:A15A0n可尋址的可尋址的I/O端口數(shù)為端口數(shù)為64K(65536)個(gè)個(gè)nI/O地址范圍為地址范圍為0FFFFHnIBM PC只使用了只使用了1024個(gè)個(gè)I/O

12、地址地址(03FFH)25四、I/O地址的譯碼目的:目的:n確定端口的地址確定端口的地址參加譯碼的信號(hào):參加譯碼的信號(hào):nIOR,IOW,高位地址信號(hào)高位地址信號(hào)nOUT指令將使總線的指令將使總線的IOW信號(hào)有效信號(hào)有效nIN指令將使總線的指令將使總線的IOR信號(hào)有效信號(hào)有效26I/O譯碼的地址信號(hào)n當(dāng)接口只有一個(gè)端口時(shí),當(dāng)接口只有一個(gè)端口時(shí),16位地址線一般應(yīng)位地址線一般應(yīng) 全部參與譯碼,譯碼輸出直接選擇該端口;全部參與譯碼,譯碼輸出直接選擇該端口;n當(dāng)接口具有多個(gè)端口時(shí),則當(dāng)接口具有多個(gè)端口時(shí),則16位地址線的高位地址線的高 位參與譯碼(決定接口的基地址),而低位位參與譯碼(決定接口的基地

13、址),而低位 則用于確定要訪問哪一個(gè)端口。則用于確定要訪問哪一個(gè)端口。27I/O地址譯碼例n某外設(shè)接口有某外設(shè)接口有4個(gè)端口,地址為個(gè)端口,地址為2F0H2F3H,由,由A15A2譯碼得到,而譯碼得到,而A1、A0用用來區(qū)分接口中的來區(qū)分接口中的4個(gè)端口。試畫該接口與系個(gè)端口。試畫該接口與系統(tǒng)的連接圖。統(tǒng)的連接圖。28I/O地址譯碼例n地址范圍:地址范圍:n 0 0 1 0 1 1 1 1 0 0 0 0n 0 0 1 0 1 1 1 1 0 0 1 1任意狀態(tài)任意狀態(tài)A11片內(nèi)地址片內(nèi)地址圖中不接入圖中不接入29I/O地址譯碼例n譯碼電路圖:譯碼電路圖: 1A1111A1010A1818A3

14、 3A2 2A9 9A7 7A4 4&CEA1 1A0 0接口芯片接口芯片IORIOW&306.2 簡單接口電路31掌握:n接口電路的分類及特點(diǎn);接口電路的分類及特點(diǎn);n兩類簡單接口芯片的應(yīng)用兩類簡單接口芯片的應(yīng)用32一、接口的基本構(gòu)成數(shù)據(jù)線數(shù)據(jù)線控制線控制線狀態(tài)線狀態(tài)線DBCBAB數(shù)據(jù)輸入寄存器數(shù)據(jù)輸入寄存器(or 三態(tài)門三態(tài)門)數(shù)據(jù)輸出寄存器數(shù)據(jù)輸出寄存器(鎖存器鎖存器)狀態(tài)寄存器狀態(tài)寄存器(or 三態(tài)門三態(tài)門)命令寄存器命令寄存器譯碼譯碼電路電路控制控制邏輯邏輯33接口的基本構(gòu)成n數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出寄存器輸出寄存器 暫存輸入暫存輸入/ /輸出的數(shù)據(jù),又稱數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口,合

15、成數(shù)據(jù)端口。輸出的數(shù)據(jù),又稱數(shù)據(jù)輸入端口、數(shù)據(jù)輸出端口,合成數(shù)據(jù)端口。暫存輸入暫存輸入/ /輸出的數(shù)據(jù)。輸入端口具有三態(tài)輸出能力;輸出常用鎖存器實(shí)現(xiàn);輸出的數(shù)據(jù)。輸入端口具有三態(tài)輸出能力;輸出常用鎖存器實(shí)現(xiàn);n命令寄存器命令寄存器 又稱命令端口或控制端口。存放又稱命令端口或控制端口。存放CPU發(fā)出的控制命令發(fā)出的控制命令(信息信息),控制接口的,控制接口的工作方式及功能和控制外設(shè)按命令要求動(dòng)作;工作方式及功能和控制外設(shè)按命令要求動(dòng)作;n狀態(tài)寄存器狀態(tài)寄存器 又稱狀態(tài)端口,存放外設(shè)或接口的狀態(tài)信息,供又稱狀態(tài)端口,存放外設(shè)或接口的狀態(tài)信息,供CPU讀;讀;n譯碼電路譯碼電路 CPU執(zhí)行執(zhí)行I/O

16、指令時(shí),從地址總線發(fā)送指令時(shí),從地址總線發(fā)送16位外部設(shè)備端口地址,其中高位位外部設(shè)備端口地址,其中高位地址線通過譯碼選中某接口芯片,低位地址線用來選擇該接口芯片內(nèi)不同地址線通過譯碼選中某接口芯片,低位地址線用來選擇該接口芯片內(nèi)不同端口;端口;n控制邏輯控制邏輯 產(chǎn)生接口內(nèi)部控制信號(hào)和對(duì)外控制信號(hào),以協(xié)調(diào)處理器和外設(shè)間的輸入產(chǎn)生接口內(nèi)部控制信號(hào)和對(duì)外控制信號(hào),以協(xié)調(diào)處理器和外設(shè)間的輸入/輸輸出操作出操作 。 34二、接口的類型及特點(diǎn)n按傳輸信息的方向分類:按傳輸信息的方向分類:n輸入接口輸入接口n輸出接口輸出接口n按傳輸信息的類型分類:按傳輸信息的類型分類:n數(shù)字接口數(shù)字接口n模擬接口模擬接口

17、n按傳輸信息的方式分類:按傳輸信息的方式分類:n并行接口并行接口n串行接口串行接口35接口特點(diǎn)n輸入接口:輸入接口:n要求對(duì)數(shù)據(jù)具有控制能力要求對(duì)數(shù)據(jù)具有控制能力n常用三態(tài)門實(shí)現(xiàn)常用三態(tài)門實(shí)現(xiàn)n輸出接口:輸出接口:n要求對(duì)數(shù)據(jù)具有鎖存能力要求對(duì)數(shù)據(jù)具有鎖存能力n常用鎖存器實(shí)現(xiàn)常用鎖存器實(shí)現(xiàn)36三、三態(tài)門接口n高電平、低電平、高電平、低電平、高阻態(tài)高阻態(tài)3774LS244 典型芯片74LS244,沒有鎖存功能的3態(tài)8位緩沖器(含含8個(gè)三態(tài)門)個(gè)三態(tài)門),3態(tài)是:高電平、高電平、低電平、高阻態(tài)。當(dāng)控制端有效時(shí),低電平、高阻態(tài)。當(dāng)控制端有效時(shí),三態(tài)門導(dǎo)通,輸出等于輸入;三態(tài)門導(dǎo)通,輸出等于輸入;否則

18、輸出高阻態(tài)。否則輸出高阻態(tài)。例例:編寫程序判斷下圖中的開關(guān)編寫程序判斷下圖中的開關(guān)狀態(tài)。如果所有開關(guān)都閉合,狀態(tài)。如果所有開關(guān)都閉合,則程序轉(zhuǎn)向標(biāo)號(hào)則程序轉(zhuǎn)向標(biāo)號(hào)NEXT1執(zhí)行,執(zhí)行,否則轉(zhuǎn)向標(biāo)號(hào)為否則轉(zhuǎn)向標(biāo)號(hào)為NEXT2執(zhí)行。執(zhí)行。 典型應(yīng)用:開關(guān)接口n 接口電路圖如下:接口電路圖如下:83FCH83FFH譯碼器MOV DX,83FCHIN AL,DXAND AL,0FFHJZ NEXT1JMP NEXT2所有開關(guān)全閉所有開關(guān)全閉合轉(zhuǎn)合轉(zhuǎn)NEXT1,否則轉(zhuǎn)否則轉(zhuǎn)NEXT2。39四、鎖存器接口n通常由通常由D觸發(fā)器構(gòu)成;觸發(fā)器構(gòu)成;n特點(diǎn):特點(diǎn):n具有對(duì)數(shù)據(jù)的鎖存能力;具有對(duì)數(shù)據(jù)的鎖存能力;n

19、不具備對(duì)數(shù)據(jù)的控制能力不具備對(duì)數(shù)據(jù)的控制能力74LS273(二態(tài)鎖存):是一種帶清除功能的8D觸發(fā)器, D0D7為數(shù)據(jù)輸入端,Q0Q7為數(shù)據(jù)輸出端,CP正脈沖(上升沿)觸發(fā)將Di端數(shù)據(jù)鎖存到Qi端,S低電平清除Qi端。常用作8位地址鎖存器或輸出接口。 74LS374(三態(tài)鎖存器):可作輸入/輸出緩沖器接口。74LS374帶了三態(tài)門,它比74LS273多了一個(gè)輸出允許端OE。只有當(dāng) OE=0時(shí),74LS374的輸出三態(tài)門才導(dǎo)通, OE=1時(shí)呈高阻態(tài)。譯譯碼碼器器11.+5VRD0D7CPQ0Q7.D0D7A0A15IOW#74LS273R設(shè)該輸出接口地址是設(shè)該輸出接口地址是0FFFFH,則下列程

20、序段的功能?,則下列程序段的功能?NOV DX, 0FFFFHMOV AL, 01000001BOUT DX, AL鎖存器芯片74LS273 鎖存器芯片74LS374做輸出端口做輸出端口:三態(tài)門三態(tài)門一直處于導(dǎo)通狀態(tài)。一直處于導(dǎo)通狀態(tài)。做輸入端口做輸入端口:CP正脈沖鎖正脈沖鎖存輸入數(shù)據(jù),譯碼選中時(shí)存輸入數(shù)據(jù),譯碼選中時(shí)OE=0,CPU讀取數(shù)據(jù)。讀取數(shù)據(jù)。43I/O接口綜合應(yīng)用例n根據(jù)開關(guān)狀態(tài)在根據(jù)開關(guān)狀態(tài)在7段數(shù)碼管上顯示數(shù)字或符號(hào)段數(shù)碼管上顯示數(shù)字或符號(hào)n設(shè)輸出接口的地址為設(shè)輸出接口的地址為F0Hn設(shè)輸入接口地址為設(shè)輸入接口地址為F1Hn當(dāng)開關(guān)的狀態(tài)分別為當(dāng)開關(guān)的狀態(tài)分別為00001111

21、時(shí),在時(shí),在7段數(shù)碼管段數(shù)碼管上對(duì)應(yīng)顯示上對(duì)應(yīng)顯示0F利用74LS244和74LS273作為輸入和輸出接口,編寫程序,根據(jù)開關(guān)狀態(tài)根據(jù)開關(guān)狀態(tài)在LED數(shù)碼管顯示十六進(jìn)制數(shù)碼。 共陽極共陽極7段段LED數(shù)碼管結(jié)構(gòu)數(shù)碼管結(jié)構(gòu)(7段碼表見下頁段碼表見下頁)符號(hào)形狀7段碼.gfedcba符號(hào)形狀7段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F01110001O

22、1I1O2I2O3I3O4I4#E1K0K3+5VGG2AG2BCBA1 174LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP74068個(gè)個(gè)反相器反相器74LS273Rx81 174LS138D0D7IOW#IOR#Y0Y1F0H=0000000011110000BF1H=0000000011110001B&1A7A4A15A8A3A2A1A0D0D1D2D3譯碼電路譯碼電路Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7 ;?。蝗?段碼表基地址段碼表基

23、地址MOVAH, 0GO:MOVDX, 0F1H ;開關(guān)接口的地址為;開關(guān)接口的地址為F1HINAL, DX ;讀入開關(guān)狀態(tài);讀入開關(guān)狀態(tài)ANDAL, 0FH ;保留低;保留低4位位MOVSI, AX ;作為;作為7段碼表的表內(nèi)位移量段碼表的表內(nèi)位移量MOVAL, BX+SI;?。蝗?段碼段碼MOVDX, 0F0H ;7段數(shù)碼管接口的地址為段數(shù)碼管接口的地址為F0HOUTDX, ALJMPGO486.3 基本輸入/輸出方法49基本輸入/輸出方法無條件傳送無條件傳送查詢式傳送查詢式傳送中斷方式傳送中斷方式傳送直接存儲(chǔ)器存取直接存儲(chǔ)器存取(DMA)程序控制方式程序控制方式50一、無條件傳送 適用于

24、總是適用于總是處于準(zhǔn)備好狀態(tài)處于準(zhǔn)備好狀態(tài)的外設(shè),輸入輸出指令的的外設(shè),輸入輸出指令的執(zhí)行就是數(shù)據(jù)傳送過程;執(zhí)行就是數(shù)據(jù)傳送過程; 以下外設(shè)可采用無條件傳送方式:以下外設(shè)可采用無條件傳送方式:開關(guān);開關(guān);發(fā)光器件發(fā)光器件(發(fā)光二極管、發(fā)光二極管、7段數(shù)碼管、燈泡等段數(shù)碼管、燈泡等);繼電器;繼電器;步進(jìn)電機(jī)。步進(jìn)電機(jī)。 優(yōu)點(diǎn):軟件及接口硬件簡單;優(yōu)點(diǎn):軟件及接口硬件簡單; 缺點(diǎn):只適用于簡單外設(shè),適應(yīng)范圍較窄。缺點(diǎn):只適用于簡單外設(shè),適應(yīng)范圍較窄。51無條件傳送例n讀取開關(guān)的狀態(tài);讀取開關(guān)的狀態(tài);n當(dāng)開關(guān)閉合時(shí),輸出編碼使發(fā)光二極管亮。當(dāng)開關(guān)閉合時(shí),輸出編碼使發(fā)光二極管亮。DCPQD0D1輸出

25、口地輸出口地址址38F3H輸入口地輸入口地址址38F0H+5V153二、查詢工作方式n僅當(dāng)條件滿足時(shí)才能進(jìn)行數(shù)據(jù)傳送;僅當(dāng)條件滿足時(shí)才能進(jìn)行數(shù)據(jù)傳送;n每滿足一次條件只能進(jìn)行一次數(shù)據(jù)傳送。每滿足一次條件只能進(jìn)行一次數(shù)據(jù)傳送。n適用場(chǎng)合:適用場(chǎng)合:n外設(shè)并不總是準(zhǔn)備好外設(shè)并不總是準(zhǔn)備好n對(duì)傳送速率和效率要求不高對(duì)傳送速率和效率要求不高n工作條件:工作條件:n外設(shè)應(yīng)提供設(shè)備狀態(tài)信息外設(shè)應(yīng)提供設(shè)備狀態(tài)信息n接口應(yīng)具備狀態(tài)端口接口應(yīng)具備狀態(tài)端口READY?READY?進(jìn)行一次進(jìn)行一次數(shù)據(jù)交換數(shù)據(jù)交換讀入并測(cè)試外設(shè)狀態(tài)讀入并測(cè)試外設(shè)狀態(tài)YN傳送完傳送完?Y結(jié)結(jié) 束束N每滿足一每滿足一次條件只次條件只能進(jìn)

26、行一能進(jìn)行一次數(shù)據(jù)傳次數(shù)據(jù)傳送送開開 始始查詢工作方式流程圖查詢工作方式流程圖超時(shí)超時(shí)?READY?READY?與外設(shè)進(jìn)與外設(shè)進(jìn)行數(shù)據(jù)交換行數(shù)據(jù)交換超時(shí)錯(cuò)超時(shí)錯(cuò)讀入并測(cè)試外設(shè)狀態(tài)讀入并測(cè)試外設(shè)狀態(tài)YNYN傳送完傳送完?防止死循環(huán)防止死循環(huán)復(fù)位計(jì)時(shí)器復(fù)位計(jì)時(shí)器NY結(jié)結(jié) 束束N56查詢工作方式例外設(shè)狀態(tài)端口地址為外設(shè)狀態(tài)端口地址為03FBH,第,第5位位(bit5)為狀態(tài)為狀態(tài)標(biāo)志(標(biāo)志(=1忙,忙,=0準(zhǔn)備好)準(zhǔn)備好)外設(shè)數(shù)據(jù)端口地址為外設(shè)數(shù)據(jù)端口地址為03F8H,寫入數(shù)據(jù)會(huì)使?fàn)顟B(tài),寫入數(shù)據(jù)會(huì)使?fàn)顟B(tài)標(biāo)志置標(biāo)志置1 ;外設(shè)把數(shù)據(jù)讀走后又把它置;外設(shè)把數(shù)據(jù)讀走后又把它置0。試畫出其電路圖,并將試畫出

27、其電路圖,并將DATA下下100B數(shù)據(jù)輸出。數(shù)據(jù)輸出。狀態(tài)端口狀態(tài)端口D5D7-D0A9|A31&A15|A1013F8HA2A1A0GG2AG2BCBA74LS138Y01D7-D0CPQ7Q6Q5Q4Q3Q2Q1Q074LS273外外設(shè)設(shè)D7D6D5D4D3D2D1D0BUSYY33FBHIOWIOR狀態(tài)端口地址:狀態(tài)端口地址:0000 0011 1111 1011數(shù)據(jù)端口地址:數(shù)據(jù)端口地址:0000 0011 1111 1000 LEA SI,DATA MOV CX,100AGAIN : MOV DX,03FBHWAITT:IN AL,DX TEST AL,20H JNZ WAITT M

28、OV DX,03F8H MOV AL,SI OUT DX,AL INC SI LOOP AGAIN HLT 讀狀態(tài)讀狀態(tài) 進(jìn)行一次傳送進(jìn)行一次傳送Bit5=1?傳送完否傳送完否? ? 修改地址指針修改地址指針 初始化初始化YNNY 結(jié)結(jié) 束束控制程序控制程序查詢工作方式n優(yōu)點(diǎn):優(yōu)點(diǎn):n軟硬件比較簡單軟硬件比較簡單n缺點(diǎn):缺點(diǎn):nCPU效率低,數(shù)據(jù)效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,傳送的實(shí)時(shí)性差,速度較慢速度較慢59YN 1號(hào)外設(shè)YYYNNN對(duì)1號(hào)外設(shè)服務(wù)對(duì)2號(hào)外設(shè)服務(wù)對(duì)3號(hào)外設(shè)服務(wù)對(duì)n號(hào)外設(shè)服務(wù)準(zhǔn)備就緒? 2號(hào)外設(shè) 3號(hào)外設(shè) n號(hào)外設(shè)準(zhǔn)備就緒?準(zhǔn)備就緒?準(zhǔn)備就緒?60三、中斷控制方式n特點(diǎn):特點(diǎn):n

29、外設(shè)在需要時(shí)向外設(shè)在需要時(shí)向CPU提出請(qǐng)求,提出請(qǐng)求,CPU再去為它再去為它 服務(wù)。服務(wù)結(jié)束后或在外設(shè)不需要時(shí),服務(wù)。服務(wù)結(jié)束后或在外設(shè)不需要時(shí),CPU可可 執(zhí)行自己的程序。執(zhí)行自己的程序。n優(yōu)點(diǎn):優(yōu)點(diǎn):nCPU效率高,實(shí)時(shí)性好,速度快。效率高,實(shí)時(shí)性好,速度快。n缺點(diǎn):缺點(diǎn):n程序編制相對(duì)較為復(fù)雜。程序編制相對(duì)較為復(fù)雜。61以上三種I/O方式的共性n信息的傳送均需通過信息的傳送均需通過CPUn軟件:軟件: n外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來完執(zhí)行程序來完成的(成的(PIO方式);方式);n硬件:硬件:nI/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào)都是

30、由接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào)都是由CPU發(fā)出的。發(fā)出的。n 缺點(diǎn):缺點(diǎn):n程序的執(zhí)行速度限定了傳送的最大速度程序的執(zhí)行速度限定了傳送的最大速度62四、DMA控制方式n特點(diǎn):特點(diǎn):n外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換外設(shè)直接與存儲(chǔ)器進(jìn)行數(shù)據(jù)交換 ,CPU不再擔(dān)當(dāng)數(shù)不再擔(dān)當(dāng)數(shù)據(jù)傳輸?shù)闹薪檎?;?jù)傳輸?shù)闹薪檎?;n總線由總線由DMA控制器(控制器(DMAC)進(jìn)行控制()進(jìn)行控制(CPU要放要放棄總線控制權(quán)),內(nèi)存棄總線控制權(quán)),內(nèi)存/外設(shè)的地址和讀寫控制信號(hào)外設(shè)的地址和讀寫控制信號(hào)均由均由DMAC提供。提供。這種專門的硬件電路就是這種專門的硬件電路就是DMADMA控制器控制器,簡稱為,簡稱為DMAC

31、DMAC。該集。該集成電路產(chǎn)品有成電路產(chǎn)品有Zilog Zilog 公司的公司的Z80-DMAZ80-DMA,IntelIntel公司的公司的82578257,8237A8237A和和MotorolaMotorola的的MC6844MC6844等。等。 63DMA控制方式DMAC外設(shè)外設(shè)接口接口CPUDRQMEMDACKHOLDHLDABUS控制信號(hào)控制信號(hào)地址信號(hào)地址信號(hào)64DMA控制方式的工作過程n外設(shè)向外設(shè)向DMA控制器發(fā)出控制器發(fā)出“DMA傳送請(qǐng)求傳送請(qǐng)求”信號(hào)信號(hào) DRQ;nDMA控制器收到請(qǐng)求后,向控制器收到請(qǐng)求后,向CPU發(fā)出發(fā)出“總線請(qǐng)總線請(qǐng) 求求”信號(hào)信號(hào)HOLD;nCPU在

32、完成當(dāng)前總線周期后會(huì)立即發(fā)出在完成當(dāng)前總線周期后會(huì)立即發(fā)出HLDA 信號(hào),對(duì)信號(hào),對(duì)HOLD信號(hào)進(jìn)行響應(yīng);信號(hào)進(jìn)行響應(yīng);nDMA控制器收到控制器收到HLDA信號(hào)后,就開始控制總信號(hào)后,就開始控制總 線,并向外設(shè)發(fā)出線,并向外設(shè)發(fā)出DMA響應(yīng)信號(hào)響應(yīng)信號(hào)DACK。658086用用DMA方式傳送單個(gè)數(shù)據(jù)方式傳送單個(gè)數(shù)據(jù)66DMA控制方式工作過程例n例:從外設(shè)向內(nèi)存?zhèn)魉腿舾勺止?jié)數(shù)據(jù)例:從外設(shè)向內(nèi)存?zhèn)魉腿舾勺止?jié)數(shù)據(jù)nDMAC向向I/O接口發(fā)出讀信號(hào);接口發(fā)出讀信號(hào);n向地址總線上發(fā)出存儲(chǔ)器的地址;向地址總線上發(fā)出存儲(chǔ)器的地址;n發(fā)出存儲(chǔ)器寫信號(hào)和發(fā)出存儲(chǔ)器寫信號(hào)和AEN信號(hào);信號(hào);n傳送數(shù)據(jù)并自動(dòng)修改

33、地址和字節(jié)計(jì)數(shù)器傳送數(shù)據(jù)并自動(dòng)修改地址和字節(jié)計(jì)數(shù)器n判斷是否需要重復(fù)傳送操作判斷是否需要重復(fù)傳送操作;n若數(shù)據(jù)傳送完,若數(shù)據(jù)傳送完,DMA控制器撤銷發(fā)往控制器撤銷發(fā)往CPU的的HOLD信號(hào);信號(hào);nCPU檢測(cè)到檢測(cè)到HOLD失效后,則撤銷失效后,則撤銷HLDA信號(hào),并在下一時(shí)信號(hào),并在下一時(shí)鐘周期重新開始控制總線。鐘周期重新開始控制總線。67DMA工作方式n周期竊?。褐芷诟`?。簄每個(gè)每個(gè)DMA周期只傳送一個(gè)字節(jié)或一個(gè)字就立即釋放周期只傳送一個(gè)字節(jié)或一個(gè)字就立即釋放總線??偩€。n數(shù)據(jù)塊傳送:數(shù)據(jù)塊傳送:nDMAC在申請(qǐng)到總線后,將一塊數(shù)據(jù)傳送完后才釋在申請(qǐng)到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,

34、而不管中間放總線,而不管中間DREQ是否有效。是否有效。n直接存取方式:直接存取方式:nDMA的數(shù)據(jù)傳送請(qǐng)求直接發(fā)到主存儲(chǔ)器,在得到響的數(shù)據(jù)傳送請(qǐng)求直接發(fā)到主存儲(chǔ)器,在得到響應(yīng)后,整個(gè)工作過程在應(yīng)后,整個(gè)工作過程在DMA控制器中由硬件完成。控制器中由硬件完成。周期竊取的DMA方式:NYN允許允許DMADMAC請(qǐng)求總線請(qǐng)求總線CPU響應(yīng)響應(yīng), DMAC獲總線控制權(quán)獲總線控制權(quán)DMA傳送一個(gè)數(shù)據(jù)傳送一個(gè)數(shù)據(jù)塊結(jié)束?塊結(jié)束?釋放總線至少一個(gè)總線周期釋放總線至少一個(gè)總線周期地址增量,計(jì)數(shù)器減量地址增量,計(jì)數(shù)器減量DMAC釋放總線釋放總線Y測(cè)試測(cè)試I/O的的DREQ DMA請(qǐng)求?請(qǐng)求?69DMA控制方式

35、n數(shù)據(jù)傳輸由數(shù)據(jù)傳輸由DMA硬件來控制,數(shù)據(jù)直接在內(nèi)硬件來控制,數(shù)據(jù)直接在內(nèi)存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率。存和外設(shè)之間交換,可以達(dá)到很高的傳輸速率。n控制復(fù)雜,硬件成本相對(duì)較高??刂茝?fù)雜,硬件成本相對(duì)較高。706.4 中斷技術(shù)71掌握:n中斷的基本概念中斷的基本概念n中斷響應(yīng)的一般過程中斷響應(yīng)的一般過程n中斷向量表及其初始化中斷向量表及其初始化n8088/8086中斷系統(tǒng)中斷系統(tǒng)中斷申請(qǐng)主程序中斷服中斷服務(wù)程序務(wù)程序返回中斷示意圖所謂中斷,是指這樣一個(gè)過程:當(dāng)CPU正在執(zhí)行程序過程中,由于某一突然突然事件的發(fā)生,暫時(shí)中止暫時(shí)中止正在執(zhí)行的程序,轉(zhuǎn)去處理突然發(fā)生的事件(執(zhí)行中斷服務(wù)程

36、序),處理完畢,再返回再返回原來被中止的 程 序 繼 續(xù)運(yùn)行。一、中斷的基本概念例例1:門鈴響時(shí),放下手中正在做的事情,跑去開門,招待客人;客人走后,接著做原來的事情。例例2:教師講課過程中,同學(xué)遇有疑問,不同理解之處,隨時(shí)向老師提問。74在中斷的整個(gè)處理過程中,外部事件發(fā)出的中斷請(qǐng)求和CPU對(duì)中斷的響應(yīng)與當(dāng)前正在執(zhí)行的指令之間沒有任何關(guān)系。隨機(jī)性主程序調(diào)用子程序的過程則是程序員事先通過編程,利用CALL指令來實(shí)現(xiàn)的,當(dāng)CPU執(zhí)行到該指令時(shí),就會(huì)轉(zhuǎn)去執(zhí)行被調(diào)用的子程序。確定性 中斷與子程序的異同75引入中斷的原因n提高數(shù)據(jù)傳輸率;提高數(shù)據(jù)傳輸率;n避免了避免了CPU不斷檢測(cè)外設(shè)狀態(tài)的過程,提高

37、了不斷檢測(cè)外設(shè)狀態(tài)的過程,提高了CPU的利用率。的利用率。n實(shí)現(xiàn)對(duì)特殊事件的實(shí)時(shí)響應(yīng)。實(shí)現(xiàn)對(duì)特殊事件的實(shí)時(shí)響應(yīng)。76中斷源n引起引起CPU中斷的事件,發(fā)出中斷請(qǐng)求的來源。中斷的事件,發(fā)出中斷請(qǐng)求的來源。內(nèi)部中斷內(nèi)部中斷(軟中斷軟中斷)外部中斷外部中斷(硬中斷硬中斷)異常中斷異常中斷軟件中斷軟件中斷可屏蔽中斷可屏蔽中斷非屏蔽中斷非屏蔽中斷異常事件引起異常事件引起中斷指令引起中斷指令引起INTR中斷中斷NMI中斷中斷77軟件中斷軟件中斷硬件中斷硬件中斷n軟中斷通過軟中斷通過INT n來引發(fā),可屏蔽中斷通過來引發(fā),可屏蔽中斷通過INTR引腳輸入,不可屏蔽中斷通過引腳輸入,不可屏蔽中斷通過NMI引腳引

38、腳輸入輸入n可屏蔽中斷還需要借助專用中斷控制器可屏蔽中斷還需要借助專用中斷控制器Intel 8259A實(shí)現(xiàn)優(yōu)先權(quán)管理實(shí)現(xiàn)優(yōu)先權(quán)管理7879二、外部中斷響應(yīng)的一般過程n中斷請(qǐng)求中斷請(qǐng)求n中斷源識(shí)別及中斷判優(yōu)中斷源識(shí)別及中斷判優(yōu)n中斷響應(yīng)中斷響應(yīng)n中斷處理(服務(wù))中斷處理(服務(wù))n中斷返回中斷返回80中斷請(qǐng)求n中斷請(qǐng)求信號(hào)應(yīng)保持到中斷被處理為止;中斷請(qǐng)求信號(hào)應(yīng)保持到中斷被處理為止;nCPU響應(yīng)中斷后,中斷請(qǐng)求信號(hào)應(yīng)及時(shí)撤銷。響應(yīng)中斷后,中斷請(qǐng)求信號(hào)應(yīng)及時(shí)撤銷。NMIINTR81中斷源的識(shí)別n中斷源識(shí)別及判優(yōu)由硬件系統(tǒng)完成中斷源識(shí)別及判優(yōu)由硬件系統(tǒng)完成nCPU響應(yīng)響應(yīng)INTR中斷時(shí),會(huì)產(chǎn)生兩個(gè)中斷響

39、應(yīng)總線周期,要求中斷時(shí),會(huì)產(chǎn)生兩個(gè)中斷響應(yīng)總線周期,要求PIC在第在第2個(gè)中斷響應(yīng)總線周期把中斷類型碼放到數(shù)據(jù)總線上,個(gè)中斷響應(yīng)總線周期把中斷類型碼放到數(shù)據(jù)總線上,供供CPU讀入。讀入。82中斷判優(yōu)n當(dāng)有多個(gè)中斷源同時(shí)提出請(qǐng)求時(shí),需要確定當(dāng)有多個(gè)中斷源同時(shí)提出請(qǐng)求時(shí),需要確定首先響應(yīng)哪一個(gè)中斷源。首先響應(yīng)哪一個(gè)中斷源。n優(yōu)先級(jí)法則優(yōu)先級(jí)法則n低優(yōu)先級(jí)的中斷程序允許被高優(yōu)先級(jí)的中斷源低優(yōu)先級(jí)的中斷程序允許被高優(yōu)先級(jí)的中斷源所中斷所中斷n排隊(duì)法則排隊(duì)法則n先來先響應(yīng)先來先響應(yīng)中斷嵌套中斷嵌套83中斷判優(yōu)n軟件判優(yōu)軟件判優(yōu)n順序查詢中斷請(qǐng)求,先查詢的先服務(wù)順序查詢中斷請(qǐng)求,先查詢的先服務(wù)n即先查詢的

40、優(yōu)先級(jí)別高即先查詢的優(yōu)先級(jí)別高8485IN AL, PORT_R ; PORT_R是鎖存器地址是鎖存器地址CLCRCR AL, 1JC INTS01 ; 轉(zhuǎn)向故障處理轉(zhuǎn)向故障處理A1:RCRAL, 1JC INTS02 ; 轉(zhuǎn)向告警處理轉(zhuǎn)向告警處理A2:INTS01:JMPA1INTS02:JMPA286n硬件判優(yōu)硬件判優(yōu)n鏈?zhǔn)脚袃?yōu)、并行判優(yōu)(中斷向量法)鏈?zhǔn)脚袃?yōu)、并行判優(yōu)(中斷向量法)87INTAinCPUINTAINTR外設(shè)外設(shè)1 1外設(shè)外設(shè)2 2外設(shè)接口外設(shè)接口1 1菊花鏈菊花鏈邏輯電路邏輯電路外設(shè)接口外設(shè)接口2 2外設(shè)外設(shè)3 3外設(shè)接口外設(shè)接口3 311菊花鏈菊花鏈邏輯電路邏輯電路菊花

41、鏈菊花鏈邏輯電路邏輯電路IREQIREQIREQ中斷確認(rèn)中斷確認(rèn)硬件優(yōu)先權(quán)排隊(duì)硬件優(yōu)先權(quán)排隊(duì)-鏈?zhǔn)脚袃?yōu)電路原理圖鏈?zhǔn)脚袃?yōu)電路原理圖INTAinINTAin中斷確認(rèn)中斷確認(rèn)中斷確認(rèn)中斷確認(rèn)菊花鏈邏輯電路菊花鏈邏輯電路INTAinIREQINTR&=1 1INTAoutDB三態(tài)門三態(tài)門中中斷斷向向量量碼碼E外設(shè)接口外設(shè)接口中斷確認(rèn)中斷確認(rèn)菊花鏈菊花鏈邏輯電路邏輯電路89中斷響應(yīng)n向中斷源發(fā)出向中斷源發(fā)出INTA中斷響應(yīng)信號(hào);中斷響應(yīng)信號(hào);n關(guān)中斷關(guān)中斷n保護(hù)硬件現(xiàn)場(chǎng)保護(hù)硬件現(xiàn)場(chǎng)n將將FLAGS壓入堆棧壓入堆棧n保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)n將將CS、IP壓入堆棧壓入堆棧n獲得中斷服務(wù)程序入口地址獲得中斷服務(wù)程

42、序入口地址由由硬硬件件系系統(tǒng)統(tǒng)完完成成90中斷處理n執(zhí)行中斷服務(wù)子程序執(zhí)行中斷服務(wù)子程序n中斷服務(wù)子程序的特點(diǎn):中斷服務(wù)子程序的特點(diǎn):n為為“遠(yuǎn)過程遠(yuǎn)過程”n用用IRET指令返回指令返回91中斷服務(wù)子程序完成的工作n關(guān)中斷,保護(hù)現(xiàn)場(chǎng),保護(hù)斷點(diǎn),找入口地址關(guān)中斷,保護(hù)現(xiàn)場(chǎng),保護(hù)斷點(diǎn),找入口地址n保護(hù)軟件現(xiàn)場(chǎng)(參數(shù))保護(hù)軟件現(xiàn)場(chǎng)(參數(shù))n開中斷(開中斷(STI)n中斷處理中斷處理n關(guān)中斷(關(guān)中斷(CLI)n恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)n中斷返回中斷返回92中斷返回n執(zhí)行執(zhí)行IRET指令,使指令,使IP、CS和和FLAGS從堆棧彈從堆棧彈出出恢復(fù)斷點(diǎn)和硬件現(xiàn)場(chǎng)恢復(fù)斷點(diǎn)和硬件現(xiàn)場(chǎng)中斷處理過程流程93中 斷 請(qǐng) 求

43、識(shí) 別 中 斷 源關(guān) 中 斷保 護(hù) 硬 件 現(xiàn) 場(chǎng)保 護(hù) 斷 點(diǎn)確 定 中 斷 服 務(wù)程 序 入 口 地 址保 護(hù) 軟 件 現(xiàn) 場(chǎng)開 中 斷執(zhí) 行 中 斷 服 務(wù) 程 序關(guān) 中 斷恢 復(fù) 軟 件 現(xiàn) 場(chǎng)恢 復(fù) 斷 點(diǎn)開 中 斷中 斷 返 回恢 復(fù) 硬 件 現(xiàn) 場(chǎng)94三、8086/8088的中斷系統(tǒng) n與中斷有關(guān)的控制線為:與中斷有關(guān)的控制線為:NMI、INTR、INTAn8086系統(tǒng)的中斷源(系統(tǒng)的中斷源(256個(gè))個(gè))n內(nèi)部中斷內(nèi)部中斷n軟件中斷:即軟件中斷:即INT n指令,類型號(hào)指令,類型號(hào)n(0-255)。n除法溢出:類型號(hào)0,商大于目的操作數(shù)所能表達(dá)的范圍時(shí)產(chǎn)生。n單步中斷:類型號(hào)1

44、,TF=1時(shí)產(chǎn)生(當(dāng)前指令需執(zhí)行完)n斷點(diǎn)中斷:類型號(hào)3,這是一個(gè)軟件中斷,即INT 3指令。n溢出中斷:類型號(hào)4,這是一個(gè)軟件中斷,即INTO指令。n外部中斷外部中斷n非屏蔽中斷非屏蔽中斷NMI:類型號(hào):類型號(hào)2,不可用軟件屏蔽,不可用軟件屏蔽,CPU必須必須響應(yīng)它。響應(yīng)它。n可屏蔽中斷可屏蔽中斷INTR:類型號(hào)由:類型號(hào)由PIC提供。提供。IF=1時(shí)時(shí)CPU才能才能響應(yīng)。響應(yīng)。95中斷源優(yōu)先級(jí)除法出錯(cuò)中斷最高最低軟件中斷 INT n溢出中斷 INTO非屏蔽中斷 NMI可屏蔽中斷 INTR單步中斷NMIINTR中斷邏輯中斷邏輯軟件中斷指令軟件中斷指令溢出中斷溢出中斷除法錯(cuò)除法錯(cuò)單步中斷單步中

45、斷非屏蔽中斷請(qǐng)求非屏蔽中斷請(qǐng)求中斷控中斷控制器制器8259APIC8086/8088CPU8086/8088CPU內(nèi)部邏輯內(nèi)部邏輯斷點(diǎn)中斷斷點(diǎn)中斷可可屏屏蔽蔽中中斷斷請(qǐng)請(qǐng)求求n430128086/8088中斷源類型:中斷源類型:除法溢出中斷n在執(zhí)行除法指令時(shí),若除數(shù)為在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號(hào)為向量號(hào)為0的內(nèi)部中的內(nèi)部中斷,稱為斷,稱為除法溢出中斷除法溢出中斷例如:例如:MOV BL,0IDIV BL;除數(shù);除數(shù)BL0,產(chǎn)生除法溢出中斷,產(chǎn)生除法溢出中斷MOV AX,200HMOV BL,1DIV BL

46、;商;商200H,不能用,不能用AL表達(dá)表達(dá);產(chǎn)生除法溢出中斷;產(chǎn)生除法溢出中斷指令軟中斷n在執(zhí)行中斷調(diào)用指令在執(zhí)行中斷調(diào)用指令I(lǐng)NT n時(shí)產(chǎn)生的一個(gè)時(shí)產(chǎn)生的一個(gè)向量號(hào)向量號(hào)為為n(0 255)的內(nèi)部中斷,稱為)的內(nèi)部中斷,稱為指令中斷指令中斷n其中其中向量號(hào)為向量號(hào)為3的指令中斷比較特別(生成一個(gè)的指令中斷比較特別(生成一個(gè)字節(jié)的指令代碼:字節(jié)的指令代碼:11001100),常用于程序調(diào)試),常用于程序調(diào)試,被稱為,被稱為斷點(diǎn)中斷斷點(diǎn)中斷例如:例如:DEBUG.EXE調(diào)試程序的運(yùn)行命令調(diào)試程序的運(yùn)行命令G設(shè)置設(shè)置的斷點(diǎn),就是利用的斷點(diǎn),就是利用INT 3指令實(shí)現(xiàn)的指令實(shí)現(xiàn)的溢出中斷n在執(zhí)行溢

47、出中斷指令在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志時(shí),若溢出標(biāo)志OF為為1,則產(chǎn)生一個(gè),則產(chǎn)生一個(gè)向量號(hào)為向量號(hào)為4的內(nèi)部中斷,被稱為的內(nèi)部中斷,被稱為溢出溢出中斷中斷例如:例如:MOV AX,2000HADD AX, 7000H;2000H7000H9000H,溢出:,溢出:OF1INTO ;因?yàn)?;因?yàn)镺F1,所以產(chǎn)生溢出中斷,所以產(chǎn)生溢出中斷單步中斷n若單步中斷若單步中斷TF為為1,則在每條指令執(zhí)行結(jié)束后產(chǎn),則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)向量號(hào)為生一個(gè)向量號(hào)為1的內(nèi)部中斷,稱為單步中斷的內(nèi)部中斷,稱為單步中斷例如:例如:DEBUG.EXE調(diào)試程序的單步命令調(diào)試程序的單步命令T就利就利用單步

48、中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試用單步中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試不可屏蔽中斷n通過不可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的通過不可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷請(qǐng)求,微處理器無法禁止,將在當(dāng)前指令中斷請(qǐng)求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為不可屏蔽執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為不可屏蔽中斷中斷n8086的不可屏蔽中斷的向量號(hào)為的不可屏蔽中斷的向量號(hào)為2,不可屏蔽,不可屏蔽中斷請(qǐng)求信號(hào)為中斷請(qǐng)求信號(hào)為NMIn不可屏蔽中斷主要用于處理系統(tǒng)的意外或故障不可屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:。例如:n電源掉電前的數(shù)據(jù)保護(hù)電源掉電前的數(shù)據(jù)保護(hù)n存儲(chǔ)器讀寫錯(cuò)誤的處理存儲(chǔ)器讀

49、寫錯(cuò)誤的處理可屏蔽中斷n外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷就是可屏蔽中斷這個(gè)中斷就是可屏蔽中斷n8086的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是INTR和和INTA*;由由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng)(標(biāo)志控制可屏蔽中斷是否允許響應(yīng)(CLI或或STI);向量號(hào)來自外部中斷控制器向量號(hào)來自外部中斷控制器n8086通常需要

50、配合中斷控制器通常需要配合中斷控制器8259A共同處理可屏蔽共同處理可屏蔽中斷中斷n可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)103中斷向量:中斷向量:是中斷處理子程序的入口地址,每個(gè)中斷是中斷處理子程序的入口地址,每個(gè)中斷類型對(duì)應(yīng)一個(gè)中斷矢量類型對(duì)應(yīng)一個(gè)中斷矢量中斷中斷中斷向量碼代號(hào)中斷向量碼代號(hào) (0255) 中斷服務(wù)程序中斷服務(wù)程序 中斷向量表:中斷向量表:在內(nèi)存中,開辟一個(gè)區(qū)域存放中斷服務(wù)程在內(nèi)存中,開辟一個(gè)區(qū)域存放中斷服務(wù)程序的入口地址的表。對(duì)于序的入口地址的表。對(duì)于80868086,這個(gè)區(qū)域的首地址,這個(gè)區(qū)域的首地址00000H00000H(固定)(固

51、定)中斷向量表10410500000H003FFH1KBn每個(gè)入口占用每個(gè)入口占用4 Bytes,低字為段內(nèi)偏移,高低字為段內(nèi)偏移,高 字為段基址;字為段基址;n表的地址位于內(nèi)存的表的地址位于內(nèi)存的00000H003FFH,大小為大小為1KB,共,共256個(gè)入口。個(gè)入口。1067078086中斷向量表80868086中斷矢量表的初始化中斷矢量表的初始化格式格式: MOV DX,OFFSET INT ;中斷服務(wù)程序偏移量;中斷服務(wù)程序偏移量DXMOV AX,SEG INTMOV DS,AXMOV AL,n ;中斷矢量號(hào);中斷矢量號(hào)nALMOV AH,25H ;功能號(hào);功能號(hào)25HAHINT 21

52、H 方法一方法一:采用:采用DOS系統(tǒng)功能調(diào)用,即系統(tǒng)功能調(diào)用,即INT 21H的的25H號(hào)號(hào)(設(shè)置中斷向量設(shè)置中斷向量)功能調(diào)用功能調(diào)用;中斷服務(wù)程序段地址;中斷服務(wù)程序段地址AX已知已知:某一中斷服務(wù)程序的入口地址為:某一中斷服務(wù)程序的入口地址為INT(邏輯地址)(邏輯地址)方法二方法二:直接將中斷服務(wù)程序的入口地址裝入中斷矢量:直接將中斷服務(wù)程序的入口地址裝入中斷矢量 表中表中MOVAX, 0MOVES, AXMOVDI, n;中斷矢量號(hào);中斷矢量號(hào)n DISHLDI, 1;n 2SHLDI, 1;n 4MOVAX, OFFSET INT;中斷服務(wù)程序的偏移量;中斷服務(wù)程序的偏移量AXM

53、OVBX, SEG INT ;中斷服務(wù)程序的段基址;中斷服務(wù)程序的段基址BXMOVES: DI, AX;中斷服務(wù)程序的偏移量;中斷服務(wù)程序的偏移量矢量表矢量表MOVES: DI+2, BX;中斷服務(wù)程序的段基址;中斷服務(wù)程序的段基址矢量表矢量表已知已知:某一中斷矢量號(hào)為:某一中斷矢量號(hào)為n,中斷服務(wù)程序的入口地址為,中斷服務(wù)程序的入口地址為INT(邏輯地址)(邏輯地址)常用的常用的BIOSBIOS中斷調(diào)用中斷調(diào)用特點(diǎn)特點(diǎn): BIOS中斷調(diào)用要比中斷調(diào)用要比DOS中斷調(diào)用復(fù)雜些,但運(yùn)中斷調(diào)用復(fù)雜些,但運(yùn)行速度快,功能更強(qiáng)些行速度快,功能更強(qiáng)些 BIOS中斷調(diào)用頗具特色的是顯示中斷子程序,其矢中斷

54、調(diào)用頗具特色的是顯示中斷子程序,其矢量號(hào)是量號(hào)是10H(1)設(shè)置)設(shè)置顯示方式顯示方式矢量號(hào):矢量號(hào): 10H功能號(hào):功能號(hào): AH0入口參數(shù):入口參數(shù):AL常用顯示方式號(hào)(常用顯示方式號(hào)(06) 顯示方式號(hào)顯示方式號(hào) 顯示方式顯示方式 0 40列列25行黑白文本方式行黑白文本方式 1 40列列25行彩色文本方式行彩色文本方式 2 80列列25行黑白文本方式行黑白文本方式 3 80列列25行彩色文本方式行彩色文本方式 4 320列列200行黑白圖形方式行黑白圖形方式 5 320列列200行彩色圖形方式行彩色圖形方式 6 640列列200行黑白圖形方式行黑白圖形方式注意注意:對(duì)于高分辨率,只支持

55、黑白顯示:對(duì)于高分辨率,只支持黑白顯示例例:屏幕設(shè)置成:屏幕設(shè)置成8025彩色文本方式彩色文本方式程序程序: MOVAH,0;設(shè)功能號(hào);設(shè)功能號(hào) MOVAL,3 ;設(shè)顯示方式;設(shè)顯示方式 INT10H(2)設(shè)置)設(shè)置光標(biāo)位置光標(biāo)位置矢量號(hào):矢量號(hào): 10H功能號(hào):功能號(hào): AH2入口參數(shù):入口參數(shù): BH頁號(hào),通常取頁號(hào),通常取0頁頁 DH行號(hào),取值行號(hào),取值024 DL列號(hào),對(duì)于列號(hào),對(duì)于40列文本,取值列文本,取值039 對(duì)于對(duì)于80列文本,取值列文本,取值079程序程序:MOVBH, 0MOVDH, 10MOVDL, 30MOV AH, 2INT10H例例:將光標(biāo)置在第:將光標(biāo)置在第10

56、行行30列列(3)在當(dāng)前光標(biāo)處寫)在當(dāng)前光標(biāo)處寫字符字符和和屬性屬性 矢量號(hào):矢量號(hào): 10H 功能號(hào):功能號(hào): AH9 入口參數(shù):入口參數(shù): BH頁號(hào)頁號(hào) AL顯示字符的顯示字符的ASCII碼碼 BL屬性屬性 CX重復(fù)顯示的次數(shù)重復(fù)顯示的次數(shù)L位位為為1時(shí)表示背景閃爍,否則不閃時(shí)表示背景閃爍,否則不閃I位位為為1時(shí)表示前景為高亮度,否則為一般亮度時(shí)表示前景為高亮度,否則為一般亮度文本方式文本方式16種顏色的組合種顏色的組合例例:用蘭色清屏,然后在第:用蘭色清屏,然后在第10行行30列顯示列顯示20個(gè)紅底白字個(gè)紅底白字A程序程序:MOVAL, 0 ;AL=0時(shí),清屏參數(shù)時(shí),清屏參數(shù) MOVBL

57、, 10H ;藍(lán)色背景,無閃爍,屬性;藍(lán)色背景,無閃爍,屬性BL MOVAH, 6 ;清屏功能號(hào);清屏功能號(hào)6 MOVCX, 0 ;從;從0行到行到0列列MOVDH, 24 ;到;到24行行MOVDL, 79 ;79列列INT10H ;清屏幕;清屏幕MOVAH, 2MOVBH, 0 ;頁號(hào);頁號(hào)MOV DH, 10MOVDL, 30INT10H ;光標(biāo)設(shè)置在第;光標(biāo)設(shè)置在第10行行30列列MOVAL, AMOVCX, 20 ;重復(fù)顯示;重復(fù)顯示20個(gè)字符個(gè)字符AMOVBH, 0 ;頁號(hào);頁號(hào)MOVBL, 4FH ;屬性;屬性BL,紅底,白字,紅底,白字MOVAH, 9INT10H ;顯示;顯示

58、20個(gè)字母?jìng)€(gè)字母A(4)設(shè)置)設(shè)置圖形方式顯示圖形方式顯示的背景和彩色組的背景和彩色組矢量號(hào):矢量號(hào):10H功能號(hào):功能號(hào):AH0BH入口參數(shù):入口參數(shù):當(dāng)當(dāng)BH0時(shí),時(shí),BL背景顏色,范圍背景顏色,范圍015 當(dāng)當(dāng)BH1時(shí),時(shí),BL顏色組,顏色組, 范圍范圍01: 0表示綠表示綠/紅紅/黃,黃,1表示青表示青/品紅品紅/白白矢量號(hào):矢量號(hào):14H功能號(hào):功能號(hào):AH0H入口參數(shù):入口參數(shù):AL初始化參數(shù),初始化參數(shù),DX0表示對(duì)表示對(duì)COM1初初 始化;始化;DX=1表示對(duì)表示對(duì)COM2初始化初始化(5)串行通信口串行通信口初始化初始化位位7、6、5表示波特率:表示波特率:0 0 0 110

59、 波特波特0 0 1 150 波特波特0 1 0 300 波特波特0 1 1 600 波特波特1 0 0 1200波特波特1 0 1 2400波特波特1 1 0 4800波特波特1 1 1 9600波特波特位位4、3表示奇偶校驗(yàn)設(shè)定:表示奇偶校驗(yàn)設(shè)定:00無奇偶校驗(yàn)無奇偶校驗(yàn)01奇校驗(yàn)奇校驗(yàn)11偶校驗(yàn)偶校驗(yàn)位位2表示停止位數(shù)設(shè)定表示停止位數(shù)設(shè)定01位停止位位停止位12位停止位位停止位位位1、0表示通信數(shù)據(jù)位數(shù)設(shè)定表示通信數(shù)據(jù)位數(shù)設(shè)定107位數(shù)據(jù)通信位數(shù)據(jù)通信118位數(shù)據(jù)通信位數(shù)據(jù)通信117例例: 鍵盤中斷的矢量號(hào)為鍵盤中斷的矢量號(hào)為09H,它的中斷服務(wù)程序入口,它的中斷服務(wù)程序入口地址為地址為

60、0BA9H:0125H,求它在中斷矢量表中的地址,求它在中斷矢量表中的地址及相應(yīng)單元內(nèi)容及相應(yīng)單元內(nèi)容 解解:鍵盤中斷對(duì)應(yīng)的中斷矢量表位于:鍵盤中斷對(duì)應(yīng)的中斷矢量表位于0000:0024H (09H4=24H)開始的開始的4單元單元 這這4個(gè)單元的內(nèi)容見表個(gè)單元的內(nèi)容見表:1188088內(nèi)部中斷與NMI中斷特點(diǎn):特點(diǎn):n無INTA周期周期n中斷類型碼固定或由指令給出中斷類型碼固定或由指令給出8088/8086的中斷響應(yīng)和處理流程N(yùn)YNYNNNNNYY執(zhí)行指令執(zhí)行完否?取指令I(lǐng)F=1?內(nèi)部中斷?NMI?INTR?TF=1?類型碼=0255類型碼=2類型碼=1中斷響應(yīng),讀回類型碼FLAG入棧TEM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論