匯編第8章課件_第1頁
匯編第8章課件_第2頁
匯編第8章課件_第3頁
匯編第8章課件_第4頁
匯編第8章課件_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章輸入/輸出程序設(shè)計8.1I/O設(shè)備的數(shù)據(jù)傳送方式8.2程序直接控制I/O方式8.3中斷傳送方式外設(shè)是用來實現(xiàn)人機交互的一些機電設(shè)備。外設(shè)處理信息的類型、速度、通信方式與CPU不匹配,不能直接掛在總線上,必須通過接口和系統(tǒng)相連接口指CPU、存儲器、外設(shè)之間通過總線進行連接的電路部分,是CPU與外界進行信息交換的中轉(zhuǎn)站。數(shù)據(jù)總線DB控制總線CB地址總線AB存儲器I/O接口輸入設(shè)備I/O接口輸出設(shè)備CPU微型計算機的結(jié)構(gòu)示意圖CPU與外設(shè)的工作速度不一致,如何使兩者高效、可靠地進行數(shù)據(jù)傳送?一、程序直接控制二、中斷傳送方式三、DMA傳送方式

(DirectMemoryAccess)CPU與外設(shè)間的數(shù)據(jù)傳送方式有以下幾種:程序直接控制方式

CPU利用IN/OUT指令直接在端口級上處理輸入輸出中斷方式

CPU在執(zhí)行程序的同時兼顧對I/O設(shè)備的控制或數(shù)據(jù)傳送。當(dāng)I/O設(shè)備準備好(空閑),由I/O通知CPU暫停正在運行的程序,轉(zhuǎn)而處理I/O設(shè)備的請求,處理完即返回主程序繼續(xù)執(zhí)行。DMA方式(直接存儲器存取方式/成組傳送方式)

主要適用于高速I/O設(shè)備(如磁盤),CPU向I/O接口提供控制信息(如數(shù)據(jù)塊的首地址及字節(jié)數(shù)),I/O設(shè)備直接和存儲器進行成批數(shù)據(jù)的快速傳送。1、程序直接控制方式

無條件傳送(CPU與外設(shè)同步工作):外部控制過程各種動作時間是固定的,而且是已知的。

查詢方式(CPU與外設(shè)不同步工作):傳送前,先查詢外設(shè)狀態(tài),準備好才傳送,否則CPU處于等待狀態(tài)。2、中斷方式: 外設(shè)與CPU處于并行工作,一旦外設(shè)準備好,外設(shè)向CPU發(fā)中斷申請,條件具備,CPU暫停原程序執(zhí)行,響應(yīng)中斷,外設(shè)與CPU串行工作。3、DMA方式(高速I/O及成組交換數(shù)據(jù)):CPU不干予,由硬件實現(xiàn)存儲器與外設(shè)之間交換數(shù)據(jù),稱直接存取存儲器。DMA傳送方式的特點1.外設(shè)和內(nèi)存之間,直接進行數(shù)據(jù)傳送,不通過CPU,傳送效率高。適用于在內(nèi)存與高速外設(shè)、或兩個高速外設(shè)之間進行大批量數(shù)據(jù)傳送。2.電路結(jié)構(gòu)復(fù)雜,硬件開銷較大。中斷傳送方式的特點:1.CPU和外設(shè)大部分時間處在并行工作狀態(tài),只在CPU響應(yīng)外設(shè)的中斷申請后,進入數(shù)據(jù)傳送的過程2.中斷傳送方式提高了CPU的效率查詢傳送方式特點:1.CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低對于8位端口,可達64K(0000~FFFFH),即65536對于16位端口,可達32K(0000~FFFFH),即32768對于32位端口,可達16K(0000~FFFFH)

,即1638480X86微機中I/O地址空間獨立于主存儲器地址空間理論值的大小地址空間實際上的使用情況只有十幾個外設(shè)大容量存儲設(shè)備port為數(shù)字形式的端口地址,大小為0~255或0~FFH輸出指令OUT例8.1 Sound程序

movdx,1000

inal,61handal,11111100bsound:xoral,2

out61h,almovcx,6000wait1:loopwait1decdxjnesound設(shè)備控制寄存器端口61H1/00控制其它外部設(shè)備放大器2號定時器門控108.2.3I/O程序舉例發(fā)聲原理:向揚聲器發(fā)送一串脈沖信號,推動揚聲器內(nèi)紙盆振動,發(fā)出聲音脈沖的頻率,控制音高;脈沖的個數(shù)(延遲),控制音長與門例8.3

CPU要從3個設(shè)備輪流輸入數(shù)據(jù),設(shè)備1,2,3的狀態(tài)寄存器端口號分別用STAT1,STAT2,STAT3表示,第5位是輸入準備位。INPUT:INAL,STAT1

TESTAL,20HJZDEV2CALLFARPTRPROC1DEV2:INAL,STAT2

TESTAL,20HJZDEV3CALLFARPTRPROC2DEV3:INAL,STAT3

TESTAL,20HJZNO_INPUTCALLFARPTRPROC3NO_INPUT:……查詢傳送方式,編程流程:NY從狀態(tài)端口讀入狀態(tài)信息從數(shù)據(jù)端口傳送一個數(shù)據(jù)外設(shè)準備好否?查詢傳送方式特點:1.CPU通過不斷查詢外設(shè)狀態(tài),實現(xiàn)與外設(shè)的速度匹配2.CPU的工作效率低8.3中斷傳送方式關(guān)于中斷的幾個概念:什么是中斷?中斷源?中斷向量指什么?中斷向量的地址?硬件中斷、軟件中斷、非屏蔽中斷?中斷服務(wù)程序發(fā)申請中斷服務(wù)程序發(fā)申請中斷方式下CPU執(zhí)行程序流程外設(shè)INTEL8059A可編程中斷控制器(PIC)中斷邏輯INTn指令I(lǐng)NTO指令除法錯誤單步TF=1非屏蔽中斷請求IR0IR6IR5IR4IR3IR2IR1IR7可編程中斷控制器(PIC)8259AINTn4012CPUINTRNMI08090A0B0C0D0E0F系統(tǒng)定時器鍵盤軟盤彩色/圖形接口8086/8088中斷源LPT2COM2COM1LPT11.

向CPU的引腳INTR發(fā)中斷申請信號當(dāng)有多個外設(shè)同時發(fā)出中斷請求時,能按照一定的優(yōu)先級順序,向CPU發(fā)出中斷申請,使CPU能優(yōu)先響應(yīng)優(yōu)先級最高的外部設(shè)備的中斷申請。2.

送中斷類型號在CPU中斷響應(yīng)周期,針對不同外設(shè)的中斷請求,向CPU傳送不同的中斷類型號,使CPU執(zhí)行相應(yīng)的中斷子程。IBMPC機8259A可編程中斷控制器(PIC)主要功能:問外設(shè)發(fā)出中斷請求,CPU是否就一定回響應(yīng)呢?這由兩個控制條件決定: 1、該外設(shè)的中斷請求是否屏蔽 2、CPU是否允許響應(yīng)中斷8259A的IMRFLAGS的IF答:不一定8259A的IMRI/O端口地址:21H功能:8位對應(yīng)控制8個外設(shè)工作方式:0表示允許外設(shè)中斷請求,1表示禁止例如新增允許IR2的中斷申請INAL,21H;讀入原IMR的內(nèi)容

ANDAL,11111011B;D2=0,允許IR2的中斷申請OUT21H,AL;寫入IMR中斷命令寄存器CPU響應(yīng)某級中斷后,如果不發(fā)出中斷結(jié)束命令EOI,則8259A會屏蔽同級或低級的中斷申請。為什么要發(fā)中斷結(jié)束命令EOI?INTSUBPROC、、、MOVAL,20H;將中斷結(jié)束命令字20H送AL

OUT20H,AL;寫入中斷命令寄存器中IRET;中斷返回INTSUBENDP怎么發(fā)中斷結(jié)束命令EOI?中斷操作的5個步驟:(1)取中斷類型號(2)計算中斷向量地址(3)取中斷向量,偏移地址送IP,段地址送CS(4)轉(zhuǎn)入中斷處理程序(5)中斷返回到INT指令的下一條指令例:BIOS中斷INT4AH

4AH4=128H4AH4+2=12AH(128H)IP(12AH)CS8.3.2中斷向量表中斷類型號:?中斷向量表:?中斷向量地址:?用戶如何利用保留的中斷類型號擴充中斷?中斷程序的編寫步驟:1、主程序的編寫:

(1)設(shè)置中斷向量(2)設(shè)置CPU中斷允許位(IF)(3)設(shè)置中斷屏蔽位(IMR)2、中斷處理子程序的編寫:

(1)中斷處理功能(2)IRET中斷返回DOS功能調(diào)用(21H)存取中斷向量設(shè)置中斷向量:AH=25HAL=中斷類型號DS:DX=中斷向量INT21H取中斷向量:AH=35HAL=中斷類型號INT21H返回時送ES:BX=中斷向量設(shè)置/取中斷向量(方法2:DOS功能調(diào)用法)例8.4 用DOS功能調(diào)用存取中斷向量

MOVAL,NMOVAH,35HINT21H;取原中斷向量PUSHESPUSHBX;保存原中斷向量PUSHDSMOVAX,SEGINTHANDMOVDS,AXMOVDX,OFFSETINTHANDMOVAL,NMOVAH,25HINT21H;設(shè)置新的中斷向量POPDS……POPDXPOPDSMOVAL,NMOVAH,25HINT21H;恢復(fù)原中斷向量RET;INTHAND:……IRET不同?8.3.3中斷過程當(dāng)中斷源產(chǎn)生中斷申請后,不論是內(nèi)中斷、非屏蔽中斷,還是可屏蔽中斷,只要滿足響應(yīng)條件,在執(zhí)行完當(dāng)前指令后,CPU內(nèi)部硬件會自動完成下列響應(yīng)中斷的過程:①

取中斷類型號N②

當(dāng)前FLAGS的內(nèi)容入棧③當(dāng)前CS的內(nèi)容入棧④當(dāng)前IP的內(nèi)容入棧⑤

清IF、TF標志為0⑥

取內(nèi)存單元(0:N×4)字內(nèi)容送IP取中斷子程取內(nèi)存單元(0:N×4+2)字內(nèi)容送CS入口地址⑦轉(zhuǎn)中斷子程序此時CS:IP指向中斷程序的入口,開始執(zhí)行中斷程序。8.3.4中斷優(yōu)先級和中斷嵌套當(dāng)有多個中斷源同時產(chǎn)生中斷申請時,CPU先響應(yīng)優(yōu)先權(quán)最高的中斷源,再響應(yīng)優(yōu)先級較低的中斷源。

內(nèi)中斷(除零,INT指令,斷點,INTO指令)非屏蔽中斷可屏蔽中斷(IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7)

低內(nèi)中斷(單步)

中斷優(yōu)先級如何進行控制?8259A的中斷命令寄存器的6、7位可以控制一般情況下,以正常的優(yōu)先級方式(IR0—IR7)特殊情況下,可以改變優(yōu)先級的次序:RSL00正常優(yōu)先級方式01清除由L2~L0指定的中斷請求

0各中斷優(yōu)先級依次左循環(huán)一個位置11各中斷優(yōu)先級依次循環(huán)到由L2~L0指定的中斷請求到達最低優(yōu)先級位置上CPU正在執(zhí)行某一中斷子程,又被其它中斷源中斷使CPU轉(zhuǎn)去執(zhí)行另一中斷子程,這個過程叫中斷嵌套嵌套的概念中斷子程序1中斷申請CPU執(zhí)行流程中斷子程序2....STI......(EOI).....IRETIF=0禁止中斷允許級別高中斷允許級別低或同級中斷中斷子程序運行過程中的中斷允許情況8.3.5中斷處理程序中斷程序的編寫步驟:1、主程序的編寫:

(1)設(shè)置中斷向量(2)設(shè)置CPU中斷允許位(3)設(shè)置中斷屏蔽位2、中斷處理子程序的編寫:

(1)中斷處理功能(2)IRET中斷返回當(dāng)前指令執(zhí)行完的含義對于帶重復(fù)前綴的串指令(如REPMOVSB),執(zhí)行一次重復(fù)和串指令即可響應(yīng)中斷;對MOV和POP指令,處理對象為段寄存器,STI和IRET

指令執(zhí)行完本條指令后再執(zhí)行一條指令才響應(yīng)中斷。加封鎖指令,看作一條指令一般指令,只要一條指令的執(zhí)行周期結(jié)束即可響應(yīng)中斷特殊情況:軟中斷子程與子程序的編寫類似,其不同點在于:1.子程用CALL指令調(diào)用;中斷子程用INT指令調(diào)用2.子程用RET指令返回;中斷子程用IRET指令返回3.CALL指令直接用過程名做操作數(shù),即由過程名提供子程的入口地址INT指令由類型號N到中斷向量表中固定的單元

獲得中斷子程的入口地址子程序的編寫步驟1、保存寄存器內(nèi)容2、如允許中斷嵌套,則開中斷(STI)3、處理中斷4、關(guān)中斷(CLI)5、送中斷結(jié)束命令(EOI)給中斷命令寄存器6、恢復(fù)寄存器內(nèi)容7、返回被中斷的程序(IRET)同子程序??不同子程序例8.4

編寫一個中斷處理程序,要求在主程序運行期間,每隔10秒響鈴一次,同時顯示‘Thebellisring!’dsegsegmentcountdw1messdb'Thebellisring!',0ah,0dh,'$'dsegendscsegsegmentmainprocfarassumecs:cseg,ds:dseg,es:dsegstart:pushdsmovax,axpushaxmovax,dsegmovds,ax

moval,1chmovah,35hint21h;取原中斷向量pushespushbx;保存原中斷向量pushds

movdx,offsetringmovax,segringmovds,axmoval,1chmovah,25hint21h

;設(shè)置新的中斷向量popds

inal,21handal,11111110bout21h,al

;設(shè)置中斷屏蔽位,允許定時器中斷sti;開中斷

movdi,2000delay:movsi,3000delay1:decsijnzdelay1decdijnzdelay

;主程序工作(期間每秒產(chǎn)生中斷18.2次)popdxpopdsmoval,1chmovah,25hint21h;

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論