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

来源:南粤论文中心 作者:代写代发论文专家 发表于:2010-08-09 17:06  点击:
【关健词】汇编语言;教学方法;实验
汇编语言是高等学校计算机专业的一门重要的专业基础课,但是由于汇编语言最接近硬件,指令多,不直观,枯燥乏味,学生难学,教师难教。通过对汇编语言程序设计课程的重点难点问题的分析和总结,提出了在高校计算机专业的汇编语言程序设计课程教学中如何改进教学方法、
 


 

1  引言

    汇编语言是能够利用计算机所有硬件特性并能直接控制硬件的语言。它是高校计算机软、硬件及应用专业学生必修的核心课程之一,是计算机原理、操作系统等其它核心课程的必要先修课,对培养学生程序设计能力、理解计算机工作原理、从事软件开发和硬件应用均具有非常重要的作用[1]。但是,这门课程又是学生感到比较难学的一门课程,习惯了高级语言的高度结构化,对汇编语言的“机器化”学生一时难以理解。

2  汇编语言学习的难点及其成因

2.1  汇编语言自身的特点

    一方面汇编语言指令是用一些具有相应含义的助记符来表达的,因此要比机器语言容易掌握和运用,但另一方面,汇编语言要直接使用的资源相对高级程序设计语言来说又显得难于掌握。汇编语言程序归纳起来大概有以下几个主要特性:
    (1)与机器相关性:汇编语言指令是机器指令的一种符号表示,而不同类型的CPU有不同的机器指令系统,汇编语言程序与机器有着密切的关系,即汇编语言程序的通用性和可移植性要比高级语言程序低。
    (2)编写程序的复杂性:汇编语言是一种面向机器的语言,其汇编指令同机器指令一样具有功能单一具体的特点,要想完成某件工作,如计算(A+B+C)等,就必须安排CPU的每步工作。如先计算(A+B)再把C加到前者的结果上。在编写双重循环时就更不用说了,高级语言中3、4条语句能完成的,汇编中要十几、二十条。
    (3)调试的复杂性:在通常情况下,调试汇编语言程序要比调试高级语言程序困难。首先,汇编语言指令涉及到机器资源的细节,在调试过程中,要清楚每个资源的变化情况。其次,在调试过程中,除了要知道每条指令的执行功能,还要清楚它在整个解题过程中的作用。第三,高级语言程序几乎不显式地使用转移语句,但汇编语言程序要用到大量的各类转移指令,这些跳转指令大大地增加了调试程序的难度。最后,调试工具落后:高级语言程序可以在源程序级进行符号跟踪,而汇编语言程序只能跟踪机器指令。

2.2  课程教学时间缩短

    计算机专业的课程是更新得非常快的课程,随着新知识的不断涌入,不可避免的要新开设一些新课程。例如:十年前计算机专业还没有开设动态网页设计、网络编程等课程,现在则新增加了这些课程。而对于像汇编语言这样的基础课程又不能丢掉,所以只能是缩减了课程上课的总学时,这使得后面许多的汇编语言一般是比较有意思的东西被删除,因为没有时间再讲下去,比如:颜色和动画设计等等。但又因为前面的基础内容都是大量的指令,学生觉得比较枯燥,没有信心和兴趣再学下去。实验时间的减少,使得老师指导学生上机的时间也减少,往往只能做一些非常基础的实验,而一些能让学生有成就感的实验,如控制扬声器发声的实验没有办法再做。

2.3  学生的前导课程没有学好

    在汇编语言的教学中发现许多学生尽管学过高级语言C,但是没有调试程序的概念,出现错误只会和书上对照或叫老师帮看,不知道什么叫做单步跟踪和断点设置,缺乏动手能力。有些学生具备一些调试程序的概念,但他们也不会使用调试工具,只是在必要的地方加上一些输出语句来观察变量的值。因此,对于更加复杂的调式环境的汇编语言,他们更加找不到解决问题的方法。再加上汇编语言的输入和输出需要用到中断,不像高级语言那么方便来输出一个变量的值,学生对于直接在内存当中观察变量的值还不适应,所以当出现问题时,很少学生能自己改正程序的错误。

3  汇编语言的教学中的一些探索意见

    通过对上述难点的分析和结合自身的教学经验,对汇编语言的教学方法和实验辅导提出几点建议,目的是在现有的资源下,让学生将汇编语言学好。

3.1  “本末倒置”教学

    以往的汇编语言教学基本上是按照教材的编排顺序来进行的,其主要内容的教学安排如下表1所示:
表1  以往教学进程及内容安排
顺序
内容
1
基础知识
2
计算机系统概述
3
寻址方式与指令系统
4
程序格式
5
程序设计
6
子程序设计及系统调用
7
DOS与BIOS中断调用
8
高级汇编技术
    按照以上的教学进度安排教学,由于学生的基础薄弱和思维习惯的不适应,存在着内容安排上适应较难、实验环境难以把握、前后不一致、教材中前面的例题使用性不强等问题。所以在教学中,适当的调整教学次序,将更有助于学生更好的掌握汇编语言,可以将汇编语言的指令部分分散到其他内容里面,相互穿插,提前介绍汇编格式,先给一个总体印象[2]。由于汇编语言的指令枯燥难懂且数量大,将指令配合编程方法和例题进行分散讲授,在实验中通过趣味程序的输入调试增强对指令的理解与记忆,有助降低汇编指令的枯燥程度,还可以使学生一开始就接触汇编环境下的输入,调试过程。调整后的教学进程如表2:
表2  调整后的教学顺序表
顺序
内容
1
基础知识
2
计算机系统概述
4
程序格式
3
寻址方式及指令系统
7
DOS与BIOS中断调用
5
程序设计
6
子程序设计与系统调用
8
高级汇编技术

3.2  教学同步

    如果条件允许的话,最好能够边上课边实验。学生学一门语言,就想知道能够在怎样的环境能够用到它,否则对他们来说,无异于纸上谈兵、空中楼阁。在上课过程中,我使用的是多媒体教室,这样的好处是,在上课过程中可以对环境的使用进行演示,然后给学生一点时间自己练习,这样可以使学生快速入门,对课程建立初步的信心。而且比起传统的先在课堂上讲基础知识,然后过一段时间再带学生做实验的办法看,这样做也在最短的课时当中学到更多的知识,因为老师的教和学生的做之间几乎没有时间差,学生的印象比较深刻,获得的学习效果比较好。

3.3  例题的讲授

    在教学过程中,应该适当增加例题的数量。讲授例题的一般过程是分析问题,确定算法,编写流程,用汇编指令编写源程序。但是不同的阶段侧重点应该有所不同,有些可以省略掉。在前面,讲例题的主要目的是汇编格式和汇编指令;在中间,讲例题的目的是汇编流程到汇编指令的对应关系;在最后讲例题的重点是程序设计的方法与思路。这样学生就能从一个个例题中逐渐掌握汇编语言的格式、汇编指令、汇编流程、汇编程序设计。

3.4  精心选择实验内容

    实验内容非常重要,由于实验学时有限,再加上学生是初学者,所以编制一个小小的程序也要花上很长时间,再加上错误的调试时间,所以完成一个程序的时间较长。比如:我要求学生编一个将两个已经排好序的队列合并为一个排序队列时,好多同学都是在6节课才完成的。因此在选择实验内容时,注意从简短到复杂的顺序排列,最好尽量覆盖尽可能多的内容,并且内容不要有重复,尽量挑选一些比较有趣的课题来实验,比如:模拟霓虹灯。另外在课堂上也要随时穿插相关知识点的实验,当然这样的例子简短而有效。

4  结论

    总之,汇编语言教学是比较抽象和困难的,学生也感觉比较难学,但是只要教师在教学中注意把握教学的重点难点,对重点和难点进行重点讲述,利用现代化的多媒体教学手段,激发学生的学习热情,并注重实践环节的教学,一定能取得良好的教学效果。

参考文献

    [1] 沈美明 温东婵 IBM-PC汇编语言程序设计[M] 北京:清华大学出版社 1991
    [2] 王爽 汇编语言(第2版)北京:清华大学出版社
    收稿日期:4月1日   修改日期:4月8日

    作者简介:孙秋凤(1979-),女,硕士研究生,研究方向:计算机应用、生物信息。

 

(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.