What is significance of memory at 0000:7c00 to booting sequence?

后端 未结 4 1469
情深已故
情深已故 2021-02-05 09:22

Why does bios read at partition\'s boot record at 0000:7c00 ? What is special about that address ? what \':\' doing in referencing an address ?

4条回答
  •  北恋
    北恋 (楼主)
    2021-02-05 10:02

    In the original IBM PC it was thought inconceivable to have more than 32K RAM. In segmented addressing terms this is 0000:8000 where 8000 hex is 32768 decimal. The fashion of the time was for the BIOS POST conclude by loading the Boot Sector of the floppy in A: or the Master Boot Record of the hard drive in C: at the location 512 bytes below the top of memory which means subtract 0200 hex from 8000 hex to get 7C00. So the boot sequence loaded the first valid 512 byte first sector into, and then set the Instruction Pointer to 0000:7C00 to execute it. I used to write the code for these first sectors to load the operating system.

提交回复
热议问题