从第3章到第4章的代码变化

[新增] print.asm - 字符串打印函数

将打印逻辑封装为可复用函数:

  • print_string — 打印以0结尾的字符串
  • print_nl — 打印换行

[新增] disk.asm - 磁盘读取函数

使用 BIOS INT 0x13 从磁盘读取扇区:

  • disk_read — 读取指定数量的扇区到内存

[修改] boot.asm - 从简单打印到完整Bootloader

第3章的boot.asm:

; 只是打印一个字符
mov ah, 0x0E
mov al, 'A'
int 0x10
jmp $

第4章的boot.asm(修改点):

  1. [新增] 初始化段寄存器和栈指针
  2. [新增] 保存BIOS传递的驱动器号
  3. [修改] 使用 print_string 函数打印完整字符串(替代单字符打印)
  4. [新增] 调用 disk_read 从磁盘加载数据
  5. [新增] %include 引入外部文件

[修改] Makefile

  • 新增 print.asm 和 disk.asm 作为依赖
  • 新增生成磁盘映像的步骤(os-image.bin)
  • 新增 dd 命令附加空扇区(模拟内核空间)

[保持不变] 引导签名

末尾的 times 填充和 0xAA55 签名结构不变。