欢迎光临散文网 会员登陆 & 注册

0170-Multiboot2 启动头

2023-08-18 10:48 作者:jiangbo4444  | 我要投稿

环境

  • Time 2022-11-11

  • WSL-Ubuntu 22.04

  • QEMU 6.2.0

  • NASM 2.15.05

前言

说明

参考:https://os.phil-opp.com/multiboot-kernel/

目标

编写一个符合 multiboot2 规范的启动文件。

multiboot2 规范

https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html#Header-tags
规范定义文档如上,其中的 3.1.1,3.1.2,3.1.3 介绍了启动文件需要符合的格式。

可以看到上面定义的都是无符号数,其中的 checksum(校验和)+ magic + architecture + header_length 需要等于零。要使无符号数 u32 等于 0,可以使其刚好产生溢出,结果回到 0,即(0x100000000)。

汇编代码

编译和查看机器码

总结

了解了 multiboot2 的启动规范,定义和实现了其 header 汇编程序。

附录

0170-Multiboot2 启动头的评论 (共 条)

分享到微博请遵守国家法律