暝色入高楼 发表于 2004-9-22 10:36:00

GDT和IDT表的加载问题

我开始读linux0.11内核,有一个问题不明白,希望大家帮帮忙,谢谢

在setup.s中

end_move:
在这里加载了idt和gdt表
lidt        idt_48                ! load idt with 0,0
lgdt        gdt_48                ! load gdt with whatever appropriate
而后进入保护模式

我看的书上说,IDG和GDT表在进入保护模式后将不能被改动,可是为什么在head.s中的startup_32:处调用了setup_idt 和 setup_gdt函数重新加载了GDT 和IDT表!
这是怎么回事?

kakuyou 发表于 2004-9-22 12:56:28

可以重新装载,我只记得重新装载gdt时要保证装载前的eip动作和装载后的eip动作是连续的。

暝色入高楼 发表于 2004-9-22 13:43:18

有没有详细的资料可供参考呢?!

暝色入高楼 发表于 2004-10-5 14:13:41

各位帮帮忙啊!为什么这么久都没有人理我啊???

Alex_Sune 发表于 2004-10-5 19:19:11

x86的Intel他们家设计的,你到Intel他们家的网站看看,肯定有这方面的资料。

ggad 发表于 2004-10-11 09:21:05

情景分析里似乎讲了一点点. 去找来看看拉.

suowei1979 发表于 2004-10-27 15:13:36

??
页: [1]
查看完整版本: GDT和IDT表的加载问题