如果在程序执行时更改 GDT 会发生什么情况?

What will happen if the GDT is changed as the program is executing?

如果在程序执行过程中更改了GDT,会发生什么情况?有没有物理寄存器之类的东西在执行程序的时候监测GDT有没有变化?

在尝试从 GDT 获取内容之前,什么都不会改变。这可能是段寄存器的加载、中断、far call/return 等。

在这些情况下,段寄存器的影子部分保留最后加载到该寄存器中的选择器引用的描述符。