为何主引导记录的内存地址是0x7C00?

转自:http://www.ruanyifeng.com/blog/2015/09/0x7c00.htmlhtml

当时,搭配的操做系统是86-DOS。这个操做系统须要的内存最少是32KB。咱们知道,内存地址从0x0000开始编号,32KB的内存就是0x0000~0x7FFFbash

8088芯片自己须要占用0x0000~0x03FF,用来保存各类中断处理程序的储存位置。(主引导记录自己就是中断信号INT 19h的处理程序。)因此,内存只剩下0x0400~0x7FFF能够使用。spa

为了把尽可能多的连续内存留给操做系统,主引导记录就被放到了内存地址的尾部。因为一个扇区是512字节,主引导记录自己也会产生数据,须要另外留出512字节保存。因此,它的预留位置就变成了:操作系统

0x7FFF - 512 - 512 + 1 = 0x7C00 

0x7C00就是这样来的。code

相关文章
相关标签/搜索