from Wikipedia
On an IBM PC compatible machine, the BIOS selects a boot device, then copies the first sector from the device (which may be a MBR, VBR or any executable code), into physical memory at memory address 0x7C00
I'm reading about the booting process in operating system especially the intel x86 : so what I have found is that BIOS loads the
first 512 bytes of the bootloader to the memory location
(segment, offset) = (0x0000,0x7C00) = 0x07C00
and jumps to there to execute the bootloader
my qustion is why BIOS always loads the
bootloader to 0x07C00?
The reason why BIOS always loads the
bootloader to 0x07C00 is historical.
In the early days, a PC is only guaranteed to have
64 KB of RAM memory.
The memory below 0x07C00 is reserved for interrupt vectors,
BIOS and BASIC, etc.
The first OS usable memory begins at 0x08000.
So the
bootloader is loaded to 0x07C00, which is 1 KB below 0x08000.
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