《汇编语言程序设计》课程教学改革与实践论文

广博吧 人气:1.11W

摘 要:为了提高《汇编语言程序设计》的教学效果,本文从教学方法、实践教学、成绩考核等方面进行了教学改革探讨。

《汇编语言程序设计》课程教学改革与实践论文

关键词:汇编语言程序设计; 教学方法; 内联编程

1课程的现状

汇编语言不同于其它高级语言,必须要求编程人员有一定的硬件基础,如对CPU的结构、CPU与存储器等部件的数据传送过程必须要有基本的了解,这样才能学好这门课程。在教学过程中,我们发现学生对高级语言编程学习积极性高,对汇编语言课程缺乏兴趣,因为课程本身指令复杂,规定繁多,再加上学习汇编指令前对CPU的相关工作过程理解不透,导致学生厌学,又由于本课程面对的低年级学生只有高级语言的基础,习惯于高级语言的自然表达,初次接触计算机硬件知识心理上有恐惧感,更难以适应繁杂的低级语言。

针对本课程的特点,对教学内容、环节、过程等进行了精心设计,下面就教学方法的设计、实践教学方法、课程考核形式等方面进行的一系列改革进行详细探讨。

2教学方法设计改革

为了避免学生因指令复杂,规定繁多、难度大而对该课程产生畏惧的学习心理,教师有必要对教学内容进行合理组织,对教学过程进行精心的设计。

2.1利用FLASH技术,使教学难点容易理解

在多年的教学过程中,我发现学生在学习CPU结构这章节中,对介绍的CPU由哪些寄存器(名称、大小)构成,各个寄存器的含义,用途,CPU与存储器等部件的数据传送过程,会觉得很抽象,多数同学都是采用死记硬背的方式,这章节是第二章节的内容,也是能否学好该课程关键的`一章,如果理解不深,这无疑为后续的学习,特别是寻址方式的学习埋下了隐患。

针对这个问题,教师有必要对教学过程进行精心的设计。

在这章节中我们利用FLASH技术,把各种寻址方式下传送指令的CPU与存储器等部件的数据传送过程以动画形式展现给学生,使得复杂,抽象的过程变得直观,学生理解比较容易,也加深了对寻址方式的记忆。

2.2对比法教学

目前计算机专业的课程设置中,《汇编程序语言的程序设计》课程通常是学习完C语言课程之后开始学习的。所以在教学中可以采用对比法来讲解课程,对某些语法知识点和程序设计过程我们可以以C语言和汇编语言对应分析。

例如在介绍寄存器时,由于在一般的c语言程序中并没有直接使用到寄存器。因此,我们使用vC++6.0环境下的调试工具显示一个c语言程序及其对应的机器码,让学生看到编写汇编程序寄存器的用途,加深了学生对汇编语言程序的理解。

int m=5,n=6,c;

004010E8 mov dword ptr [ebp-4],5

004010EF mov dword ptr [ebp-8],6

c=m+n;

004010F6 mov eax,dword ptr [ebp-4]

004010F9 add eax,dword ptr [ebp-8]

004010FC mov dword ptr [ebp-0Ch],eax

在介绍语法知识时,比如变量的定义:

C语言中的变量定义形式如下:

int c1,c2=0;

汇编语言的变量定义形式如下:

cl DW ?

c2 DW 0   2.3抽象概念的比喻教学法

在对段地址和偏移地址的讲解过程中,可以采用比喻法,把操作数比喻成学生,把教室的房间号比喻成段地址,教室内每个座位编个号,编号就是偏移地址,要想到教室把某个学生找到,就要找到相应的教室号,再到对应的座位号找到这个学生,同理,要想把主存中的操作数找到就要找到段地址和相应的偏移地址,另外要让学生知道每个教室里的座位号都是从0号开始编号的,也就是每个段里的偏移地址如果不特别指定,也是从0号开始编号的。

3实践教学改革

3.1增强实验环节,做一些实际项目

程序设计对于大多数的初学者来说有一定的难度。对于给定的一个实验题目,许多学生往往感到无从下手。目前的上机实验时间往往很短,常常是学生才刚刚有点入门,实验环节就结束了;且课外实践环节几乎没有,导致学生即使课内学的再好也不会应用。

在实验设计方面可以先把一些经典的程序提供给学生,例如分支结构的设计、循环结构的设计等,让学生在写出C语言程序之后再设计汇编程序,找出两者编程思维的区别。这样通过一段时间的经验积累,就能够编写比较复杂的的程序,由于上机时间有限,可以每次实验课之后布置一些题目供学生选择思考,让学生课外分组来设计这些程序,题目的类型可以是研讨型的让学生从更多的角度去思考上机实验过的题目,编写出不同的程序;另一种为编程型,

例如可以设置这2道题目,音乐小键盘、贪吃蛇游戏等,以加强同学们的编程能力的训练。

3.2采用与高级语言混合编程

目前越来越多的场合要使用汇编语言和高级语言进行混合编程,因此在教学时应强调汇编语言和C/C++的混合编程,并且这样也可以为今后嵌入式系统软件开发的学习打下坚实的软硬件基础。

在实验课中可以借助 Visual C++开发工具,采用内联汇编的方式,在 C/C++源程序中嵌入汇编指令序列完成一定的功能,并让学生设置断点然后跟踪执行,同时注意观察寄存器的内容和变量的值。这样可以一方面让同学们熟练掌握两种语言的切换使用,另一方面让他们感受到两种语言各有特点。例如可以利用汇编语言处理高级语言中不方便处理的一些问题。

4课程考核形式改革

因为“汇编语言程序设计”是实践性很强的一门课程,所以实验课成绩应该在总成绩中占有相当大的比重。目前大多数高校的汇编语言课程的实验课成绩只占很小的比重,即理论知识往往占课程期末考核总成绩的70%~80%,这样往往会导致学生不得不将大量的精力放在理论知识的学习中,结果只会造就大批的应试高手。在教学中,我们遇到过有的学生考试试卷能考90分以上,却连最基本的计算机操作都不能动手。今后这门课程的考核,实验课成绩应该提高到占总成绩的1/2。老师在实验中应该营造出互动气氛,检查每个学生的完成情况同时做好记录,根据学生的实际动手情况给出他们的平时实验成绩,而不是只依据交上来的实验报告,这样也能杜绝抄袭之风。

5结束语

通过教学改革的实践,在一定程度上提高了他们对本课程的学习积极性,又降低了学习难度。良好的教学效果是永远追求的目标,在今后的教学中,我们还需要不断进行探索、研究和尝试,不断更新观念,发现自身教学过程中的问题,找到解决办法,提高教学效果。

参考文献:

[1] 王成耀.80x86汇编语言程序设计[M].北京:人民邮电出版社,2008(第2版).

[2] 卜登立,彭嵩松,唐卫东,龙侃.“汇编语言程序设计”课程教学改革研究与探讨[J].井冈山学院学报,2009,30(10):124-127.

[3] (美)布鲁姆著,马朝晖译.编语言程序设计[M].北京:机械工业出版社,2006.

[4] 全选悦,赵焕平.汇编语言的教学改革和思考[J].福建电脑,2008(2):201.