码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-05-11 20:12:21      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ext   c   color   http   

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

bubuko.com,布布扣

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

2.IDT描述符

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

bubuko.com,布布扣

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

3.异常和中断处理过程

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

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


bubuko.com,布布扣

4.中断任务处理

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

bubuko.com,布布扣

80x86保护模式下IDT和中断调用过程分析,布布扣,bubuko.com

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

标签:style   blog   ext   c   color   http   

原文地址:http://blog.csdn.net/getnextwindow/article/details/25532289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!