从第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(修改点):
- [新增] 初始化段寄存器和栈指针
- [新增] 保存BIOS传递的驱动器号
- [修改] 使用
print_string函数打印完整字符串(替代单字符打印) - [新增] 调用
disk_read从磁盘加载数据 - [新增]
%include引入外部文件
[修改] Makefile
- 新增
print.asm和disk.asm作为依赖 - 新增生成磁盘映像的步骤(
os-image.bin) - 新增
dd命令附加空扇区(模拟内核空间)
[保持不变] 引导签名
末尾的 times 填充和 0xAA55 签名结构不变。