据我了解,保存在 ROM 中的 BIOS 代码/比特流应该是通用的(与多种 CPU 类型或 ISA 一起使用)。此外,我在网上看到有人声称有可能转储它的代码(并“反汇编”它)。
那么,它是用哪种语言、指令集或机器代码编写的?它不需要任何类型的处理器来执行其操作吗?如果是这样我猜它会使用外部CPU,那么它如何知道所使用的具体指令集?
也许它有一个内部处理器?
据我了解,保存在 ROM 中的 BIOS 代码/比特流应该是通用的(与多种 CPU 类型或 ISA 一起使用)。此外,我在网上看到有人声称有可能转储它的代码(并“反汇编”它)。
那么,它是用哪种语言、指令集或机器代码编写的?它不需要任何类型的处理器来执行其操作吗?如果是这样我猜它会使用外部CPU,那么它如何知道所使用的具体指令集?
也许它有一个内部处理器?
作为补充答案,BIOS 过去是用汇编程序编写的(现在主要是 ANSI C 代码),它编译为
a) 旧架构的机器代码(过去,如 PC IBM;实际上是根据https://sites.google.com/site/pcdosretro/ibmpcbios和 Gottfried 在 Assembler for PC IBM 中的一本旧书用汇编编写的)。
b) 当前用于 EFI 的 UEFI 字节码(BIOS 替换)。
作为证据,请查看https://en.wikipedia.org/wiki/Coreboot & http://review.coreboot.org/gitweb?p=coreboot.git;a=tree
(请注意,在 BIOS/EFI 替换方面还有其他一些开源工作)。
UEFI 是一个具有多层框架的规范,其中公开了服务、shell 控制台和解释器层(用于 EFI 字节代码),将“BIOS”从机器代码中抽象出来的想法是为了便于移植到其他非x86 架构(Itanium、ARM 等)
这是关于 UEFI 的一个很好的概念介绍http://www.amazon.com/Beyond-Bios-Implementing-Extensible-Interface/dp/0974364908/ref=sr_1_2?ie=UTF8&qid=1452724127&sr=8-2&keywords=efi+bios
附注。在我曾经工作过的一家公司,我实际上可以访问 BIOS/EFI 代码库。