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表!
这是怎么回事? 可以重新装载,我只记得重新装载gdt时要保证装载前的eip动作和装载后的eip动作是连续的。 有没有详细的资料可供参考呢?! 各位帮帮忙啊!为什么这么久都没有人理我啊??? x86的Intel他们家设计的,你到Intel他们家的网站看看,肯定有这方面的资料。 情景分析里似乎讲了一点点. 去找来看看拉. ??
页:
[1]