操作系统起点-Fat12文件系统(如何将两个二进制文件进行组织)

简介

我已经开发好了boot.asm汇编程序(引导程序),我想要再开发一个loader.asm用于实现一些信息的初始化,以及跳转到操作系统内核,那么我该如何将这两个程序文件组织到一起,并进行跳转调用呢?

Fat12文件系统

这是我们就可以用到fat12文件系统的组织方式来进行寻址,并加载相应的程序了。

#我们先将两个文件编译成二进制文件
nasm boot.asm -o boot.bin
nasm loader.asm -o loader.bin
#创建img软盘,并将boot.bin拷贝进去
bximage #选1.44mb, fd(软盘),boot.img
dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc
#将boot.img使用fat12的方式挂载进linux
mount boot.img /media/ -t -vfat -o loop
#将loader.bin写入fat12文件系统
cp loader.bin /media/
sync
umount /media/ #卸载完成之后,loader.bin已经以fat12的文件系统组织方式进入boot.img了

boot程序跳转到loader程序的方式

既然loader.bin已经以fat12的文件系统方式加入了软盘,那么我们boot寻址的时候就可以按照fat12的方式进行查找该文件,先通过根目录进行遍历,直到搜索到了这个文件,将这个文件加载进入到内存就好,这样我们就可以进行跳转到loader程序啦

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容