问题:在80386中,中断是否可以嵌套?
在80386中有两种事件(可以参考我写的《中断与异常》文档):
1、中断事件(异步 interrupts)(一般是硬件中断)
2、异常事件(同步 exceptions)
在IDT中,有三种门描述符(通过设置,可以让中断向量对应不同的门描述符。比如缺页异常可以对应interrupt gate,也可以对应trap gate):
1、Interrupt gate
2、Trap gate
3、Task gate
我们只是用interrupt gate和trap gate。它们之间有一个很重要的区别。
Interrupt gate ISR :
1、保存EFLAGS
2、清除EFLAGS上的
IF、TF、VM、RF、NT标志位
3、恢复EFLAGS
Trap gate ISR:
1、保存EFLAGS
2、清除EFLAGS上的TF、VM、RF、NT标志位
3、恢复EFLAGS