编写C/ c++编译器到MBR,在启动操作系统之前执行源代码

Writing C/C++ Compiler to the MBR to execute source code before Booting up the OS

本文关键字:操作系统 启动 源代码 执行 c++ 编译器 MBR 编写      更新时间:2023-10-16

我正在尝试在c++上编写完全独立于操作系统的程序。我想在启动操作系统(即Windows)之前加载程序。我试图用我简单的"Hello World"程序取代MBR,但没有发生任何事情,我丢失了虚拟硬盘的分区表。我想我应该把c++编译器写在MBR上,直接执行程序或源代码。

。编译器是EXE格式,所以应该需要Windows或DOS。它可以写在MBR上吗?

。c++程序需要DOS平台。它可以在没有操作系统的情况下运行吗?

我正在尝试编写一个引导加载程序和一些相同类型的程序。

用普通的C/c++编写这样的程序是不可能的。没有操作系统,编译器应该在"独立"模式下工作。在这种模式下,没有"stdin.h"头文件,没有文件,没有文件访问,也没有printf。

所以,你的程序应该直接调用BIOS函数,例如使用asm关键字。

MBR二进制格式非常接近DOS的COM文件格式。可以将短COM程序转换为MBR启动代码(通过操纵一些编译参数)。

另外,您应该知道MBR是一个扇区长,它包含一个分区表。因此,您只有~450字节来存储二进制代码。