BIOS:
上电启动时,最开始由硬件控制进入BIOS,BIOS代码一般存放在0xfe000~0xfffff最后几kb中;启动中cs:eip == 0xffff:0x00000 === 0xffff0 这是最开始启动的(BIOS执行的第一条指令)
下面是BIOS程序执行的内容:
1、在0x00000处开始的1kb内存空间(0x00000~0x003fff)安装中断向量表(256个中断,cs和ip各占2字节==>1kb)
2、在紧挨着它的位置用256字节创建BIOS数据区(0x400~0x4ff)
3、在0xe2ce处加载中断向量表相应的服务程序
当BIOS完成自检后,会调用中断0x19来加载第一扇区内容(启动扇区,引导扇区,bootsect)把该内容加载到0x7c00处
bootsect.s代码是磁盘引导程序,驻留在磁盘的第一号扇区中:0号磁道(柱面)、0号磁头、第一个扇区。第一号扇区是指虚拟的扇区号,比如:0号磁道、1号磁头、第一个扇区的扇区号为19(1.44Mb软驱磁道总扇区数为18,1.2Mb软驱磁道总扇区数为12);系统会检查0x7c00以后的256个字节是否为有效的引导扇区(最后两字节是否为 0xaa55)
下面是bootsect程序执行的内容:
上电启动时,最开始由硬件控制进入BIOS,BIOS代码一般存放在0xfe000~0xfffff最后几kb中;启动中cs:eip == 0xffff:0x00000 === 0xffff0 这是最开始启动的(BIOS执行的第一条指令)
下面是BIOS程序执行的内容:
1、在0x00000处开始的1kb内存空间(0x00000~0x003fff)安装中断向量表(256个中断,cs和ip各占2字节==>1kb)
2、在紧挨着它的位置用256字节创建BIOS数据区(0x400~0x4ff)
3、在0xe2ce处加载中断向量表相应的服务程序
当BIOS完成自检后,会调用中断0x19来加载第一扇区内容(启动扇区,引导扇区,bootsect)把该内容加载到0x7c00处
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
bootsect:bootsect.s代码是磁盘引导程序,驻留在磁盘的第一号扇区中:0号磁道(柱面)、0号磁头、第一个扇区。第一号扇区是指虚拟的扇区号,比如:0号磁道、1号磁头、第一个扇区的扇区号为19(1.44Mb软驱磁道总扇区数为18,1.2Mb软驱磁道总扇区数为12);系统会检查0x7c00以后的256个字节是否为有效的引导扇区(最后两字节是否为 0xaa55)
下面是bootsect程序执行的内容: