如何解决c ++从无文件系统执行代码
| 首先,很难找到一个标题,这有点模棱两可,但是很好。 好了,所以我有一个混合的c ++和asm引导程序。我可以将其复制到我的mbr上并运行它。我唯一的问题是mbr很小。我假设它的目的是仅调用在驱动器上其他位置编写的外部代码。我的问题是,我不确定如何访问它。我的意思是我可以将数据放在那儿,我只是不知道如何以编程方式访问该数据,因为从本质上讲,驱动器将不会具有“文件系统”,而只是具有任意代码。 我已经在网上搜索过,但是关于真正的低水平开发的教程似乎很少。 如果有的话,我什至愿意使用c ++库。解决方法
BIOS在运行MBR中的代码之前会设置几个中断处理程序。其中之一可用于直接从硬盘驱动器执行读/写扇区之类的操作,而无需操作系统,设备驱动程序或文件系统。
那是中断
19
(更常见的是13H)。
您将需要使用它来读取代码,然后在代码中输入jmp
。
, 良好的旧BIOS调用,适用于PC。如果您的主板不是PC,则需要主板制造商提供有关如何访问IDE / SATA控制器的信息。
, 在不了解平台的情况下,很难给出最通用的概述。
初始引导代码通常要求系统固件将其他块从磁盘复制到内存,然后才能调用其中包含的代码。在PC系统上,这意味着要进行BIOS调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。