4

首先,很难确定一个标题,而且有点模棱两可,但是哦,好吧。

好的,所以我有一个混合的 c++ 和 asm 引导加载程序。我可以将它复制到我的 mbr 上并运行它。我遇到的唯一问题是 mbr 非常小。我假设它的目的是只调用写在驱动器其他地方的外部代码。我的问题是,我不确定如何访问它。我的意思是我可以把数据放在那里,我只是不知道如何以编程方式访问该数据,因为本质上驱动器不会有“文件系统”,只是任意代码。

我在网上搜索过,但关于真正低级开发的教程似乎很少。

如果有的话,我什至想要一个 c++ 库。

4

3 回答 3

4

良好的旧BIOS 调用,适用于 PC。如果您的主板不是 PC - 您需要主板制造商提供有关如何访问 IDE/SATA 控制器的信息。

于 2011-06-12T22:53:34.077 回答
2

在不了解平台的情况下,很难给出最通用的概述。

初始引导代码通常要求系统固件将附加块从磁盘复制到内存,然后可以调用其中包含的代码。在 PC 系统上,这意味着 BIOS 调用。

于 2011-06-12T22:55:54.787 回答
2

BIOS 在运行 MBR 中的代码之前设置了几个中断处理程序。其中之一可用于直接从硬盘驱动器读取/写入扇区,而无需操作系统、设备驱动程序或文件系统。

那是中断1913H更为人所知)。

您需要使用它来阅读代码,然后jmp进入其中。

于 2011-06-12T22:56:56.100 回答