转自:关于BIOS的入口地址0xFFFF0

一直都说开机加电之后,将CS设置为0xFFFF,IP设置为0x0000,这样组成的地址就是0xFFFF0,而这个就是BIOS的入口地址,之后CPU读取这个地址的代码,然后就巴拉巴拉的开始执行下去了。

现在想知道这个地址0xFFFF0是在主板上呢,还是在内存上。想着如果是统一编址的话,就可能是去读取主板上的ROM,但是看书上的图,有像是在RAM中,如果是在 内存 中,那是什么时候,由哪段程序将ROM中的程序读取到内存中的。自己猜的话,应该这个过程是固定的硬件实现的,将ROM中的所有内容拷贝到内存中最高位那一段中,之后,0xFFFF0就必然是指内存中的地址了。

百度了一下,有篇文章就是说这个的。

转了过来。原文地址:http://myuka.blog.163.com/blog/static/17498750920115593147503/


640KB~1MB 上位内存(这个区域的地址分配给ROM,相应的384KB的RAM被屏蔽掉。所谓的影子内存技术,就是把ROM内容读取到对应地址的RAM中,以后系统就从RAM中读取数据,而不是从原来的ROM读取数据,从而提高速度。)

1MB~ 扩展内存

注:

Shadow RAM也称为"影子内存",是为了提高计算机系统效率而采用的一种专门技术,所使用的物理芯片仍然是CMOS DRAM(动态随机存取存储器,参阅本书后面的内容)芯片。Shadow RAM占据了系统主存的一部分地址空间。其编址范围为C0000~FFFFF,即为1MB主存中的768KB~1024KB区域。这个区域通常也称为内存 保留区,用户程序不能直接访问。Shadow RAM的功能就是是用来存放各种ROM BIOS的内容。也就是复制的ROM BIOS内容,因而又它称为ROM Shadow,这与Shadow RAM的意思一样,指得是ROM BIOS的"影子"。现在的计算机系统,只要一加电开机,BIOS信息就会被装载到Shadow RAM中的指定区域里。由于Shadow RAM的物理编址与对应的ROM相同,所以当需要访问BIOS时,只需访问Shadow RAM而不必再访问ROM,这就能大大加快计算机系统的运算时间。通常访问ROM的时间在200ns左右,访问DRAM的时间小于100ns、60ns, 甚至更短。

在计算机系统运行期间,读取BIOS中的数据或调用BIOS中的程序模块的操作将是相当频繁的,采用了Shadow RAM技术后,无疑大大提高了工作效率。

386 之前与386之后,这个地址是不同的,但都在系统内存的最高 地址段。在386下为 FFFFFFF0H。因为CS段是16位的,EIP是32位的,为了得到一个32位地址,386给CS段增加了几个字段,这是隐藏的字段,系统可以通过 GDT,IDT将更改段选择子的字段,此时地址转换就不是 段地址左移4位 + 偏移地址,而是CS的Base字段+偏移地址。

下面是一个例子

当系统加电后,系统会复位。此时在386以前的系统下CS=F000H,IP=FFF0H,Bios地址为段地址左移4位 + 偏移地址挤即 F0000H + FFF0H = FFFF0H

在386以前系统可寻址范围为1MB即 00000H~FFFFFH

在386下CS=F000H,IP=FFF0H,这是不变的,但是这时,CScs中的内容为:
Selector = F000H (这个就是你可以看到的那部分内容)

这时隐藏的部分是不能用的,因为在实地址模式下,所以Bios地址与386以前的地址一样,

但是386可寻址范围为4GB 即 00000000H~FFFFFFFFH,如果以这个地址(000FFFF0H)作为Bios地址的话,系统内存不连续,因此,386使用硬件置1的方式将A20~A31地址线置1,就变成FFFFFFF0H,并以此作为Bios地址。

这 个置1的结果是,隐藏的部分的一个字段Base=FFFF0000H,这个操作不是由更改描述符表实现的,因为还没有进入保护模式,而且描述符表还没有 建立。这是硬件实现的,而且当进行一次段间跳转后,由于置1的结果就不能保存,因为硬件设计是从会将其置0,所以当执行完FFFFFFF0H处的指令 jmp ,Base=00000000H,这时,Bios就使用1M以下内存。


关于BIOS影子内存:http://baike.baidu.com/view/568786.htm


关于入口地址的形成,有的文章上说是CS 0xFFFF和IP 0x0000的组成,有的文章上说是 CS 0xF000 和IP 0xFFF0的组合,我猜可能是不同硬件的初始化不同,只要最后形成的入口地址是 0xFFFF0就行了。

关于BIOS的入口地址0xFFFF0相关推荐

  1. 宝塔php7.1地址在哪里,宝塔Linux面板安全入口地址忘了(方法一)

    现在新安装的宝塔 Linux 面板时都会开启安全入口登录,获得的面板登录地址都会带有一个随机 8 位字符,如http://服务器 IP:8888/abcd1234. 这 8 位字符是可以在面板设置中修 ...

  2. linux 内核入口地址,linux内核的加载地址和入口地址

    编译完内核之后,会产生zImage,而把它直接导入0x30008000,会出现Bad Magic Number. 查明是需要将内核加一个0x40大小的头,由mkimage工具来添加.mkimage在编 ...

  3. 汇编语言上机考试三星题——根据键盘输入调用子程序显示子程序的入口地址

    在多模块设计中,主模块中调用内部模块buf1,buf2,buf3,buf4.主模块根据键盘输入的指令(如:a,b,c,d)调用上述对应的子程序,每个子程序的任务是显示其入口地址.调用后继续等待调用,若 ...

  4. 微信公众平台测试号登录入口地址

    微信公众平台测试号登录入口地址,使用测试号除了没有支付权限外,其他权限全部都有,用起来非常方便 http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...

  5. linux怎么找宝塔地址,宝塔Linux面板安全入口地址忘了(方法一)

    现在新安装的宝塔 Linux 面板时都会开启安全入口登录,获得的面板登录地址都会带有一个随机 8 位字符,如http://服务器 IP:8888/abcd1234. 这 8 位字符是可以在面板设置中修 ...

  6. 搜索引擎网站提交入口地址

    搜索引擎网站提交入口         对于给位新建站的朋友来说,搜索引擎的收录显得尤为重要.目前国内用户几乎都是通过百度谷歌搜搜等搜索引擎的进入网站,为使搜索引擎快速收录自己的网站,我们可以自己向搜索 ...

  7. 【exe加壳:修改可执行文件的PE头,增加一节,修改程序入口地址为该节】

    一:PE中增加节 使用工具为:LordPE.010Editor.CFF.OD List item 先用 010Editor 查看节表部分是否足够长度加入新的节表目录 从图中看出,节表后面还有空余地方, ...

  8. fiq中断的入口地址_uboot中添加FIQ中断及相关问题

    本文主要说明了在uboot中添加FIQ中断时遇到的问题以及对应的解决办法. 首先交代一下项目的软硬件环境.硬件方面,使用s3c2440作为主控芯片,外接串口.网卡等设备.软件方面,主控芯片上电后运行u ...

  9. fiq中断的入口地址_ARM 之FIQ(快速中断) IRQ(中断)

    IRQ,FIQ定义:  这就是个普通中断,当我们程序定义了该中断,并且在程序运行的时候产生了IRQ中断,则此时的芯片是这样运行的------中断处理器吧利用IRQ请求线来高速ARM,ARM就知道有个I ...

最新文章

  1. 如皋技校计算机老师,如皋中专计算机考试名列南通第一 共2457人参考合格率达95.5%...
  2. “黑”掉神经网络:腾讯披露新型AI攻击手法,主流机器学习框架受影响
  3. struts上传文件 血案
  4. java操作js文件_JS操作文件
  5. Elasticsearch java api 基本搜索部分详解
  6. ObjectArx创建指定块
  7. 通过__tablename__ = 'xxx' #定义表名
  8. BGP——本地始发选路+AS-PATH选路(讲解+命令)
  9. JXLS (Excel 导出工具使用)
  10. 【HUSTOJ】1048: 字符图形4-星号正三角
  11. matlab坐标加图例,科学网—Matlab 循环添加图例 更改图例位置 - 肖鑫的博文
  12. request和request.form和request.querystring的区别
  13. Cassandra启动过程详解【原创】
  14. sql update
  15. rtsp 报文转发_stp技术回顾和rstp经典笔记
  16. 清华大学五道口金融学院2023年博士生招生简章(普博+直博)
  17. 你要的开源报修系统V2版本已发布,请及时更新最新源码。
  18. python flask框架下登录注册界面_Python-用户登录 Flask-Login
  19. mysql的dbconn_mysql面向对象中$conn-query()是什么意思?
  20. SXSSFWorkbook导入/导出Excel文档简单操作

热门文章

  1. Keychron K7 Pro 轻薄矮轴机械键盘开箱体验
  2. 分布电容和杂散电容_寄生电容 分布电容
  3. 基于DES和RSA算法自动分配密钥的加密聊天程序
  4. 高级计划排程APS系统的十二个应用方法
  5. 使用Python探索四大名著【红楼梦】人物之间的关系,简直帅呆了
  6. 《算法之美》-- 读书笔记(4)-- 2019
  7. Excel-给条形统计图加走线趋势
  8. 机票预订系统活动图_机票预订ppt
  9. 2020年数学建模国赛C题
  10. 宾果消消乐和宾果消消消_《宾果消消消》攻略之关卡障碍介绍