8086的启动过程
1 8086的启动过程
1.1 8086启动时的寄存器情况
8086处理器在启动或者重启的时候,会对寄存器执行一个初始化的操作。初始化后的寄存器信息如下:CS:FF FF,其它的寄存器:00 00
。
1.2 BIOS
我们知道8086处理器一共有20根地址线,那么其访问空间就是1MB,如下:
最顶端的ROM(Read-Only Memory,只读存储器)中固化有我们的BIOS(Basic Input Output System,基本输入输出系统)。
上电后CPU就会执行地址为0xFFFF0处的代码,但是我们可以这里距离顶端只有16个字节,所以可执行的代码是非常有限的。所以,这个地址处存放的是一条跳转指令,跳转指令的内容如下:
jmp F000:005C
注意,上面的代码执行完毕会将CS的值设置为F000,IP的值设置为005C。也就是说处理器会去F005C的地方去执行指令。
1.3 8086启动的整体流程
-
启动重启计算机,寄存器被初始化
CS:FFFF IP:0000 -
FFFF0—> jmp F000:005C
CS:F000 IP:005C -
F005C—>依次执行BIOS中的指令
-
BIOS所做的最后一件事:将主引导扇区中(0面0道1扇区)的内容加载到7C00的位置处
-
BIOS的最后一条指令:JMP 0000:7C00
CS:0000 IP:7C00 -
07C00—>执行主引导扇区中的指令
1)加载操作系统自举代码到内存中
2)通过一条跳转指令,使处理器去执行操作系统的自举代码
参考资料: