第8章 輸入輸出程序設(shè)計_第1頁
第8章 輸入輸出程序設(shè)計_第2頁
第8章 輸入輸出程序設(shè)計_第3頁
第8章 輸入輸出程序設(shè)計_第4頁
第8章 輸入輸出程序設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第第8 8章章 輸入輸出程序設(shè)計輸入輸出程序設(shè)計第第9 9周:周:4 4月月2222日計科日計科1212 8.1 I/O 8.1 I/O設(shè)備的數(shù)據(jù)傳送方式設(shè)備的數(shù)據(jù)傳送方式 8.1.1 CPU 8.1.1 CPU 與外部設(shè)備與外部設(shè)備 I/OI/O設(shè)備通過設(shè)備接口或控制器與設(shè)備通過設(shè)備接口或控制器與CPUCPU相連。相連。設(shè)備接口或控制器都能支持設(shè)備接口或控制器都能支持 輸入輸入/ /輸出輸出(IN/OUT)(IN/OUT)指令與外部設(shè)備交換信息。這些信息有:指令與外部設(shè)備交換信息。這些信息有: 控制信息:控制信息:CPUCPU通知接口或設(shè)備要做什么的操通知接口或設(shè)備要做什么的操作命令。作命

2、令。 狀態(tài)信息狀態(tài)信息: :存放存放I/OI/O設(shè)備的當(dāng)前狀態(tài)設(shè)備的當(dāng)前狀態(tài), ,供供CPUCPU查詢。查詢。 數(shù)據(jù)信息數(shù)據(jù)信息: :存放存放I/OI/O設(shè)備和設(shè)備和CPUCPU真正要交換的數(shù)真正要交換的數(shù)據(jù)。據(jù)。1 1 設(shè)備接口設(shè)備接口( (或控制器或控制器) )都是由多個端口都是由多個端口( (寄存器寄存器) )組成。每個接口組成。每個接口( (或控制器或控制器) )至少有至少有3 3個端口:個端口: 數(shù)據(jù)端口數(shù)據(jù)端口: :存放要傳輸?shù)臄?shù)據(jù);存放要傳輸?shù)臄?shù)據(jù); 狀態(tài)端口狀態(tài)端口: :存放設(shè)備存放設(shè)備( (接口接口) )的當(dāng)前狀態(tài),供的當(dāng)前狀態(tài),供CPUCPU查詢外設(shè)。查詢外設(shè)。 控制端口控

3、制端口: :用來保存用來保存CPUCPU發(fā)來的設(shè)備控制命令發(fā)來的設(shè)備控制命令或設(shè)備的操作命令?;蛟O(shè)備的操作命令。 CPU CPU 與外設(shè)傳送數(shù)據(jù)的方式有:與外設(shè)傳送數(shù)據(jù)的方式有: 1.1.直接存儲器存取直接存儲器存取(DMA)(DMA)方式方式 2.2.程序直接控制方式程序直接控制方式 3.3.中斷傳送方式中斷傳送方式2 8.1.2 8.1.2 直接存儲器存取方式直接存儲器存取方式 D DM MA A(直接(直接存儲器存儲器存?。┓绞绞窃诖嫒。┓绞绞窃贒MADMA控制器控制器的控制下的控制下, ,在存儲器與在存儲器與I/OI/O設(shè)備之間設(shè)備之間直接進行數(shù)據(jù)直接進行數(shù)據(jù)交換交換, ,不用通過不用

4、通過CPUCPU的介入。的介入。數(shù)據(jù)傳送的速率數(shù)據(jù)傳送的速率; ;主主要要取決于存儲器的存取速度。取決于存儲器的存取速度。DMADMA方式數(shù)據(jù)傳輸效率方式數(shù)據(jù)傳輸效率最高。適應(yīng)與高速傳輸批數(shù)據(jù)的外部設(shè)備。最高。適應(yīng)與高速傳輸批數(shù)據(jù)的外部設(shè)備。 2.DMA2.DMA控制器的功能控制器的功能(4(4個功能個功能) ) (1). (1).響應(yīng)外設(shè)的響應(yīng)外設(shè)的DMADMA請求請求, ,使使CPUCPU暫停工作暫停工作, ,接管接管總線??偩€。 3 (2). (2).按節(jié)拍向外設(shè)和存儲器提供各種信號。按節(jié)拍向外設(shè)和存儲器提供各種信號。 (3).(3).提供存儲器地址。提供存儲器地址。 (4).(4).可

5、編程的可編程的DMADMA芯片,使之靈活運用。芯片,使之靈活運用。 系統(tǒng)完成系統(tǒng)完成DMADMA傳送的步驟傳送的步驟(8(8個步驟個步驟) ): (1).DMA(1).DMA控制器向控制器向CPUCPU發(fā)送總線請求使發(fā)送總線請求使(HRQ) (HRQ) 信號。信號。 (2).CPU(2).CPU發(fā)響應(yīng)發(fā)響應(yīng)(HOLD),(HOLD),讓出總線控制權(quán)讓出總線控制權(quán),DMA,DMA 控制器獲總線控制權(quán);控制器獲總線控制權(quán); (3).(3).放送存儲器地址;放送存儲器地址; 4 (4). (4).數(shù)據(jù)傳輸;數(shù)據(jù)傳輸; (5).(5).存儲器地址加存儲器地址加1 1指向下指向下1 1個要傳輸數(shù)據(jù);個要

6、傳輸數(shù)據(jù); (6). (6). 字節(jié)計數(shù)器減字節(jié)計數(shù)器減1 1。 (7).(7).字節(jié)計數(shù)器不為字節(jié)計數(shù)器不為0,0,轉(zhuǎn)向轉(zhuǎn)向(3)(3); (8).DMA(8).DMA控制器撤消總線請求使用控制器撤消總線請求使用, ,傳送結(jié)束。傳送結(jié)束。 8.2 8.2 程序直接控制程序直接控制I/OI/O方式方式 8.2.1 I/O 8.2.1 I/O 端口端口5 表表8.1 8.1 系統(tǒng)扳上系統(tǒng)扳上接口芯片的端口地址接口芯片的端口地址(00H00H0FFH0FFH) I/OI/O接口名稱接口名稱 PC/XT PC/ATPC/XT PC/AT DMA DMA控制器控制器1 000H 1 000H 00FH

7、 000H 00FH 000H 01FH 01FH DMA DMA控制器控制器2 0C0H 2 0C0H 0DFH0DFH DMA DMA 頁面寄存器頁面寄存器 080H 080H 083H 080H 083H 080H 09FH09FH 中斷控制器中斷控制器1 020H 1 020H 021H 020H 021H 020H 03FH03FH 中斷控制器中斷控制器2 0A0H 2 0A0H 0BFH0BFH 定時器定時器 040H 040H 043H 040H 043H 040H 05FH05FH 并行接口并行接口 060H 060H 063H 063H 鍵盤接口鍵盤接口 060H 060H

8、06FH06FH RT/CMOS RAM 070H RT/CMOS RAM 070H 07FH07FH NMI NMI屏蔽寄存器屏蔽寄存器 0A0H 0A0H 協(xié)處理器協(xié)處理器 0F0H 0F0H 0FFH0FFH6 表表8.2 8.2 擴展槽上擴展槽上接口卡的端口地址接口卡的端口地址 I/OI/O接口名稱接口名稱 PC/XT PC/ATPC/XT PC/AT 硬驅(qū)控制卡硬驅(qū)控制卡 320H320H32FH 1F0H32FH 1F0H1FFH1FFH 游戲控制卡游戲控制卡 200H200H20FH 200H20FH 200H20FH20FH 擴展器擴展器/ /接收器接收器 210H210H21

9、 21 并行接口卡并行接口卡1 370H1 370H37FH 370H37FH 370H37FH37FH 并行接口卡并行接口卡2 270H2 270H27FH 270H27FH 270H27FH27FH 串行接口卡串行接口卡1 3F8H1 3F8H3FFH 3F8H3FFH 3F8H3FFH3FFH 串行接口卡串行接口卡2 2F0H2 2F0H2FFH 2F0H2FFH 2F0H2FFH2FFH 7表表8.2 8.2 擴展槽上接口卡的端口地址擴展槽上接口卡的端口地址(續(xù))(續(xù)) 原型插件扳原型插件扳 300H300H31FH 300H 31FH 300H 31FH31FH 同步通訊卡同步通訊卡

10、1 3A0H1 3A0H3AFH 3A0H 3AFH 3A0H 3AFH3AFH 同步通訊卡同步通訊卡2 380H2 380H38FH 380H 38FH 380H 38FH38FH 單顯單顯MDA 3B0HMDA 3B0H3BFH 3B0H 3BFH 3B0H 3BFH3BFH 彩顯彩顯CGA 3D0HCGA 3D0H3DFH 3D0H 3DFH 3D0H 3DFH3DFH 彩顯彩顯VGA 3C0HVGA 3C0H3CFH 3C0H 3CFH 3C0H 3CFH3CFH 軟驅(qū)控制卡軟驅(qū)控制卡 I/OI/O接口名稱接口名稱 PC/XT PC/ATPC/XT PC/AT8 8.2.2 8.2.2

11、 輸入輸入/ /輸出輸出 指令指令 1 1直接直接 輸入輸入/ /輸出指令輸出指令 指令格式指令格式 指令功能指令功能 說明說明IN AL,PORT (PORT) AL IN AL,PORT (PORT) AL 字節(jié)傳送字節(jié)傳送, ,短指令格式。短指令格式。IN AX,PORT (PORT) AXIN AX,PORT (PORT) AX 字傳送。短指令格式。字傳送。短指令格式。OUT PORT,AL AL PORTOUT PORT,AL AL PORT 字節(jié)傳送短指令格式。字節(jié)傳送短指令格式。OUT PORT,AX AX PORTOUT PORT,AX AX PORT 字傳送字傳送, ,短指令

12、格式。短指令格式。 注:注:規(guī)定規(guī)定I/OI/O端口號端口號PORTPORT取值范圍取值范圍000F000F3FFH,3FFH,當(dāng)當(dāng)PORTPORT的值在的值在0 00FFH0FFH時時, ,稱為稱為CPUCPU一級接口一級接口, ,I/OI/O設(shè)備在系統(tǒng)扳上,使用時直接寫出設(shè)備在系統(tǒng)扳上,使用時直接寫出端口值。端口值。9 2 2間接間接 輸入輸入/ /輸出指令輸出指令 指令格式指令格式 指令功能指令功能 說明說明IN ALIN AL,DX DX AL DX DX AL 字節(jié)傳送字節(jié)傳送, ,長指令格式長指令格式。IN AXIN AX,DX DX AX DX DX AX 字傳送字傳送, ,長指

13、令格式。長指令格式。OUT DXOUT DX,AL AL DX AL AL DX 字節(jié)傳送字節(jié)傳送, ,長指令格式。長指令格式。OUT DXOUT DX,AX AX DX AX AX DX 字傳送字傳送, ,長指令格式。長指令格式。 1010 注:注:1 1當(dāng)當(dāng)PORTPORT的值在的值在100H100H3FFH3FFH時時, ,稱為系稱為系統(tǒng)一級接口統(tǒng)一級接口, ,I/OI/O設(shè)備在擴充槽上設(shè)備在擴充槽上. .使用時,使用時,PORTPORT的值必須存放在的值必須存放在DXDX寄存器中。寄存器中。DXDX作為作為PORTPORT的地址的地址寄存器。寄存器。 2.2.在在ININ、OUT OU

14、T 指令中指令中, ,累加器被指定是累加器被指定是CPUCPU與與I/OI/O設(shè)備交換信息的唯一寄存器。設(shè)備交換信息的唯一寄存器。是使用長指令是使用長指令格式還是短格式格式還是短格式, ,由由I/OI/O設(shè)備的端口寬度決定。設(shè)備的端口寬度決定。1111 例例1 1:閱讀程序段,寫出程序段功能:閱讀程序段,寫出程序段功能 指令指令 指令操作說明指令操作說明IN ALIN AL,18H 18H ;18;18號端口內(nèi)容號端口內(nèi)容ALALOUT 20HOUT 20H,AL AL ;18;18號端口內(nèi)容號端口內(nèi)容2020號端口中。號端口中。MOV DXMOV DX,3F0H 3F0H ;3F0H ;3F

15、0H 號端口地址號端口地址DXDXIN ALIN AL,DX DX ;3F0H;3F0H號端口內(nèi)容號端口內(nèi)容ALAL MOV DXMOV DX,289H 289H ;289H;289H號端口地址號端口地址DXDXOUT DXOUT DX,AL AL ;3FH;3FH端口的內(nèi)容端口的內(nèi)容289H289H端口中。端口中。 程序功能程序功能: :將將18H18H端口的內(nèi)容寫到端口的內(nèi)容寫到20H20H端口端口中中, ,將將3F0H3F0H端口內(nèi)容寫到端口內(nèi)容寫到289H289H端口中。端口中。1212 8.38.3中斷傳送方式中斷傳送方式( (第第2 2節(jié)節(jié)) ) 中斷的基本概念中斷的基本概念 1.

16、1.中斷的定義中斷的定義 在程序運行中,系統(tǒng)出現(xiàn)了某種緊急事件,在程序運行中,系統(tǒng)出現(xiàn)了某種緊急事件,CPUCPU必須中止現(xiàn)行程序,轉(zhuǎn)去處理此緊急事件必須中止現(xiàn)行程序,轉(zhuǎn)去處理此緊急事件( (執(zhí)行中斷服務(wù)程序執(zhí)行中斷服務(wù)程序) ),并在處理完畢后再返回,并在處理完畢后再返回運行程序的運行程序的過程稱為中斷。過程稱為中斷。1313 中斷的作用:中斷的作用: (1 1)中斷是提高計算機工作效率的手段;)中斷是提高計算機工作效率的手段; (2 2)中斷技術(shù)是實時控制外圍設(shè)備的手段;)中斷技術(shù)是實時控制外圍設(shè)備的手段; (3 3)中斷技術(shù)是廣泛處理應(yīng)急事件的手段。)中斷技術(shù)是廣泛處理應(yīng)急事件的手段。

17、計算機中斷處理能力的強弱是反映其計算機中斷處理能力的強弱是反映其性能優(yōu)略性能優(yōu)略的的1 1個主要指標(biāo)。個主要指標(biāo)。1414 .1 8086 8086的中斷分類:的中斷分類: 非屏蔽中斷非屏蔽中斷 外部中斷外部中斷 (硬件中斷)(硬件中斷) 可屏蔽中斷可屏蔽中斷 內(nèi)部硬件中斷內(nèi)部硬件中斷 1515除法中斷除法中斷單步中斷單步中斷斷點中斷斷點中斷溢出中斷溢出中斷 內(nèi)部軟件中斷:內(nèi)部軟件中斷:INT nINT n內(nèi)部中斷內(nèi)部中斷1616INT n指令指令溢出溢出中斷中斷除法除法出錯出錯單步單步中斷中斷不可屏蔽中斷請求不可屏蔽中斷請求中斷邏輯中斷邏輯8259AIRQ0IRQ1IRQ2I

18、RQ3IRQ4IRQ5IRQ6IRQ7NMIINTRCPU斷點斷點中斷中斷內(nèi)部內(nèi)部 中斷中斷外外 部部 中斷中斷DMADMA中斷中斷 掉電中斷掉電中斷 協(xié)處理器中斷協(xié)處理器中斷 圖圖8.3 80868.3 8086中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)INT 3HINT 3HINT 1HINT 1HINT 4HINT 4HINT 0HINT 0H可屏蔽中斷請求可屏蔽中斷請求1717 1.1.INT INT 內(nèi)部中斷內(nèi)部中斷 引起內(nèi)部中斷的原因引起內(nèi)部中斷的原因 (1). (1). 執(zhí)行執(zhí)行INT INT 指令引起的中斷指令引起的中斷 (2). CPU (2). CPU 執(zhí)行有錯誤引起的中斷執(zhí)行有錯誤引起的中

19、斷 (3).(3).調(diào)試程序調(diào)試程序(Debug)(Debug)設(shè)置的中斷引起的中斷設(shè)置的中斷引起的中斷 內(nèi)部中斷內(nèi)部中斷有五種調(diào)用方式:有五種調(diào)用方式: INT 0 INT 0 除法中斷除法中斷(NMI),(NMI),執(zhí)行執(zhí)行DIVDIV或或IDIVIDIV指指令時產(chǎn)生溢出。令時產(chǎn)生溢出。 INT 1 INT 1 單步中斷單步中斷( (當(dāng)當(dāng)TF=1TF=1時時,CPU,CPU進入單操進入單操作,執(zhí)行作,執(zhí)行1 1條指令就停下來)條指令就停下來) INT 3 INT 3 斷點中斷斷點中斷可放在程序的任斷點中斷斷點中斷可放在程序的任和位置,程序執(zhí)行到斷點時會自動轉(zhuǎn)到和位置,程序執(zhí)行到斷點時會自動

20、轉(zhuǎn)到3 3號中斷服號中斷服務(wù)處理程序,廣泛用于程序調(diào)試過程)。務(wù)處理程序,廣泛用于程序調(diào)試過程)。 INT 4 INT 4 溢出中斷(溢出中斷(OF=1OF=1時時, ,產(chǎn)生溢出)產(chǎn)生溢出) INT N INT N 軟件中斷軟件中斷; ;由系統(tǒng)或用戶定義的軟由系統(tǒng)或用戶定義的軟件中斷。件中斷。1818 由系統(tǒng)或用戶定義的軟件中斷,有三種:由系統(tǒng)或用戶定義的軟件中斷,有三種:. .由系統(tǒng)提供的由系統(tǒng)提供的I/OI/O設(shè)備服務(wù)程序:設(shè)備服務(wù)程序: INT 10H :INT 10H :啟動顯示器啟動顯示器I/OI/O接口中斷服務(wù)程序。接口中斷服務(wù)程序。 INT 13H :INT 13H :啟動磁盤啟

21、動磁盤I/OI/O接口中斷服務(wù)程序。接口中斷服務(wù)程序。.DOS.DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用 INT 21HINT 21H. .用戶自定義中斷用戶自定義中斷: :使用保留的中斷類型碼使用保留的中斷類型碼擴充軟件中斷擴充軟件中斷, ,設(shè)計中斷向量表。設(shè)計中斷向量表。1919 2.2.外部中斷外部中斷( (硬件中斷硬件中斷) ) 外部中斷由可屏蔽中斷和不可屏蔽中斷組成。外部中斷由可屏蔽中斷和不可屏蔽中斷組成。 INTRINTR( (可屏蔽中斷可屏蔽中斷) )是由外部設(shè)備引起。它是由外部設(shè)備引起。它受受標(biāo)志標(biāo)志IFIF的影響和控制。的影響和控制。 8259A8259A可接收可接收8 8級設(shè)備中斷級

22、設(shè)備中斷IR0IR0IR7IR7,其中,其中IR0IR0優(yōu)先級最高,優(yōu)先級最高,IR1IR1次高,次高,IR7IR7最低;主片最低;主片8259A8259A接收接收的中斷設(shè)備及優(yōu)先級從高到低順序為的中斷設(shè)備及優(yōu)先級從高到低順序為: : IR0 IR1 IR2 IR3 IR0 IR1 IR2 IR3定時器定時器 鍵盤鍵盤 保留保留 串口串口2 2 IR4 IR5 IR6 IR7 IR4 IR5 IR6 IR7 串口串口1 1 硬盤硬盤 軟盤軟盤 打印機打印機2020 NMINMI( (不可屏蔽中斷不可屏蔽中斷) )是由意外事件或特定安是由意外事件或特定安排的事件引起。它排的事件引起。它不受標(biāo)志不

23、受標(biāo)志IFIF的影響和控制。的影響和控制。NMINMI出現(xiàn)后,出現(xiàn)后,CPU CPU 必須處理。必須處理。 內(nèi)存奇偶錯內(nèi)存奇偶錯 I/O I/O 總線奇偶錯總線奇偶錯 NMINMI中斷源中斷源 協(xié)處理器協(xié)處理器 中斷中斷 系統(tǒng)掉電系統(tǒng)掉電 DMA DMA 中斷中斷 2121 8.3.2 PC/XT8.3.2 PC/XT的向量表的向量表 向量表又稱為指針表。指針表用來按中斷類向量表又稱為指針表。指針表用來按中斷類型號依次存放型號依次存放256256種中斷源的對應(yīng)的中斷服務(wù)種中斷源的對應(yīng)的中斷服務(wù)程程序的首地址。序的首地址。每個中斷類型號對應(yīng)每個中斷類型號對應(yīng)1 1個個4B4B的存儲的存儲區(qū),用來

24、存放區(qū),用來存放3232位的中斷向量(中斷服務(wù)程序首位的中斷向量(中斷服務(wù)程序首地址),圖地址),圖8.5 8086/8088 8.5 8086/8088 的中斷向量表如下:的中斷向量表如下:2222類型類型0(0(除法錯除法錯) )類型類型1(1(單步單步) )類型類型2 (NMI)2 (NMI)類型類型3 (3 (斷點斷點) )類型類型4 (4 (溢出溢出) )類型類型5 5類型類型3131類型類型3232類型類型25525500000H00004H00008H0000CH00010H00014H0007CH00080H003FCHIPCS一般不允許一般不允許用戶改作其用戶改作其它用途它用

25、途中斷的入口已中斷的入口已由系統(tǒng)定義,由系統(tǒng)定義,不允許用戶作不允許用戶作任何修改任何修改INT nINT n指令引入;指令引入;INTRINTR引腳引入;引腳引入;中斷控制器引入。中斷控制器引入。系統(tǒng)專用系統(tǒng)專用系統(tǒng)保留(備用)系統(tǒng)保留(備用)用戶使用用戶使用(5 5個)個)(2727個)個)(224224個)個)2323 表表8.2 BM PC/XT8.2 BM PC/XT的中斷向量表的中斷向量表( (書中無書中無) ) 地 址 類 型 碼 中 斷 名 稱 地 址 類 型 碼 中 斷 名 稱 0 3 0 除 法 出 錯 6 0 6 3 1 8 常 駐 B A S IC 入 口 4 7 1

26、單 步 6 4 6 7 1 9 引 導(dǎo) 程 序 入 口 8 B 2 不 可 屏 蔽 6 8 6 B 1 A 時 間 調(diào) 用 C F 3 斷 點 6 C 6 F 1 B 鍵 盤 C T R -B R E A K 控 制 1 0 1 3 4 溢 出 7 0 7 3 1 C 定 時 器 報 時 1 4 1 7 5 打 印 屏 蔽 7 4 7 7 1 D 顯 示 器 參 數(shù) 表 1 8 1 B 6 保 留 7 8 7 B 1 E 軟 盤 參 數(shù) 表 1 C 1 F 7 保 留 7 C 7 F 1 F 字 符 點 陣 結(jié) 構(gòu) 參 數(shù) 2 0 2 3 8 定 時 器 8 0 8 3 2 0 程 序 結(jié) 束

27、 , 返 回 D O S 2 4 2 7 9 鍵 盤 8 4 8 7 2 1 系 統(tǒng) 功 能 調(diào) 用 2 8 2 B A 保 留 8 8 8 B 2 2 結(jié) 束 地 址 2 C 2 F B 通 信 口 2 8 C 8 F 2 3 C T R L -B R E A K 退 出 地 址 3 0 3 3 C 通 信 口 1 9 0 9 3 2 4 標(biāo) 準(zhǔn) 錯 誤 出 口 地 址 3 4 3 7 D 硬 盤 9 4 9 7 2 5 絕 對 磁 盤 讀 3 8 3 B E 軟 盤 9 8 9 B 2 6 絕 對 磁 盤 寫 3 C 3 F F 打 印 機 9 C 9 F 2 7 程 序 結(jié) 束 , 駐

28、留 內(nèi) 存 4 0 4 3 1 0 視 頻 顯 示 I/O 調(diào) 用 A 0 F F 2 8 3 F 為 D O S 保 留 4 4 4 7 11 裝 置 檢 查 調(diào) 用 1 0 0 1 7 F 4 0 5 F 保 留 4 8 4 B 1 2 存 儲 器 容 量 檢 查 調(diào) 用 1 8 0 1 9 F 6 0 6 7 為 用 戶 軟 中 斷 4 C 4 F 1 3 軟 盤 /硬 盤 /I/O 調(diào) 用 1 A 0 1 F F 6 8 7 F 不 用 5 0 5 3 1 4 通 信 I/O 調(diào) 用 2 0 0 2 1 7 8 0 8 5 B A S IC 使 用 5 4 5 7 1 5 盒 式 磁

29、帶 I/O 調(diào) 用 2 1 8 2 C 3 8 6 F 0 B A S IC 解 釋 程 序 5 8 5 B 1 6 鍵 盤 I/O 調(diào) 用 3 C 4 3 F F F 1 F F 未 用 5 C 5 F 1 7 打 印 機 I/O 調(diào) 用 2424 8.3.3 8.3.3 中斷過程中斷過程(第(第3 3節(jié))節(jié)) 中斷發(fā)生時,由中斷機構(gòu)自動完成下列動作。中斷發(fā)生時,由中斷機構(gòu)自動完成下列動作。 (1).(1).取中斷類型號取中斷類型號N N; (2).(2).標(biāo)志寄存器內(nèi)容進棧;標(biāo)志寄存器內(nèi)容進棧; (3).(3).當(dāng)前當(dāng)前CSCS內(nèi)容進棧;內(nèi)容進棧; (4).(4).當(dāng)前當(dāng)前IPIP內(nèi)容進棧

30、;內(nèi)容進棧; (5). (5). 置置 IF=0IF=0,TF=0TF=0 (6). (6). 讀中斷向量表讀中斷向量表, ,形成中斷處理程序入口形成中斷處理程序入口地址:地址:(4(4N) IP, (4N) IP, (4N+2) CS;N+2) CS; (7). (7). 轉(zhuǎn)中斷處理程序轉(zhuǎn)中斷處理程序2525斷點進棧斷點進棧(斷點現(xiàn)場進棧)(斷點現(xiàn)場進棧)(標(biāo)志位清(標(biāo)志位清0 0) 8.3.4 8.3.4 中斷優(yōu)先級和中斷嵌套中斷優(yōu)先級和中斷嵌套 中斷優(yōu)先級中斷優(yōu)先級: :按照任務(wù)的輕重緩急給中斷按照任務(wù)的輕重緩急給中斷源排隊。當(dāng)同時出多個中斷時源排隊。當(dāng)同時出多個中斷時, ,優(yōu)先級高的先

31、優(yōu)先級高的先執(zhí)行。執(zhí)行。 60866086規(guī)定的優(yōu)先級次序為規(guī)定的優(yōu)先級次序為優(yōu)先級高優(yōu)先級高 軟件中斷中的除法中斷軟件中斷中的除法中斷(INT O,INT n)(INT O,INT n) 非屏蔽中斷非屏蔽中斷(NMI)(NMI) 可屏蔽中斷可屏蔽中斷(INTR(INTR) ) 低低 單步中斷單步中斷 (INT 1H(INT 1H) ) 2626 中斷嵌套中斷嵌套 正在執(zhí)行的中斷處理程序,被其他中斷源中正在執(zhí)行的中斷處理程序,被其他中斷源中斷,這種情況稱為中斷嵌套。嵌套深度(層數(shù))斷,這種情況稱為中斷嵌套。嵌套深度(層數(shù))沒有限制,但受到堆棧容量的限制。沒有限制,但受到堆棧容量的限制。 設(shè)子程

32、序的優(yōu)先級為設(shè)子程序的優(yōu)先級為 IR1IR1IR2IR2,則中斷嵌,則中斷嵌套過程的示意圖為套過程的示意圖為 2727 主程序主程序 IR2 IR1IR2 IR12828IRETIRET調(diào)調(diào)IRETIRET用用子子程程序序用用程程調(diào)調(diào)子子序序中中斷斷返返回回中中斷斷回回返返一一般般調(diào)調(diào)用用嵌嵌套套調(diào)調(diào)用用 8.3.5 8.3.5 中斷程序舉例中斷程序舉例DS DS 中斷入口地址段基址,中斷入口地址段基址, DX DX 段內(nèi)偏移地址,段內(nèi)偏移地址,AL AL 類型號,類型號, AH AH 25H25H(功能號),(功能號), 例例1 1 中斷向量的符號名為中斷向量的符號名為NEWINTNEWIN

33、T,利用,利用 DOSDOS的的 2525號功能為號功能為NEWINTNEWINT設(shè)置中斷向量設(shè)置中斷向量。2929PUSHPUSH DS DS ;當(dāng)前;當(dāng)前DSDS進棧進棧MOV AX, SEG NewIntMOV AX, SEG NewInt;取取NewIntNewInt段基址段基址MOV DS, AXMOV DS, AXMOV DX, OFFSET NewIntMOV DX, OFFSET NewInt ;取;取NewIntNewInt偏移地址偏移地址MOV AL, NMOV AL, N ; NewIntNewInt的的中斷類型號送中斷類型號送ALALMOV AH,25HMOV AH,2

34、5H ;設(shè)置中斷向量;設(shè)置中斷向量INT 21HINT 21HPOP DS POP DS ;DSDS出棧出棧解:根據(jù)題意,編寫程序段如下解:根據(jù)題意,編寫程序段如下3030 例例2. 2. 輪流查詢輪流查詢3 3個數(shù)據(jù)輸入設(shè)備的程序段。個數(shù)據(jù)輸入設(shè)備的程序段。 INPUT1: IN AL,STAT1 ;INPUT1: IN AL,STAT1 ;讀取設(shè)備讀取設(shè)備1 1狀態(tài)狀態(tài) TEST AL,20H ;TEST AL,20H ;測試設(shè)備測試設(shè)備1 1是否已就緒是否已就緒 JZ DEV2 ;JZ DEV2 ;未就緒,轉(zhuǎn)向設(shè)備未就緒,轉(zhuǎn)向設(shè)備2 2 CALL FAR PTR PROC1 ; CALL FAR PTR PROC1 ;已就緒,調(diào)已就緒,調(diào) ;用;用PROC1PROC1設(shè)備設(shè)備1 1輸入數(shù)據(jù)輸入數(shù)據(jù) 3131DEV2DEV2:IN ALIN AL,STAT2 STAT2 ; ;讀取設(shè)備讀取設(shè)備2 2狀態(tài)狀態(tài) TEST AL,20H TEST AL,20H ; ;測試設(shè)備測試設(shè)備2 2是否已就緒是否已就緒 JZ DEV3 JZ DEV3 ; ;未就緒,轉(zhuǎn)向設(shè)備未就緒,轉(zhuǎn)向設(shè)備3 3 CALL FAR PTR PROC2 CALL FAR PTR PROC2 ; ;已就緒已就緒, ,調(diào)調(diào)用用 ;PROC2PROC2設(shè)備設(shè)備2 2輸入數(shù)據(jù)輸入數(shù)據(jù) DEV3DEV3:I

溫馨提示

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

評論

0/150

提交評論