如何编译BIOS

COD*_*ror 4 compiler-construction bios

BIOS是用汇编语言编写的,机器只能理解二进制文件.BIOS是系统启动时加载到内存中的第一个程序.什么编译BIOS生成二进制文件?

Ale*_*lex 6

编写自己的BIOS

从理论上讲,BIOS可以使用任何生成可执行二进制文件的语言编写,但必须处理低级硬件,最合适和最常用的是程序集和C.

当PC打开时,没有什么可编译的,它已经是内存(ROM,eprom,flash)中的汇编/编译二进制文件,CPU需要它.

你也可以看看Bochs模拟器的bios源码(我认为Qemu和Virtualbox也有它们自己但不确定是否有可用的源码).

还有一些旨在取代PC BIOS的开源项目,例如coreboot.


myr*_*ack 6

BIOS工程师使用x86汇编语言编写BIOS,然后使用MASMNASM等程序"编译"它.

然后将生成的二进制文件刻录到Flash ROM芯片中(使用这样的工具),然后将其安装在主板上.

当PC打开时,它开始执行该闪存芯片的代码,该代码初始化PC的硬件,然后将控制权交给操作系统.

关于上述的一些评论:

  • 较新的UEFI BIOS是用C语言编写的,除了初始引导加载程序,它仍然是程序集.
  • 编程工具通常仅用于空白闪存芯片(装配线上的全新主板)的初始编程.系统启动后,通常使用软件实用程序重新刷新BIOS芯片.
  • 您并不总是需要使用带插槽的Flash编程工具.在较新的主板上,芯片可以直接表面安装,而不是插座.在这种情况下,主板上可能有一个编程连接器,用这样的工具对闪存进行编程.