中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 从Windows转到DOS下开发的一些心得体会
作者:
标题: 从Windows转到DOS下开发的一些心得体会 上一主题 | 下一主题
caijize
新手上路





积分 10
发帖 3
注册 2005-11-24
状态 离线
『楼 主』:  从Windows转到DOS下开发的一些心得体会

题记:我是一个从学校出来刚刚工作了几天的新人,这些是我工作这几天里的一些体会和想法,希望能对在校的学生或者是跟我一样刚出来工作的人们有一些帮助。

=================================================================================

忙了几天,今天终于有点时间来写写这几天的一些心得体会了。

我们公司是做数控系统的,所以我的工作是在DOS下做一些底层的开发。刚刚来到这公司,Team Leader 叫我先熟悉一下DJGPP这个开发工具,这是一个DOS下的GCC工具(以前学LINUX课程的时候有学过GCC,但那时对这个不感兴趣,没怎么用心学,早就忘光了),有一个集成开发环境(rhide),听说跟BC差不多(不好意思,我只用过TC,没用过BC)。跟TC、BC那些最不一样的地方是,它提供了一个DOS下的32位保护模式(DPMI)。

刚刚接触GJGPP,最大的难题是市面上根本没有这方面的书,所有的资料都只能来源于网上,而且绝大部分都是英文的资料。熟悉了一下开发环境后,带我的那个老员工让我先写一个DOS下的中断程序给他看看。我以前没有写中断程序的经验,写这个程序可花了我不少的时间。

“中断”这个概念,如果从理解的角度来看,书上的定义是很好理解的,但从开发者的角度来看就很不一样了。看了N多资料后,终于才对“中断”有了些理解了。原来所谓的DOS下的“中断”其实就是我们在 Windows 中所说的“事件”和消息。当我们的某个操作或者是程序的某一条指令产生了一个中断后,CPU 就会停下当前的工作来处理这个中断。就像在Windows中发生了一个事件而产生了一条消息,系统就会来处理这条消息一样(当然,这都涉及到优先级的问题,具体还要看操作系统)。

在DOS下的中断有软件中断和硬件中断之分。软件中断是由我们的程序或者是操作系统发出的,而硬件的中断则是由硬件的状态改变产生的。我们的程序可以使用“系统调用中断”来调用系统的各项功能(这就像我们在 Windows 中使用 API 函数一样),我们也可以通过改写中断处理函数来实现我们想要的操作(这就像我们在 Windows 里写消息处理函数一样)。

下面我列了一下我这几天所写过的一些程序,在校的学生或都其它有兴趣的人都可以试写一写,如是你以后是做底层开发的话,相信这些对你是很有帮助的!

1、写一个DOS的中断程序。(理解一下中断的概念)

2、改写INT 1CH(时钟中断)的中断处理函数。(学会改写中断处理函数)

3、修改时钟中断发生的时间(默认是55ms)。(学会操作底层硬件)

4、在保模式中直接访问内存。(学习保护模式下的内存操作方式)

这些程序需要你对硬件或者是数据在内存中的存放方式有一定的了解才可以实现,在网上可以找到很多这方面的资料,希望有志在这方面学习和发展的朋友不要被学习中所遇到的困难吓倒,希望中国的IT业会有更好的发展!

2005-11-25 21:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: