第三天继续学习harib00j,看到川合秀实老师说:“现在还不能说‘今天就到此结束’”。借着月光,我把hlt实现出来,看到qemu显示出来的漆黑窗口,自制操作系统的成就感油然而生。
对比了一下hlt实现前后的CPU占用率,着实让我吃了一惊:
halt实现前CPU占用(qemu):12%
halt实现后CPU占用(qemu):0%
看来程序的好坏真是由程序员决定的!
上代码:
在naskfunc.nas汇编程序中实现io_hlt()功能:
E:\techdoc\30dayOS\code\tolset\day03_boyJ\naskfunc.nas
; naskfunc
; TAB=4
[FORMAT "WCOFF"] ; 制作目标文件的模式
[BITS 32] ; 制作32位模式用的机器语言
[FILE "naskfunc.nas"] ; 源文件名信息
GLOBAL _io_hlt ; 程序中包含的函数名
;以下是实际的函数
[SECTION .text] ; 目标文件中写了这些之后再写程序
_io_hlt: ; void io_hlt(void);
HLT
RET
在bootpack.c中进行io_hlt()调用:
E:\techdoc\30dayOS\code\tolset\day03_boyJ\bootpack.c
void io_hlt(void);
void HariMain(void)
{
fin:
io_hlt();
goto fin;
}
最后上运行截屏,请各位看官鉴别真伪:
运行day03_boyI,halt实现前CPU占用(qemu):12%
运行day03_boyJ,halt实现后CPU占用(qemu):0%
(全文完)