2

我知道组装知识是最需要的(我有),而且我也知道引导扇区代码告诉处理器引导/执行程序(或操作系统),但我不知道它的方式. 我见过反汇编的引导扇区代码,但我不知道如何编写该代码。如果我将故障引导扇区代码写入我的 USB 闪存驱动器,它将永远无法再次工作。

我总是可以从互联网上获得编程引导扇区的花絮,但我正在寻找一个有组织的教程或类似的东西,他们教如何从头到尾对引导扇区和其他引导程序进行编程。请指出我正确的方向...

4

1 回答 1

0

实际上有两个MBR。首先是主引导记录 (MBR),其次是卷引导记录 (VBR)。两者都参与操作系统的引导。MBR 结构与 VBR 的不同之处在于 - MBR 基本上以您的汇编代码开始并以分区表信息结束,VBR 以跳转到您的汇编代码开始,该代码位于一些卷信息之后。当系统启动时,它将 MBR 读入物理地址 0x7c00 的内存并跳转到该地址。假设 MBR 负责读取分区表(与 MBR 一起加载,作为它的一部分)并找到实际的卷(磁盘驱动器,如 C、D、E ......是。在 MBR 找到 OS 卷后,它会在地址 0x7c00 再次加载它的 VBR,然后跳转到提到的地址。现在 VBR 读取它' s 卷信息(作为它的一部分加载)并决定在哪里可以找到操作系统引导代码。做出决定后 - VBR 加载操作系统引导代码并跳转到它的起始地址。

有了这些信息,您就可以看到所需的引导记录编写器知识。至少 - 你应该知道你正在编写的引导记录(MBR 或 VBR)。然后你可以阅读它的数据结构并编写能够读取它们并加载下一个引导代码块的代码。

于 2013-05-20T08:41:02.080 回答