转自:http://www.ruanyifeng.com/blog/2015/09/0x7c00.htmlhtml
当时,搭配的操做系统是86-DOS。这个操做系统须要的内存最少是32KB。咱们知道,内存地址从0x0000开始编号,32KB的内存就是0x0000~0x7FFF
。bash
8088芯片自己须要占用0x0000~0x03FF
,用来保存各类中断处理程序的储存位置。(主引导记录自己就是中断信号INT 19h的处理程序。)因此,内存只剩下0x0400~0x7FFF
能够使用。spa
为了把尽可能多的连续内存留给操做系统,主引导记录就被放到了内存地址的尾部。因为一个扇区是512字节,主引导记录自己也会产生数据,须要另外留出512字节保存。因此,它的预留位置就变成了:操作系统
0x7FFF - 512 - 512 + 1 = 0x7C00
0x7C00就是这样来的。code