- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
掌握汇编仍然是技术高手的必经之路
掌握汇编,仍然是技术高手的必经之路
编者按:本刊今年8 月号刊登了王振祥先生的《第三方程序代码安全检查技术》一文,得到了读者的好评。有读者说,从该文中看到了久违的“汇编思维”,作者的底层技术功力令人赞叹。的确,王振祥先生在一线开发岗位上奋战十多年,在实际项目开发、前沿技术研究和汇编教学方面都有非常丰富的经验。他一直坚定地认为,只有彻底地掌握汇编语言以及汇编层次的开发技术,才能真正成为技术高手。这种观点在今天听起来无疑很“另类”。本刊编辑特别采访了王先生,就一些读者关心的问题请教了他的看法。
问:王老师,现在Java、.NET 这样的开发平台大行其道,很多人认为现在已经进入了企业级应用的时代,汇编作为系统级的开发技术不再重要,您如何看待这种说法?
答:的确,如您所言,目Java、.NET 非常流行,从各种培训班所开设的课程就可以看出这一点(因为培训机构往往是与“流行”结合最紧密的),在普遍使用Java、.NET进行开发的时候,直接使用汇编编程无论从开发周期还是系统的维护,的确都是不现实的。在这种情况下,不要说是学生,就是汇编语言的老师虽然也在强调汇编语言的重要性,但从内心里他们可能也并不真正觉得汇编语言有什么用处。
我在大量的授课、与学生接触、与教师座谈的过程中,发现许多教师(包括汇编语言的教师)和学生对于汇编语言的认识已经局限于一个必修课或者说公共课的层次,即必须学(因为必考),但是又没有什么用处(因为根本不会用其进行任何工作),某重点大学的一个学生很“形象”地将汇编语言形容为“鸡肋”,但是汇编语言是否真的是鸡肋呢,如果真的是鸡肋,那么我们为什么要浪费老师和学生的大量时间和精力在这个“鸡肋”上呢?
在一次关于汇编语言重要性认知的调查座谈时,我曾经问学生,“你们是否知道,在高级程序员考试中,汇编语言是必考的,并且占有较大的分值,许多考生就失败于汇编语言试题”(根据相关网站的统计,在高级程序员考试的各种题型中,汇编语言的得分率是最低的),对于这个问题,有学生回答,他知道高级程序员考试肯定包含汇编语言试题,但是他觉得将来会取消。真的会如此吗?这些情况说明了存在于计算机界的一种比较普遍的观点,就是您在问题中所说的,“汇编作为系统级的开发技术不再重要”,一些人甚至认为应该取消汇编语言这门课程(一些学校的确已经在这么做了)。就我受益于汇编语言的亲身经历而言,我不敢认同这种观点。 问:那么您能否通过您的亲身经历,谈谈汇编语言的实用性? 答:好的。截止到今天,我连续从事软件开发工作有15年多,而在这15年中,一直在使用汇编语言,使用汇编语言的情况大约可分为以下3 个阶段:(1)1990 年—— 1997 年 这个阶段使用汇编语言开发了大量的DOS 下的应用程序、改写BIOS 为其增加基于中断方式的串口通信功能、DOS、Windows3.1,windows 95、Windows NT 下的驱动程序,并且用汇编语言进行大量的对系统和其他应用程序的分析和跟踪。(2)1998 年—— 2000 年 在这个阶段所做的开发工作主要集中于VB,VC,虽然没有直接使用汇编语言编写程序,但是一直在使用汇编语言进行分析,比如通过跟踪对VB5/6 的修改改变其行为特征,进行病毒的分析等。(3)2001 年——至今 仍然用汇编语言进行一些系统的分析工作(目前正在做的反编译的研究离开汇编语言就是无源之水),与此同时用汇编语言完成了一些嵌入式系统的开发工作。根据我自身的体会,我将汇编语言的作用大致进行了以下归纳,不一定完整。(1)从汇编入手,事半功倍
所在的单位在开发一种教外国人学习汉语的对外汉语教学系统,我在1987 年考入该单位的研究生院,1990年在写研究生论文时参与了该项目的工作,这是我第一次从事真正的软件开发工作,任务是为该对外汉语教学系统开发英汉-汉英电子词典。当时我的一个师兄和另外2 个工作人员用BASIC开发该系统的主程序(也就是现在常说的课件)。当时我的指导导师说,我们单位很少有人懂得汇编,因此建议我最好用汇编语言开发电子词典程序。对于当时的我而言,汇编、BASIC、C 是没有多少区别的,因为无论那种语言我都没有进行过什么实际的开发工作,既然导师要求,也就只好用汇编进行开发。说实在的,刚开始的3 个月里,实在是困难重重,因为高级语言提供了丰富的函数库,开发速度当然要快得多,也不要了解那么多的具体细节,但是汇编语言就不一样,事无巨细都需要自己完成,从怎么输入、怎么输出、汉字如何存储和显示等等。但是经过这么3 个月的艰苦岁月之后,我发现我的水平提高很多,用BASIC 进行了4 年多开发的师兄在遇到一些问题时需要我的帮助,因为我在用汇编语言开发的过程中对于系统有了深入的了解。而用BASIC 开发则几
原创力文档


文档评论(0)