为什么我们必须将mov cr0jmp指令放入经过身份映射的页面中?

我一直在使用Google搜索此问题,但无法理解结果。

最佳答案

启用保护模式(而不启用分页)时;您无需确保页面已进行身份映射。

启用分页时(可能同时也启用保护模式),CPU将尝试从mov cr0之后的(虚拟)地址获取mov cr0之后的下一条指令。解决此问题的最简单方法是对页面进行身份映射,以便物理内存中mov cr0之后的指令也将是虚拟内存中mov cr0之后的指令。然而;这不是严格要求的。例如,如果您将mov cr0安排在页面的最后一个字节中(以便启用分页后立即执行的指令将在另一个页面的开头),则包含mov cr0的页面将赢得无需进行身份映射,下一页也无需进行身份映射。

08-15 23:15