bootsect.s程序主要完成以下功能:
1.将本身移动到0X90000处,重新设置各寄存器
2.利用BIOS的 INT 0X13 中断将setup模块从磁盘第二扇区开始的4个扇区读到 0X90200 后,一个扇区为512字节.
3.显示加载系统提示信息,并利用BIOS INT 0X13 中断把系统模块加载到 0X10000 后,注意系统模块必须小于512 KB(BOOTSECT位于0x90000, 系统开始于0x10000,期间共512KB) 。
4.检查根设备,将运行权交予 setup.s 程序
主要的重点:
理解BIOS 的 INT 0X13中断,重点观察setup模块和系统模块是如何载入内存的
问题:
1 为什么系统模块必须小于512KB?
BOOTSECT位于0x90000, 系统开始于0x10000,期间共512KB。
2 为什么系统模块先加载到0X10000处而不是0X00000处?
因为刚开始从绝对物理地址存放的是BIOS的中断向量,必须在把中断向量读入系统后才能覆盖。