首页 > 解决方案 > 为什么 MOV CR0 和 JMP 指令必须来自在切换到保护模式时进行身份映射的页面?

问题描述

为什么我们必须将mov cr0andjmp指令放入一个身份映射的页面中?

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

标签: assemblyx86pagingosdevprotected-mode

解决方案


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

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


推荐阅读