为什么主引导记录的内存地址是0x7C00?
来源:互联网 发布:汉王ocr文字识别 mac 编辑:程序博客网 时间:2024/05/18 13:30
当时,搭配的操作系统是86-DOS。这个操作系统需要的内存最少是32KB。我们知道,内存地址从0x0000开始编号,32KB的内存就是0x0000~0x7FFF。
8088芯片本身需要占用0x0000~0x03FF,用来保存各种中断处理程序的储存位置。(主引导记录本身就是中断信号INT 19h的处理程序。)所以,内存只剩下0x0400~0x7FFF可以使用。
为了把尽量多的连续内存留给操作系统,主引导记录就被放到了内存地址的尾部。由于一个扇区是512字节,主引导记录本身也会产生数据,需要另外留出512字节保存。所以,它的预留位置就变成了:
0x7FFF - 512 - 512 + 1 = 0x7C00
0x7C00就是这样来的。
计算机启动后,32KB内存的使用情况如下。
+——————— 0x0
| Interrupts vectors
+——————— 0x400
| BIOS data area
+——————— 0x5??
| OS load area
+——————— 0x7C00
| Boot sector
+——————— 0x7E00
| Boot data/stack
+——————— 0x7FFF
| (not used)
+——————— (…)
0 0
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 为什么主引导记录的内存地址是0x7C00?
- 0x7c00引导地址详解
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?(翻译)
- 为什么bios将mbr装载到0x7c00地址,0x7c00怎么来的?
- BIOS加载MBR到内存地址0x7C00的由来
- BIOS加载MBR到内存地址0x7C00的由来
- 为什么GRUB起始地址为0x7c00.
- 为什么BIOS将MBR读入0x7C00地址处(x86平台下)
- 为什么BIOS将MBR读入0x7C00地址处(x86平台下)
- 51单片机的中断与定时计数器尝试
- MySQL数据库命令
- slam资料整理
- java高并发系统之异步非阻塞
- mysql索引
- 为什么主引导记录的内存地址是0x7C00?
- ANDROID STAGGEREDGRIDLAYOUTMANAGER EXAMPLE TUTORIAL
- java设计模式
- iOS流布局UICollectionView系列七——三维中的球型布局
- 大整数加减法(C++实现)
- Java 异常体系规范
- unity NGUI的UIGrid与UITable的区别
- HDU 5842 Lweb and String
- 关于Spark的Broadcast解析