高校计算机专业“汇编语言”课程教学改革探究

2012-01-26 05:39姚富光
重庆第二师范学院学报 2012年3期
关键词:汇编语言C语言程序设计

姚富光

(重庆教育学院计算机科学系,重庆400067)

1 引言

汇编语言是一种计算机原始语言,是一种面向计算机硬件的编程语言。汇编语言功能强大,尤其能直接访问和控制硬件,是硬件系统、系统软件和嵌入式系统的常用编程工具。其优点是代码简短、占用内存少、执行速度快,能直接访问硬件及端口,在程序优化、代码调试、解密加密、系统维护等方面,具有其他语言无法比拟的优势。

《汇编语言程序设计》是高等院校计算机及电子信息类专业的专业基础(核心)课,是《操作系统》、《微机原理和接口技术》、《计算机组成原理》等其它核心课程的重要基础,对训练学生掌握程序设计技术、熟悉上机操作和程序调试、理解计算机工作原理有非常重要的作用。

2 当前汇编语言课程教学存在的问题

在汇编语言课程的教学中,各高校、各层次的学生普遍反映这门课程难学。教师也明显感觉学生的学习热情和重视程度不够,究其原因有:

(1)教学方法基本上还是采用常规的灌输式的教学方法,而计算机专业汇编语言课程的教学目的,除了掌握语言本身的概念、语法规则等,还要掌握语言的灵活运用和程序设计方法,使学生具有编写应用软件的能力,因此,在教学方法上应有所创新和突破。

(2)学习汇编语言需要具备一定的计算机硬件知识,同时对程序设计技能和逻辑分析能力要求较高。

(3)汇编语言和高级语言相比,有大量的语法规则需要记忆,指令集较多且较琐碎;同时没有类似高级语言中的完整结构化语句,语法描述与高级语言相差较大,程序结构不明显。

(4)传统教学中没有使用类似C、C++这样的集成编译开发环境,编译运行需进入保护模式下的DOS,利用命令行指令操作,大多学生已经习惯了Windows下的鼠标操作,对DOS命令不熟悉、不适应,且该模式下调试运行结果不直观且容易出错。

(5)近年来较易掌握的高级语言的快速发展,使得汇编语言在常用应用程序开发中的应用逐步减少,角色逐渐在淡化。

(6)课程设置的实践环节不够,缺少综合练习。主要还是因为目前各高校安排的实验均是围绕如何去消化课堂内容而设置的,很少设置综合运用,这样不利于培养学生解决综合问题的能力,从而阻碍了学生学习的积极性和主动性。

上述诸多原因,导致了汇编语言在教与学的过程中,学生先入为主的产生两个印象,首先是汇编语言难学,从主观上就对该课程产生了畏惧心理;其次是汇编语言的程序设计繁琐、效率低,缺乏实用性,从而影响学生的学习积极性。而另一方面学生又受自身的知识面所限,认为汇编语言在目前的程序开发中很少用到,结果给该课程下了又难又没用的结论。因此,针对现状,纠正学生对课程的认识,改进教学方法,使用更合理的实验手段,已经刻不容缓。

3 汇编语言理论教学改革

3.1 合理选择教材,优化知识结构

在教学过程中,教师不应该拘泥于原教材体系,按照学生的认知顺序,从打破枯燥的学习模式的角度出发,重新组合教学内容。我系之前一直使用清华大学出版社出版的沈美明、温冬蝉编写的《IBM-PC汇编语言程序设计》,该书教系统详尽的讲授了汇编语言的编程基础和技巧,但是由于内容是按照传统的教学顺序,如讲第3章的指令系统的时候,前半部分花费大量篇幅逐条将涉及到的所有指令功能讲解完,学生感到枯燥乏味,同时教师也会觉得空洞[1]。

目前我系将教材改为清华大学出版社出版,王爽编著的《汇编语言》,该书的一个重要特点就是注重理论与应用向结合,重心是通过学习关键指令来深入理解机器工作的基本原理,将指令的理论知识贯穿于实例应用中[2]。该书还有一个特点是暂时没有用到的指令,放到后面去学习,这样的知识结构安排,有利于学生把握当前知识点,避免将大量精力花费在仅仅是学习了汇编指令的基本功能,增强了学生学习的信心。

3.2 灵活多样的教学手段

随着现代教育技术的迅速发展,多媒体被广泛应用于教学中。多媒体教学以声音、图象、文本、动画等多种形式将授课内容生动形象地表现出来。为教学增加了不少色彩和趣味性,活跃了学生的思想和课堂气氛。比如在讲解程序时,把每部分指令在计算机内的执行过程用动画的形式演示出来,并对程序进行标注,这样大大的增强了教学效果。但也不能盲目的滥用多媒体,例如当程序代码很长时,一个幻灯片放不下,这时就要采用板书与多媒体想结合的方法。否则学生看了后面忘了前面,反而影响教学质量。

3.3 类比教学法

由于学生在学习汇编语言之前已经学习过高级语言,如C语言,这样在授课时可以采用和C语言进行类比教学的方法,一方面可以使学生能够更容易接受和理解汇编语言,同时又能使学生更进一步的理解高级语言[2-4]。

比如在介绍相对基址变址寻址的时候,汇编指令为:

在C语言程序中我们看到,如:dec.cp[i],dec是一个变量名,指明了结构体变量的地址,cp是一个名称,指明了数据项cp的地址,而i用来定位cp中的每一个字符。汇编语言中的做法是:bx.10h[si]。通过这样的类比,学生能从C语言的结构角度去理解寻址方式。

将C语言和汇编语言的类比贯穿于教学始终,一方面可以降低学生学习汇编语言的难度,另一方面也可以使学生更好的理解C语言,做到课程的相辅相承。

4 汇编语言实践课程改革

4.1 采用集成开发调试工具

利用现有的软件体系及资源,以MASM6.0编译器为基础,可使用elipse搭建可视化集成开发系统[5],简化编译、调试步骤,让学生在初步了解汇编程序编译链接过程的基础上,进一步在Windows下完成所有基本操作。

还可以使用软件“asm forWindows集成实验环境2010”作为集成开发调试平台,该软件除了具备基本的汇编程序编辑、调试运行功能,还有关联出错信息和代码行、结果输出、指令查询解释等功能,是汇编初学者理想的开发环境。

4.2 与C/C++混合编程

利用学生对高级语言的熟悉,采用两种语言的混合编程方式,一方面让同学们熟练掌握两种语言的切换使用,另一方面让他们感受到两种语言各有特点,例如可以利用汇编语言处理高级语言中不方便处理的一些问题。与高级语言结合起来编程,可根据各自的优点相互补充,取长补短,并且对于目前炙手可热的嵌入式系统软件开发来说,也需要通过这种方式为日后的学习打下坚实的软硬件基础。混编有内联式和模块连接两种方式,前者通过_asm关键字嵌入,后者通过分开编译和共同连接来实现。模块连接方式需要用到C语言主子程序调用规则的知识。

4.3 加强综合应用训练

增强综合实践教学,尤其多个相关知识点的联合运用,增加整体实训任务的练习,做到温故知新。实践任务注重实际应用编程,注重与硬件相结合,如屏幕显示、键盘输入、端口读写等,而不是仅仅为了熟悉汇编指令而编程。在汇编实践教学中,结合Windows API调用,编写Windows下的简单应用程序,比如文件读写,端口读写等,让学生认识到汇编并不是一个过时的编程语言[6-7]。根据本、专科的不同,设置在教学中理论教学与实践教学的课时比例,做到少而精,难度适中。

5 结束语

针对该汇编语言教学中所存在的指令种类繁多、概念抽象、难以理解和编程技术复杂等问题,以培养学生扎实的计算机理论基础和良好的实践能力为目标,结合自身体会,在理论教学和实践教学方面探讨和提出了一些具体的改革措施,增强了学生的学习兴趣和信心,提高了教学质量。

[1]沈美明.IBM-PC汇编语言程序设计(第2版)[M].北京:清华大学出版社,2003.

[2]王爽.汇编语言(第二版)[M].北京:清华大学出版社,2008.

[3]双娜.汇编语言课程教学改革与探讨[J].计算机工程应用技术,2010,6(15):4081-4083.

[4]黄剑玲,廖宇凡.汇编语言程序设计的教学改革与实践[J].上饶师范学院学报,2005,25(6):75-78.

[5]刘二荣,王海峰.汇编语言程序设计课程教学改革与探讨[J].中国成人教育,2009,(1):143-144.

[6]刘旭明,齐灿,郑利华.基于建构主义的《汇编语言》裸堂教母改革探索与实线[J].桂林航天工业高等专科学校学报,2007,(2):39-41.

[7]陈建孝,赵芜野.加强基础重视实践面向未来——“汇编语言程序设计”教学改革之我见[J].吉林大学学报(信息科学版),2005,23(s0):106-109.

猜你喜欢
汇编语言C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
汇编语言与C语言的混合程序设计技术研究
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
提高《汇编语言程序设计》教学效率的思考与实践
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
试论汇编语言与C语言的混合程序设计技术
论子函数在C语言数据格式输出中的应用