我有一个现代的 64 位 CPU。我的 BIOS 是否仍以 16 位 REAL 模式运行?

uni*_*n83 11 bios 64-bit 16-bit

由于它仍然需要启动,我想知道在x64/AMD64 64位系统上,BIOS是否仍然使用16位指令?它也可以在真实模式下运行吗?

Pat*_*rgi 6

x86 处理器仍然以实模式启动。BIOS 在初始化硬件时可以自由(有时被迫)切换到保护模式或长模式,但是当它们将控制权移交给操作系统(或者更确切地说是它的引导加载程序)时,它们必须恢复到实模式,因为这就是这些加载程序希望系统进入。

corebootUEFI较早切换到保护模式,而对于 PCBIOS(phoenix/award、ami 等),我们无法判断。它们是闭源的,通常不会透露太多关于它们的内部结构,并且它们的接口都被指定为实模式。

对于使用 ECC RAM 运行的系统,您可以相对确定它们切换到某种能够寻址所有 RAM 的模式,因此它们至少会进入保护模式 - 那是因为它们需要初始化内存(向每个地址写入一些值) 时,如果某些稍后的代码读取从未写入的地址(由于可能会产生误报的错误检测),则系统将停止运行。但如前所述,这是 BIOS 内部的,没有什么是凡人可以轻易弄清楚的,也不是他们需要考虑的。

tl; dr:BIOS 在外部可见的所有点都处于实模式,因此出于所有意图和目的,它可能一直以实模式运行。