码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-02-28 11:48:26      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:pre   中断处理   为什么   保存   blank   -bash   芯片   interrupt   ber   

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

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

8088芯片本身需要占用0x0000~0x03FF,用来保存各种中断处理程序的储存位置。(主引导记录本身就是中断信号INT 19h的处理程序。)所以,内存只剩下0x0400~0x7FFF可以使用。

为了把尽量多的连续内存留给操作系统,主引导记录就被放到了内存地址的尾部。由于一个扇区是512字节,主引导记录本身也会产生数据,需要另外留出512字节保存。所以,它的预留位置就变成了:


  0x7FFF - 512 - 512 + 1 = 0x7C00 

0x7C00就是这样来的。

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

标签:pre   中断处理   为什么   保存   blank   -bash   芯片   interrupt   ber   

原文地址:https://www.cnblogs.com/lmaster/p/10449322.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!