APP下载

“汇编语言程序设计”教学方法研讨

2018-02-22李红刚殷立新李红彪

无线互联科技 2018年23期
关键词:汇编语言实践教学方法

李红刚 殷立新 李红彪

摘 要:“汇编语言程序设计”是我国高校计算机专业一门重要的专业课程,是一门软硬件并重的课程。该课程在学习上存在着一定的难度,如何调动学生对汇编语言的学习兴趣,提高学习的效果,在文章中总结一些心得体会,希望与大家共同探讨。

关键词:汇编语言;教学方法;实践

“汇编语言程序设计”课程是计算机及相关专业开设的一门重要的专业课程,许多大学都开设此课程。汇编语言还是学习“编译原理”“微机原理”“操作系统”等课程的前序课程。当今,越来越广泛地使用高级程序语言,导致许多学生没有学习汇编语言的积极性和动力,因为学生普遍认为学习汇编语言没有用武之地。其实,汇编语言是一种能够充分发挥计算机硬件特性的高效语言,会经常出现在一些特殊的场合,比如数据加密、解密、分析和防患病毒攻击等。而且,学习汇编语言可以有助于学生更好地掌握计算机工作的原理,可以提高学生分析、解决实际问题的能力。汇编语言是面向机器的低级语言,是离计算机硬件最近的编程语言,具有执行效率高的特点[1]。但由于汇编语言是面向机器的,必须对计算机有相當深入的了解,才能使用汇编语言进行程序设计。汇编语言由于指令多,有近百条指令,语法规则严格,同时还要熟悉硬件结构,学习过程抽象,学生普遍反映汇编语言难学,难以产生学习兴趣。如何较好地解决这些问题呢?在多年的实践教学过程中,我们总结、实施了一些教学方法,取得了较好的效果。

1 学会使用Debug调试工具

Debug调试工具是Windows操作系统自带的调试工具。在Debug调试工具中,根据逐条执行每条汇编指令,大家可以看到每条指令的执行结果,以及对各个标志寄存器的影响以及存储器单元的变化,学生因此清楚了解指令下的执行步骤和作用。学会使用Debug调试工具执行程序段,通过依靠Debug提供的指令来查看存储单元的变化[2]。

例如,执行以下指令后AX寄存器的内容是什么?

TABLE DW 20,30,40,50,60

...

MOV AX,[BX]

在得到答案后,我们怎么才能确定自己的答案是否正确呢?我们可以在Debug调试工具中执行完这几条指令,然后通过查看AX寄存器中的内容就可以知道自己所得的答案是否正确了。问题的重点是在于调试工具Debug不能直接表示符号地址,那么如何表示出符号地址呢,我们可以通过替换的方式来实现,先换为具体的存储器的地址,等执行完对应的指令之后,去具体的存储器查看数据,从而判断出答案对错与否。通过以上步骤,学生可以充分掌握汇编语言的直接寻址和寄存器间接寻址之间的区别以及操作数和地址之间的关系[3]。

2 通过植入错误,提高调试经验

由于汇编语言采取英文助记符的形式,与高级语言相比可读性较差,因此,汇编语言源程序的调试比高级语言程序调试更加困难。在调试程序的时候,虽然系统会给出错误提示,但是由于错误提示是英文提示,很多同学由于缺乏专业英语的基础,不明白这些提示的含义,更不知道如何处理这些错误。因此,为了让学生积累调试程序的经验,我们采用植入错误的方法。写一个简单的程序,在里面设置一些典型的语法或逻辑错误,让学生对其进行调试和修改。通过逐步引导学生对一些典型的错误建立良好的认知,让学生在错误中不断积累调试经验,并通过成功调试而获得成就感,从而激发学生的学习兴趣[4]。

3 从细节入手,不放过一个细节

例如,当教师讲授汇编语言程序设计课程中地址的概念的时候,由于汇编语言使用分段编程,每个存储空间对应一个20位的物理地址,用逻辑地址表示实际寻址中20位的物理地址,把它分为段地址和偏移地址。当段地址和偏移地址形成物理地址时,段地址向左移位4位,即乘以16后加上偏移地址。这导致两个段彼此最接近,并且段地址仅相差一个,然而实际物理地址上是相差16,也就是说,段的两个最近段首地址之间的最小距离也是16个字节。每个段的大小应该是16的整数倍,最小的段是16个字节。有些老师在讲解这个知识点时都是一带而过,没有详细地讲述,学生在学习时会感到比较抽象,难以理解。因此,教师不能轻易放过这些细节,而应该只用1个字节定义一个数据段,然后在学生的调试命令中向学生展示该数据段实际占用的空间,学生可以明确地看到,虽然只有1个字节的数据段也要占用内存空间的16个字节。讲授内容可以继续引申,空间为17个字节,实际占用的空间应该为多少字节? 学生应该不难得出结论17等于16加1,额外的1字节也占用16个字节的空间。因此,该段占用的实际空间应为16加16,即32字节。

4 重视实践,加强实验考核

要想学习好一门编程语言,尽可能多的编程实战是必由之路。学习汇编语言也是这样,作者认为编程应用有两个层次,比较低的层次是在学校实验室中应用的汇编语言,指的是汇编语言课程中经典的编程项目和实验环节;较高的层次是汇编语言在日常工作生活中的应用,主要是指利用汇编语言解决实际生活中遇到的问题。汇编语言由于贴近硬件,对中断以及外部设备的控制部分感觉很抽象,我们可以通过设置一些相关实验,让学生逐步对这一问题建立起较好的认知。比如,模拟红绿灯的实验,先在计算机中编好汇编控制程序,然后在计算机的端口连接好8255等外部芯片,通过执行汇编程序来控制外接灯的开关以及开关的时间,从而实现对红绿灯的控制。通过设计这些实验,学生不仅能清楚了解汇编语言对硬件的控制方式,还能产生学习汇编语言的浓厚兴趣。再者,将“汇编语言程序设计”与“单片机”“微机原理”等课程相结合开发出综合性、设计性实验也有非常好的效果。

加强实验考核也是一个很有效的方法。通过学生的反馈以及多年积累的教学经验来看,通过加强实验考核,对提高学生掌握好汇编语言很有效果。实践考核考查的是比较理论和基本的内容,通过实验考核使学生学会用尽可能多的方法去解决问题,开拓思路[5-6]。

5 對比学习,联系记忆,归类总结

汇编语言编程的特点是简短而精确,程序的执行效率非常高,源程序可以直接对应于以前的机器语言,高级语言是不同的,并且在将其源程序编译成可执行文件之后,会生成冗余机器代码。以最常用的“hello world!”程序为例,用C语言和汇编语言单独编写,再生成可执行文件。相比之下,学生可以清楚地了解上述特征,从而对汇编语言有直观和感性的理解,这可以激发学生学习汇编语言的兴趣。

学习汇编语言时,学生已经具备了高级语言编程的良好基础,使用两种语言比较方法。针对汇编语言指令多、规则多、不宜于记忆的特点,采用联系记忆法和归类总结法[7-8]。例如,把几个工作寄存器的使用方法与寄存器的英文联系起来记忆,将具有类似功能的指令一起记忆等。通过对比学习方式和归类总结法,可以直观地看出汇编语言的特点,从而帮助学生学习汇编语言课程。

6 结语

总的来说,我们一直在不断地探索和研究“汇编语言程序设计”课程的教学改革,学校也是大力支持、提供方便条件,在培养方案制定、教学大纲修订上给予足够的权限和自由。即使学生学习汇编语言有一定难度,但如果在教师讲授过程中,通过改进教学方法,调整教学内容,提高学生的学习兴趣,降低课程的学习难度、培养学生的编程能力、调试能力、实践动手能力,能够帮助学生顺利渡过入门关,那么学生掌握好这门编程语言就并非难事,从而提高整体教学效果,来适应计算机技术的发展。

[参考文献]

[1]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2002.

[2]王成耀.汇编语言程序设计[M].北京:机械工业出版社,2003.

[3]解志坚,张引琼,陈刚.汇编语言程序设计教学方法的探讨[J].电脑知识与技术,2015(32):89-91.

[4]曾韵,王立新,司彬彬,等.汇编语言教学改革的思考与探索[J].计算机教育,2015(13):60-62.

[5]张晓亚,唐东成,黎钰珍,等.汇编语言程序设计的重要性[J].电子技术,2017(6):70-71.

[6]刘明,苏静.“汇编语言程序设计”课程教学探讨[J].福建电脑,2011(11):34.

[7]庞新法.如何轻松学好汇编语言[J].价值工程,2014(19):193-194.

[8]叶剑芯,彭华林.高职院校汇编语言课程教学改革的探讨[J].科技资讯,2012(3):211.

Abstract:The “Assembly Language Programming” is an important professional course for computer majors in Chinas colleges and universities, which emphasizes both hardware and software. Because there are some difficulties in learning this course, how to arouse students interest in assembly language learning and improve the learning effect are summarized in this paper, hoping to discuss with you.

Key words:assembly language; teaching method; practice

猜你喜欢

汇编语言实践教学方法
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
教学方法与知识类型的适宜
汇编语言与C语言的混合程序设计技术研究
提高《汇编语言程序设计》教学效率的思考与实践
试论汇编语言与C语言的混合程序设计技术
我的教学方法