我要写和测试一个引导程序。为了做到这一点,我计划将Bootloader复制到软盘映像文件中并将其挂载到VM中。将启动加载程序存储在软盘映像上的位置?
但是,我不确定在哪里把引导程序的机器码。它只是被转储到文件的前几个字节?
我要写和测试一个引导程序。为了做到这一点,我计划将Bootloader复制到软盘映像文件中并将其挂载到VM中。将启动加载程序存储在软盘映像上的位置?
但是,我不确定在哪里把引导程序的机器码。它只是被转储到文件的前几个字节?
软盘的引导扇区是第一个扇区。如果你正在谈论一张原始的软盘映像(1440K),它应该是映像文件的前512个字节。
从内存中,BIOS被加载到7c00:0000(实模式),然后跳转到该地址。
DOS引导软盘在那里有一个3字节的JMP
指令来跳过磁盘参数块(DPB),该参数块详细说明了磁盘的属性。但是,如果你完全控制了磁盘和引导代码,我认为你不需要遵循这个约定。我不记得任何BIOS检查什么是加载有效性(虽然承认它是一个长时间前)。
它是一个很长的时间,但如果我记得在DOS中它被存储在MBR。我认为它仍然是相同的今天
虽然这并没有真正回答我的问题。 IMG文件中**在哪里存储? – 2010-09-14 04:10:24
完美。这正是我想知道的。 – 2010-09-14 04:32:30