上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页
摘要: 实际可用的异常机制需要有运行时(Runtime)的支持。也就是说单纯的C语言是不能提供像C#、Java那样的异常捕获机制的。setjmp.h里的setjmp(jmp_buf);和longjmp(jmp_buf, int);这两个函数很特别。setjmp将当时的CPU状态存入jmp_buf,longjmp将jmp_buf中的内容恢复到CPU。 阅读全文
posted @ 2014-07-12 00:46 BIT祝威 阅读(2491) 评论(0) 推荐(0) 编辑
摘要: 当const修饰一个普通变量时,则这个普通变量不应被修改。当const修饰一个指针变量时,这个指针指向的内容不应被修改,也不应让其它指针指向这个内容。extern用于声明全局变量的方法:首先在头文件x.h里用extern修饰该变量的声明部分,然后在源文件x.c中定义该变量。 阅读全文
posted @ 2014-07-08 00:08 BIT祝威 阅读(3587) 评论(3) 推荐(3) 编辑
摘要: 《OOC》全名是《Object-oriented Programming with ANSI-C》,步步为营地讲述了作者用C来实现封装、继承、多态、异常处理和自动化工具的过程。 这本书吸引我的理由如下: 我也研究过OOC的问题,想和作者对比对比,取长补短。 学习C实现异常处理try{}catch()finally{}的方法。 学习C语言中一些难缠的东西的用法。(const、static、extern、…) 学习作者的自动化方法。 阅读全文
posted @ 2014-07-07 17:00 BIT祝威 阅读(3711) 评论(0) 推荐(2) 编辑
摘要: 当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。 计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。 硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属性、任务切换等功能。OS程序利用CALL、RET等实现了函数的概念;利用中断机制实现了基于事件的编程;利用定时器、内存段、任务切换实现了多任务OS;利用内存段属性实现了保护OS的功能;利用一般保护性异常中断实现了抛出异常的功能。 充分了解CPU,充分了解汇编语言,就具有了制作OS的基础。 阅读全文
posted @ 2014-06-30 23:28 BIT祝威 阅读(3672) 评论(11) 推荐(0) 编辑
摘要: 上一篇介绍了设置显示器高分辨率的方法。本篇讲一下操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么功能。这又肯定了硬件为操作系统提供API的看法。 阅读全文
posted @ 2014-06-20 20:46 BIT祝威 阅读(10010) 评论(5) 推荐(3) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 27 下一页