0.前言
0.1 关于KmdTut
KmdTut是一份以Win32汇编语言来开发Kernel mode驱动程序的教程,读者可以从http://www.freewebs.com/four-f/下载最新的英文版本,为了使用本教程,你还需要下载Kernel mode驱动程序开发包KmdKit,更多信息请参考http://www.wasm.ru/(很不幸,是俄文的,倒ing~~~)
0.2 关于KmdKit
KmdKit的全称是Kernel Mode Driver development Kit for assembly language programmers,即内核模式驱动程序汇编开发包,KmdKit中包括了用宏汇编编译器开发驱动程序需要用到的所有东西。
你可以从http://www.wasm.ru/或者http://www.freewebs.com/four-f/下载到最新版本的KmdKit。
0.3 关于KmdTut中文版
本中文版由罗云彬和刘松翻译,首先发表在http://asm.yeah.net(罗云彬的编程乐园)中,如果需要转载或者引用,请注明出处。
虽然本人(这里的本人当然是指罗云彬了~~)在一些使用习惯上并不十分赞同原作者的使用方式,如将汇编代码和Makefile的内容合并放在BAT文件中、还有过多的使用宏来定义字符串等方式,因为个人认为严格地按照常规的方式来写代码更有利于读者理解,但是在翻译的时候,还是首先尊重原作,读者对于文中的一些和个性化的表达方式可以自行取舍。
◎ 将汇编代码和编译命令一同放在BAT文件中的缺点:
一般在汇编项目往往将编译命令放在Makefile中,并且使用nmake工具来进行编译,在本人著的《Windows环境下32位汇编语言程序设计》一书中,所有的例子都是这样写的。这样写的好处实际上就是nmake工具带来的好处——那就是源文件的从属关系清晰,编译链接的效率很高,符合流行的习惯等。
◎ 在代码中使用很多宏的缺点:
本人并不推荐在源代码中使用复杂的宏,原因有两点:首先是当宏中使用了寄存器的时候,在源代码中并不能明显地表现出来,这样当寄存器中保存有其他数据的时候,数据就会被破坏,有时候这方面引起的错误是很难发现的;第二是宏的使用方便了编写者,却不利于代码交流,因为阅读者必须首先搞清楚宏的作用,程序中宏过多的话,就会是源代码的结构受到干扰。
所以对文中的这些非常个性化的习惯,读者请根据自己的爱好自由取舍。
另外,毕竟翻译网上教程并不如出书一样经过层层审校,所以翻译有误或者不贴切的地方是难免的,特别是错别字,本人是打拼音的,空格按得快了,往往全拼的词组就可能选错了,所以如果有明显不对的地方,请读者发挥您的丰富想像力谐音一把,如”寄出”说不定是”基础”,”乘虚”说不定就是”程序”等等,如果发现错误,请邮件告知asm@zj165.com
为了让大家在枯燥的学习中有点乐趣,本人在文中加了些括号括出来的注解,有些是为了说明原文中比较含糊的东西,有些是……大家自己慢慢看就明白了。
再者:本篇教程英文版只有这么多,已经全部翻译了,但是俄文版还有后续的章节,可惜大家都不懂俄文了,有没有懂俄文的自告奋勇翻译一番呢~~~~俄文原文见http://www.wasm.ru/
原文连接:http://211.90.241.130:22366/view.asp?file=319