30天自制操作系统(Mac版)读书笔记(day12)

添加定时器

在haribote.nasm中,LABEL_IDT的第33个终端函数就是系统时钟函数,所以在.021h:上面,添加以下代码:

.020h:
    Gate SelectorCode32, timerHandler,0, DA_386IGate

那么CPU上的“晶震”会定时的调用到timerHandler这个c语言函数中,那么我们再在这里做一些操作。当然也需要在init8259A的会变函数中,打开时钟中断的开关。

mov  al, 11111001b
out  021h, al
call io_delay

实现TimerHandler

具体的就可以直接参考 代码 ,可以直接把timer.c 和timer.h拷贝到项目中,在main函数中自适当的调用就可以了。

你可能感兴趣的:(30天自制操作系统,c语言)