我将编写和测试引导加载程序。为了做到这一点,我打算将引导加载程序复制到软盘映像文件中并将其挂载到 VM 中。
但是,我不确定将引导加载程序的机器代码放在哪里。它只是被转储到文件的前几个字节中吗?
我将编写和测试引导加载程序。为了做到这一点,我打算将引导加载程序复制到软盘映像文件中并将其挂载到 VM 中。
但是,我不确定将引导加载程序的机器代码放在哪里。它只是被转储到文件的前几个字节中吗?
软盘的引导扇区是第一个扇区。如果您谈论的是原始软盘映像 (1440K),它应该是映像文件的前 512 个字节。
BIOS 将其从内存加载到 7c00:0000(实模式),然后跳转到该地址。
DOS 引导软盘有一个 3 字节的JMP
指令来跳过磁盘参数块 (DPB),它详细说明了磁盘的属性。但是,如果您完全控制磁盘和引导代码,我认为您不需要遵循该约定。我不记得有任何 BIOS 会检查加载的内容是否有效(尽管这是很久以前的事了)。
它已经很长时间了,但如果我记得在 DOS 中它存储在 MBR 中。我相信今天还是一样