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) |
本文介绍了一个简单的操作系统启动过程中的内存布局与关键设置步骤,包括IDT和GDT表的位置安排、A20地址线检查、浮点运算协处理器检测、主函数调用方式以及页表设置等内容。
1011

被折叠的 条评论
为什么被折叠?



