Chinaunix首页 | 论坛 | 博客
  • 博客访问: 142025
  • 博文数量: 31
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 315
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-07 17:12
文章分类

全部博文(31)

文章存档

2011年(1)

2009年(1)

2008年(29)

我的朋友

分类:

2008-07-21 22:51:35

关于FFFF0h07C00h的说明

 

FFFF0h07C00h,这两个都是机器启动后默认访问的内存地址。

 

首先要知道bios是用来初始化硬件的最底层的软件(然后才是操作系统),因此计算机启动后必须最先被执行。另外我们都知道CPU只能执行内存中的内容的,而一般内存中的数据是易失性的,断电之后内容就会消失。工程师的解决方法是:将存放biosrom芯片与内存芯片统一编址(不明白的话去看看微机原理与接口的书就明白了)。这样就可以把存放biosROM芯片看作是数据永远不会消失不允许被更改的内存了。

开机启动后默认的CS=FFFFh  IP=0000h。这个地址就是bios的地址。这段内存空间很小,所以不能够容下操作系统等大型程序。

 

相对bios而言操作系统的功能更强大,更新也更快但是也需要更多的空间,通常放在硬盘中。但是如果没有bios的话,那么将会连硬盘都不能使用,又如何启动存放在硬盘中的操作系统呢?正是由于此,机器启动后自动执行bios使其它完成硬件初始化(这样包括硬盘在内的cpu以外的其他硬件设备就可以工作了)。bios完成硬件初始化的任务后,就要把权力移交给操作系统。

 

工程师进行了强制性的规定:到内存中的07c00h 处寻找系统的引导程序,即CS=0000h IP=7c00h。也就是说任何系统,他的引导程序都必须安排在07c00h开始的地方,否则就不能被正确的引导。当引导程序完成后我们就进入了Linux Windows等系统了。

 

本文参考: http://blog.chinaunix.net/u/15262/showart_253979.html

 

阅读(2186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~