第6天:分割编译与中断处理
1、内容1:分割源文件
因为之前的bookpack.c程序已经很长了,因此就将其进行切割成几个部分,分别是graphic.c、dsctbl.c和bootpack.c三个部分。这三个部分依次是关于画图的处理、关于GDT、IDT等descriptor table的处理以及其他部分的处理。
但是如果graphic.c也想使用naskfunc.nas函数的话,必须加上void io_out8(int port,int data)函数声明。虽然这些都已经写在了bootpack.c函数中了,但是在编译器编译graphic.c时,程序是不知道有bootpack.c的存在的。
既然修改了bootpack.c文件,那么也需要根据其来修改我们的Makefile文件,相应的流程为:
修改之后的文件夹内容为:
其中makefile文件的内容增加了如下部分:
2、内容2:整理Makefile
虽然之前bootpack.c文件已经分割好了,变得简洁了许多,但是相比较而言,Makefile文件却变得十分繁琐亢长。因为有些指令都做的是相同的事情,但如果每次添加源文件都需要增加很多类似的编译规则就会变得很麻烦,因此需要利用一般规则,将雷同的独立的文件生成规则,归纳为一般规则。
将以上6个独立的文件生成规则,归纳为两个一般的规则。