如何在gdt已经加载后更改它

  • 本文关键字:加载 gdt assembly x86 nasm gdt
  • 更新时间 :
  • 英文 :


我把我的idtr地址定义为

gdt_pointer:
    DW 0;size_of_gdt
    DD 0;start_of_gdt

,我可以用LGDT [gdt_pointer]加载它。但是如果需要的话,我如何改变gdt的内容呢?设置正确的值后,我可以再次使用LGDT指令吗?

编辑:我计划保持我的gdt_pointer起始地址相同的所有时间,但我将改变大小参数。此外,我正在加载和改变gdt从32位保护模式。

如果您更改了GDT的内容(但将其保留在相同的地址),那么您只需加载将受更改影响的段寄存器(如果有的话)。

如果您更改了GDT的(虚拟)地址(但保持其内容不变),那么您只需再次执行lgdt

如果更改GDT的(虚拟)地址及其内容,则需要执行lgdt并加载任何受影响的段寄存器。

相关内容

  • 没有找到相关文章

最新更新