在intel 64上从64位模式切换到32位模式

时间:2014-04-17 15:11:44

标签: assembly nasm x86-64

有没有办法在Intel 64计算机上从64位模式(长模式)切换到32位模式(传统模式)。 使用汇编代码执行此操作所需的控制寄存器配置是什么?

我需要在64位uefi shell应用程序中执行此操作

1 个答案:

答案 0 :(得分:1)

我认为程序是

  1. 确保您的代码是身份映射
  2. 切换到兼容模式
  3. 禁用分页(您现在位于没有分页的32位PMode中)
  4. 根据需要进行设置(例如,清除CR4.PAE,清除EFER.LME,再次启用分页)
  5. 尝试从长模式的任一子模式中清除CR4.PAE将是#GP。