C++从无文件系统执行代码

问题描述:

首先,很难找出一个标题,这有点模糊,但是很好。C++从无文件系统执行代码

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

我搜索了网络,但真正的低层次开发教程似乎很少。

我甚至有一个C++库,如果有的话。

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

这就是中断1913H,因为它更常见)。

你需要使用它来读取代码,然后只需要jmp就可以了。

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

在不知道平台的情况下,除了最通用的概述之外,很难给出任何内容。

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

+0

+1表示(可能不那么明显):这是平台相关的。 BIOS只是BIOS系统的解决方案,但有些平台没有BIOS。 – 2011-06-12 23:38:52

+0

downvote的原因? – 2011-06-12 23:48:11