练习题
🟢 基础练习
练习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),并验证它们的选择子值。