1、BIOS启动
硬件设置从OXFFFF0启动:CPU硬件设置加电即进入16位实模式状态运行,CPU硬件逻辑设计为加电瞬间强行将CS的值置为oxF000,IP的值置为0xFFF0,这样CS:IP就指向0xFFFF0这个地址位置。
BIOS程序的入口地址恰恰就是0xFFFF0 ! 也就是说,BIOS程序的第一条指令就设计在这个位置。
BIOS在内存中加载中断向量表和中断服务程序
INT(INTerrupt):中断,顾名思义,中途打断一件正在进行中的事。其最初的意思是:外在的事件打断正在执行的程序,转而执行处理这个事件的特定程序,处理结束后,回到被打断的程序继续执行。
计算机将分三批逐次加载操作系统的内核代码。
第一批由BIOS中断int 0x19把第一扇区bootsect的内容加载到内存;
第二批、第三批在bootsect的指挥下,分别把其后的4个扇区和随后的240个扇区的内容加载至内存。
2、加载第一部分内核代码——引导程序(bootsect)
经过执行一系列BIOS代码之后,计算机完成了自检等操作,包括显卡、内存……等硬件信息。
2.1 计算机硬件体系结构的设计与BIOS联手操作,会让CPU接收到一个int 0x19中断。
CPU接收到这个中断后,会立即在中断向量表中找到int 0x19中断向量。CPU接收到这个中断后