zoukankan      html  css  js  c++  java
  • 80x86保护模式下IDT和中断调用过程分析

    80x86保护模式下IDT和中断调用过程分析

    1.中断描述符表(IDT),将每个异常或中断向量分别与它们的处理过程联系起来。与GDT和LDT类似,IDT也是由8字节长度的描述符组成。IDT空描述符的存在标志位必须是0。IDT表可以驻留在线性地址空间的任何地方,处理器使用IDTR寄存器来定位IDT表的位置。

    LIDT指令可以把内存中的限长值和基地址操作数加载到IDTR寄存器中,该指令仅能由当前特权级CPL是0的代码执行,通常被用于创建IDT时的操作系统初始化代码中。SIDT作用相反,但可以在任何特权级执行。

    2.IDT描述符

    IDT表中可以存放3种类型的门描述符:中断门描述符、陷阱门描述符、任务门描述符。先介绍中断门描述符

    注:上面过程入口点偏移,和代码段描述符的基地址不同,这里入口点偏移值代码中断处理程序在.text段中的偏移量。

    3.异常和中断处理过程

    当相应一个异常或中断时,处理器使用异常或中断的向量作为IDT表中的索引。如果索引值指向中断们或陷阱门,则处理器使用与CALL指令操作调用门类似的方法调用异常或者中断处理过程。如果索引值指向任务门,则处理器使用与CALL指令操作任务门类似的方法进行任务切换,执行异常或中断处理过程。

    下图介绍中断过程调用。门中的段选择符指向GDT或LDT中的可执行代码段描述符。门描述符中的偏移字段指向异常或中断处理过程的开始处。

    4.中断任务处理

    当通过IDT中的任务门来访问异常或中断处理过程时就会导致任务切换。IDT中的任务门会引用GDT中的TSS描述符。

  • 相关阅读:
    Java数据库操作学习
    c3p0配置
    CachedRowSet 接口
    Android Library的依赖方式及发布(转)
    网站测试
    MySQL Server逻辑架构
    Service生命周期
    Activity的生命周期
    Android应用框架中的四个核心要点
    Android 最新架构
  • 原文地址:https://www.cnblogs.com/dongguolei/p/8026269.html
Copyright © 2011-2022 走看看