電工學習網

 找回密碼
 立即注冊

中斷傳送方式

2015-3-22 09:37| 編輯:電工學習網| 查看: 4498| 評論: 0

摘要: 一、中斷的概念 1.中斷:一種使CPU中止正在執行的程序而轉去處理特殊事件的操作。 2.中斷源:引起中斷的事件。 (1)內部中斷源,由程序中安排的中斷指令INT產生的中斷,或由CPU的某些錯誤操作結果產生的中斷。 ...
   一、中斷的概念

    1.中斷:一種使CPU中止正在執行的程序而轉去處理特殊事件的操作。

    2.中斷源:引起中斷的事件。

    (1)內部中斷源,由程序中安排的中斷指令INT產生的中斷,或由CPU的某些錯誤操作結果產生的中斷。

    ① 溢出中斷指令 INTO

    ② 中斷指令INT N產生的中斷

    ③ CPU錯誤引起的中斷

    ④ 為debug設置的中斷:單步中斷,斷點中斷

    (2)外部中斷源

    由外部設備隨機引起的一般由中斷控制器控制的中斷或某些處理器(8087/80287)引起的中斷。

    二、80x86 CPU的中斷源

    如下圖所示。

    

    三、8086的中斷分類

    1.軟件中斷(內中斷)

    1)中斷指令INT引起的中斷:CPU執行完一條INT n (n不能為0、1、2、4的類型號)指令后,會立即產生中斷,并且調用系統中相應的中斷處理程序來完成中斷功能。

    2)處理CPU某些錯誤的中斷(為處理運算結果的錯誤而設置)

    3)除法錯中斷:中斷類型為0。又稱為除數為0中斷。

    4)溢出中斷:中斷類型為4。用INTO指令來中斷發生溢出的算術操作,并把控制交給操作系統(此時要求OF=1并執行INTO指令)。如果未發生溢出,此時OF=0,則INTO不會引起中斷,繼續執行下面的一條指令。

    5)為調試程序(DEBUG)設置的中斷

    單步中斷:當標志位TF置為1時,每條指令執行后,CPU自動產生類型1的中斷——單步中斷。

    斷點中斷:中斷類型為3。通常調試程序時,把程序按功能分成幾段,然后每段設一個斷點。當CPU執行到斷點時便產生中斷,這時程序員可以檢查各寄存器及有關存儲單元的內容。

    

    軟終端過程

    2.硬件中斷(外中斷):外中斷來自處理機的隨機發生的外部條件。

    外中斷源:有非屏蔽中斷(NMI腳)和可屏蔽中斷(INTR腳)兩大類。

    外中斷與CPU的連接

    非屏蔽中斷接至8086/8088 CPU的NMI腳(17腳)。

    可屏蔽中斷通過8259A可編程中斷控制器接至8086/8088 CPU的INTR腳(18腳)。

    3.CPU響應可屏蔽外中斷(INTR)的條件

    IF=1才響應INTR請求的中斷。

    INTR未被8259A的中斷屏蔽寄存器(IMR)屏蔽。

    IMR的I/O端口地址為21H。其8位對應8個外設的中斷請求。

    某位為0允許該外設中斷,某位為1則禁止該外設中斷。

    4.CPU響應非屏蔽外中斷(NMI)是無條件的。該中斷類型號為2。

    8259A的中斷結束命令EOI及中斷命令寄存器(OCW2)

    8259A的中斷命令寄存器的端口地址為20H。其內容為:

    中斷結束命令EOI是使8259A的中斷命令寄存器的第5位(EOI位)置1,清除當前中斷服務寄存器ISR中對應的ISn位,以告訴8259A該中斷已結束。

    四、中斷向量表

    1.中斷類型號:每個中斷都被安排一個以示區別的8位的類型編號稱為中斷類型號。80x86中斷系統能處理256種類型的中斷,類型號為0~0FFH。

    2.中斷向量表:各個中斷類型的處理子程序的入口地址表。存放于00000~003FFH的1KB單元中。低兩位字節存放中斷處理程序的偏移地址,高兩位存放段地址。每個類型的中斷向量地址占用4個字節的存儲單元。

    3.內部中斷的操作步驟

    (1)取中斷類型號;

    (2)計算中斷向量地址;

    (3)取中斷向量:偏移地址→(IP),段地址→(CS);

    (4)轉入執行中斷處理程序;

    (5)中斷返回到INT指令的下一條指令。

    4.設置中斷向量:在檢查或設置任何中斷向量時,總是避免直接使用中斷向量的絕對地址,而是使用DOS系統功能調用(21H)存取中斷向量。

    1)設置中斷向量:把由AL指定的中斷類型的中斷向量DS:DX放置到中斷向量表中。

    預置:AH=25H

    AL=中斷類型號

    DS:DX=中斷向量

    執行:INT  21H

    2)取中斷向量:把由AL指定的中斷類型的中斷向量從中斷向量表中取到ES:BX中。

    預置:AH=35H

    AL=中斷類型號

    執行:INT  21H    ;中斷向量作為出口信息已在ES:BX中

    5.中斷過程:當中斷發生時,由中斷機構自動完成下列動作:

    (1)取中斷類型號N

    (2)標志寄存器(FLAGS)內容入棧

    (3)當前代碼段寄存器(CS)內容入棧

    (4)當前指令計數器(IP)內容入棧

    (5)禁止外部中斷和單步中斷( IF=0,TF=0 )

    (6)從中斷向量表中取(4×N)中的字節內容送IP,取(4×N+2)中的字節內容送CS

    (7)轉中斷處理程序。中斷處理程序需注意:

    1)如在執行中斷處理程序中還允許中斷,可用STI置IF=1來開中斷;

    2)注意保護現場和恢復現場;

    3)中斷處理程序返回時使用IRET指令。

    6.中斷優先級和中斷嵌套

    2)IBM PC的可屏蔽中斷(INTR)的優先級由高到低為:IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7。但是可以由8259A的中斷命令寄存器(OCW2)的最高兩位D7、D6位

    3)置為循環的優先級。

    4)中斷嵌套:正在運行的中斷處理程序又被中斷稱為中斷嵌套。

    一般是高級中斷嵌套低級中斷,此時要求低級中斷的處理程序中要有開中斷指令STI。被同級或低級中斷源嵌套,除了使IF=1外,還要求向8259A發中斷結束命令EOI。

    7.中斷處理程序

    1)中斷準備:在主程序中設置。

    設置中斷向量

    設置設備的中斷屏蔽位

    設置CPU的中斷允許位IF (開中斷)

    2)中斷響應:由硬件自動完成。

    外設接口送中斷請求給CPU

    當前指令執行完后,CPU送中斷響應信號給外設接口

    CPU接收中斷類型號

    當前的FLAGS,CS和IP保存入棧

    清除TF和IF

    中斷向量送IP和CS

    3)中斷處理程序的編寫方法與標準子程序類似,編寫步驟如下:

    保護現場,即保存寄存器內容

    如允許中斷嵌套,則開中斷(STI) 使IF=1

    處理中斷內容

    關中斷

    送中斷結束命令(EOI)給8259A的中斷命令寄存器(OCW2)以清除8259A的ISR中對應的ISn位

    恢復現場,即恢復寄存器的內容

    返回被中斷的程序(IRET,中斷返回)

看過《中斷傳送方式》的人還看了以下文章:

發表評論

最新評論

|電工學習網 ( )

GMT+8, 2020-3-30 16:59

Powered by © 2011-2020 www.jeefkt.live 版權所有 免責聲明 不良信息舉報

技術驅動未來! 電工學習網—專業電工基礎知識電工技術學習網站。

欄目導航: 工控家園 | 三菱plc | 西門子plc | 歐姆龍plc | plc視頻教程

返回頂部
黑龙江快乐10分开奖查询 贵阳捉鸡麻将下载 在线看中超 pk10结果 篮彩网 股票涨跌西部证券 黄金岛长沙麻将手机版下载 3d开奖结果开奖结 12月13号的股票分析 博财配资 足彩6场半全场开奖结果查询奖金 股票涨跌多少钱是怎么算的 91配资 四场进球彩最低奖金 今日股票推荐私募 熊猫麻将微信群 快乐彩开奖结果浙江