【问题标题】:c++ execute code from no file systemc ++从无文件系统执行代码
【发布时间】:2011-06-12 22:50:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ assembly filesystems mbr


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      那是中断1913H 更常见)。

      您需要使用它来阅读代码,然后只需 jmp 即可。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • +1 用于说明(也许不是那么)明显:这取决于平台。 BIOS 只是有 BIOS 的系统的解决方案,但也有没有 BIOS 的平台。
        猜你喜欢
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多