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