利用BIOS中断读取机器系统数据,并将这些数据保存到0x90000开始的位置,所取得参数如光标位置,扩展内存数等,这些参数会被后面驱动程序使用。
然后setup程序将system模块从0x10000-0x8ffff整块向下移动到内存绝对地址0x00000处。
为什么此时移,因为参数都读取完了,可以下移覆盖了
然后加载IDTR和GDTR,开启A20地址线,重新设置两个中断控制芯片8259A,将硬件中断号重新设置为0x20-0x2f。
最后设置CPU控制寄存器CR0,从而进入32位保护模式运行。跳到head.s程序继续运行。
如读取参数:
mov ah,#0x88
int 0x15
mov [2],ax
BIOS中断0x15功能号ah=0x88取系统扩展内存大小,返回到ax中,然后放到0x90002中