0180-进入 64 位模式
2023-08-20 19:21 作者:jiangbo4444 | 我要投稿
环境
Time 2022-11-12
WSL-Ubuntu 22.04
QEMU 6.2.0
NASM 2.15.05
前言
说明
参考:https://os.phil-opp.com/entering-longmode/
目标
从保护模式切换到长模式。
定位代码段
因为当前还是执行的 32 的指令,所以需要执行跳转,重新选择 GDT,这里给代码段加了一个标记。
跳转指令
和之前一样,如果模式切换了,需要执行远跳指令,刷新流水线,重新加载指令。
同时增加了一个 extern 64 位的入口。
64 位汇编
修改编译和链接
效果

总结
从之前的保护模式,经过一系列的操作,进入了长模式,即 64 位模式。
附录
long_mode.asm
boot.asm