30天自制操作系统
文章平均质量分 52
talent_CYJ
这个作者很懒,什么都没留下…
展开
-
<30天自制操作系统>第四天
第四天内容主要是基于第三天的图形界面显示更进了一步。主要是更复杂的显示,而不是单纯的切换到显示模式。对显卡内存进行数据写入,从而显示出我们想要的画面。想要画东西,只要往VRAM里写数据即可,先看以下程序:_write_mem8: ; void write_mem8(int addr, int data); MOV ECX,[ESP+4] ; [ESP+4]中存放原创 2016-07-22 14:03:10 · 1226 阅读 · 0 评论 -
<30天自制操作系统>第五天
这章节内容比上一章节的更进了一步,不只是显示图像,而是显示文字。一个字符可以用8x16的长方形像素点阵来表示。例如: 将这些数据整理成一组数组,即static char font_A[16] = {0x00, 0x18, 0x18, 0x18, 0x18…} 有了这些数据之后只需将其写到VRAM中即可,下列函数实现该功能:void putfont8(char *vram, int xsize原创 2016-07-23 10:11:28 · 800 阅读 · 0 评论 -
<30天自制操作系统>第六天
为了让鼠标能移动起来,必须使用中断,而要使用中断则必须将GDT和IDT初始化。在此之前,首先要初始化PIC,它的意思是可编程中断控制器。它是将多个中断信号集合成一个中断信号的装置,PIC检测着输入管脚的多个中断信号,只要有一个中断信号过来,就将唯一的输出管脚信号变成ON,并通知给CPU。 其中与CPU直接相连的PIC为主PIC,与主PIC相连的PIC称为从PIC。其中从PIC通过第2号IRQ与主P原创 2016-07-25 11:20:38 · 1171 阅读 · 0 评论 -
<30天自制操作系统>第八天
花了将近1周时间来理清之前模糊的概念,感觉思路清晰了很多,今天是八天内容中的最后一天。以后的内容就不会每天都写文章了。今天的内容还是关于鼠标的控制,但是是让它真正的动起来。在主函数中,我们取得了鼠标的数据。for (;;) { io_cli(); if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) == 0) {原创 2016-07-26 14:15:08 · 813 阅读 · 0 评论 -
<30天自制操作系统>第一天
买了这本书将近一年才开始看- =,最近看完第八天的内容,也就是实现了鼠标的移动。总的来说这本书感觉还是可以,大致上可以了解到一个操作系统是如何搭建。语言幽默风趣,每天的任务量不是特别多并且每天的章节内容明确,由于每个程序我都只是编译现成的代码来看实现效果,所以学完了8天的内容之后,许多概念还是迷迷糊糊,所以今天开始为每一天的内容写文章,总结这本书自己比较模糊的内容,同时也帮助自己梳理一下知识点,也为原创 2016-07-21 10:26:01 · 848 阅读 · 0 评论 -
<30天自制操作系统>第二天
第二天内容主要是关于一些寄存器的介绍以及使用。以下程序是对第一天程序的完善:; hello-os; TAB=4 ORG 0x7c00 ; 指明程序的装载地址; 以下这段是标准FAT12格式软盘专用的代码 JMP entry DB 0x90--略--; 程序核心entry: MOV AX,原创 2016-07-21 14:25:59 · 486 阅读 · 0 评论 -
<30天自制操作系统>第三天
在第三天中,在原来的基础上添加了部分功能。; haribote-ipl; TAB=4 ORG 0x7c00 ; 指明程序的装载地址; 以下这段是标准FAT12格式软盘专用的代码 JMP entry DB 0x90--略--; 程序核心entry: MOV AX,0原创 2016-07-21 18:22:09 · 1370 阅读 · 0 评论