Skip to content

Latest commit

 

History

History
 
 

10-32bit-enter

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

English

事先需要 Google 的概念:interrupts(中断), pipelining(流水线)

目标:进入 32 位保护模式并测试之前课程的代码

跳转到 32 位模式过程:

  1. 禁止中断
  2. 加载 GDT
  3. 置位 CPU 的控制寄存器 cr0
  4. 刷新 CPU 流水线:通过触发一个精心设计的长跳转
  5. 更新所有的段寄存器
  6. 更新栈
  7. 以32位模式调用一个包含有用代码的熟悉标记

我们将这个过程封装在 32-bit-switch.asm 文件中。打开它查看代码。

在进入 32 位模式之后,我们将调用 BEGIN_PM , 这是我们实际有用的代码入口(如内核等),你可以阅读 32bit-main.asm 文件中的代码。 编译并运行最后一个文件,你将在屏幕上看到两条信息。

恭喜你!我们下一步就开始写一个简单的内核。