请问“BIOS程序是由0xFFFF0来执行的”该怎么理解呢?
答案:2 悬赏:30 手机版
解决时间 2021-03-16 08:24
- 提问者网友:欲劫无渡
- 2021-03-16 03:18
最近看到一本书,里面是这么写的:……在开机加电的一瞬间,内存中什么程序也没有,没有任何程序在运行,不可能有操作系统,更不可能有用户界面。我们无法人为地执行BIOS程序,那BIOS程序又是由谁来执行的呢?答案是:0xFFFF0!!!Intel将所有80x86系列的CPU的硬件都设计为加电进入16位实模式状态运行。同时,……将CPU硬件逻辑设计为加电瞬间强行将CS的值置为0xF000,IP的值置为0xFFF0,这样CS:IP就指向0xFFFF0这个地址位置。…… 从图中可以清楚地看到,0xFFFF0指向了BIOS的地址范围。我的理解是:0xFFFF0应该是一个关于内存中某个位置的地址。既然“内存中什么程序也没有”,那么,0xFFFF0位置处也应该什么程序也没有啊!何谈有BIOS程序在那里呢?或者是:所谓“实模式”下的地址空间0x00000~0xFFFFF,即1MB的地址空间,并非是一种单纯的“内存”,而是一个可以“映射”到BIOS甚至其他硬件的“综合体”??请高手们来解惑指导一下。谢谢!
最佳答案
- 五星知识达人网友:鸽屿
- 2021-03-16 04:05
开机时内存中不是什么都没有哦。有FLASH中存储的BIOS代码。开机时FLASH被挂载到地址总线上。BIOS存储在D000:0000-F000:FFFF的内存区间,当然不是全部都用。在F000:FFF0有一条远跳转指令到BIOS真正的入口。
全部回答
- 1楼网友:独行浪子会拥风
- 2021-03-16 04:34
你好!
开机时内存中不是什么都没有哦。有FLASH中存储的BIOS代码。开机时FLASH被挂载到地址总线上。BIOS存储在D000:0000-F000:FFFF的内存区间,当然不是全部都用。在F000:FFF0有一条远跳转指令到BIOS真正的入口。
如有疑问,请追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯