原创 x86的可屏蔽中断和不可屏蔽中断

2009-4-22 16:15 6476 3 3 分类: MCU/ 嵌入式
下面是从CSDN论坛问题回答中摘录的:

软中断和硬中断
 1.软中断,也称内中断,是由执行某些指令引起的  
    软中断,一般是由下列这4种情况引发的:  
      1):DIV或IDIV指令:当执行这些除法指令,若除数为0或商溢出,则一定会产生中断,这叫0型中断  
      2):INT指令:当执行int   n   时,则产生n型中断  
      3):INTO指令:若指令序列执行过程中,前面指令的执行结果使溢出标志位OF=1,接着若执行                             INTO指令,则会引起内部中断,称为4型中断  
      4):单步执行
2.硬中断,也称外中断,是由外部接口设备引起的   
      80x86有两条中断请求线:非屏蔽中断NMI线和可屏蔽中断INTR线,当这两条线上收到中断请求信号而引起中断时,称这类中断为硬中断.(NMI线直接接CPU引脚,INTR线接8259A中断控制器)  

非屏蔽中断和屏蔽中断  
1.非屏蔽中断  
      当NMI线上出现一个由低上跳的高电平中断请求信号后(持续时间须大于两个时钟周期),不管标志位I状态如何,当前指令执行完后,X86CPU马上转入中断处理. 此类型中断有来源;系统板上RAM产生奇偶错,协处理器上来的中断请求,I/O通道检查出错,intel保留的中断0x00~0x1F,软中断.  
 2.可屏蔽中断  
      当INTR线上出现一个高电平中断请求信号后(必须保持到当前执行的指令结束为止),CPU是否响应该中断,取决于标志信I的状态,若I=0,则不响应.(INTR线接8259A中断控制器)  
   
  附:   IF是个开关,其控制8259中断控制器发给CPU的中断是否有效,这种来自外部硬件通过8259到CPU的中断就是可屏蔽的中断.IF对非屏蔽中断不起作用即Intel保留的中断,NMI,软中断。



文章评论0条评论)

登录后参与讨论
相关推荐阅读
beardorado 2009-04-03 22:40
在linux下使用bochs+gcc+AT&T试验引导程序
首先写一个简单的引导程序{这个程序是从赵炯《linux0.11内核完全剖析》上用AT&T语法改过来的}做实验代码如下:BOOTSEG = 0x07c0.code16.text.global s...
beardorado 2009-04-03 20:55
Fedora 10 下安装as86
rpm包:dev86-0.16.3-8.i386. rpm在google中搜索即可,下载并安装...
beardorado 2009-03-09 22:07
x86体系结构--标志寄存器EFLAGS
TF(Trap Flag)——位8,跟踪标志。置1 则开启单步执行调试模式,置0 则关闭。在单步执行模式下,处理器在每条指令后产生一个调试异常,这样在每条指令执行后都可以查看执行程序的状态。如果程序用...
我要评论
0
3
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /4 下一条