目录
第一天的任务是写一个映像文件 helloos.img,打开后能显示 hello world
作者逐步深入地给出了三种做法:
- 直接用二进制编辑器写出机器码,生成映像文件
- 单纯用汇编描述机器码,编译,生成 .img
- 用汇编写出有意义地代码,编译,生成 .img
我们需要做的是看懂源码、编译、生成 .img 文件、运行得到 helloworld,一步步来:
汇编源码
先看一眼作者给出的"有模有样"的汇编源码,需要构建的软盘是基于 FAT12 文件系统的,这段源码实际上是定义了软盘映像的引导扇区,作者给出了详细的注释,程序主体之后的代码就是引导代码。值得一提的是,作者有一行的注释写了“意义不明”,查阅资料后发现 DB 0,0,0x29 分别指:中断13驱动器号、保留字节、扩展引导标记。
编译&生成img
运行作者给出的 asm.bat 批处理文件即可生成 img 文件。
运行
方法1:运行作者给的批处理文件 run.bat
方法2:在虚拟机上添加软盘映像,打开