最初的代码是由四个.asm文件组成:mbr.asm、core.asm、task.asm、task1.asm。其中,mbr.asm是引导代码,写在硬盘的第一个扇区。core.asm是系统的执行代码,放在系统地址0xc0010000处开始运行,优先级为0。task.asm和task1.asm是用户进行代码,都从用户空间地址0开始执行,优先级为3。
后期为了编辑和优化方便,将core.asm代码进行了拆分,分成了core.asm、00_header.asm、01_interrupt.asm、02_mouse.asm、03_timer.asm、04_process.asm、05_memory.asm、06_color.asm、07_external_interface.asm、08_bs16.asm、09_font.asm、10_keyboard.asm,一共11个文件。其中:
core.asm | 包含了系统进程的主干代码。作为系统进程的主干,调用其它文件中的接口完成系统进程的核心功能; |
00_header.asm | 常用数据值的定义以及数据结构的定义; |
01_interrupt.asm | 提供X86的中断处理的启动和安装功能接口; |
02_mouse.asm | 鼠标的中断安装、处理接口,鼠标的绘制功能; |
03_timer.asm | 系统时钟的中断安装、处理接口。这里时钟10毫秒一次的速度产生中断; |
04_process.asm | 系统进程的核心功能、系统进程的安装、用户进程的安装接口; |
05_memory.asm | 系统页、用户页的分配和释放接口; |
06_color.asm | 调色板的安装、画点、画线、画框的接口; |
07_external_interface.asm | 系统调用接口。这里的系统调用使用的是调用门,而不是中断; |
08_bs16.asm | 通过Soundblaster播放声音 |
09_font.asm | 字符显示接口 |
10_keyboard.asm | 键盘的中断安装、处理接口,输入字符的处理 |