| 网站首页 | 电脑论坛 | 计算机原理 | 电脑主板 | cpu中央处理器 | 内存 | 硬盘 | 软驱 | 光驱 | usb设备 | 显卡 | 
 | 显示器 | 声卡 | 电脑音箱 | 耳机耳麦 | 网卡 | 局域网的组建 | 鼠标 | 键盘 | 电脑电源 | 电脑机箱 | 电脑组装与维修 | 
 | 电脑摄像头 | 网友留言 | 网站地图 | 网站地图2 | 
您现在的位置: 电脑硬件知识网 >> 计算机原理 >> 中断系统 >> 文章正文  
[组图]中断源及外部可屏蔽中断的控制逻辑         ★★★
中断源及外部可屏蔽中断的控制逻辑
作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-2-22 22:05:33
 

中断源及外部可屏蔽中断的控制逻辑

        图5.22所示是Pc/AT机中断源总的示意图。从中断源来自CPU外部还是内部,可分成外部中断和内部中断两大类。外部中断从两根请求线引入CPU,通过NMI引入的是非屏蔽中断请求,从INTR引入的是可屏蔽中断请求。在PC/AT机中,可屏蔽中断源都是一些“设备”,它们的中断请求由两片8259A级联系统来控制,如图5.23所示。
  在Pc/AT机中,主8259A占用端口地址20H和21H,从8259A占用端口地址AOH和 AlH。
  在与Pc/AT兼容的高档微机中,采用了图5.23所示的逻辑(集成到多功能接口芯片或控制芯片组中芯片),在中断控制中仍使用上面4个端口地址。
  1.外部中断源
  (1)非屏蔽中断


     在Pc/AT机中,存储器奇偶校验错等致命错误是非屏蔽中断源。电源掉电并未列入其中,因为电源掉电的处理需要借助于不间断电源(uPS)功能块,以保证中断服务期间的供电。在响应非屏蔽中断请求时,CPU自动形成中断类型号2。
  (2)可屏蔽中断
  在PC/AT机中,可屏蔽中断从主板或系统总线(ISA总线)插槽引人,其中断源的设置见表5.2。其中一些中断源并未列出,是为用户所保留的。一般机器只配一台打印机,使用并行口l,所以并行口2一般不用,IRQ 5可由用户使用。IRQ9标注有“改向”,这是为了保持与PC/XT机的兼容。在PC/xT机中仅用了一片8259A,PC/AT机中的主8259A就是与它对应的。在Pc/AT机中主片的IRQ2用于级联,原来在PC/xT机中接到IRQ2上的设备,在机器更新时,可接到PC/AT机的IRQ9。如该设备产生中断请求,中断类型号为7lH的中断服务程序(对应IRQ9)将自动转移到中断类型号为0AH的中断服务程序(对应IRQ2)。这样,原先在PC/XT机上使用IRQ2的程序不必修改,在PC/AT机上照样可以运行。对于外部可屏蔽
中断,在中断响应时,要经过两个中断响应周期,由8259A产生相应的中断类型号。


     2.内部中断源
    在CPU执行程序时,遇到一些特定的情况也会引起中断,这些情况(或叫事件)统称为内部中断源。内部中断源有以下四种:
    1)除法错中断
    当进行除法运算时,发现除数为O或商超过了寄存器所能表示的范围,CPU自动产生中断类型号为0的中断。
    2)溢出中断
    在运算的过程中,如果运算的结果超出了相应数据的表示范围,就会产生溢出。在出现溢出时,并不立即引起中断,而是置位标志寄存器的溢出标志OF。当CPU执行溢出中断指令INTO时,发现OF被置位,才产生中断类型号为4的中断。因此,如果觉得本次运算有可能溢出,应在它的后面安排一条INTO指令。在执行INTO指令时,如果OF没有被置位,则不进行任何操作。
    3)单步中断
    单步运行是调试程序的一种常用方式。要单步运行,需要将标志寄存器中的单步标志TF置1。在TF为1的情况下,CPU在每条指令执行后产生类型号为1的中断。在单步中断服务程序中显示一些内部寄存器的值和一些附带信息,供程序员观察和分析指令的执行结果。注意,在单步中断服务程序中执行时并不是单步方式(也不应该是单步方式)。这是因为在所有类型的中断处理过程中,CPU都是先把标志寄存器的内容自动压入堆栈,然后清除TF和IF。因此,CPU在进入单步中断服务程序时,它就不再处于单步方式了,而是按正常的方式执行中断服务程序,只有当单步中断服务程序结束时,从堆栈中弹出原来的标志后才使CPU又回到单步方式。
    4)软中断(又称软件中断,或指令中断)
    CPU在执行中断指令INT n时,产生一个类型为n的中断,这就是前面所说的用软件方法引起中断。
    需要特别提一下类型为3的中断指令(INT 3),类型3为断点中断。这里所说的断点,是指在程序执行过程中人为设置的,实际上是一条INT 3指令。执行到该指令时,转入类型3的中断服务程序,在该服务程序中显示寄存器的内容和部分内存单元的内容。这样,程序员就可确定到断点之前的一段程序是否正确,是否需要修改。在程序中设置断点也是常用的程序调试方法,而调试程序DEBUG(用于调试汇编语言程序)和一般的高级语言开发平台都提供设置断点的手段(程序员不必亲自在程序中加入INT3指令)。需要指出的是,系统并未提供断点中断服务程序,通常由调试程序DEBUG和高级语言开发平台来提供。
    INT n执行时,标志寄存器的内容被压入堆栈,然后IF和TF被复位,接着,CS和IP的内容也被压入堆栈,堆栈指针减6,由中断类型号乘以4得到存放中断向量的起始地址,并将中断向量的低位字和高位字送到IP和cs中。这样下一条要执行的指令就是中断服务程序的第一条指令。
  3.各类中断的优先级别
  在Pc/AT机中,各类中断的优先级见表5.3,其中内部中断的优先级别最高(单步中断除外),其次是不可屏蔽中断,单步中断的优先级别最低。


本篇文章属于主题:PC/AT机的中断系统,了解更多请点击:PC/AT机的中断系统
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目

    电脑硬件知识站导读

    最 新 热 门

    最 新 推 荐
    相 关 文 章
    自编中断服务程序举例
    中断处理过程
    中断向量与中断向量表
    PC/AT机的中断系统
    最 新 文章
    文章 下载 图片
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
            我与电脑共舞