摘要:
当const修饰一个普通变量时,则这个普通变量不应被修改。当const修饰一个指针变量时,这个指针指向的内容不应被修改,也不应让其它指针指向这个内容。extern用于声明全局变量的方法:首先在头文件x.h里用extern修饰该变量的声明部分,然后在源文件x.c中定义该变量。 阅读全文
当const修饰一个普通变量时,则这个普通变量不应被修改。当const修饰一个指针变量时,这个指针指向的内容不应被修改,也不应让其它指针指向这个内容。extern用于声明全局变量的方法:首先在头文件x.h里用extern修饰该变量的声明部分,然后在源文件x.c中定义该变量。 阅读全文
posted @ 2014-07-08 00:08
BIT祝威
阅读(3727)
评论(3)
推荐(3)

当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。
计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。
硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属性、任务切换等功能。OS程序利用CALL、RET等实现了函数的概念;利用中断机制实现了基于事件的编程;利用定时器、内存段、任务切换实现了多任务OS;利用内存段属性实现了保护OS的功能;利用一般保护性异常中断实现了抛出异常的功能。
充分了解CPU,充分了解汇编语言,就具有了制作OS的基础。
上一篇介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么功能。这又肯定了硬件为操作系统提供API的看法。
上一篇和介绍了定时器的初始化和使用方法。接下来就该实现多任务了。不过原作者在这之前写了关于提高分辨率的章节,本篇也总结一下设置显示器高分辨率的方法好了。本篇内容过于简单,算是小小的休息一下。启用高分辨率的思路:检测显卡是否支持某种分辨率;如果支持,则通过INT 0x10指令启用之;否则使用任意显卡都支持的低分辨率。
浙公网安备 33010602011771号