【我所认知的BIOS】->反汇编BIOS之Bootblock(8)
-- Memory initial 函数的入口
By Lightseed
6/24/2010
1、BIOS的主流程
为什么会有bootblock和非bootblock这么一说呢?其实就是因为有没有真正的内存可以用的区别。这个章节里我们一起来看看经过之前那些章节的讨论后,BIOS在初始化memory之前会做的一些动作。(稍微比较琐碎点,看起来比较枯燥。)
图1 BIOS主流程
2、怎么去找到Memory initial的函数入口
2.1 Memory initial函数两套方案的必要性
Memory对于一个计算机而言,很明显是非常非常重要的一个东西。没有他的话基本上电脑就要脑瘫了,(虽然也可以走路,但是和本山大叔小品里面的那些特殊人士差不多了,要么必须用拐,要么必须用轮椅。。。哈哈,扯远了。)在BIOS里面考虑的比较周全,为了能够万无一失地确保能够把memory初始化的工作做好,BIOS用了两套方案来初始化内存。一种方法非常严谨,校验和呀其他什么的都很齐全。另外一种方法就是直接进入到memory初始化的函数中去。前者确实是严谨,但是越严谨说明要求的条件就越多,条件越多就越有可能出错从而导致memory的初始化不能正常进行(当然一般情况下是不会这样的啦。)。假如是真的发生了这样的事情,那么BIOS就会马上启动第二备用方案直接进入到memory初始化的函数中去。
2.2 关于BBSS table
在讲代码之前,有一个概念必须要和大家讲,否则后面就会看着晕了。在award