怎么设置中断屏蔽字

电子常识

2588人已加入

描述

  中断的分类:

  按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(NonMaskable Interrupt)。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位IF(Iinterrupt Flag)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。IF位可以由用户控制,指令STI或Turbo c的Enable()函数,将IF位置1(开中断),指令CLI或Turbo_c 的Disable()函数,将IF位清0(关中断)。

  典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些,因为让打印机等待儿是完全可以的。

  中断屏蔽字简介:

  中断由异步的外部事件引起。外部事件及中断响应与正在执行的指令不存在关系。80386有两根引脚INTR和NMI接受外部中断请求信号,INTR接受可屏蔽中断请求。在80386中,标志寄存器EFLAGS中的IF标志决定是否屏蔽可屏蔽中断请求。

  所谓的中断屏蔽字就是描述“中断屏蔽”状态的一组“二进制信息”。

  如何设置中断屏蔽字?

  对应每一个中断请求触发器就有一个屏蔽触发器,将所有的屏蔽触发器组合在一起,就成了一个屏蔽寄存器,屏蔽寄存器中的内容称为屏蔽字。在终端服务程序中设置合适的屏蔽字,能起到对优先级别不同的中断源的屏蔽作用。屏蔽技术是可以改变优先等级的。优先级包含响应优先级和处理优先级。响应优先级是CPU响应各中断源请求的优先次序,这种次序一般是硬件线路已经设置好的,不便改动。处理优先级是CPU实际对各中断源请求的处理优先次序。如果不采用屏蔽技术,响应的优先次序就是处理的优先次序。那么,应该如何设置合适的屏蔽字呢?下面用两个例题来说明如何进行屏蔽字的设置。

  例一、某机有四个中断源A、B、C、D,按照中断响应的优先次序由高到低排序为A→B→C→D,现要求中断次序改为A→D→C→B。写出新的屏蔽字。

中断屏蔽

  例二、某机有五个中断源L0、L1、L2、 L3、L4,按中断响应的优先次序由高向低排序为L0®L1®L2®L3®L4,根据下示格式,现要求中断处理次序改为L1®L4®L2®L0®L3,根据下面的格式,写出各中断源的屏蔽字。

  按照例一的方法,不难得出下表。

中断屏蔽

  各中断源屏蔽状态见下表:

  表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分