0 概述

legacy保护模式下, IDT可存放下面的Gate Descriptor.

① Interrupt-gate descriptor(中断门描述符)

② Trap-gate descriptor(陷阱门描述符)

③ Task-gate descriptor(任务门描述符)

IA-32e模式(long mode)下不存在Task-gate descriptor, 因此只存放:

① Interrupt-gate descriptor(中断门描述符)

② Trap-gate descriptor(陷阱门描述符)

legacy保护模式下, 每个gate描述符8字节宽; IA-32e模式下, 每个gate描述符被扩展到16字节宽.

通过中断门进入中断服务程序时cpu会自动将中断关闭,也就是将cpu中eflags寄存器中IF标志复位,防止嵌套中断的发生, 返回后恢复;而通过陷阱门进入服务程序时则维持IF标志不变。 这是中断门与陷阱门的唯一区别(!!!)

1 legacy 保护模式下的Interrupt-gate 与 Trap-gate 描述符

Interrupt-gateTrap-gate描述符的格式是安全一样的, 所不同的是描述符类型.

9. gate描述符

9. gate描述符

在描述符的Type域中:

① 1110B为32位的Interrupt-gate描述符

② 1111B为32位的Trap-gate描述符

更详细见 10.5.4.4节内容

2 IA-32e模式下的Interrupt-gate和Trap-gate描述符

在IA-32e模式下(包括64位和compatibility模式), Interrupt-gate与trap-gate描述符的结构如下

9. gate描述符

除了被扩展为16字节外, 在IA-32e模式(包括compatibility模式)下的Interrupt-gateTrap-gate描述符增加了一个3位宽的IST(Interrupt Stack Table)指针域, 用来提供额外的Stack pointer.

更详细见 10.5.4.4节内容

3 Task-gate描述符

Task-gate用来找到目标TSS描述符的位置, 再通过TSS描述符来定位TSS块, 使用TSS块里的数据进行任务切换

9. gate描述符

9. gate描述符

Task-gate描述符仅用于legacy模式, 更详细见 10.5.4.4 节内容

相关文章:

  • 2021-11-19
  • 2021-08-12
  • 2022-01-04
  • 2021-12-23
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-24
  • 2021-10-09
  • 2021-11-07
  • 2022-02-23
  • 2021-04-11
  • 2021-06-15
相关资源
相似解决方案