2022年CPU执行第一条指令时情形 2.pdf
《2022年CPU执行第一条指令时情形 2.pdf》由会员分享,可在线阅读,更多相关《2022年CPU执行第一条指令时情形 2.pdf(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CPU 执行第一条指令时情形执行的第一条指令不在内存中, 众所周知,内存是由组成的,而不断电,可以保存信息,一旦断电,中的信息将会丢失,所以要执行的第一条指令被固化在中。以前年代, 由于内存是的, 所以被编址在的最后的中,所以它的段地址是0 xFFFF0,这样就不至于不分成两个部分,就是将设置成0XF000,执行的第一条指令的地址是:0XF000:FFF0H,这样使得固件的地址在寻址空间靠后的位置16 个字节处,这是一条跳转指令,向前调转到一个地方,然后开始执行,启动代码由jmp F000 : XXXX 中的偏移 XXXX 来把握,如果使用得多, XXXX 就小,使用得少,XXXX就大,这样使
2、启动代码尽量靠后, 而不浪费多余的地址空间, 由于地址空间安排在最后,也不会把整个地址空间隔离成两段。而出现80386 以后,内存已经大于,所以如果把冷启动固件编址在F000h段内,就会把整个地址空间隔离成不连续的两段,一段是 F000h以前的地址,一段是 1M 以后的地址,这很不方便。 Intel 采用的办法是,还是默认将执行启动代码的 BIOS ROM 编址在系统可寻址空间的最后(如32位 x86 机的话,这段地址就位于 4GB 的最后一个 64K 内) ,在系统复位时, CPU 进入实模式,并将 CS 寄存器设置成 F000h,而将它的 shadow register的 Base设置成
3、FFFF0000h(理论上正常情况下CS 为 F000h 的话,其 shadow register的 Base应该设置成000F0000h ,但 intel 有意识的将高 12 位触发成 1 了,除了这样他也没有什么好办法让机器一启动就跑道4GB 那么高的地址上去执行) ,而偏移量EIP 置成0000FFF0h,所以机器执行的第一条指令的固件安排的物理地址显然就变成了FFFFFFF0h。BIOS 代码和以前还是要兼容的,也就是说此时从FFFFFFF0h处取出的还是一条远跳转指令jmp F000 : XXXX (我跟踪调试过好几款BIOS,这里的 XXXX 似乎都是 E05B) ,问题随之而来。
4、这个远跳转指令是要更新CS 寄存器和它的 shadow register的,也就是说执行这条jmp F000 : E05B 之后(也就是CPU 执行第一条指令之后) ,CS 将被更新成 F000,其实 CS 原来就是这个值,这里说不上是更新,但CS 的 shadow register就不一样了,它被真正的更新了,它的 Base域被更新成 000F0000h了(高 12 不再具有触发成 1 的功能,那个功能只在机器启动到第一次更新CS 的内容期间有效)。这个 Base再加上虚拟地址中的偏移量 E05B,得到物理地址 000FE05Bh,这就是 CPU 执行的第二条指令的地址,但是这条指令的地址已
5、经是1M 以内了。但我们不要忘记,这时的F000h段内可不再是 BIOS ROM 了,这一段此时安排的事实上是我们的RAM 空间,这一段 RAM 需不需要初始化才能使用那还另说,关键是此时此刻这个地方不应该有可以执行的代码才对啊?CPU 第二条指令就跳到这里不是自寻死路吗? 似乎走进了死胡同, 但我翻阅了很多资料, 找到了一点线索。 在很久以前出现过一个叫着 Chips & Technoloqies的公司, 他设计出一组被称着neat的芯片组,可以将内存高端的BIOS ROM 映射到 1M 以内的 RAM 空间里,并且可以使这一段被映射的 RAM 空间具有与 ROM 类似的只读属性。这个公司后
6、来被 intel 收购。但后来这种映射似乎就成为了一种标准。由于这种映射关系我们有理由相信,机器启动的时候, 4G 的最后一个 64K 里与 1M 的最后一个 64K 里应该具有相同的东西,所以即使从FFFFFFF0h用一条 jmp 跳到 000FE05Bh,也仍然能够找到正名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 确的代码去执行。那么 BIOS 接下来要干一些什么事呢?它有很多事情要做,我只举几件有代表性的,其中有两件事
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年CPU执行第一条指令时情形 2022 CPU 执行 第一 指令 情形
限制150内