实模式跳转保护模式,代码全注释

《orange's,一个操作系统的实现》一书提供了深入浅出的操作系统实践代码。本文详细注释了实模式跳转到保护模式的过程,包括初始化32位代码段、设置GDT、开启A20地址线、修改CR0寄存器,最后在保护模式下执行32位代码并写显存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近正在阅读《orange's,一个操作系统的实现》,真是相见恨晚啊,那么多年就没有一本真正深入浅出弄点代码让我们入门和实践一下的书,感谢作者于渊。

下面是第3章pmtest1.asm的全注释

总结执行过程如下:

  1. 初始化32位代码段的段基址,并存储到GDT中对应的描述符中
  2. 准备GDT的基地址,并通过LGDT指令加载到GDTR寄存器中
  3. cli关中断
  4. 打开地址线A20
  5. 将CR0寄存器的PE位置1,进入保护模式
  6. 已经进入保护模式,跳转到32位代码段继续执行
  7. 写显存
  8. game over
; ==========================================
; pmtest1.asm
; 编译方法:nasm pmtest1.asm -o pmtest1.bin
; ========================================&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值