轉自: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