利用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中

results matching ""

    No results matching ""