head.s
功能概述:
- 1) 将256个idt表设置到0x5000之后地址处
- 2) 将256个gdt表设置到0x5000之后地址处
- 3) 检查A20地址线是否开启
- 4) 检查是否有浮点运算协处理器,没有则使用软件模拟
- 5) 将main函数地址压入堆栈,ret后跳转到main函数执行
- 6) 设置页目录和页表,随后在CR3中填写页目录地址,CR0中使能页寻址
head.s之后的内存布局:
… |
---|
main.c |
gdt (2kb) |
idt (2kb) |
head.s中ISR等部分代码 |
软盘缓冲区 (1kb) |
pg3 (4kb) |
pg2 (4kb) |
pg1 (4kb) |
pg0 (4kb) |
页目录表 (4kb) |