练习题

🟢 基础练习

练习1:修改显示内容

在32位模式下,修改 msg_pm 的内容,显示你自己的消息。

练习2:彩色输出

修改VGA属性字节,让32位模式下的消息以不同颜色显示:

  • 绿色: 0x0A
  • 红色: 0x0C
  • 黄色: 0x0E

练习3:GDT计算

手动计算以下GDT的总大小和各选择子的值:

  • 描述符0: 空
  • 描述符1: 代码段
  • 描述符2: 数据段
  • 描述符3: 用户态代码段

🟡 进阶练习

练习4:32位打印函数

实现一个更完整的32位 print_string_pm 函数,支持:

  • 自动跟踪光标位置
  • 支持换行符 \n

练习5:清屏

实现32位模式下的 clear_screen 函数,将整个VGA显存(80×25)填充为空格。

🔴 挑战练习

练习6:添加用户态段

在GDT中添加用户态代码段和数据段(DPL=3),并验证它们的选择子值。