前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇汇编语言程序设计范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
《汇编语言程序设计》是高等院校计算机及相关专业的专业课程之一,是计算机组成原理、系统结构等核心课程的先修课。汇编语言与硬件有重要联系,用汇编语言获得的可执行程序具有运行速度快、占用内存空间少等优点,能更有效地对硬件设备进行控制及开发。另外,学生掌握汇编语言,对其深入学习计算机工作原理、程序设计技术和程序调试技术等都有十分重要的作用。
与其它高级语言相比,汇编语言存在指令繁多、寻址方式多样、程序可读性差、编程效率不高等缺点,这使得学生对该课程的重要性认识不足。此外,学生的学习目的相当务实,有些学生认为即便是在计算机应用场合,使用汇编语言的可能性也很小,所以怕苦怕难,没有学习这门课的积极性。实际上,只有通过学习汇编语言,学生才能深入了解计算机的硬件和软件,从朦胧的计算机世界中走出来,进而理解编译和解释程序,在审视高级语言的时候,才能够透彻地理解最根本的计算机技术[1]。所以,不了解汇编语言, 不仅会导致学生认知水平降低,编程开发手段贫乏,更会导致学生的知识结构失衡。
2实验教学在《汇编语言程序设计》教学中的作用在培养人的科学思维、创新意识,掌握科学方法、提高综合实践能力方面,实践环节有着重要的作用,是课堂理论教学无法替代的。实验课是进行实践教学的重要学习场地,学生通过对实验内容的思考,对课堂上的理论知识进行了巩固;实验过程中的操作,可以发现理论教学的不足;实验过后的心得分析,为以后解决实际问题打下坚实基础。实验还可以将算法的实现和计算机的操作过程相结合,使学生体会到算法的逻辑含义是通过计算机的实际执行过程实现的[2]。
汇编语言与硬件关系密切,通过实验课,学生可以更好地理解cpu、寄存器、存储器、接口及外部设备的工作原理。《汇编语言程序设计》课程的实验是培养学生的动手能力、增强学生的学习兴趣、提高学生阅读、编辑和调试程序能力的关键环节。
3实验教学中存在的问题
3.1教学内容安排方面
计算机语言课程的学习需要理论联系实践,实验课是学好计算机语言的必备条件,汇编语言的学习亦是如此,实验课程开始越早对学生的学习越有利。《汇编语言程序设计》这门课程的教材安排顺序一般是:基础知识、计算机系统的组织、汇编要素、基本指令、程序设计、输入/输出、系统调用、高级汇编语言技术。实验教学往往是配合理论教学进行,通常在理论课程第5~7周后,实验课才得以开设。这样的教学安排效果并不理想,在实验课程开设的前几周不利于学生很好地掌握学习内容,从而对汇编语言产生厌学情绪。
高等院校普遍存在对专业课程的课时进行压缩的现象,使得《汇编语言程序设计》的理论课时和实验课时都有不同程度的压缩,实验课时的压缩相对于理论课时更加严重,导致实验内容的安排不能覆盖该课程的重点,而且重点实验内容也相对浅显,无法进行深入研究。
另外,有些教师围绕课本基础结构部分的知识讲授,没有结合实际应用进行扩展,对实验内容的设计也比较浅显,无法激起学生的兴趣。这些行为都导致了学生对汇编语言的学习兴趣降低甚至放弃。
3.2学生态度不够端正
很多学生认为实验课不重要,实验做得好否对最终的成绩判断没有关联。目前多数院校的学生学习成绩判定, 以期末考试成绩为主,这就使得很多学生重理论、轻实验。另外,汇编语言不像其它高级语言那样应用广泛,学生认为其对就业帮助不大,从思想上轻视汇编语言,对《汇编语言程序设计》的实验课程更是不愿付出精力,甚至出现拷贝代码的现象。
3.3考核体系不明确
汇编语言的实验教学环节没有受到足够的重视,导致没有明确的评价体系。在进行实验课时,有些教师只是布置了相关的实验内容,实验过程没有进行必要的监督和辅导,导致学生对实验教学态度怠慢,出现学生在实验课上玩游戏和课下实验报告抄袭的现象。
4提高汇编语言实验教学效果的措施
4.1合理设置实验内容
实验课的内容按照由浅入深、循序渐进的方式进行,以启发思维为主。对设计型、综合型实验只要能达到实验目的,其实验过程和步骤可以多样,通过实验课复习理论知识,引出欲
讲解的新内容。针对学期初不安排实验的问题,可以尝试开展“先实验后理论”的教学,在实验中理解基础理论,加大实验课的比例并且及早实行开展实验教学,在整个教学过程中实行以“学生动手为主,教师讲解为辅”的教学模式[3]。
4.2引入新的实验教学模式,培养学生学习兴趣
实验教学中要充分调动学生的积极性,照顾不同层次的学生。汇编语言指令繁琐,初始使用时比较抽象,学生对待实验内容往往无从下手,所以任课教师应该先对实验内容进行讲解。起初的实验内容,教师应该进行详细的演示,可以先引导学生“临摹”,避免学生出现无从下手、丧失信心等问题。后面的实验内容可以进行讲解并提示实验方法,但不要求每个学生都按照此方法进行实验,鼓励学生创新,并在考核中给予一定的奖励。每次实验内容,任课教师都要进行总结,以解决学生在实验过程中的“通病”。
《汇编语言程序设计》的实验一般设置16~24学时,存在实验学时偏少的问题。为了尽可能提高实验效率,教师可以提前给学生布置实验内容,给学生留出时间准备。如果在实验课上临时给出实验内容,大多数学生无法按时完成实验目标,会打击学生学习的积极性。对实验内容进行准备后再上机操作,大多数学生就可以在规定的时间内完成实验。学生在上机的过程中获得了成就感,树立了信心,就会产生学习兴趣,并主动在课下花时间钻研有关课程实验的内容。
为了培养学生的团队合作精神,也可以设计一些综合应用实验,让学生分组完成。每组选出一位组长,负责组织学生课下进行实验内容的预习、实验方案的制定和课上组员提出问题的解决方案等工作。教师在进行实验考核时,要对每个组的完成情况进行总结,对于完成较好的组,给予成员一定的加分,以鼓励学生注重团队合作精神,培养学生的学习兴趣。
4.3建立严格的考核体系
《汇编语言程序设计》课程一般需要16~18个教学周才能完成教学任务,在这段时间内,很少有学生能对其一直保持较高的学习热情,大部分学生都是以成绩驱动自己的学习,所以需要一套严谨的实验考核体系,公平公正地评价学生的实验过程[4]。笔者学校的实验课程成绩由学生出勤、预习、实验操作过程和实验报告4部分组成,涵盖了学生实验上机的全过程。各部分的比例按10%、20%、40%、30%的权重计算实验总成绩。除了出勤情况外,预习、实验操作过程和实验报告这3部分按等级评定,每个等级对应的分数为: a(90~100)、b(80~89)、c(70~79)、d(60~69)、e(50);对于前4个等级,教师可根据学生完成的情况给出该等级的加减等级。以a等级为例,a+对应100分,a对应95分,a-对应90分,这样每个等级都有对应的分数,可以做到客观地评价学生的实验过程。
5结语
本文根据笔者的教学实践,分析了《汇编语言程序设计》课程的教学现状,指出了实验教学在《汇编语言程序设计》教学过程中的重要性,并对汇编语言的实验教学进行了深入的分析和思考。根据实际情况提出了几点可行的措施,即合理安排实验内容,引入新的实验教学模式和建立严格的考核体系,从而达到发掘学生潜能、提高实践动手能力、增强学习汇编语言兴趣等目的。《汇编语言程序设计》课程的实验教学还需要广大教师积极探索,引入多种符合实际的教学方法,使汇编语言对计算机专业课程后续的学习发挥应有的作用。
参考文献参考文献:
\[1\]刘正红.对汇编语言实验教学的几点看法[j].信息与电脑,2012(6):198199.
[2]木林.《汇编语言程序设计》实验教学的探讨[j].呼伦贝尔学院学报,2012 (4):9295.
[3]张学,陆庆.汇编语言实验教学的思考[j].教学研究,2009(15):8182.
[4]侯宏霞.提高汇编语言课程实验教学质量的几点思考[j].内蒙古农业大学学报:社会科学版,2011(13):173174.
[5]金海溶,周苏,孟学多.用实验方法改革汇编语言程序设计的教学[j].计算机教育, 2007(1):3437.
关键词: 高职院校《汇编语言程序设计》教学方法
1.前言
汇编语言是我们理解整个计算机系统的最佳起点。人们往往认为汇编语言的应用范围很小,因而忽视了它的重要性。其实汇编语言对学习计算机科学与技术的人是非常重要的。所有程序,不论用何种语言进行编制,只有转成机器指令,运用机器的逻辑功能,功能才得以实现。
汇编语言直接a描述机器指令,比机器指令更容易记忆和理解。通过学习和使用汇编语言,我们才能够感知、体会、理解机器的逻辑功能,这样不仅可以为理解各种软件系统的原理打下技术理论基础,而且可以为掌握硬件系统的原理打下实践应用基础。
2.教学中存在的问题
当前高级语言的发展非常迅速,各种开发工具层出不穷,其功能也越来越强大。高级语言进行程序设计的可操作性越来越强,许多非计算机专业人员在不了解计算机的结构、没掌握计算机相关的专业理论和各种计算机语言具体编程等情况下,同样能很好地使用高级语言。所以,高级语言的发展弱化了汇编语言的地位,这使部分高职学生觉得汇编语言已不重要了,学不好没有多大的关系。所以,思想认识上的不重视,导致了部分学生学不好这门课程。
《汇编语言程序设计》的学习需要一定的英语知识。高职学生的英语基础普遍差,据有关职业教育方面的统计资料显示:在高职高专院校中60%的学生英语基础差;30%的学生有一定的基础,但对英语学习不感兴趣;10%的学生英语基础较好。实际上,普通高职高专院校学生英语的基础情况比统计的更严峻。这就为他们学习这一课程带来了一定的障碍。
针对这一系列的情况,笔者根据教学经验,总结了在高职院校教《汇编语言程序设计》的一些心得,希望对大家有所帮助。
3.注重课堂教学
3.1优化教学内容。
本课程涉及内容较多,教师应在讲课之前先对课本内容进行优化。并不是课本上所罗列的内容都需要讲,教师要有选择性讲解:对学生有用的而课本上讲得不全面的要补充讲解,而对学生用处不大的可以不讲或一带而过,争取做到“少而精”。
3.2让学生充分认识到该课程的重要性,提高学生的学习的兴趣。
“兴趣是最好的老师”,如何让学生对本课程感兴趣?笔者认为关键是把握好开学第一堂课。在学生刚接触本课程时,教师不要急于介绍理论知识,而是要强调该课程的实际应用,通过介绍汇编语言的特点和汇编语言在一些典型系统开发中的具体应用来激发学生的学习兴趣。
目前对单片机的灵活编程已经应用到各个领域,无论是尖端科技,如军事、通信、能源、机器人、交通、IT,还是现代工业、农业,如仪器仪表、汽车电子系统、家用电器、玩具、个人信息终端等诸多领域,都离不开单片机。而单片机的编程里大部分都使用了汇编语言,汇编语言的易用和灵活的特性,使得汇编语言将继续占有独特的地位,其适用的领域要求执行效率高、反应快,如操作系统内核、工业控制、实时系统、家用电器的计算机控制功能等。在讲述其重要性和应用领域时,教师应结合一些身边的、具体的实例,如电梯升降的控制程序和广场的大型喷泉的控制程序均是由汇编语言编写的,学生的兴趣会被这些实例极大地调动起来。
3.3注重实践环节。
在计算机相关专业的教学领域,实验教学是培养学生学习能力、实践能力、思考能力、创新能力的重要环节和有效途径。学生在学习汇编语言这门课程中产生的困难,来自于他们对所学知识缺乏必要的感性认识,没有得到充分的实践。
计算机在很多方面不同于其他学科,尤其是与硬件有密切关系的课程。由于汇编语言课程与硬件操作有着密切关系,因此实验环节在整个教学活动中占据了举足轻重的地位。汇编语言的实验对培养学生的动手能力和学习兴趣,提高学生阅读、编辑和调试程序的能力,有着不可替代的重要作用。学生通过实验能深入了解CPU、存储器、接口及外部设备的工作特性,对数据在计算机中的表达和传送产生感性认识,在实验中学生能对汇编语言有更好的理解、掌握,从感性认识上升到理论认识。
4.改进教学方法
4.1对照教学法。
在讲汇编语言时,教师可以和其它语言对照讲解,比如C语言。C语言作为一门基础和先驱课程,在此时起到了很好的借鉴作用,由于大部分学生对C语言掌握得较好,基于语言的相通性,在汇编语言的相关教学中教师若以C语言作为对照展开讲解,将会收到很好的教学效果,也能增进各科之间的知识和方法上的联系。下面笔者结合教学实践,列举一些应用对照教学法的实例。
MOV指令是8088指令系统中首要讲解的一个指令,也是汇编程序设计中使用最频繁的指令,教师应强调对操作数的要求。有几点我们可以用C语言来对比解释:
传送过程。其传送过程类似于C语言中的赋值,只是在这里是给寄存器或存储单元赋值,其实C语言中的变量名本身就是一个符号地址,汇编程度的赋值最终应对应到存储器的某些存储单元。
两操作数的类型匹配问题。该内容在C语言中已作了强调,汇编中类型匹配问题也是一个重点。与C语言类似,汇编语言操作数的位数要保持一致,只是在8088中常用的类型为字节和字。
强制类型转换。C语言中用到了该知识,学生也已掌握,那么汇编语言中又如何实现呢?很自然地我们就可以引出“BYTE PTR”和“WORD PTR”这两个操作符。
4.2互动式和启发式教学。
高职学生的课堂气氛一般比较活跃,他们非常喜欢教师引导、提问,喜欢回答问题。所以教师应利用这一特点在上课过程中设计一些有意义的提问,利用提问将要讲的知识点引出来,避免平铺直叙地讲解知识点,这样让学生带着问题来学习知识点,会起到事半功倍的作用。例如,在讲解编程部分的循环结构时,笔者先举了这样一个例子:求1+2+3+……+100的和。学生立刻就说出结果为5050。笔者接着问:加到1000呢?这样很多学生饶有兴趣地听讲。可见,教师所选的题目要由浅入深,要能激发学生的学习兴趣,要想办法让学生变被动学习为主动学习。
课堂练习也是互动式教学一个非常重要的方法。在讲解完某一个例题后,教师可以出一道类似的习题让学生在课上完成,请学生上讲台在黑板上写出解题步骤并进行讲解。例如刚学习了用循环的方法求1+2+3+……+100的和,教师可以让学生练习一道2+4+6+……+100的和。这样可以检验学生的掌握情况,找到学生理解错误的地方,从而对症下药。就学生理解错误的知识点再进行讲解,这样除了可以让学生当堂能够掌握所学的知识点,还能让其做到举一反三。
4.3实例教学法。
由于本课程是一门比较抽象的课程,因此教师在课堂讲授中应该尽量用一些通俗易懂的例子进行教学。
例如在讲解汇编中存储器地址分段的概念时,为了便于学生理解,教师可以借助平时生活的居民楼,进行举例。一个小区有多个居民楼,如一号楼、二号楼等,每个楼里有多个室,如101室、102室等。我们可将楼号比作段基值,每个楼里的房间比作偏移地址,很显然一号楼的101和二号楼的101是不一样的。这个例子可以使学生易于理解分段的概念。
再如在讲解中断的概念时有很多例子可举。把教师上课比作CPU正在处理的事,门外有学生打报告,教师就暂停正在处理的事情让学生进来,等学生进来后接着讲课。这样学生很容易就能掌握中断的概念。
教师可以将难理解的知识点与日常生活中的小事相联系,这样既可以使学生学到扎实的理论知识,又不会使学生学得吃力。
5.充分发挥多媒体教学的作用
汇编语言指令多、变化多,相对其他可编程语言来说源程序长而复杂,一个简单的问题解决至少要几十行,多则上百行,教师讲解例题时如果板书,就要花去大部分时间。如何解决这个问题呢?多媒体能够提高教学效果,扩大教学范围,延伸教师的教育功能。教师应在课前准备讲解的程序,上课时直接操作计算机,一边讲解指令的格式及算法,一边将指令使用前后的情况、程序的效果等通过投影仪展示给学生。计算机教学还可借助网上丰富的资源、图文并茂的生动界面、多姿多彩的影像资料,这些可使教学具有感受性、新颖性、可组合性、可扩充性,使学生的思维更加具有发散性,更容易培养学生的创新思维。
6.结语
笔者对汇编语言课程的教学内容和教学方法进行了探讨,这些教学方法促进了课程的建设与发展,为学生学好后续课程打下了一个良好的基础。摸索一条适合高职学生需要的、有效的教学方法,使高职学生能更好地、更快地掌握汇编语言程序设计,培养学生的分析问题、解决问题和实际操作能力,我们在汇编语言课程教学中需要继续探索研究的目标。
参考文献:
摘要:本文从教材建设、课程教学内容改革、教学方式手段改革、实验平台创新、实验改革等方面介绍了我院在“汇编语言程序设计”课程的教学改革实践。
关键词:汇编语言程序设计;实验平台;教学改革
中图分类号:G642
文献标识码:B
1教材系列化建设
我们以CCC2002为依据,参考IEEE-CS&ACM 制定的计算机课程指南,阅读大量的国内外相关优秀教材,结合课程组科研实践成果,按照系列化建设的思路,先后编写完成了《Intel 80x86/Pentium汇编语言程序设计》、《汇编语言程序设计(从DOS到Windows)》、《Windows汇编语言程序设计教程》、《Windows汇编语言程序设计实验指导》等4本教材。其中1本被评为2006年北京市高等教育精品教材,1本被列为2007年“普通高等教育“十一五”国家级教材规划”,2本作为2007年北京高等教育精品教材建设项目。通过编写、使用这些教材,为教学内容改革奠定了坚实的基础。
2教学内容及教学方法改革
在教学内容和方法上加强与“微机原理与接口技术”、“计算机组织与结构”、“操作系统”等课程间的联系,有利于各门课程之间的融会贯通。教学内容体现课程的时代性和先进性,以32位汇编语言及Windows编程环境的内容为主,从16位实模式转换到32位保护模式,结合丰富的应用性实例,使所学知识与目前主流的应用环境相结合,为学生的创新能力奠定基础。
为实现教学模式从“教学型”向“研究型”的转变,需要充分研究学生的认知过程,掌握认知规律。根据“汇编语言程序设计”课程本身的理论抽象性和鲜明应用性,课程组以建构主义理论为基础,探索并改进教学方法。在教学设计中体现以学生为中心、以教师为主导的思想,采用重点难点精讲、对比教学、形象教学、重视实验等方法,用多媒体手段、典型实例来展现抽象的编程概念。采用现代化网络教育技术建立了课程网站及网络教室,加强师生互动,拓展了交流空间。
例如,在多门专业课中均涉及到“中断”概念,在汇编语言程序设计课程中以编程实例将它具体化,使学生对抽象的理论概念有了直接的认识,从软件和硬件两个角度加深了对中断机制底层的深层次理解,提高了学习兴趣。
又如学生难于理解间接寻址方式,但学生在学习本课程时已有了C语言知识,在教学中就把间接寻址方式与C语言的指针类比,通过与先前知识的衔接,经过对比学习,使学生建构、衍生出更深层次的信息,很容易对新知识消化。对于较难理解的程序转移地址的形成,采用动画方式帮助学生理解,并通过CASE结构程序设计实践巩固。把宏指令与过程及高级语言的函数对比,学生很快掌握了其设计方法,他们通过主动对知识的处理和转化,又总结出“宏实际更像高级语言的预定义,用到它的地方都会有它一份拷贝,所以宏可能让你的真正代码量剧增”。
通过精心组织教学,选择与实际应用密切结合的教学案例,在课堂上和网络支撑平台上增加总结和讨论环节,鼓励学生主动反思,从而调整个体的认知,帮助学生实现在原有认知基础上新知识的整合,在融合了多门课程知识的基础上,形成系统的知识观念,提高综合应用和创新能力。
3构建先进的实验平台
在微机系统的教学和实验内容上,Windows操作系统及32位保护模式已成为汇编语言的发展趋势。然而,目前Windows环境下还没有一种专门用于汇编语言的主流开发工具,而底层汇编语言编程所面向的硬件型号和接口又存在巨大差异。为此,课程组开展了改革汇编语言程序设计实验环境的探索,编写了《Windows汇编语言程序设计实验指导》教材,构建了新型的实验环境,采用Microsoft Visual C/C++集成开发工具来编写、调试汇编程序(见下图),使汇编程序的编辑、编译、连接、调试等过程均与C/C++程序一致,减轻了学生学习负担,提高了C/C++与汇编混合语言编程能力。应用虚拟机软件技术,使汇编语言编程面向虚拟的、统一的硬件及其接口,保证了实验环境的统一性,提高了实验效率。
4开设体现前沿性、先进性的汇编语言实验
汇编语言程序设计是一门实践性很强的课程。课程组跟踪计算机软硬件技术的最新发展,对国内外的相关课程教学及实践进行了深入的调研,结合在科研实践中取得的部分成果,开设出一系列具有鲜明应用特色的验证型、综合型和创新型的层次实验,并写进《Windows汇编语言程序设计实验指导》教材中,进一步巩固理论教学内容。
图 VC集成环境下的汇编语言调试
验证型实验以掌握单元知识为目标,着重训练基础编程能力,如数据块操作、数据显示、字符串排序、素数判断、有序数组合并等。
综合型以融合本课程知识为主,如多模块程序设计、中断程序设计、线程同步、文件管理等。
创新型以设计具有应用背景的实验为主,培养学生对计算机知识体系的融会贯通及创新能力。如数据库管理系统设计、全屏幕编辑器设计、缓冲区溢出实验、读取硬盘序列号、硬盘DMA等。
基于个体的差异性,学生可以按照自己的能力和兴趣选做部分或全部实验,充分发挥了学生的主观能动性。这种强调自主学习的教学过程和方法,有效地促进了学生自我认知的发展和新知建构。通过实践环节,提高了学生的程序设计能力,为学习后续专业课程,设计硬件驱动、性能优化、代码对抗等底层系统级软件打下坚实基础,培养了学生的创新能力。
参考文献
[l] 李未. 提高教育质量,培养创新人才[J]. 计算机教育,2008,(1).
[2] 肖川. 主体参与:自主学习的要义[J]. 人民教育,2003,(22).
关键词:汇编语言;集成开发环境;实践教学
中图分类号:G642
文献标识码:B
文章编号:1672-5913(2008)06-0019-03
1教学现状及存在问题
在目前汇编语言的教学过程中,普遍存在的问题就是主流的微型计算机已经进入了64位时代,多任务的操作系统取代了DOS,而绝大多数高校汇编语言程序设计课程仍然是单任务操作系统(DOS)下的8086汇编语言,给学生的印象是跟不上时展的步伐。加之,汇编语言和机器的体系结构结合紧密,使用者需要对计算机的组成、硬件的控制和指令的解释过程有比较清晰的掌握;程序的移植性不好;指令众多,且同种类型的操作(算术、逻辑、转移等)要根据操作数和状态标志选择不同的指令(如无符号的运算与带符号的运算、条件转移等);运算中要根据数据长度悬而选择不同的寄存器;程序的编译调试比较麻烦;编写出吸引人们感官的程序比较困难。因此,学生在汇编语言的学习中容易产生厌烦情绪。有的学校减少了汇编语言的课时,还有的学校甚至干脆取消了这门课程。
2“汇编语言”课程的地位
汇编语言机器级在高层机器和低层机器间扮演了承上启下的角色,是计算机及相关专业学生需要掌握的重要专业基础知识之一。
从应用场合来看,汇编语言是能够利用计算机所有硬件资源并能直接控制硬件的唯一计算机语言,也是除机器语言之外最接近计算机硬件的编程语言。汇编语言程序产生的代码精简、运行效率高,具有高级语言不可比的“时空”优势;汇编语言在一些应用如嵌入式系统和工业控制中,汇编语言最最佳的甚至是唯一选择的开发语言。在一些实际的应用系统中,人们往往会用汇编语言来彻底重写某些经常调用的过程以期获得更高的性能。
汇编语言为“计算机组成原理”、“计算机接口与通信”、“操作系统”、“高级语言程序设计”等相关课程提供了必要的基础知识,如图1所示。
图1 汇编语言和其它课程的关系
从人才培养方面来看,计算机专业的学生不应仅仅满足于利用他人开发的软件和工具来解决实际问题,还应具备分析、研究原有软件系统,改进、完善、提高原有系统功能的能力。汇编语言的教学将使学生受到更严密、更系统的程序设计及思维方法的训练,为深入分析、研究、开发软件系统打下良好基础。
3加强实践教学
为了提高汇编语言教学的效果,笔者认为应该从以下几个方面入手。
(1) 清理认识上的误区。在上第一堂课时,用一个课
时来讲汇编语言的特点及其应用场合、它和高级语言区别、其难点在哪里、本课程该如何展开等内容,从而打消学生畏难和轻视的思想。
(2) 要充分利用好计算机辅助教学(CAI)的优势,要让课件“动”起来。目前普通本科计算机专业的教学大都采用了CAI教学,但大都是播放课件(如PPT),实质上是用鼠标代替了粉笔、屏幕代替了黑板。而且由于播放的速度远快于板书,学生反映根本来不及仔细理解有关内容,效果反而不如板书。多媒体教学提供了视觉、声音的特殊效果,在对重点、难点问题的讲授中要充分利用多媒体教学的优势。如讲授指令ADD AX,[2000H],如果是静态的课件,就是一句“这是一条加法指令,把累加器的内容和逻辑地址为2000H存储单元的内容相加,运算结果送回累加器”。而动态的课件会先画出一个模型计算机,然后演示该指令解释的全过程:从CPU内存中取出指令、译码、数据寻址(从寄存器和内存中取得操作数)、启动ALU运算、保存结果到累加器和影响状态标志寄器。每一步都要图示化出数据的变化和走向以及相应的控制时序。在声音和显示控制的程序设计教学中,更应展示多媒体教学的风采。多媒体教学丰富的动感效果能极大地增加学生对指令的感性认识,增强他们学习的兴趣。当然,制作这样的课件耗时耗力,学校应该切实加大对CAI教学的支持力度。
(3) 在汇编语言的教学中要加强和高级语言的比较教学。在学习汇编语言时,学生一般都具有了C语言程序设计的知识。在汇编语言程序设计的教学过程中,应该比较这两种语言的编程特点、程序代码空间、运行速度等,以加深学生对这两种语言的理解。如在讲授基址变址寻址方式中,可以用C语言和汇编语言分别实现对数组运算的实例来阐述。要加强高级语言(C语言)和汇编语言的混合编程的教学,充分阐述C语言结构化设计和汇编语言对机器低层(存储器、寄存器、中断处理、I/O)控制的优点。这样即可充分调动学生的学习积极性,也可以培养学生解决具体应用的能力。
(4) 加强操作系统相关知识的渗透和虚拟模式下的编程教学。目前操作系统的核心部分是用汇编语言来实现的,如对CPU本身的初始化(包括定时器、中断、I/0端口等的初始化);系统引导启动程序的完成;在处理器的控制下从实模式进入保护模式,实现虚拟存储器的管理和多任务的调度。将该部分引入到教学中是有必要的,能加强学生对操作系统中内核引导启动与驻留、保护模式和实模式的切换、多任务的调度等知识的理解。在讲授操作系统对程序的引导和进程的调用时,适当介绍计算机病毒的机理,以提高学生的学习兴趣并扩展知识面。
(5) 要切实抓好实验教学环节。课堂主体教学和一般作业很难让学生真正领会本课程涵盖的概念、原理、方法和技巧等。经验表明,学习并真正掌握汇编语言程序设计的最好方式是充分实践。实验教学和课堂主体教学“两手都要硬”,在课时分配上达到1:1。
4建立实验教学平台
传统的汇编语言上机实验一般是在DOS环境下的进行,如图2所示。而DOS逐步被淘汰,目前流行使用Windows操作系统平台,学生对DOS的使用相对陌生。尽管Windows保留了DOS的工作方式,可以切换到DOS提示符下操作,但是对建立文件夹(目录)、进入文件夹(目录)、删除文件等操作,学生们常返回到Windows环境中来完成,显然会影响上机的效率和增加编程的繁琐,同时也不利于WIN32虚拟模式下的教学。
图2 汇编语言程序开发的传统操作过程
因此,必须建立基于Windows操作系统的W32汇编语言集成实验环境,该环境是一个集编辑、编译、连接、程序调试和帮助于一体的实验平台。笔者主持的课题组经过系统的调研、编程和测试已开发出一个汇编语言集成编译系统,该系统已成功应用到本课程的实验教学中,效果较好。系统的运行界面如图3所示。
其次,要精心编写实验指导书和安排实验内容,组织好课程设计。结合目前广泛使用的PC机的Intel 80x86指令系统来开展教学,通过在集成环境下汇编语言的上机实训,加深学生对指令系统和汇编语言程序设计的认识和理解。实验的内容可以组织如下:
(1) 指令系统。用DEBUG调试工具来熟悉指令功能和寻址方式,掌握简单程序的调试。通过实验了解CPU的组成,熟悉8086/8088寄存器组、8086/8088存储器组织、8086/8088标志位的意义。
(2) 汇编语言程序设计。包括顺序程序设计、循环程序设计、分支程序设计、子程序设计和宏汇编程序设计等实验。掌握各种程序结构的设计方法,了解宏汇编、条件汇编和模块化程序设计等汇编语言程序的概念,掌握宏汇编程序设计的基本方法。
(3) 输入输出与中断。包括输入输出程序设计、中断处理程序编写、常用系统中断(如时钟显示、键盘和显示器、使用鼠标的程序设计)控制等实验。
(4) Win32汇编语言程序设计。包括32位微处理器与32位指令、保护模式下的32位汇编语言程序设计等实验。
(5) 汇编语言与C/C++的混合编程。主要包括C/C++程序与汇编语言程序的连接、嵌入汇编与模块调用等。
图3 汇编语言集成开发环境
参考文献
[1] 沈美明. IBM-PC汇编语言程序设计[M]. 北京:清华大学出版社,2001.
[2] KIP R. IRVINE. Assembly Language for the IBM-PC[M]. Prentic Hall INC,1993.
[3] 李学干. 计算机系统的体系机构[[M]. 北京:清华大学出版社,2006.
[4] 金海溶. 用实验方法改革汇编语言的教学[J]. 计算机教育,2006,(1):36-37.
[5] 田庆. 汇编语言程序设计课程的教学探讨[J]. 电器电子教学学报,2007,(2):14-15.
关键词:汇编语言;课程特点;教学内容;教学方法
中图分类号:TP313 文献标识码:A文章编号:1007-9599 (2010) 05-0000-01
Knowledge and Thinking on Teaching Content and Methods of Assembly Language
Shi Dongsheng
(Inner Mongolia University of Science and Technology Add,Baotou014010,China)
Abstract:Assembly Language and Programming Design is a compulsory basic course for computer majors. The thesis sets out to illustrate the characteristics of Assembly Language course and based on the narrations and in consideration to the practical teaching tasks, analysis has been carried out regarding the teaching contents of the course while countermeasures have been analyzed on the teaching methods regarding how to improve the quality of teaching and learning.
KeyWords:Assembly Language;Course Characteristics;Teaching Contents;Teaching Methods
汇编语言是计算机及电子信息类专业十分重要的基础课程,是学好徽机原理、操作系统、编译原理的知识准备。它能充分发挥和利用计算机硬件特性的语言,能够完成高级语言难以胜任甚至无法完成的任务。笔者结合工作实践,对该课程的教学内容和特点、及教学方法做以下探讨。
一、汇编语言课程的特点[1]
汇编语言是计算机能提供给用户的最快而又最有效的语言,同时能够利用计算机所有硬件特性并能直接控制硬件。所以高级语言简单、易学且开发效率高,而汇编语言复杂、难懂、开发效率低。对汇编语言的课程特点主要表现在以下两个方面:
(一)汇编语言的优点
主要变现在以下两个方面:第一,用汇编语言容易得到高时空效率的程序。由于汇编语言本质上就是机器语言,可直接、有效地控制计算机硬件,因而与高级语言相比,容易得到运行速度快、执行代码短、占用内存空间少的高时空效的目标程序。
第二,用汇编语言能设计出高级语言无法实现的程序。正是由于与机器的密切相关性,使得汇编语言能充分利用计算机的硬件特性,编写出与硬件紧密相关而高级语言又无法实现的程序来。
(二)汇编语言的缺点
主要表现在两点:第一,汇编语言难学、难理解、难调试难维护等。第二,汇编语言程序可移植性差。
二、对汇编语言课程教学内容认识
笔者根据自身教学实践,对汇编语言教学内容的安排与经验总结为以下几方面:
第一,对于十六进制的加减法运算、有符号数的补码计算要充分了解学生基础,在此基础上进行复习巩固。
第二,对处理器中寄存器的介绍,存储器的组织结构,操作数有关的寻址方式这一版块的内容,建议不要介绍与转移地址有关的寻址方式,因为相关知识还比较少,学生很难理解。
第三,就传送指令、算术运算指令和逻辑指令、系统功能调用简介来说,应该重点介绍这些指令,而其他指令分散到后面章节中或者舍去。而且每种指令也是精选最基本、最重要的指令进行介绍,如传送指令中只介绍mov、xchg、push、pop、lea、lds和les指令,力争讲过的内容精通,课堂没有介绍的可以触类旁通。
第四,伪指令用于辅助汇编语言程序设计,不作为重点,使学生可以理解汇编语言程序的格式即可,不引申不常用到的伪指令和不必要的细节。
第五,分支、循环和子程序设计版块的内容,介绍用到的一些指令及程序设计方法,采用短小精悍的程序训练学生,培养汇编程序设计的基本功能。
第六,输入输出程序设计、模块化程序设计、混合编程等高级汇编语言技术内容,经过前面的学习学生已经具备扎实的汇编语言基础知识,能够进行程序设计,引出实用技术,可以采用基于问题的教学方法,培养学生的实践能力。
三、提高汇编语言课程教学质量的对策思考
(一)教学手段的多样化
汇编语言由于其基础性,而又它不同其他基础课一样以实践操作为主,体现着它的比较抽象性,理论性较强的特征。如在寻址方式和指令系统以及源程序结构都比较抽象、复杂、难于理解。为了使学生能够较好的理解这些抽象的概念,在教学过程中针对这些内容可采用多样化的教学手段,可以从如下两方面入手:
第一,将抽象的理论形象化。计算机科学技术最大的特点是,它的最初愿望和最终目标都是模拟和实现人的思维过程,体现出计算机系统成为人的思维的延伸。因而它的许多理论与算法本质上是在人的思维基础上获得创建与发展。基于这一特点,我们教师就可以将课程中有关难于讲解和难于理解的原理、算法,和人的思维方式和对事物的处理方法以及人与人之间的关系关联起来,结合与学生密切相关的事列对原理与算法进行讲解。
第二,要利用功能程序段使学生更好地掌握指令系统。微机的指令系统的指令多达上百条。进行机械地记忆会很枯操,学生往往难以掌握和运用。但程序设计又需要熟练掌握其中的部分指令。所以,为了使学生更好的掌握指令系统,可借助各种程序范例来理解相应的指令。这样不但使学生能够知道如何在程序中具体应用指令,而且对以后的程序设计也有帮助。
(二)强实脸教学与课堂教学相结合
计算机专业的两个最基本教学目标是计算机科学和计算机文化。计算机科学主要是传授学生计算机有关的专业知识,对计算机系统要进行深人了解,强调计算机的学术价值。这一方面主要表现在对理论及算法的学习和研究。而计算机文化,它的含义是利用计算机进行信息处理的能力、操作和程序设计的能力,它十分强调实践,即上机操作。对于任何一门程序设计语言来说,上机实验操作环节都是不可或缺重要环节。
(三)发挥现代教学媒介的优势
按照任的认知规律,人的认知活动是人们对外界信息进行加工和筛选的过程。我们在教学过程中,如果把汇编语言的基础知识以直观形象、灵活多样的形式展示给学生,促使学生短时间内准确理解。我们应充分利用以计算机为核心的现代信息技术,充分运用现代化的教学媒介,使教师脱离繁琐的推理、论证、讲解,使学生在适中的教学时间内理解、掌握和获取更多的知识和信息,从而提高教学效质量。
四、结束语
教学质量是对教师劳动成果的一个重要评价指标,而课程特点又在很大程度上影响着学生的学习兴趣与学习效果,因而对教学内容的优化与改革,对教学手段的不断改进与丰富,保证教学目标的顺利实现,需要我们教育工作者进行不断的思考和探索。
参考文献: