微機原理與接口技術(shù)7.ppt_第1頁
微機原理與接口技術(shù)7.ppt_第2頁
微機原理與接口技術(shù)7.ppt_第3頁
微機原理與接口技術(shù)7.ppt_第4頁
微機原理與接口技術(shù)7.ppt_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術(shù) 第7章中斷技術(shù) 主編 周國運機械工業(yè)出版社2011 9 本章內(nèi)容7 1中斷基本概念7 2微機中斷系統(tǒng)7 3微機中斷處理7 4可編程中斷控制器8259A7 5中斷應(yīng)用舉例 本章以現(xiàn)代微機為對象 講述中斷概念 微機中斷系統(tǒng) 中斷過程 中斷控制器8259A 以及中斷的應(yīng)用 通過本章學習 為理解中斷在各種外設(shè)中的作用 以及掌握中斷在各種微機系統(tǒng)中應(yīng)用打下基礎(chǔ) 7 1中斷基本概念 一 中斷和斷點中斷是一種過程 指CPU正常執(zhí)行的程序被某種臨時發(fā)生的事件所打斷 當前程序暫時停止執(zhí)行 CPU轉(zhuǎn)去處理所發(fā)生的事件 處理完畢再返回繼續(xù)執(zhí)行暫時停止的程序 這一過程稱為中斷 二 中斷源和中斷類型碼三 中斷優(yōu)先級和中斷嵌套四 中斷服務(wù)程序和中斷向量 中斷請求 中斷服務(wù)程序 中斷前的程序 中斷后的程序 斷點 7 2微機中斷系統(tǒng) 微機中斷系統(tǒng)的演變 一是中斷系統(tǒng)的結(jié)構(gòu)有較大的變化 使中斷能夠適用于多CPU 二是中斷響應(yīng)過程中尋找中斷服務(wù)程序的方法不同 使其適用于虛擬地址 分頁方式的存儲器管理模式 三是中斷源增加了新的內(nèi)容 就是異常中斷 四是增加了外中斷 硬中斷 的數(shù)量 由原來的8個 15個增加到了24個 32個或更多 7 2 1微機中斷系統(tǒng)結(jié)構(gòu) 一 早期微機中斷系統(tǒng)結(jié)構(gòu) 外中斷請求 非屏蔽中斷 CPU 指令中斷 異常中斷 CPU中斷邏輯 故障 陷阱 中止 8259A 主片 8259A 從片 可屏蔽中斷 外中斷請求 7 2微機中斷系統(tǒng) 二 現(xiàn)代微機中斷系統(tǒng)結(jié)構(gòu) 7 2 2微機中斷分類 在80 x86系列微機系統(tǒng)中 最多可以達到256個中斷 中斷類型 中斷號 為0 255 綜合考慮中斷源的空間位置和隨機性 把中斷分成三類 外部中斷指令中斷異常中斷這三種中斷具有明顯的區(qū)別 7 2微機中斷系統(tǒng) 一 外部中斷外部中斷也稱為硬件中斷外中斷包括非屏蔽中斷NMI和可屏蔽中斷INTR非屏蔽中斷NMI不受CPU標志寄存器的控制 CPU指定NMI的類型是2 可屏蔽中斷INTR受CPU標志寄存器中斷允許位IF的控制 可屏蔽中斷INTR輸入端用于接受所有外設(shè)中斷的請求 外部中斷的發(fā)生與外部設(shè)備的行為有關(guān) 與CPU所運行的程序沒有關(guān)系 外部中斷是隨機的 7 2微機中斷系統(tǒng) 二 指令中斷使用中斷指令 INTn 實現(xiàn) n是中斷類型 如INT21H INT16H 各種DOS功能調(diào)用 CPU保留的指令中斷 類型3 斷點中斷 執(zhí)行INT3或INT 類型4 溢出中斷 執(zhí)行INT4或INTO 類型5 檢查數(shù)組下標超限中斷 指令中斷有以下特點 不具有隨機性 而是主動調(diào)用中斷服務(wù)程序 中斷類型號是指令中給出的或隱含的 不受處理器標志寄存器的控制 7 2微機中斷系統(tǒng) 三 異常中斷CPU在執(zhí)行指令的過程中 出現(xiàn)錯誤或其它不正常情況稱為異常 分成三種 故障 陷阱和中止 1 故障 fault 異常故障是出現(xiàn)在指令完成之前的異常 并且認為故障一般是可以排除的 故障主要包括觸發(fā)錯誤 無效操作碼 段不存在 堆棧異常 一般型保護錯誤及頁面出錯等 2 陷阱 trap 異常陷阱是在指令完成之后出現(xiàn)的異常 如單步運行 7 2微機中斷系統(tǒng) 3 中止 abort 異常中止是由系統(tǒng)硬件故障 系統(tǒng)信息表中的非法數(shù)據(jù)或數(shù)據(jù)的不一致性產(chǎn)生的 4 異常中斷的特點異常中斷具有以下特點 雖然異常中斷與所執(zhí)行的指令有關(guān) 但也是隨機性的 除了單步中斷以外 異常中斷類型號是由Intel公司分配確定的 異常中斷不受處理器標志寄存器的控制 7 2 3微機中斷源 隨著微機技術(shù)的發(fā)展 微機中斷的內(nèi)容 處理的方法 采用的技術(shù)都發(fā)生了變化 本節(jié)介紹微機中斷內(nèi)容的發(fā)展變化 主要介紹 PC XT微機的中斷高檔微機的中斷早期微機的外部中斷現(xiàn)代微機的外部中斷 7 2微機中斷系統(tǒng) 一 PC XT微機中斷表7 1給出了PC XT微機 包括PC微機 用8088CPU 所管理的中斷源 對應(yīng)的中斷號 中斷類型和產(chǎn)生中斷的條件 7 2微機中斷系統(tǒng) 二 高檔微機中斷表7 2給出了高檔微機 80386及以上 所使用的中斷源 對應(yīng)的中斷號 中斷類型和產(chǎn)生中斷的條件 表中給出的是保護模式和虛擬86模式的中斷源 7 2微機中斷系統(tǒng) 7 2微機中斷系統(tǒng) 三 早期微機的外中斷表7 3給出了從PC XT到Pentium微機中的外中斷源 中斷號 以及所連接的8259A 這些中斷均由可編程中斷控制器8259A管理 7 2微機中斷系統(tǒng) 四 現(xiàn)代微機的外中斷表7 4給出了現(xiàn)代微機 PentiumII之后 系統(tǒng)中的外中斷源 使用高級可編程中斷控制器管理外中斷 可管理24個或者更多的I O中斷 7 3微機中斷處理 本節(jié)討論中斷過程 包括中斷請求 中斷響應(yīng) 中斷處理和中斷返回4個階段中斷服務(wù)程序的調(diào)用過程 包括實地址模式和虛擬模式下的調(diào)用過程 7 3 1微機中斷過程 微機中斷過程分為4個階段 中斷請求 中斷響應(yīng) 中斷處理和中斷返回 中斷返回對程序員來說很簡單 不再討論 因此 也經(jīng)常說中斷過程分為三個階段 中斷請求中斷響應(yīng)中斷處理 7 3微機中斷處理 一 中斷請求一個中斷的開始源于中斷源的請求 不同類型的中斷 中斷請求的方式不一樣 外中斷 由設(shè)備主動發(fā)出了中斷請求信號 指令中斷 源于執(zhí)行了INTn指令 異常中斷 是由于CPU在運行過程中出現(xiàn)了各種各樣的錯誤 由此而引起異常中斷 7 3微機中斷處理 二 中斷響應(yīng)1 外中斷響應(yīng)條件 1 可屏蔽外中斷的響應(yīng)條件 沒有遇到更高級的可屏蔽中斷請求 CPU不是正在執(zhí)行更高級的中斷 且APIC或PIC未向CPU發(fā)出中斷請求 CPU處于中斷允許狀態(tài) 未遇到總線請求和比可屏蔽中斷更高的中斷請求 當前指令執(zhí)行結(jié)束 2 非屏蔽中斷的響應(yīng)條件 未遇到總線請求和比本中斷更高級的中斷請求 當前指令執(zhí)行結(jié)束 7 3微機中斷處理 2 中斷響應(yīng)過程 CPU獲取中斷類型碼 即中斷號 指令中斷 中斷號包含在指令中異常中斷和非屏蔽中斷 中斷號由CPU給出可屏蔽中斷 中斷號由PIC或APIC給出 標志寄存器進棧 斷點進棧 對標志寄存器中的IF和TF清0 根據(jù)中斷號 通過查中斷向量表或中斷描述符表 找到對應(yīng)的中斷向量 即中斷服務(wù)程序的入口地址 段地址和偏移地址 裝入CS和IP EIP中 使CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序 7 3微機中斷處理 三 中斷處理中斷處理過程就是執(zhí)行中斷服務(wù)程序 不同的中斷類型 不同的中斷對象 所處理的具體內(nèi)容不一樣 但中斷服務(wù)程序有相同的結(jié)構(gòu) 如右圖所示 7 3 2中斷服務(wù)程序的調(diào)用過程 現(xiàn)代微機有 實地址模式 保護模式和虛擬86模式 三種工作模式 虛擬86模式是在保護模式下的一種8086模擬 相當于保護模式下的一個任務(wù) 使現(xiàn)代微機能夠運行早期的8086軟件 實地址模式是以8086的機制工作 使高檔微機以一個高級的8086CPU進行工作 下面分別討論8086微機 實地址模式和保護模式三種情況在中斷時 如何通過中斷類型碼轉(zhuǎn)入中斷服務(wù)程序 7 3微機中斷處理 一 8086轉(zhuǎn)入中斷服務(wù)程序的過程1 中斷向量表每個中斷向量占4個字節(jié) CPU最多管理256個中斷 總共占1024個字節(jié) 即1KB 2 設(shè)置中斷向量對n號中斷 中斷向量在表中位置 段地址為0 偏移地址為n 4 先寫中斷向量的偏移地址 再寫中斷向量的段地址 7 3微機中斷處理 二 實地址模式下轉(zhuǎn)入中斷服務(wù)程序的方法實地址模式下轉(zhuǎn)入中斷服務(wù)程序的方法與8086微機是一樣的 發(fā)生中斷后 根據(jù)中斷號 在中斷向量表中找到中斷向量 然后轉(zhuǎn)入中斷服務(wù)程序 中斷向量表和中斷向量與8086的也是一樣的 7 3微機中斷處理 三 保護模式下轉(zhuǎn)入中斷服務(wù)程序的方法 1 首先從中斷控制器PIC或APIC得到中斷類型碼 2 根據(jù)中斷類型碼 在中斷描述符表中找到對應(yīng)中斷號的中斷門或陷阱門 異常 描述符 3 從門描述符中找到中斷服務(wù)程序段的段選擇符和段偏移地址 4 根據(jù)段選擇符 到全局或局部描述符表中讀取中斷服務(wù)程序段的描述符 在描述符中得到中斷服務(wù)程序段的基地址 5 轉(zhuǎn)入中斷服務(wù)程序 門是一種轉(zhuǎn)換及跳轉(zhuǎn)機構(gòu) 7 3微機中斷處理 1 中斷描述符表中斷描述符表中存放的是指示找到中斷服務(wù)程序的中斷門或陷阱門描述符 門描述符在表中也是按中斷號從小到大排列 每個門描述符為8個字節(jié) 門描述符在表中的偏移與中斷號是8倍的關(guān)系 保護模式下也是最多管理256個中斷 描述符表最大為2KB 中斷描述符表的位置和大小 由中斷描述符表寄存器IDTR控制 7 3微機中斷處理 2 門描述符和程序段描述符 程序段描述符 門描述符 7 4可編程中斷控制器8259A 主要特性 識別中斷源 判優(yōu) 提供中斷類型碼 每片能直接管理8級中斷 可編程選擇多種工作方式 可級聯(lián) 最多用9片主從結(jié)構(gòu)管理64級中斷 NMOS工藝 單一 5v電源本節(jié)討論8259A的引腳信號 內(nèi)部結(jié)構(gòu)域工作原理中斷管理方式 寄存器及初始化 7 4 18259A引腳信號 分為三類 與CPU的接口信號 D7 D0 A0 INT 與外設(shè)的接口信號 IR7 IR0級聯(lián)接口信號 CAS2 CAS0 7 4 28259A內(nèi)部結(jié)構(gòu)與工作原理 D0 D7 A0CAS0CAS1CAS2 IR0 IR7 數(shù)據(jù)總線緩沖器 中斷服務(wù)寄存器 讀 寫控制邏輯 級聯(lián)緩沖 比較器 中斷請求寄存器 優(yōu)先級裁決器 INT 中斷屏蔽寄存器 中斷控制邏輯 7 4可編程中斷控制器8259A 8259A的工作過程 外中斷請求 IRn變高 IRR相應(yīng)位置1 判斷屏蔽 判斷優(yōu)先級 中斷優(yōu)先級最高時向CPU發(fā)出中斷請求信號 CPU響應(yīng)中斷時 向8259A發(fā)送兩個負脈沖 對第一個負脈沖 8259A把中斷服務(wù)寄存器ISR中的對應(yīng)位置1 并把IRR中的相應(yīng)位清0 對第二個負脈沖 8259A向數(shù)據(jù)總線發(fā)送中斷類型碼 并且在自動結(jié)束中斷方式下 第二個脈沖結(jié)束時對ISR的相應(yīng)位清0 7 4 38259A的中斷管理方式 8259A的中斷管理功能強大 使用靈活 主要涉及6個方面的管理內(nèi)容 或者叫控制內(nèi)容 中斷觸發(fā)方式控制中斷優(yōu)先級方式控制中斷屏蔽方式控制中斷結(jié)束方式控制查詢方式控制總線連接方式控制每一個方面的控制又有幾種形式可供選擇 7 4可編程中斷控制器8259A 一 中斷觸發(fā)方式 1 高電平觸發(fā) 2 上升沿觸發(fā)二 中斷優(yōu)先級方式 1 全嵌套方式 2 特殊全嵌套方式 3 優(yōu)先級自動循環(huán)方式 4 優(yōu)先級特殊循環(huán)方式 7 4可編程中斷控制器8259A 三 中斷屏蔽方式 1 普通屏蔽方式 2 特殊屏蔽方式四 中斷結(jié)束方式 1 中斷自動結(jié)束方式 2 一般中斷結(jié)束方式 3 特殊中斷結(jié)束方式 7 4可編程中斷控制器8259A 五 中斷查詢方式是編程查詢8259A是否有中斷請求 以及中斷請求類型碼 查詢方式可以替代硬件方式向CPU請求和傳送類型碼 也可以用查詢方式擴展更多的8259A 如系統(tǒng)超過9個8259A 1個主片 8個從片 其它的8259A必須用查詢方式得到中斷請求類型碼 六 連接系統(tǒng)總線方式 1 緩沖方式 2 非緩沖方式 7 4 48259A的寄存器及初始化 8259A的寄存器分為兩組 一組叫初始化命令字寄存器ICW ICW1 ICW4 ICW是在系統(tǒng)啟動時由初始化程序設(shè)置 ICW一旦設(shè)定 一般在系統(tǒng)工作過程中不再改變 另一組叫操作命令字寄存器OCW OCW1 OCW4 CPU用這些命令字來控制8259A執(zhí)行不同的操作 如中斷屏蔽 中斷結(jié)束 優(yōu)先級循環(huán)和中斷狀態(tài)的讀出 查詢 OCW可在初始化之后的任何時刻寫入8259A 并可多次設(shè)置 7 4可編程中斷控制器8259A 7 4可編程中斷控制器8259A 一 初始化命令字ICW1 ICW41 芯片特性命令字ICW1D4 D4 1是ICW1的特征位 表示對ICW1操作 LTIM 中斷請求信號觸發(fā)方式 0上升沿 1高電平觸發(fā) ADI 8086 8088不用 可為任意值 SNGL 單片 級聯(lián)方式設(shè)置位 0級聯(lián) 1單片 IC4 指示是否使用ICW4 在8086 8088設(shè)為1 7 4可編程中斷控制器8259A 2 中斷類型碼命令字ICW2只需要設(shè)置高5位T7 T3 即D7 D3 這5位是中斷類型碼的高5位 D2 D0可以是任意值 中斷類型碼的低3位是由中斷請求的輸入引腳IR0 IR7決定 例如 ICW2為20H 則8259A的IR0 IR7對應(yīng)的8個中斷類型碼為20H 21H 22H 23H 24H 25H 26H 27H 7 4可編程中斷控制器8259A 3 級聯(lián)命令字ICW3 SNGL 0時 1 級聯(lián)時主片命令字ICW3格式S7 S0分別對應(yīng)主片IR7 IR0引腳是否接有從片8259A 1表示接有從片8259A 0表示沒有接從片8259A 2 級聯(lián)時從片命令字ICW3格式 7 4可編程中斷控制器8259A 4 工作命令字ICW4D7 D5 ICW4的標識碼 總為0 SFNM 中斷嵌套方式設(shè)置位 1表示工作于特殊全嵌套方式 0為一般全嵌套方式 BUF 緩沖方式設(shè)置位 1緩沖方式 引腳為輸出 0工作于非緩沖方式 引腳為輸入M S 在緩沖方式下主 片設(shè)置位 1表示主片 0為從片 當BUF 0時 M S無意義 AEOI 中斷結(jié)束方式設(shè)置位 1自動中斷結(jié)束 7 4可編程中斷控制器8259A 二 8259A的初始化規(guī)則初始化規(guī)則如右圖例7 1以IBM PC XT微機為例 試對其8259A進行初始化設(shè)置 其使用條件為 上升沿觸發(fā) 單片8259A 寫ICW4 優(yōu)先級為一般全嵌套方式 緩沖方式連接 不自動結(jié)束中斷 CPU為8086 8088 中斷類型碼為08H 09H 0AH 0FH 端口地址分別20H 21H 分析 對ICW1 上升沿觸發(fā)LTIM 0 單片SNGL 1 寫ICW4 IC4 1 另ICW1的標志D4 1 所以ICW1 00010011B 13H 7 4可編程中斷控制器8259A 對ICW2 中斷類型碼為08H 09H 0AH 0FH 因此ICW2 00001000B 08H不設(shè)置ICW3 單片 對ICW4 優(yōu)先級為一般全嵌套方式 D4 0 緩沖連接 D3 1 不自動結(jié)束中斷 D1 0 CPU為8086 8088 D0 1 緩沖方式下的主從標志位M S D2 為1 所以ICW4 00001101B 0DH 初始化程序段 MOVAL 13HOUT20H AL 寫ICW1MOVAL 08HOUT21H AL 寫ICW2MOVAL 0DHOUT21H AL 寫ICW4 7 4可編程中斷控制器8259A 三 8259操作命令字OCW1 OCW31 中斷屏蔽命令字OCW1M0 M7分別對應(yīng)中斷源IR0 IR7 如某位Mi 1 將屏蔽相應(yīng)的中斷源IRi 反之 Mi 0則清除屏蔽 用OCW1屏蔽某個中斷源IR 不應(yīng)該影響其它中斷源IR的屏蔽位 因此 在屏蔽 或開放某中斷源 需要先讀出OCW1的值 然后對相應(yīng)位做邏輯1或 或?qū)ο鄳?yīng)位做邏輯0與 7 4可編程中斷控制器8259A 例7 2若要屏蔽IR1 IR4和IR5引腳上的中斷請求 而讓其余的中斷請求得到允許 試確定其中斷屏蔽操作命令字OCW1 并將其寫入奇地址21H處 根據(jù)題意OCW1 00110010B 32H 寫OCW2的指令為 MOVAL 32HOUT21H AL 7 4可編程中斷控制器8259A 2 中斷結(jié)束與優(yōu)先級循環(huán)方式命令字OCW2SL 決定L2 L0位是否有效 SL 1 L2 L0有效L2 L0 當SL 1時 用來指定OCW2的操作作用于哪一級IR L2 L0的值與IR級別對應(yīng) 即 000 001 010 111分別對應(yīng)于IR0 IR1 IR2 IR7 R 中斷優(yōu)先級循環(huán)方式控制位 R 1為優(yōu)先級循環(huán)方式 當SL 0時為優(yōu)先級自動循環(huán)方式 當SL 1時為優(yōu)先級特殊循環(huán)方式 EOI 中斷結(jié)束命令位 D4 D3 D4 D3為0是OCW2的特征位 7 4可編程中斷控制器8259A 7 4可編程中斷控制器8259A 例7 3若某8259A的OCW2設(shè)置為11000011B 試分析此操作命令字所確定的操作方式 并將其寫入偶地址20H處 根據(jù)OCW2的格式 該命令字確定8259A為特殊循環(huán)優(yōu)先級 IR3優(yōu)先級為最低 從高到低的優(yōu)先級次序為IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3 寫OCW2的程序指令為 MOVAL 0C3HOUT20H AL 7 4可編程中斷控制器8259A 3 屏蔽與讀狀態(tài)命令字OCW3OCW3功能有三 控制8259A的中斷屏蔽 設(shè)置中斷查詢方式 設(shè)置讀8259A內(nèi)部寄存器命令 ESMM 特殊屏蔽方式允許位 ESMM 1 SMM有效 SMM 特殊屏蔽方式位 1為特殊屏蔽方式 D4 D3 D4 0 D3 1是寫OCW3的特征位 RR 讀寄存器命令 1允許讀IRR和ISR RIS 讀IRR或ISR的選擇位 1讀ISR 0讀IRR P 查詢方式位 P 0為非查詢方式 P 1 7 4可編程中斷控制器8259A 命令字OCW3的查詢字格式I為中斷請求狀態(tài)標志 0表示無中斷請求 1表示有中斷請求 W2 W0為中斷請求最高級的編碼查詢方法為 首先對OCW3的P位寫1 接著從偶地址口讀 讀出的便是OCW3的查詢字 程序員根據(jù)查詢字確定是否有中斷請求 以及中斷請求的編碼和中斷類型號 進而執(zhí)行中斷服務(wù)程序 7 4 58259A的級聯(lián) 在計算機系統(tǒng)中用一主片8259A與CPU相連 主片8259A的8個中斷請求輸入引腳如果接有從片8259A 此稱為級聯(lián) 從片最多可以接8個 在級聯(lián)結(jié)構(gòu)中 從片的INT輸出端接至主片的某個IRi輸入端 由主片的INT向CPU發(fā)中斷請求 所有8259A的CAS2 CAS1 CAS0互連 主片為輸出信號 從片為輸入信號 這三條信號線的編碼用于選擇從片 級聯(lián)系統(tǒng)中 各8259A必須各自進行完整的初始化過程 以便設(shè)置各自的工作狀態(tài) 在中斷結(jié)束時 要發(fā)兩次EOI命令 分別使主片和相應(yīng)的從片執(zhí)行中斷結(jié)束命令 7 4可編程中斷控制器8259A 日時鐘鍵盤串口2串口1并口2軟盤并口1 實時鐘用戶中斷保留保留保留協(xié)處理器硬盤保留 A0D7 D0INT A0D7 D0INTCAS0CAS1CAS2 去接系統(tǒng)總線 8259A 主片 8259A 從片 Vcc 接譯碼器 INTR 接譯碼器 IR0IR1IR2IR3IR4IR5IR6IR7CAS0CAS1CAS2 IR0IR1IR2IR3IR4IR5IR6IR7 圖7 20微機中外中斷8259A應(yīng)用示意圖 7 5中斷應(yīng)用舉例 7 5 1指令中斷應(yīng)用一 指令中斷應(yīng)用程序一個簡單的指令中斷應(yīng)用程序 主程序 1 設(shè)置中斷向量 2 設(shè)置DS指向應(yīng)用程序的數(shù)據(jù)段 3 指令中斷調(diào)用 中斷服務(wù)程序 簡單地顯示一個字符串 表明進入到了中斷服務(wù)程序 通過本例 主要是示范中斷服務(wù)程序的編寫方法和中斷向量的設(shè)置方法 程序如下 7 5中斷應(yīng)用舉例 DSEGSEGMENT 定義數(shù)據(jù)段STRINGDB Thisisinterruptprogram 0AH 0DH 定義字符串數(shù)據(jù)DSEGENDSCSEGSEGMENT 定義代碼段MAINPROCFAR 定義主程序ASSUMECS CSEG DS DSEGMOVAX 0 準備設(shè)置中斷向量MOVDS AX 中斷向量段地址為0MOVAX OFFSETINTERS 取中斷服務(wù)程序的偏移地址 7 5中斷應(yīng)用舉例 MOVDI 0F0H 4 F0H號中斷向量所放的首地址MOV DI AX 存中斷向量偏移地址MOVAX SEGINTERS 取中斷服務(wù)程序的段地址ADDDI 2 準備保存中斷向量MOV DI AX 保存中斷向量段地址MOVAX DSEG 準備程序數(shù)據(jù)段地址MOVDS AXINT0F0H 指令調(diào)用0F0H號中斷MOVAX 4C00H 準備返回DOSINT21H 調(diào)用DOS功能返回DOS狀態(tài)MAINENDP 過程結(jié)束 7 5中斷應(yīng)用舉例 INTERSPROCFAR 定義中斷程序MOVDX OFFSETSTRING 調(diào)用DOS功能顯示字符串MOVAH 9INT21HIRET 中斷返回INTERSENDP 過程結(jié)束CSEGENDS 程序段結(jié)束ENDMAIN 整個程序結(jié)束 7 5中斷應(yīng)用舉例 二 用DOS功能設(shè)置中斷向量上面設(shè)置中斷向量是直接向?qū)?yīng)地址寫 也可以DOS的25H號功能是設(shè)置中斷向量 設(shè)中斷號為n 中斷服務(wù)程序為INTERS 用25H功能設(shè)置中斷向量的方法如下 MOVAX SEGINTERS 中斷服務(wù)程序的段地址送DSMOVDS AXMOVDX OFFSETINTERS 中斷服務(wù)程序的偏移地址送DXMOVAL n 中斷類型號n送ALMOVAH 25H 功能號25H送AHINT21H DOS功能調(diào)用 7 5中斷應(yīng)用舉例 三 用DOS功能讀取中斷向量在使用指令中斷時 如果是微機系統(tǒng)保留的中斷號 應(yīng)該先將原來的中斷向量讀出保存起來 然后再設(shè)置自己的中斷向量 在自己的應(yīng)用程序結(jié)束之前 要恢復(fù)系統(tǒng)的中斷向量 獲取中斷向量的DOS功能號為35H 使用格式如下 MOVAL n n為中斷類型號MOVAH 35H DOC調(diào)用功能號35H送AHINT21H DOS功能調(diào)用執(zhí)行后的返回值為中斷類型號n的中斷向量 其中段地址在ES中 偏移地址在BX中 7 5 28259A在微機中的應(yīng)用 自80286微機 PC AT 到Pentium微機系統(tǒng) 都是使用兩個級聯(lián)的8259A 在芯片組中 管理15級外中斷 如圖7 20所示 系統(tǒng)具有以下特點 端口地址 主片使用20H和21H兩個端口 從片使用A0H和A1H兩個端口 觸發(fā)方式 主 從片的中斷信號均采用邊沿觸發(fā) 優(yōu)先級方式 主片采樣特殊全嵌套方式 從片采用全嵌套方式 優(yōu)先級的次序 主片的IR0 IR1 從片的IR0 IR7 主片的IR3 IR7 中斷號 設(shè)定0 7級對應(yīng)主片的中斷號為08H 0FH 8 15級對應(yīng)從片的中斷號為70H 77H 非緩沖方式連接 7 5中斷應(yīng)用舉例 日時鐘鍵盤串口2串口1并口2軟盤并口1 實時鐘用戶中斷保留保留保留協(xié)處理器硬盤保留 A0D7 D0INT A0D7 D0INTCAS0CAS1CAS2 去接系統(tǒng)總線 8259A 主片 8259A 從片 Vcc 接譯碼器 INTR 接譯碼器 IR0IR1IR2IR3IR4IR5IR6IR7CAS0CAS1CAS2 IR0IR1IR2IR3IR4IR5IR6IR7 圖7 20微機中外中斷8259A應(yīng)用示意圖 7 5中斷應(yīng)用舉例 一 初始化程序段先寫出來各自的初始化命令字 對主片8259A ICW1 00010001B 11H 邊沿觸發(fā) 級聯(lián) 寫ICW4ICW2 00001000B 08H 起始的中斷號為08HICW3 00000100B 04H 主片的IR2引腳接有從片ICW4 00000001B 11H 特殊全嵌套 非緩沖 正常中斷結(jié)束ICW4 00000001B 01H 全嵌套 非緩沖 正常中斷結(jié)束 7 5中斷應(yīng)用舉例 對從片8259A ICW1 00010001B 11H 邊沿觸發(fā) 級聯(lián) 寫ICW4ICW2 01110000B 70H 起始的中斷號為70HICW3 00000010B 02H 接主片的IR2引腳ICW4 00000001B 01H 全嵌套 非緩沖 正常中斷結(jié)束 7 5中斷應(yīng)用舉例 對主片8259A的初始化MPORT0EQU020H 主8259A偶地址端口MPORT1EQU021H 主8259A奇地址端口MOVAL 11HOUTMPORT0 AL 寫ICW1NOP 延時MOVAL 08HOUTMPORT1 AL 寫ICW2NOP 延時MOVAL 04HOUTMPORTl AL 寫ICW3NOP 延時MOVAL 11HOUTMPORT1 AL 寫ICW4NOP 延時 7 5中斷應(yīng)用舉例 對從片8259A的初始化SPORT0EQU0A0H 從8259A偶地址端口SPORT1EQU0A1H 從8259A奇地址端口MOVAL 11HOUTSPORT0 AL 寫ICW1NOP 延時MOVAL 70HOUTSPORT1 AL 寫ICW2NOP 延時MOVAL 02HOUTSPORTl AL 寫ICW3NOP 延時MOVAL 01HOUTSPORT1 AL 寫ICW4NOP 延時 7 5中斷應(yīng)用舉例 二 中斷屏蔽程序段對中斷源的屏蔽操作過程為 首先讀出中斷屏蔽寄存器OCW1的值 然后對需要屏蔽的位進行或1操作 對需要開放的中斷源進行與0操作 設(shè)對從片8259A的IR2 IR4 IR7進行屏蔽 對IR0 IR3開放中斷 程序段如下 INAL SPORT1ORAL 10010100BANDAL 11110110BOUTSPORT1 AL 7 5中斷應(yīng)用舉例 三 從片結(jié)束中斷程序段在中斷服務(wù)程序中 對8259A從片中斷源 需要結(jié)束本中斷源的中斷 還需要結(jié)束主片8259A的中斷 程序段如下 MOVAL 20H 結(jié)束從片中斷服務(wù)標志OUTSPORT0 ALMOVAL 00001011B 查從片是否有中斷在服務(wù)OUTSPORT0 AL 寫查詢ISR命令于OCW3NOP 延時INAL SPORT0 讀中斷服務(wù)寄存器ISRCMPAL 0 判定是否為0JNZNEXT 不為0表明從片還有中斷在服務(wù)MOVAL 62H 對主片清除IR2的中斷服務(wù)標志OUTMPORT0 AL 寫主片的OCW2NEXT IRET 7 5 3外中斷應(yīng)用 微機系統(tǒng)沒有直接給用戶提供外中斷信號 用戶無法實現(xiàn)由8259A直接控制的外部中斷 下面利用1CH號中斷來介紹外中斷的部分編程和運行觀察 1CH號中斷每秒鐘中斷18 2次 每55ms中斷一次 它是由定時器 計數(shù)器8254定時產(chǎn)生的 原1CH號中斷的過程 在8254中斷服務(wù)程序中的最后 通過1CH號指令中斷進入1CH號中斷服務(wù)程序的 原始的1CH號中斷服務(wù)程序只有一條 IRET 指令 在BIOS中 7 5中斷應(yīng)用舉例 主程序的功能主要有 顯示一字符串 Thisismainprogram 讀取1CH號的中斷向量 用35H號DOS功能 設(shè)置中斷程序的中斷向量 用25H號DOS功能 等待中斷 演示中斷的發(fā)生和處理過程 用BIOS的16H中斷等待鍵盤輸入 有按鍵則向下運行 結(jié)束中斷和應(yīng)用程序 恢復(fù)原中斷向量 用25H號DOS功能 中斷服務(wù)程序的功能主要有 用到的寄存器進棧保護 每中斷18次發(fā)出一聲響 在屏幕上顯示一數(shù)字9 寄存器出棧 7 5中斷

溫馨提示

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

評論

0/150

提交評論