学习自狄泰软件
引子:主引导程序工作中有一项是 从存储介质中加载程序到内存。那么问题来了 主引导程序该怎么加载存储介质中的其他程序呢? 注意 此时是没有操作系统的,直接用汇编写代码的条件下是不能直接指定文件名读取文件的!!! 所以 这就需要依赖文件系统了,说白了 文件系统就是文件数据的组织方式,只要知道了文件数据在存储介质中的组织方式,即只要知道了文件数据所在存储介质的 文件系统,就可以根据该文件系统的数据组织方式 访问存储介质,获得我们需要的文件数据。这就是 主引导程序需要依赖文件系统的原因。
1 注意到程序的限制 2 引入文件系统,FAT12文件系统说明 3 突破主引导程序512字节限制 方案
主引导程序:继bios 之后运行的第一个程序,他存储于第0扇区,并且以0x55aa作为结束标记,并且他的大小不能超过512字节   
主引导程序加载存储介质中的文件需要依赖文件系统!!!
如: FAT12文件系统

引导扇区: 存放主引导程序 FAT1 FAT2 两个表 指明数据之间的关系,之所以时两个是因为为了相互备份 
 
     加载FAT12文件系统中文件数据 步骤:    

 解决方案: 用FAT12文件系统对虚拟软盘 data.img 进行格式化,格式化之后就可以自由的向该软盘拷贝文件了。主引导程序就可以通过 FAT12文件系统的规定查找目标文件了。
向虚拟软盘中写数据的前提是 该虚拟软盘中必须要有文件系统(如 FAT12),有了文件系统 我们才能自由的向该虚拟软盘拷贝文件。 使用 操作系统FreeDos 格式化虚拟软盘为 FAT12文件系统,这样虚拟软盘中就有了文件系统,就可以将他挂载到linux 系统中,这样就方便我们写入文件了!!
主引导区信息数据分布:   
|