我正在探索引导程序世界。
但是我问自己,第一阶段引导加载程序是否可以加载并运行另一个第一阶段引导加载程序。 (假设它放在FAT分区上)
如果是这样,那么首选方式是什么?
如果不是为什么?
答案 0 :(得分:3)
请务必:
将新FSBL加载到适当的段中
这通常意味着0000:7c00
,这反过来意味着您必须覆盖当前的引导加载程序
您可以重新定位一个例程(您关心的位置),这可以像为(慢)ds:si
设置es:di
,cx
和rep movsb/w/d
一样简单。
正确设置寄存器 BIOS通过确定的寄存器值控制FSBL(参见the relative specifications的6.5.1节),您必须保存这些值(甚至是固定的存储位置)并恢复它们。
对于成功的链式加载,某些引导加载程序可能是additional constrains。