C++ c++;从非文件系统执行代码
首先,我很难弄清楚一个标题,它有点模棱两可,但很好 <> P>,所以我有一个混合的C++和ASM引导加载程序。我可以将它复制到我的mbr并运行它。我唯一的问题是mbr非常小。我假设它的目的是只调用驱动器上其他地方编写的外部代码。我的问题是,我不知道如何访问它。我的意思是我可以把数据放在那里,我只是不知道如何编程来访问这些数据,因为本质上驱动器不会有“文件系统”,只是任意代码 我在网上搜索过,但是关于真正的低级开发的教程似乎很少C++ c++;从非文件系统执行代码,c++,assembly,filesystems,mbr,C++,Assembly,Filesystems,Mbr,首先,我很难弄清楚一个标题,它有点模棱两可,但很好 P>,所以我有一个混合的C++和ASM引导加载程序。我可以将它复制到我的mbr并运行它。我唯一的问题是mbr非常小。我假设它的目的是只调用驱动器上其他地方编写的外部代码。我的问题是,我不知道如何访问它。我的意思是我可以把数据放在那里,我只是不知道如何编程来访问这些数据,因为本质上驱动器不会有“文件系统”,只是任意代码 我在网上搜索过,但是关于真正的低级开发的教程似乎很少 我甚至可以选择一个C++库。如果你的板不是PC,你需要从板制造商那里获得
我甚至可以选择一个C++库。如果你的板不是PC,你需要从板制造商那里获得ID/SATA控制器的信息。
< P>不知道平台,除了最通用的概览,什么都不做。初始引导代码通常要求系统固件将附加块从磁盘复制到内存,然后调用其中包含的代码。在PC系统上,这意味着一个BIOS调用。BIOS在MBR中运行代码之前设置了几个中断处理程序。其中一个可以直接从硬盘驱动器执行读/写扇区等操作,而无需操作系统、设备驱动程序或文件系统 这就是中断
19
(更常见的说法)
您需要使用它来读取代码,然后将jmpjmp
放入其中。+1用于说明(可能不是这样)显而易见的问题:这取决于平台。BIOS只是带有BIOS的系统的解决方案,但有些平台没有BIOS。