BIOS is written in Assembly language and a machine can only understand Binaries. BIOS is the first program which is loaded into memory when the system starts. What compiles BIOS to generate a binary file?
A BIOS engineer writes the BIOS in x86 assembly language, and then "compiles" it with a program like MASM or NASM.
The resulting binary file is then burned into the Flash ROM chip (using a tool like this), which is then installed on the motherboard.
When the PC is turned on, it begins executing the code from this flash chip, which initializes the hardware of the PC and then turns control over to the Operating System.
Some comments on the above:
Writing my own BIOS
Theoretically a BIOS could be written with any language that produces executable binaries, but having to handle low level hardware, the most appropriate and most used are assembly and C.
When a PC is turned on there's nothing to compile, it is already an assembled/compiled binary ready in memory (ROM, eprom, flash) where the CPU expects it.
You can take a look too Bochs emulator's bios sources (I think also Qemu and Virtualbox have their own but not sure if sources are available).
There are also open source projects aimed at replacing the PC BIOS, for example coreboot.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With