Kernel 指针位

Kernel 指针位,kernel,Kernel,我正在尝试启动苹果XNU内核的定制版本()。由于未处理的页面错误,引导正在终止。我已经找到了坠机的原因。BootPDPT的任务是指向BootPDT符号中的页表条目 问题是,正如我目前理解的x86 PDPT,低16位左右是标志,而地址位于高16位。(我检查了我的研究)。这是否意味着我需要改变地址,以便妥善解决问题 我这样问是因为MMU无法找到页表条目。我认为这是由于值0x00102000(BootPDT的地址)由于值移位被解释为0x00000102 如果我真的需要将地址向左移位,我会将值移位多少位

我正在尝试启动苹果XNU内核的定制版本()。由于未处理的页面错误,引导正在终止。我已经找到了坠机的原因。
BootPDPT
的任务是指向
BootPDT
符号中的页表条目

问题是,正如我目前理解的x86 PDPT,低16位左右是标志,而地址位于高16位。(我检查了我的研究)。这是否意味着我需要改变地址,以便妥善解决问题

我这样问是因为MMU无法找到页表条目。我认为这是由于值
0x00102000
BootPDT
的地址)由于值移位被解释为
0x00000102

如果我真的需要将地址向左移位,我会将值移位多少位,在汇编程序中如何做到这一点而不损坏低16位中的标志