为什么 MOV CR0 和 JMP 指令必须来自在切换到保护模式时标识映射的页面?

Why must the MOV CR0 and JMP instructions come from a page that is identity mapped while switching to protected mode?

为什么我们必须将 mov cr0jmp 指令放入标识映射的页面中?

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

启用保护模式时(不启用分页);您不需要确保页面是身份映射的。

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