▼ 中断是一个由硬件激发的过程,它中断当前正在执行的任何程序。

  ▼ 在Intel系列微处理器中,包括INTR和NMI(Non Maskable Interrupt)两个申请中断的引脚和一个响应INTR中断的引脚INTA。

  ▼ 软中断有INT、INTO、INT3和BOUND。其中,INTO和BOUND为条件中断。

  ▼ IF(interrupt flag,中断标志)和TF(trap flag)两个标志位。

  ▼ 中断返回指令是:IRET(IRETD)。

  ▼ 中断向量表(interrupt vector table)存于:000000H~0003FFH,共256个每个4字节共占1024字节

  ▼ 中断向量(interrput vector)包含中断服务程序的入口地址(段地址+偏移地址)。

  ▼ 当微处理器执行完当前指令后,会按照下边给出的顺序检查下列条件以确定中断是否有效。

  

   图1  确定中断前的条件检查

  ▼ 中断发生时的处理顺序如下:

  

              图2 中断处理顺序

▼ 保护模式下,使用一组存储在中断描述表IDT(interrupt descriptor table)中的共256个中断描述符来取代中断向量。每个中断描述符长8字节,共256 × 8 = 2K字节。

      

                  图3 保护模式下的中断描述符

▼ 中断描述符表由中断描述表地址寄存器IDTR定位于系统中任何存储单元。

▼ 中断标志IF和陷阱标志TF在中断期间的标志寄存器内容压入堆栈后被清除。当IF被置位它允许INTR引脚产生一个中断;当IF被清除,它阻止INTR引脚产生中断。当TF = 1时,它在每条指令执行后产生一个陷阱中断(类型1,即单步);当TF = 0,程序正常执行。

        

                  图4 标志位寄存器

▼ 中断标志通过STICLI指令来置位和清除。没有特殊的指令来置位和清除陷进标志。

  

Intel微处理器学习笔记(五) 中断的更多相关文章

  1. Intel微处理器学习笔记(三) 不可见寄存器

    参考资料: 1.  http://blog.chinaunix.net/uid-20797642-id-2495244.html 2.  http://www.techbulo.com/708.htm ...

  2. Intel微处理器学习笔记(一) 实模式内存结构

    图一 奔腾概念示意图 存储系统一般划分为三个主要部分:TPA(transient program area),System Area和XMS(extended memory system). 图二 内 ...

  3. Intel微处理器学习笔记(二) 三种模式

    三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...

  4. Intel微处理器学习笔记(四) 内存分页

    内存分页机制(memory paging mechanism)是从386开始的.线性地址通过分页机制透明转换为物理地址. 从这里知道:1. 如果不分页,则线性地址等于物理地址:2. 如果分页,则线性地 ...

  5. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  6. stm32学习笔记——外部中断的使用

    stm32学习笔记——外部中断的使用 基本概念 stm32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个.比如说,PA0,PB0 ...

  7. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  8. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

随机推荐

  1. settings.xml

    <settings> <!--本地仓库.该值表示构建系统本地仓库的路径.其默认值为~/.m2/repository,windows:C:/Users/Administrator/.m ...

  2. JavaEE基础(十五)/集合

    1.集合框架(对象数组的概述和使用) A:案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息. Student[] arr = new Student ...

  3. SQL编程之高级查询(子查询)以及注意事项

    SQL编程之高级查询(子查询)以及注意事项   1.什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强大的复合命令.子查询最常用于SELECT-SQL命 ...

  4. C++ Template Operator

    #include <iostream> #include <string> #include <deque> #include <stdexcept> ...

  5. python中split函数的使用

    最近学习python,对split函数做了下总结,内容如下:

  6. Spring AOP:面向切面编程,AspectJ,是基于注解的方法

    面向切面编程的术语: 切面(Aspect): 横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象 通知(Advice): 切面必须要完成的工作 目标(Target): 被通知的对象 代理(Pr ...

  7. Ramsey theorem in Combinarotics

  8. nginx安装后出现502 Bad Gateway 错误解决办法

    1. 打开php-fpm.conf 2.将lisen值修改为 listen = 127.0.0.1:9000 并保存 3.重启服务/etc/init.d/php-fpm restart

  9. 第十二届浙江省大学生程序设计大赛-Demacia of the Ancients 分类: 比赛 2015-06-26 14:39 30人阅读 评论(0) 收藏

    Demacia of the Ancients Time Limit: 2 Seconds Memory Limit: 65536 KB There is a popular multiplayer ...

  10. python中string.casefold和string.lower区别

    string.casefold和string.lower 区别 python 3.3 引入了string.casefold 方法,其效果和 string.lower 非常类似,都可以把字符串变成小写, ...