Since it is still required to boot, I am wondering, on a x64/AMD64 64-bit system, does the BIOS still use 16-bit instructions? Also does it operate in REAL MODE?
feedback
|
|
PCs still start out in 16bit mode. BIOSes are free (and sometimes forced) to switch to 32bit or 64bit modes while they initialize their hardware, but when they hand over control to the Operating System (or rather its bootloader), they have to revert back to 16bit mode, because that's what these loaders expect the system to be in. coreboot and UEFI switch to 32bit mode rather early, while for PCBIOSes (phoenix/award, ami and so on), we can't tell. They're closed source and generally don't tell much about their internals, and their interfaces are all specified as 16bit. For systems that run with ECC RAM, you can be relatively sure that they switch to some mode that's capable of addressing all RAM, so they go at least to 32bit mode - that's because they need to initialize the memory (write some value to each address) on boot or the system would halt if some later code reads addresses that were never written to (due to error detection that might produce a false positive). But as said, that's internal to the BIOS, and nothing that mere mortals can figure out easily or that they'd need to think about. tl;dr: BIOS is in 16 bit mode at all points where it's externally visible, so for all intents and purposes it might just run in 16 bit mode all the time. | |||
|
feedback
|