BIOS是用汇编语言编写的,机器只能理解二进制。BIOS是系统启动时加载到内存中的第一个程序。是什么编译BIOS以生成二进制文件?
BIOS是用汇编语言编写的,机器只能理解二进制。BIOS是系统启动时加载到内存中的第一个程序。是什么编译BIOS以生成二进制文件?
理论上,使用任何能生成可执行二进制文件的语言都可以编写BIOS,但由于需要处理底层硬件,最适合和最常用的是汇编和C语言。
当电脑开机时,没有什么需要编译的,它已经是一个准备好的组装/编译好的二进制文件,存储在内存中(ROM、EPROM、闪存),CPU期望找到它。
你也可以查看Bochs模拟器的BIOS源代码(我认为Qemu和Virtualbox也有各自的BIOS,但不确定源代码是否可用)。
还有一些开源项目旨在替换PC BIOS,例如coreboot。
编辑:如评论中所指出,这个答案是错误的。
我觉得你对编译器有误解。
当你编译一个程序时,你是将高级语言(比如C语言)转换成汇编语言。汇编语言程序 = 二进制程序。它们是同一个东西。
所以,并没有什么东西可以编译BIOS。它只是运行而已。
BIOS被分成多个块。每个块都是LZH压缩的。只有引导块和解压缩块是纯机器码块。块内的可执行代码可以从C语言编译和/或从ASM语言汇编而来。
我认为主板制造商会将其转换并写入ROM中吧?