zoukankan      html  css  js  c++  java
  • Intel微处理器学习笔记(五) 中断

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

      ▼ 在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指令来置位和清除。没有特殊的指令来置位和清除陷进标志。

      

  • 相关阅读:
    win7 下如何安装 Microsoft Web Application Stress Tool
    [译文]casperjs的API-mouse模块
    【性能测试】jmeter的坑(1)——如何在多网卡情况下正确连接
    [性能分析]端口限制
    [性能分析]linux文件描述符
    python 对mongodb进行压力测试
    常用jar包信息
    Basic Grammer
    Maven 知识汇总
    【Linux】Linux常用命令
  • 原文地址:https://www.cnblogs.com/AmitX-moten/p/4855112.html
Copyright © 2011-2022 走看看