游乐游手机版
首页/系统平台/文章详情

BIOS启动地址0xFFFF0详解

时间:2026-06-26 07:40
你可能听说过这样一个说法:计算机加电开机后,CS寄存器被设为0xFFFF,IP设为0x0000,两者组合得到的地址是0xFFFF0——这通常被认为是BIOS的入口地址。CPU从这里开始读取指令,随后系统便启动起来。但细究起来,这个0xFFFF0究竟位于主板上的ROM芯片里,还是在系统内存(RAM)中

你可能听说过这样一个说法:计算机加电开机后,CS寄存器被设为0xFFFF,IP设为0x0000,两者组合得到的地址是0xFFFF0——这通常被认为是BIOS的入口地址。CPU从这里开始读取指令,随后系统便启动起来。但细究起来,这个0xFFFF0究竟位于主板上的ROM芯片里,还是在系统内存(RAM)中?这恰恰是让人产生混淆的关键所在。

如果是统一编址,0xFFFF0很可能映射到主板上的ROM,CPU直接从中获取指令。然而,有些教材的示意图却把它画在RAM区域。假如真的在RAM里,那是什么时机、由哪段程序把ROM的内容拷贝过去的呢?自己推测的话,可能是一个固定的硬件过程:加电瞬间,硬件自动将ROM的全部内容拷贝到内存最高端的某一段,之后0xFFFF0自然就指向RAM了。

到网上搜索后,确实有专门文章讲解这一机制。640KB到1MB这段区域被称为“上位内存”,原本分配给ROM,对应的384KB RAM被屏蔽。所谓“影子内存”(Shadow RAM)技术,正是将ROM的内容读取到相同地址的RAM中,此后系统直接从RAM读取,而不再从慢速的ROM中读取——速度自然大幅提升。影子内存使用的物理芯片仍然是普通的CMOS DRAM,地址范围是C0000~FFFFF,也就是1MB主存中的768KB到1024KB这一段。这片区域也称为内存保留区,普通用户程序无法直接访问。影子内存中存放的是各种ROM BIOS的副本,因此也常被称为ROM Shadow。如今,从开机加电的那一刻起,BIOS信息就会被自动装载到影子内存的指定区域。由于影子内存的物理编址与ROM完全相同,访问BIOS时直接读取RAM即可,无需再访问ROM。要知道,访问ROM大约需要200纳秒,而访问DRAM不到100纳秒,甚至可低至60纳秒以下——效率提升非常显著。

说到具体地址,386之前和之后的系统有所区别,但都在系统内存的最高地址段。在386下,这个地址是0xFFFFFFF0。原因在于:CS是16位的,EIP是32位的,为了获得32位地址,386为CS段增加了几个隐藏字段。这些字段平时不可见,但系统可以通过GDT、IDT来改变段选择子中的字段。这时地址转换不再是“段地址左移4位加偏移地址”那么简单,而是使用CS的Base字段加上偏移地址。

具体举例来看:系统加电复位时,386以前的系统中,CS=0xF000,IP=0xFFF0,BIOS地址 = 段地址左移4位 + 偏移地址 = 0xF0000 + 0xFFF0 = 0xFFFF0。在386以前,系统可寻址范围仅为1MB(0x00000~0xFFFFF)。

到了386,CS和IP的值表面上仍为0xF000和0xFFF0,没有变化。但此时CS中隐藏的部分还不能使用——因为系统仍处于实地址模式下,所以BIOS地址与386以前相同,也是0xFFFF0。但386能够寻址4GB(0x00000000~0xFFFFFFFF),如果直接使用0xFFFF0作为BIOS入口,系统内存就不连续了。于是386通过硬件将A20~A31地址线强制置为1,结果地址变成了0xFFFFFFF0——这就是386下的BIOS入口地址。这个硬件置1的效果是,CS隐藏字段中的Base被设为0xFFFF0000。注意,这不是通过修改描述符表实现的——因为尚未进入保护模式,描述符表根本没有建立。完全是硬件自动完成的。而且,一旦执行了一次段间跳转,这个硬件置1的结果就会消失(硬件设计在跳转后自动清零),所以执行完0xFFFFFFF0处的指令(例如jmp)之后,Base就变回0x00000000,BIOS转而使用1MB以下的内存。

关于入口地址的具体组合,有的文章说是CS=0xFFFF、IP=0x0000,有的则说是CS=0xF000、IP=0xFFF0。我推测这可能是不同硬件的初始化方式有所差异,只要最终形成的地址是0xFFFF0即可。如果不是这样,后续再补充说明吧。

来源:https://www.jb51.net/os/543869.html
上一篇BIOS设置光驱为第一启动项的三种方法图解 下一篇捷波主板台式电脑一键U盘启动BIOS设置图文教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送