Nic*_*ill 5 c compiler-construction machine-code
考虑到 C 是一种系统编程语言,如何将 C 代码编译为可以在没有操作系统的情况下调用的原始 x86 机器代码?(即:您可以假设我有一个引导扇区,它将原始机器代码从磁盘加载到内存中,然后直接跳转到第一条指令)。
现在,为了加分:理想情况下,我想使用 Visual Studio 2010 的编译器进行编译,因为我已经有了它。如果做不到这一点,那么完成任务的最佳方法是什么,而不必安装一堆依赖项或必须在整个系统中进行大规模的彻底配置更改?我会在 Windows 7 上进行编译。
通常情况下,你不会。相反,您可以正常编译代码,然后(使用链接器或其他工具)从目标文件中提取原始二进制文件。
例如,在 Linux 上,您可以使用该objcopy工具将目标文件复制到原始二进制文件。
$ objcopy -O binary object.elf object.binary
Run Code Online (Sandbox Code Playgroud)