《汇编语言程序设计》教学方法探讨

时间:2022-07-25 07:11:45

《汇编语言程序设计》教学方法探讨

摘要:结合对《汇编语言程序设计》课程的教学实践,从课程教学面对的难题出发,提出包括教学方法,实践教学和考核方法在内的一整套改革措施,从中讨论如何提高教学效果的经验和体会。

关键词:课程改革;汇编语言;课程建设

中图分类号:G642文献标识码:A文章编号:1009-3044(2007)12-21735-02

A Study on College Course Reform of the Assembly Language Programming

WU Guang-yu, CHEN You-xuan

(Zengcheng College of South China Normal University, Guangzhou 511363, China)

Abstract:By analyzing educational actualities of Assembly Language Programming course,a course reform project is proposed. This paper points out the main problems remained in the course practice. Finally, the author proposes a series of reform solutions to the teaching materials, experiment designing and course testing of Assembly Language Programming. The paper also extracts experience from educational reform and practice.

Key words:course reform; assembly language; course developments

1 引言

汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。因此,各院校的计算机及相关专业均开设了“汇编语言程序设计”。在以往的教学中,学生普遍反映这门课程难学。究其原因有:(1)学习汇编语言需要具备计算机的硬件知识配合,需要比较坚实的程序语言设计基础;(2)汇编语言和高级语言相比有大量的语法规则需要记忆,较琐碎,没有高级语言的完整结构化语句,程序结构不是很明显;(3)上机调试结果不直观且容易出错;(4)再加上近年来较易掌握的高级语言的快速发展,使得汇编语言的角色逐渐在淡化。在教与学的过程中,初学者首先从外界接受到的是汇编语言难学,从主观上就对该课程产生了畏惧心理;而另一方面初学者又受自身的知识面所限,认为汇编语言在应用开发中很少用到,结果给该课程下难又没用的结论。因此,针对现状,纠正学生对课程的认识,改进教学方法已经刻不容缓。

2 教学改革措施

2.1 纠正学生认识,调整教学内容,注重实例教学

纠正学生对课程难学而又没用的认识,才能使课程的教学得以顺利开展。而另一方面毕业生又面临较大的就业压力,其中很大一部分原因就是能培养出人才与社会需求脱节,没用按照市场真正需求确定目标,专业领域紧缺的技能应用型人才存在很大的缺口。因此,加强包括汇编语言在内的硬件体系课程的教学很有必要。

清华大学出版社出版的沈美明等编写的《 汇编语言程序设计》第3章的指令系统的时候,按照传统的教学顺序,把所有的指令讲完,过多的指令在缺乏实际应用实践的支撑下,枯燥乏味。所以在介绍这章的指令的时候。先把基本的数据传送指令、算术运算指令、逻辑运算指令、移位指令讲完。对于控制转移指令、串处理指令、循环指令、中断调用等其它指令分散到分支、循环程序设计,中断调用,I/O程序设计等相应的章节去。让学生能够切身体会学以致用,更能够在指令的应用中加深理解,达到更好的教学效果。

而在程序设计方法的章节里,改变以往一节一个(多个)例子的做法,把程序设计方法设计在一系列有前后关联的例子里,通过每一次课逐步扩充例子的功能,程序设计方法也逐步展示出来。这一系列的例子从把BX的内容以十六进制形式输出,到统计BX中二进制1的个数并输出,到从键盘输入一个十六进制数到BX,到把BX中的内容以十进制形式输出(分无符号数和带符号数),一直扩展到从键盘接受一个数组并排序输出。把最后的例子介绍完后,已基本覆盖课程的基本内容,包括程序格式,三个基本结构,子程序的应用,宏的使用,输入输出程序设计等。通过这样处理课程的连贯性大大增强,很多相关的内容都串联起来,学生也能在较为熟悉的例子中尽快的接收新的知识,从逐步扩展的例子找到程序设计方法之间的差异,方法的适应范围等。

2.2 灵活应用辅助教学手段

利用CAI课件开展课堂教学,对教学的直观性和可视性,提高课堂教学效率都有很大好处。对课程中的重点难点,比如寻址方式及其物理地址计算,堆栈操作指令,子程序调用的堆栈变化等知识点,用动图形式演绎。既可以增加趣味性,又可以达到事半功倍的效果。

2.3 实践环节的教学

针对程序设计课程实践性极强的特点,引入新的编程调试工具TurboDebugger(TD),并编写相关的实验指导书。TD工具相对DOS的Debug,提供的较好的图形界面,同屏能显示所有寄存器,标志位,代码段,数据段还有堆栈段的内容,为调试和理解提供更多的便利。同时,也体现了“机器”和“程序”相结合这一思想,使学生对“计算机”的认识更为深入。

理论课教学有机地和实践环节教学结合。在实验课中,继续沿用理论教学的例子作为基础再进行扩展功能,使学生在熟悉的例子练习中实践,便于把所学知识快速应用于实践中,不但有利于其程序设计能力的提高,也提高了学生对汇编语言的兴趣。

2.4 完善课程的考核方法

任何的教学都需要评价,教学评价在教学过程起激励和监督作用,使教师和学生在评价中受到鼓舞和鞭策,促进教师的技能,激发学生的学习动力。所以考试上的改革也不可或缺。

在考试方面大胆采用开卷考试的形式,重点突出“程序设计”,考核利用语言解决问题并设计程序能力,也就是程序的“读”(分析)和“写”(设计)的能力,为此在题型上,我们放弃了以往的选择题,采用简答题问答题的形式,要求作答时必须写出关键问题的分析或者关键的步骤。以下是我们设计的一份试题(表1)。

在总评成绩的比例上调整平时成绩和期末考试成绩的比例,期末考试成绩50%,平时(包括实践环节)50%。通过调整更注重平时成绩的评定,调动了学生平时学习的积极性,避免他们只靠考试周“冲刺”蒙混过关。

3 其他一些必须注意的问题

3.1 该课程与其他相关课程的关系

与《汇编语言程序设计》相关的有计算机专业的多门主干课程《C程序设计》、《计算机组成原理》、《接口技术》和《单片机》等,在授课时要特别注意前后课程的联系,比如C语言的变量和函数与该课程的数据定义和子程序作比对进行学习,高级语言和汇编语言进行程序设计时思路的异同,还有对和后继课程有纵向联系的汇编指令要重点讲解。

表1 试题的设计

3.2 因材施教,积极引导

对于基础和学习能力不同的学生,可以尝试布置不同梯度的编程题目(项目)以供选择。兴趣浓厚的学生还可以组成活动小组,分析设计更高层次的程序课题。不搞“一刀切”,学生自身根据学习情况选择难度合适的题目,使其能真正去思考,避免抄袭。

3.3 阶段性的检查反馈尤为重要

阶段性的检查如作业,模块测试和实验项目,通过这些手段了解学生的相关知识点与程序设计技能的掌握情况。可以针对教学中一些比较抽象的、容易混淆的基本概念,算法的理解,寄存器的使用和程序的编制等方面进行。发现问题集中以习题课的形式组织学生讨论,进行集体学习,在这个过程中不断会有多种解决方案的提出、已有问题的解决以及新的问题产生,这样,学生的独立思考能力就能得到锻炼和提高。通过学生对习题实验的完成情况的了解,及时发现问题,并采取适当的方法进行补救,以达到阶段性的教学目标。

4 实际教学效果

在将近3年的教学实践中,以上一系列措施的实施,首先课题教学气氛活跃,师生互动得到有效加强;其次实验课中,学生提出的问题质量有所提高;再次,从后续课程《接口技术》等反映,学生汇编语言基础扎实,对机器原理理解较为透彻。

5 结束语

已有高校对该课程进行“以教授Win32汇编语言程序设计为主要内容的Win32汇编语言程序设计”教学改革。而我们根据学校学生的实际情况,主要是教学方法,实践教学和考核方法的整套教学改革措施,课程的主要内容如何进一步改革,还值得同行一起探讨。

参考文献:

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

[2]何克抗, 等. 教学系统设计[M]. 北京:北京师范大学出版社,2002.

[3]谭浩强.C语言程序设计 [M].北京:清华大学出版社,1999.

[4]刘爽. 汇编语言[M]. 北京:清华大学出版社, 2003.

[5]冯建文, 等. “汇编语言程序设计”课程的改革与探讨[J]. 吉林大学学报,2005.8.

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:构建软件工程教学网站的思考与实践 下一篇:善借外力,让文件共享传输更安全