😀了解BIOS
BIOS的初始化
刚刚发现,BIOS
的第一条指令会跳转到某个更低地址的部分。那么,他会做什么呢?请用si
往下看看!
这里稍微解释一下。
首先,设置了
ss
和esp
寄存器然后通过
cli
指令屏蔽了中断cld
和后面的in
和out
指令相关(暂时不用管)然后通过
in
,out
指令和IO
设备交互,进行初始化,打开A20
门(暂时不用管)然后用
lidtw
与lgdtw
加载IDTR
与GDTR
(ICS
学过,跟保护模式有关)最后开启保护模式,长跳转到
BIOS
的主要模块进行执行
上面是BIOS执行的最开始部分。而下图是BIOS执行的全过程,在jmp far之后,关闭保护模式,开启实模式,跳转到Stage1执行,其中Stage1就是我们前面说的MBR(即bootloader)!!!

POST(不必了解)
至于POST过程,其实不必了解,但我还是提一下,如下:
1)初始化各种主板芯片组
2)初始化键盘控制器8042
3)初始化中断向量 ,中断服务例程.
4)初始化 VGA BIOS 控制器
5)显示BIOS的版本和公司名称
6)扫描软驱和各种介质容量
7)读取CMOS的启动顺序配置,并检测启动装置是否正常
8)调用INT 19h启动自举程序
自举过程
这个实际上就是把MBR的内容从磁盘调入地址为0x7c00的地方。
Last updated