首页 > 文章中心 > 汇编语言程序设计

汇编语言程序设计

开篇:润墨网以专业的文秘视角,为您筛选了八篇汇编语言程序设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

汇编语言程序设计范文第1篇

关键词:汇编语言;实验教学;实验安排;实验教改

中图分类号:TP313-4

汇编语言作为面向机器的软件,在计算机应用中拥有重要的地位,主要应用在对实时性要求高、对硬件设备进行控制的场合:比如在过程控制、媒体接口、通信等用高级语言难以实现操作的场合,必须使用汇编语言。虽然目前系统软件的开发已有不少采用高级语言,但给出的目标程序往往还是采用汇编语言的形式,并且还有不少系统软件要求必须使用汇编语言编写。因此,对于计算机的开发、应用技术人员,必须熟练掌握汇编语言才能分析、修改和扩充计算机系统软件、增加计算机功能。

1 实验教学环节在汇编语言教学中的地位和作用

计算机学科在许多方面与其他学科不同,特别是与硬件密切相关的课程。由于汇编语言课程是与硬件的操作密切相关,实验环节在教学活动中占据了重要地位,对提高学生的阅读、编辑和调试功能中起着不可替代的作用。在正常情况下,计算机高校会指出要加强上机实践环节,学生通过实验课的理解工作有CPU,内存,接口和外部设备,在计算机的表达和传输数据产生的看法。在汇编语言的实验,以达到更好的理解和掌握,从感性认识到理性认识。因此,在汇编语言程序设计教学中应注意的不仅是实验和理论教学应认真贯彻落实是基于实验的原理。实践能力的重要组成部分,思维能力,创新能力,很显然学生在这个过程中出现的困难,第一他们需要从缺乏必要的感性认识,没有足够的实验时间。

2 汇编语言实验教学的现状分析

首先,汇编语言属于低级语言,对于初学者而言,学习高级语言等于电脑在迁就人的思维方式,而学习汇编语言则需要人去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是学生学习汇编语言时遇到的最大障碍。

其次,汇编语言程序设计课程在教学方法上基本还是采用传统的授予式的教学方法,和所有的程序设计语言一样,要学好汇编语言,实验是必不可少的环节。很多学生都有这样的体会,书上的程序都能看懂,基本原理也都明白,但是在真正要亲自动手去编写程序的时候却无从下手,甚至连第一句怎么写都不知道。这就要求教师在讲解理论知识的同时注意让学生及时上机练习。因此,在教学方法和教学手段上应该有所创新和突破。

再次,教师受传统教育的影响,普遍存在重理论轻实验的思想,一方面,教学方法普遍采用的仍然是讲授法。另一方面,随着科技的飞速发展,现在课堂教学大部分使用多媒体教室,这就使得部分教师授课时过分依赖多媒体演示,很多内容都是通过多媒体演示仅让学生看看了事,并不重视让学生进行实际操作。

最后,因为汇编语言本身具有难学、难理解、难调试、难维护、可移植性差这些缺点,随着计算机运行速度的提高和内存容量的增加,人们对时空效率的要求已不再那么迫切,汇编语言的优势已不再那么突出,学生学习汇编语言固然存在着不少困难,但汇编语言在某些方面仍然有着高级语言无法比拟的优势。所谓“兴趣是好的老师”,作为教师要注意激发学生的学习兴趣,并在开学初就明确告诉学生这种考核制度的存在,使之开始就消除怠慢的情绪,从根本思想上重视实验。

3 实验教学内容的设计新思路

“汇编语言”是实践性很强的课程,而且有些内容只有通过学生上机调试过,才会有更深的体会。所以实验教学安排应按照由浅入深,循序渐进的方式进行,合理选择实验内容,尽量避免过多过杂。有些实验内容可以安排在讲课之前,即“实践先行”或“项目驱动”让学生先实际操作然后带着问题来学习,这样会大大增加学生的学习兴趣。在内容选择时应注意举一反三,即以启发思维为主,对设计型、综合型实验只要求能够完成预定实验目标即可,不苛求实验过程与步骤的统一。在实验课上,可以将教师演示和学生实践穿行,并且注意重复对比,让学生及时发现自己操作上的失误,加深对汇编语言编程操作规范的理解。另外,在实验中教师不需要处处包办,要学会适时放手,鼓励学生自己动手修改程序,有时学生对自己编的程序没有把握,一旦经上机实验亲手调试后就会很清楚了。学生在计算机上修改程序,观察修改后的结果,实际上就是了解改动部分在整个程序中所起到的作用,这种作用的认识和理解不是通过说教得来的,而是切身经历的、看到的,学生对于它的理解、记忆就要深刻的多。

3.1 改革实验方法。摒弃传统的DOS环境,采用汇编语言集成环境AsmEdit。该环境具有如下特点:(1)以Windows为平台;(2)有一个功能与Windows的记事本相同的编辑环境,可方便地编辑汇编语言源程序;(3)在设置汇编、连接、调试等可执行文件的位置后,可以在集成环境中通过菜单或者快捷按钮来进行汇编、连接、调试等工作,而不需要分别执行相应的命令。还可以显示如果在DOS下操作时这一步操作所需要敲入的命令行;(4)只要按几下鼠标就可以快速插入一些内容:预先设定的一些文件格式,DOS下的EXE文件,COM文件等;汇编语言指令及其使用格式;伪指令以及预先设定的一些程序片段,如过程定义等等。

3.2 利用Debug调试工具,加强实践环节。汇编语言和高级语言一个很大的不同之处在于用汇编语言编写的源程序在上机调试时大部分的程序不能直接看到运行结果,所以需要充分领用好Debug这个调试工具,能够熟练利用这个工具,可以帮助学生理解指令和程序,有效提高学生的编程能力和上机调试能力。

为了充分发挥Debug的作用,需要把Debug的使用方法贯穿到整个课堂教学和实验教学的始终,比如,在讲授CPU内部的寄存器结构时候,可以教学生用Debug查看各寄存器的状态等。在程序设计部分,Debug发挥更大的作用:大部分程序的运行都需要借助Debug来查看运行的结果,当程序运行错误时,还需要借助Debug来进行调试,利用Debug来随时查看寄存器和内存单元的内容,找出错误所在,从而不断修改直到程序运行通过。

4 实验内容的具体安排

具体的实验内容应覆盖汇编语言程序设计课程教学中的各个要点,主要包括DEBUG、汇编语言编程环境、汇编语言程序设计。实验类型分为选作和必做。每个实验分属验证型、设计型或综合型。基于以上思考,笔者在实验内容的选择、实验步骤的设计和实验文档的组织等诸方面都做了精心的考虑和安排,尝试为“汇编语言程序设计”课程编写了《汇编语言程序设计实验指导书》。下面列举其中几个具有代表性的实验:

实验一 汇编语言实验平台及调试工具的应用

5 结束语

参考文献:

[1]赵树声,杨建军.DOS/Windows汇编语言程序设计教程[M].北京:清华大学出版社,2005.6.

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

[3]刘均,周苏,金海溶等.汇编语言程序设计实验教程[M].北京:科学出版社,2006.

[4]钱晓捷.32位汇编语言教学技巧[J].计算机教育,2012(02):88-91.

[5]陈逸菲,赵丽玲,张颖超等.汇编语言的对比教学法[J].计算机教育,2011 (24):45-48.

[6]熊小兵.“汇编语言程序设计”的比较教学法[J].计算机教育,2010(03):151-153.

汇编语言程序设计范文第2篇

关键词:计算机教学;汇编语言;实验;改革创新

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)18-0129-03

1 “汇编语言程序设计”课程存在的必要性

高职教育的目标在于培养具有组织、管理高新技术的生产,能够操作、调试和维护高新技术设备,解决生产过程中遇到的各种实际问题的高素质技能型人才,与普通本科教育有着本质的区别。眼下许多高职院校的计算机专业已经进行了各种教学改革。这些方法和措施所强调的大都是:以提高学生实践能力为主,理论够用就行,应用型不强的科目该砍就砍。所以,在许多高职院校的教学改革中,“汇编语言程序设计”被大刀阔斧地砍掉了,或者合并到“微机原理”、“计算机组成”等其他课程中。但是,尽管与发展初期相比,计算机开发和应用技术已经有了根本性的变化,我们有了各种高级语言、有了网络应用开发的许多编程工具,很多程序甚至可以自动生成,那么汇编语言是不是就真的应该退出历史舞台呢?笔者不这样认为。

汇编语言是计算机专业及相关学科一门重要的基础课程,是培养学生直接使用计算机硬件资源能力的一门课程。它不仅能帮助学生进一步理解计算机组成原理课程中的各种概念,而且还为其它课程如:操作系统、接口与通信技术和计算机控制技术等课程提供必要的预备知识。该课程在计算机学科课程设置中起着承上启下的作用。不能了解和熟悉汇编语言知识不仅将导致学生知识结构的不完整,也可能导致学生认知水平降低、开发手段贫乏。在一些应用中,汇编语言甚至是开发工具的唯一选择。

当前嵌入式系统软件的开发非常热门,其发展前景很广阔,嵌入式系统较常用的操作系统Windows CE与Windows同样是基于Win32 API的,Win32汇编语言的学习有利于开展后续课程“嵌人式系统”,为嵌人式系统的软硬件开发打下了坚实的基础。

总之,无论对于计算软件还是硬件工作者来说,汇编语言都是十分重要的基本工具。因此,高职教育中计算机及其相关专业开设“汇编语言程序设计”课程是非常必要的。

2课程改革势在必行

目前许多高职院校尤其是计算机专业的教学模式,大多是本科计算机专业的“压缩版”,在制定教学计划和大纲时,以名校相应专业的教学大纲作为自己的大纲,以名校选用的教材作为自己开展教学的教材,就如“汇编语言程序设计”这门课的教材,很多学校仍然采用清华大学出版社出版的《IBM-PC汇编语言程序设计》。这种教学模式尽管有其先进和优秀之处,但并不适合高职教育。而另一方面,汇编语言本身固有的复杂性,使学生理解起来比较困难。这体现在以下几个方面:

1) 由于汇编语言与硬件联系紧密,学生一般是在还没有学习过相关硬件课程的情况下就开始学习汇编语言的,因此初学时不易理解,容易造成厌学情绪。

2) 汇编语言的内容丰富,需要记忆的内容很多,学生在学习一段时间后容易遗忘,从而造成跟不上课程的进度而放弃的现象。

3) 由于学习高级语言后产生的思维模式,使得学生在编制汇编语言程序时易出现一些语法或逻辑上的错误。

4) 在学习汇编语言的过程中,由于课程的特点,学生不能够及时上机实现,造成学生感到课程抽象,很难理解,甚至觉得所学的知识无用,从而产生厌学情绪。

以上归纳的几点,是我们在教学实践中经常遇到的现象,要解决这些问题除了要改革教学方法以外,还要从学科特点和学生的实际出发,改革课程设置,完善课程的前后衔接,合理安排课程开设的次序等。因此,如何改革汇编语言课程以提高其教学效果和教学质量,使它跟上计算机技术的发展,是我们当前亟待解决的问题,而不是简单地取消这门课。

为了使学生系统而全面地掌握汇编语言的编程方法,把握本课程的重点,消化难点,我们用实验的方法对“汇编语言程序设计”这门课程的教学方法进行了改革,取得了一定的成绩。

3行之有效的改革尝试

在认清汇编语言的重要作用和明确其教学改革的紧迫性后,我们制定了改进的教学大纲,并据此编写了相应的实验教材讲义,开始了“升级”汇编语言教学的改革尝试。

3.1教学手段的改革

“汇编语言程序设计”课程一向都有上机实验的教学要求,但教学主体是课堂教学,无论是实验设计还是实验强度都带有强烈的“验证性”色彩。而高职院校的培养对象区别于普通高等学校学生的鲜明特点是:思想活跃、智商与情商皆高、活动能力强,但普遍存在的问题主要是学习自觉性不高、单纯凭兴趣学习的观点重、刻苦精神差等。因此,如果上课基本不听,则验证性实验的基础就不存在,实际教学效果也可想而知。所以对于这样的学生群体单凭课堂教学和一般作业,要真正领会汇编语言程序设计课程所介绍的概念、原理、方法和技巧等,是很困难的。经验表明,学习并真正体会和掌握汇编语言程序设计的最好方式是对它进行充分的实践。把实验作为学习汇编语言程序设计的主导方法,为学生提供了一个掌握汇编语言程序设计全新的学习方法,可以由此来体验汇编语言程序设计的知识及其应用技巧。当然,通过实验,也一定能够很好地提高学生汇编语言程序设计能力。

区别于传统实验,我们的理想是,用实验、实践的方法来改革理论教学方法。所以我们把课堂搬到了实验室,所有的课程都在实验室完成,让学生在实践中激发对相关理论的兴趣,再用提高了的理论水平来指导新的实验和实践活动。而我们在教学中采用“先做后说”的方法,把根据学科理论知识精心设计的实验实践环节与学科理论教学相融合,解决学生的认知困难,取得了很好的教学效果。

3.2教学内容的改革

我们在取舍教学内容时,体现了“浅、广、新”的特点。其中,“浅”体现在重点介绍基本概念、原理和方法,而没有过多地详述深入和细节内容;“广”体现在比较全面地介绍了指令系统和汇编语言所涉及的内容,形成比较完整的知识体系;而“新”更是我们教学改革的重点,介绍了简化段定义程序格式、32位指令及编程、混合编程等。根据当前国内教学实际,我们仍然以16位8086CPU指令系统和基本汇编语言知识和程序结构作为基本的、重点的内容;而将新增内容作为独立章节引出。采用微软的最新版本汇编程序MASM 6.11,但主体内容仍然适合MASM 5.0版本。教学内容中,舍弃了一些过时的应用技术,而引入了一些实用的汇编语言程序设计方法,例如开发大型程序需要的模块化方法、与C/C++语言的混合编程技术(尤其是汇编语言与Visual C++ 5.0/6.0的混合编程,非常受学生的欢迎)、新增的高级语言特性伪指令等。

新编的实验教材包括7个方面共20个实验。全部实验结合目前广泛使用的PC机Intel 80x86 CPU来开展教学,目的是通过一系列使用80x86和Windows环境下32位汇编语言的实验练习,把汇编语言程序设计的概念和理论知识融入到实践当中,从而加深对汇编语言程序设计的认识和理解。实验练习几乎覆盖了汇编语言程序设计教学的各个方面,内容涉及汇编语言编程基础、构建汇编语言编程环境、汇编语言程序设计、输入输出与中断、Win32汇编语言程序设计及汇编语言与C/C++的混合编程等。

3.3考核方法的改革

为了保证教学效果,必须进行考核。传统的汇编语言教学的考核方法多为笔试,再参考平时上机的表现,这种考核方法不能体现学生的真实水平。改革后的考核手段多样化,由平时作业、实验、论文、课程设计、阶段性练习和期中、期末考试等多种环节组成,新编的实验教材每个实验后面都有学生自测和教师评价栏目,并且得到了切实认真地执行,这样极大地改变了读书为了考试,只有考试前才读书,甚至连考试前都不读书的状况。

4实验教学中应重视教材建设

教育的一个重要原则是“因材施教”,高职教育对人才的培养,应该体现到教材建设上。教材建设不仅要做好减法――适当地降低理论要求,也要做好加法――增加探究性实验并在实践环节中有突破性的创新。要根据学生求知欲望强的特点重视扩大学生的知识面,要利用学生动手能力强的特点来提高学生的实践能力、创新能力和就业竞争能力,努力形成一个“什么都学过什么都会点”的积极局面。

教学内容要有可操作性、趣味性和适当难度。可操作性保证学生都能完成作业、实验、设计而促进学生学习信心的建立,在一定程度上减少学生抄袭的理由,克服作业、实验、论文普遍抄袭的弊病;趣味性体现“寓教于乐”以提高学生完成作业、实验、论文的积极性;适当难度有助于激发优秀学生进一步钻研的斗志。

实践证明,“汇编语言程序设计”课程的实验教学改革,取得了明显的效果,也受到了学生的普遍欢迎,通过教学改革,学生提高了学习兴趣,由被动学习变为主动学习,为后续课程的学习打下了坚实的基础。

笔者在“汇编语言程序设计”课程实验教学中所做的改革尝试,目的是为了“抛砖引玉”,试图引起更多的老师产生共鸣而繁荣计算机实验教学。

参考文献

[1] 周苏,金海溶. 汇编语言程序设计实验教程[M]. 北京:科学出版社.

[2] 李立冬,朱晓鸥. 微机原理与汇编语言基础[M]. 北京:高等教育出版社.

汇编语言程序设计范文第3篇

关键词:程序设计;习题课;实验内容改革;课堂教学

社会竞争日益激烈,快速变化的社会环境对人才的综合素质提出更高要求,强调适应能力和设计应用能力的提高。为了提升我国高等教育的水平,尽快与国际高等教育接轨,近年来国家加大了对教育科研的投入,加强对高等教育的管理监督,强调对学生动手能力和创新能力的培养[1]。计算机作为现代工作生活必不可少的工具,人们的创新思想和设计理念都需要借助计算机来实现,各个专业的学生都需要具备一定的程序设计能力,因此大多数理工科专业的学生在整个本科学习过程中会选修两门以上程序设计方面的课程。如何合理地安排课程和实验内容,提高学生的程序设计能力,对培养高素质的综合人才具有重要意义。目前大学课程的改革偏重于课程内容以及课程设置方面的改革,而对教学实施改革的力度还不够[2]。

1程序设计能力的培养

程序设计能力的培养,首先是培养学生的设计能力,如何分析问题,提出解决方案;如何表达自己的设计思想,进而完善设计思路。设计能力的培养与具体的程序实现没有太大关系,然而却是程序设计的基础。因此,程序设计能力应该由两大部分组成:

第一部分,也是基础部分,分析问题,表达并细化解决思路的能力。这一部分与课程内容的联系较为松散,却是能力培养的基础。

第二部分,是与课程密切相关的编程实现和调试程序的能力。学生用课程中所学的某种编程语言,例如汇编语言或C语言,实现自己的设计思想,并实际动手上机,调试运行程序,解决具体问题。

目前课程内容设置以及教师的授课均偏重于第二部分,课堂上多讲授具体指令的功能及应用,大多数例题程序只有十多条,至多几十条指令,并且教师在课堂授课时大多直接给出正确的程序,而不是向学生演示分析问题、设计流程、编写程序、最后调试修改程序的整个程序设计过程。其结果就是,面对程序设计题目时,学生大多直接开始编写程序,而不是整理设计思路。盲目编写的程序往往逻辑混乱,缺乏调试经验的学生无法调试得到正确结果,打击了学生学习的自信心和积极性。因此在课堂教学活动中,应该强化对学生分析设计能力的培养,通过例题和课堂问答,详细演示整个分析、修改,最后完成流程设计的过程,不要直接给出答案。大多情况下,引导学生完成的流程与例题的答案有所不同,分析两者,改变学生始终希望有标准答案的习惯。有了流程后,引导学生用所学指令编写程序,利用多媒体教学手段,向学生演示整个调试修改程序的过程,强调分析问题、整理设计流程的重要性,改变学生忽略流程设计,直接编写程序的“恶习”。

基金项目:重庆市高等教育教学改革研究项目(0634170);重庆大学教学改革项目(教200617)。

作者简介:胡青(1975-),女,重庆人,讲师,硕士,研究方向为模式识别和智能系统。

实际应用中,人们分析解决问题时,多采用从大到小,从上到下逐渐细化的方法。然而在教学过程中,学生很难接受这种方法,面对一个稍微复杂的具体问题时,学生大多无从下手,不知道如何开始分析。“汇编语言程序设计”课程在整个本科教育体系中属于基础教育,开设时间较早,大多开设于大学二年级,这也就意味着,本课程主要面向低年级的,独立思考能力相对较差的学生。这类学生可以解决具体的小问题,对于稍微大一点的问题,就不知道如何进行分析。针对这种情况,培养学生思维分析能力时,适宜采取从小到大的方法,逐步引导学生适应分析方法,示例最好选择学生熟悉的事务,如学生成绩管理等。从一个具体的小功能出发,如统计某高考学生的总分,配合课程进度,逐步添加功能。例如学习分支结构及相应指令后,就可以统计某个学生不及格的课程门数,到课程结束时可以完成一个具有基本功能的学生成绩管理系统。最后再引导学生用从大到小,从上到下的方法分析设计学生成绩管理系统的功能,使学生了解熟悉这种分析方法。

第二部分程序设计能力的培养,要使学生适应计算机的“思维”方法。计算机中使用二进制,数据的储存、运算、传输都采用二进制。这就需要教师耐心引导,通过大量的例子和演示,使学生能够切换到计算机的“思维”方法,而不是继续停留在传统的纸笔方式。贯穿整个程序设计的是数据流,从哪里得到原始数据,对这个数据做何种处理,结果存放到哪里。调试验证程序的过程就是修改待处理数据,观察数据处理的结果是否正确,修改指令直到结果正确的过程。与其他非计算机类的课程相比,“汇编语言程序设计”课程有其特殊性,程序设计是一个调试修改错误,最终得到“正确”程序的过程,而其他非计算机类的大多数课程都要求一次得到正确结果,不允许出现错误,这就导致学生下意识追求直接写出“正确”程序,而不是调试程序。教材上的例题以及教师授课时都直接给出最终的程序,省略中间的调试修改过程,在一定程度上也加深了学生的这种倾向,刚接触程序设计的学生往往有重指令、轻数据、忽略调试的倾向。因此充分利用多媒体手段,在课堂上引导学生动手编程,演示调试修改过程,通过实际的例题说明观察数据,调试修改程序的方法,对培养学生调试修改程序的意识和能力是及其必要和有效的。

2教学及实验改革的实践

2.1增设习题课

“汇编程序设计”课程是实践性很强的课程,都配有一定的实验课程,教师对实验课的重要性已有了足够的认识,然而强调实验课程对学生动手能力的培养[3],在一定程度上忽略了课堂教学对学生“动脑”能力的锻炼。课堂教学不能局限于程序指令或语法规则的讲授,固定不变的“静态”内容更多需要学生记忆,而不是理解和应用。理论教学活动以教师为主体,而习题课应以学生为主,教师起辅助引导作用,习题课侧重于“动态”思维能力的培养。

例如任何一本程序设计入门的教材都将程序设计分成了3种基本结构,即顺序结构、分支结构和循环结构,掌握这3种结构的设计调试是整个程序设计的基础。介绍相关指令和程序结构后,在习题课上,通过具体的例子,引导学生分析问题,提出解决问题的流程,使用所学的指令和结构编程实现。利用多媒体手段,演示程序的调试修改过程,设计调试数据,调试学生编写的程序,引导学生自己发现解决错误,整个过程中注意与学生的互动。多个简单的例子组合起来就形成了一个稍微复杂的问题,通过前面分步的分析,学生对这个问题已经熟悉了解,不会产生畏难情绪,之后再通过一个类似的问题,引导学生自行分析实现一个稍具规模的程序,可以有效地增强学生的自信心。习题课中要注意黑板与多媒体手段的结合,强调以学生为主体,教师引导提示。通过习题课使学生对如何分析设计调试程序有了直观认识后,再经过实验环节,加深学生的理解和应用,最终达到培养学生能力的目的。

2.2实验内容的改革

实验环节作为理论教学的补充,一直处于辅助地位,一般针对理论教学的章节安排设置实验内容,而理论教学中各个章节的知识点都是相对独立的,这就直接导致实验内容相互间联系松散,甚至各自独立。根据各章节的知识点安排实验内容,每次实验都只要求学生编写一小段程序,锻炼检查学生对具体知识点的掌握,前后实验之间联系较为松散,到课程结束时,学生编写过多个实验程序,但每个程序都只有几十行代码,很难将各个知识点融会贯通,灵活运用,更加无法体会模块化设计的必要性和设计思想。因此设置实验内容时,应该加强实验间的联系,每次实验都给出需要综合应用所学知识点的题目,随着课程的进展,实验内容也从简单到复杂,到课程结束时,学生应该能够进行一定规模的程序设计。表1列出了本课程的综合应用实验题目,共分7次实验,每次实验4学时,每次实验均布置1~2道针对该次实验知识点的一般应用题,外加综合应用前面所学知识的综合应用题。这样的实验设置可以帮助学生融会贯通所学知识,并能有效地改变学生忽略平时学习,期末集中突击的现象。

表1 “汇编语言程序设计”课程综合实验设置

实验名称综合实验题目

实验1简单程序实验编程实现下列无符号数运算,结果放在变量X中,X=(84÷6+5)*7-100

实验2分支程序实验无符号字节型变量X取值范围为[0,200],编程实现如下函数f(X),结果存放在变量Y中。

f(X)= X/20≤X≤50

(X÷6+10)*7-1050

5*X 100

实验3循环程序实验无符号字节型变量X取值范围为[0,200],编程实现如下函数f(X),结果存放在变量Y中。

f(X)= 0+1+2+…+X0≤X≤50

(X÷6+10)*7-1050

5*X 100

实验4子程序实验编写一个子程序实现实验3中综合题的函数功能

实验5DOS功能调用实验从键盘输入X的值,并将f(X)结果显示在屏幕上

实验6图形功能实验在屏幕上画出f(X)函数的图形

实验7文件输入输出实验从键盘输入X的值,共输入10次,将f(X)的结果显示在屏幕上,并且将X和f(X)的值写入文本文件OUT.TXT

2.3实验过程管理的改革

同理论课相比,实验课的管理相对要松散一些。实验课中学生迟到、早退、旷课、代人签到等现象屡见不鲜。近年来我们加强了对实验环节的管理和监督,规范实验报告的要求,要求教师批改每份报告,并给出评分等级。然而在实际执行过程中发现,学生抄袭报告现象较为严重,不少学生在实验前并没有完成预习工作。由于批改工作量较大,一个教师要批改几十甚至上百学生的实验报告,不少教师采取“粗放式”的批改办法,实验报告制度在当前情况下形式大于实效。

计算机类课程的实验有其特殊性,学生更容易复制抄袭,并且教师很难在短时间内通过阅读报告检查出程序的错误,发现抄袭报告的学生,也就很难合理公平地评定出实验成绩,这在一定程度上打击了学生独立完成实验的积极性。实验成绩的评定既要重视实验结果,更要重视实验过程[4],只有建立相应的管理机制杜绝抄袭现象,才能促使学生踏踏实实地完成平时的实验,进而达到锻炼培养学生动手能力的目的。每次实验都布置具体的实验任务,设定截止日期,要求学生在截止日期前将自己编写的程序通过电子邮件发送给指导教师。教师直接运行程序,检查学生实验的完成情况,可以有效地提高批改速度和正确率,再利用计算机软件比较学生提交的程序,相似度达到一定程度就可判定为抄袭,对于认定为相互抄袭的学生,该次实验均判定为不合格,这样既可以减轻教师批改报告的工作量,也可以较为客观准确地评定出学生的实验情况,对改变当前抄袭报告的现象能起到积极作用。

通过实际的教学活动发现,习题课上学生注意力比较集中,大部分同学都能跟随教师的指导积极参与。同以往相比,上过习题课后,实验课中提问的学生人数明显增加,不少学生询问如何调试,而不是直接请求教师帮助解决问题。采用上述措施后,抄袭实验报告的现象依然存在,但人数有所下降。说明上述改革措施,对培养学生综合应用能力和调动学生的学习主动性起到了积极作用。

3结束语

随着计算机技术的快速发展,计算机已经深入人们生产、工作、生活的各个方面,良好的计算机应用和设计能力是高素质人才应该具备的基本能力。本文针对“汇编语言程序设计”课程的特点,对该课程的教学方法、内容和管理模式进行了改革实践,这些措施对提高学生程序设计能力起到了积极作用。希望课程建设经验能够对其他相似课程的改革起到参考借鉴作用。

参考文献:

[1] 教育部. 国家教育事业发展“十一五”规划纲要[Z]. 2008.

[2] 周建平. 大学课程改革的“深度”缺失与觉醒[J]. 江苏高教,2009(1):71-73.

[3] 李丽滨,卢宇. 高校计算机实验教学改革的思考与探索[J]. 辽宁教育研究,2002(9):52-53.

[4] 刘建英. 计算机硬件开发性实验教学之我见[J]. 高等理科教育,2007(4):105-107.

Reform in Teaching and Experiments of Course “Assembly Language Program Desgin”

HU Qing, YOU Ji-yuan, SHI Xin

(Department of Information Engineering and Automation, College of Automation, Chongqing University, Chongqing400030, China)

汇编语言程序设计范文第4篇

关键词:整合;  微机原理与接口技术;  汇编语言

1.前 言

《微型计算机原理及应用》与《汇编语言程序设计》是计算机应用专业的两门较重要的基础课程,是软件专业的必修专业课。它是后继计算机语言课、操作系统、数据库原理等课程的基础,也是教学难度和学习难度较大的两门课程。原来的两门课程虽侧重点不同,但有些内容也有重复现象,况且两者有密切联系,如果分开开设,则不能使学生对计算机的组成框架及系统语言有总体的认识,教学效果也不好。这对本来就难学的《汇编语言》与《微机原理与接口技术》的老师和学生无疑都是一个挑战。面对这种困难, 结合着我们对学生的接受能力以及认知规律的了解, 我们尝试将这两门课程整合为一门《汇编语言与接口技术》, 将它们放在一起可减少两门课程的为数不少的重复内容, 从整体上看学生的课时减少了, 可是对这两门课的学习时间却没有减少, 使教学更加方便, 而且学生的学习效果也会有所提高。我们从以下几方面论述了这项课程改革的必要性。

1.1我校课时压缩迫使课程改革.

[1]好多高校都在加大课程整合的力度, 减少课程总学分, 拓宽基础, 加强通识教育。在这种趋势下,《汇编语言程序设计》的课时不断被压缩。课时减少后, 教师既要介绍复杂的指令系统, 又要介绍程序结构,  难免会顾此失彼。通常学生学习结束后, 还不明白这门语言的用途, 并且容易产生厌学情绪, 对后续课程《微机原理与接口技术》产生畏惧心理。从内容上看《汇编语言程序设计》和《微机原理与接口技术》都对计算机的组成与工作原理、汇编语言源程序的基本构成以及与外部设备的接口问题进行了讲述, 有很多相连之处。因此, 将这两门课程合并, 优化两课内容, 有利于整个教学计划的安排, 也有利于教学。

2.合理安排汇编语言与微机原理与接口技术的课程内容.

《微型计算机原理及应用》与《汇编语言程序设计》有好多知识点是重叠的,《汇编语言程序设计》中的内容主要是微处理器的结构、8086指令系统和汇编语言程序设计,《微型计算机原理及应用》把这些知识点都包含进去。 (如表 1 所示)

[2]将两门课程合二为一势必要对教学内容进行压缩, 那么选择什么样的教学内容较为合适呢? 我们采用的教材是《微机原理、汇编语言与接口技术》该书通过80286、80386、80486、Pentium和Itanium(安腾)微处理器和IBM PC机的硬件和软件分析以及总线技术,阐明微型计算机的组成原理以存储器、输入输出接口芯片与微型计算机的接口方法。同时还包括汇编语言程序设计和接口技术两部分内容。汇编语言程序设计是微机应用系统的系统软件和应用软件的设计基础,接口技术是微机应用系统硬件组成的基础。该书内容较全面,实例丰富。学习微型计算机的汇编语言程序设计和接口技术必须理论联系实际。该书在介绍基本概念的同时,列举了大量典型而有意义的例题和习题。更加注重实验环节。

[3]这门课程实践环节尤为重要,实验是实践环节的一个重要组成部分。可以提前几周把实验题目布置下去,让学生充分准备。一般我们对实验的要求是:硬件原理图、流程图、调试成功的汇编语言程序。从我们实验课堂来看学生都很重视,而且大家对实验的兴趣也非常浓厚,都能积极地参与到实验中去。通过实验的实战练兵,可以进一步巩固所学理论知识,使学生对微机原理系统有了系统的认识,通过实验,使学生对这门课从理论到实践跨出了关键性的一步。这是一个升华的过程,是一个质的飞跃,为学生今后的毕业设计乃至将来的工作打下了良好的基础。

3.考试方法.

按照教改计划确定的培养目标和对学生在知识与能力等方面的要求,教师在给学生期末总成绩时,本着重平时、轻期末,既注重课堂教学又重视实践教学的原则进行考核。考核办法:平时成绩+期末试卷成绩=总成绩。平时成绩:作业+课堂表现+实验(20分),共计30分;期末试卷成绩:70分,加大平时的考核力度,作业和课堂表现可以侧重于知识的掌握,实验和期末成绩既有知识的掌握、知识的运用、又有综合性和创造性。这种方式,可以促进学生时时注重学习,有利于学风和考风的好转,可以杜绝仅凭期末一次考试就一锤定音的方式。

4.结束语.

通过计算机专业课程的整合,开拓了整体教学的新视野,同时也给我们许多新的启示,给教学工作增添了活力。课程优化是我们教改工作的具体体现,今后,我们还需进一步研究与探讨课程整合的新思路,以培养出更优秀人才。

                        

参考文献:

[1]许颖梅. 对汇编语言和微机原理课程整合的探讨[J]. 福建电脑,2007.01.

汇编语言程序设计范文第5篇

引言

“汇编语言与微机原理”是计算机科学与技术专业的必修基础课程。该课程融合了汇编语言程序设计和微机原理与接口技术两门课程的内容,要求学生重点掌握汇编语言程序设计的方法和微型计算机系统各个部件的工作原理。掌握汇编语言是掌握微机原理的基础,因为实现和验证微机系统各个部件的工作过程需要用到汇编语言,并且更高层次的综合系统设计也离不开汇编语言。

汇编语言与微机原理课程中,汇编语言子程序设计这部分内容的知识掌握起到承上启下的作用。其“承上”的作用体现在:作为一个独立的模块,子程序设计涵盖之前所学的汇编语言的指令系统、伪指令、数据类型及三种基本控制结构(顺序结构、分支结构和循环结构)。其“启下”的作用体现在:①后续接口芯片的功能应用基本上都是以子程序的形式实现;②中断系统中的中断服务程序就是一种子程序,中断系统是微机系统中非常重要的组成部分,可以说不理解中断系统就不能理解计算机的工作原理[1],而掌握子程序设计是本文由收集整理理解和应用中断系统的基础之一;③子程序设计是开发大型程序的基础,对于培养编程能力十分重要[1]。因此,汇编语言子程序设计这部分内容无论在教学上还是在实验中都必须给予足够的重视。但目前鲜有文献涉及这方面的问题,本文针对目前汇编语言与微机原理课程中汇编语言子程序实验设计中普遍存在的问题给出相应的对策,并给出一个实验设计实例。

1 实验设计存在的问题及对策

⑴ 实验学时安排不够。据粗略调查,大多数院校汇编语言与微机原理课程的实验学时为18个学时[1],有一些院校还附加一个课程设计。对于这18个实验学时普遍的分配方式如表1所示。

表1 汇编语言与微机原理实验项目及学时安排表

[类别\&项目\&学时\&汇编语言程序设计部分

(12学时)\&汇编语言上机过程及debug的使用\&2\&dos系统功能调用\&2\&三种基本程序结构\&6\&子程序\&2\&接口芯片部分

(6学时)\&可编程中断控制器8259\&2\&并行接口芯片8255\&2\&可编程定时/计数器8253\&2\&]

从表1可以看出,子程序实验仅安排了2个学时,学时太少,难以取得良好的训练效果,可以考虑将实验“dos系统功能调用”融合到“三种基本程序结构”中,腾出2个学时给子程序实验,有助于学生深刻全面的理解子程序的相关知识。

⑵ 实验内容“片面”。对于汇编语言子程序实验,大多数院校的实验内容只涉及到两方面的知识:①子程序的类型(近子程序和远子程序);②三种参数传递方式(寄存器传递、内存单元传递、堆栈传递)[2]。这并不全面,与子程序密切相关的知识应该还包含宏和中断服务程序,所以有必要在实验中安排相应的内容让学生理解子程序与宏的区别,以及如何把一个子程序“注册”为中断服务程序,然后通过软中断指令(int n)调用该程序的过程,这样做有助于后面对中断系统的学习。中断是学习汇编语言的重点、难点部分,能否真正掌握汇编语言对中断的理解和掌握至关重要,中断也是汇编语言的魅力所在[3]。

2 实验设计的一个实例

针对前面提到的问题,在此给出一个汇编语言子程序实验设计实例,主要内容如下:

⑴ 实验学时:4学时。

⑵ 实验目的:

① 掌握子程序的编写及调用方法;

② 掌握近子程序和远子程序的区别;

③ 掌握三种参数传递方式的差别;

④ 掌握子程序与宏的区别;

⑤ 掌握编写中断服务程序的方法以及通过软中断指令。

⑶ 实验内容:

① 编写一个近子程序实现将一个字节的数据以十六进制的形式输出,采用寄存器参数传递方式;

② 编写一个远子程序,功能与①相同,采用堆栈参数传递方式;

③ 变量str中存有一个以’$’作为结束符的字符串,编写一个子程序实现将str中所有的大写字母全部改为小写字母,采用内存单元参数传递方式;

④ 用宏实现①中的功能;

⑤ 编写一中断服务程序实现①中功能。提示:利用dos系统功能调用的35h号功能和25h号功能提取和设置中断向量,具体如表2所示。

表2 dos系统功能调用的35h号和25h号功能说明[4]

[功能号\&功能\&入口参数\&出口参数\&25h\&设置中断向量\&ds:dx=所设置中断向量的段基址:偏移量al=欲设置中断向量所对应的中断号\&无\&35h\&取中断向量\&al=欲取中断向量所对应的中断类型号\&es:bx=取得的中断向量的段基址:偏移量\&]

该实验设计实例特点鲜明,首先实验所要求完成的功能都是汇编语言中简单而又常用的功能,这一方面可以使学生不必花太多功夫在算法实现上,而把主要精力集中在子程序本身的语法上,另一方面实验中所完成的程序在后续的实验中可以直接调用,减轻了学生在后续实验中的负担,同时加强了各实验之间的有机联系。我们的实验内容涵盖了与子程序相关的各种知识,特别是子程序与中断服务程序的关系,这也是本实验设计的创新之处。

汇编语言程序设计范文第6篇

论文摘要:本文首先分析了当前汇编语言的教学现状及实验环节的重要作用,然后阐述了汇编语言实验教学的设计思路,给出了较详细具体的实验内容安排。

1 汇编语言及其教学现状

汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是唯一能够利用计算机所有硬件特性并能直接控制硬件的语言。对程序的空间和时间要求很高的场合,汇编语言的应用是必不可少的,至于很多需要直接控制硬件的操作场合则更是非用汇编语言不可。用汇编语言编写的程序的执行速度通常比高级语言(如C/C++)快很多,甚至成百上千倍。相应的,汇编语言的缺点就是使用者需要对硬件有更深入的了解,编程效率不高。

“汇编语言程序设计”课程的任务是为“计算机组成原理”、“接口”、“操作系统”等后继课程提供必要的基础知识,它对训练学生掌握与硬件相关的程序设计技术、从事自主版权计算机芯片和系统软件的开发、信息安全、过程控制等方面,均有十分重要的作用。无论计算机技术如何发展,机器语言、汇编语言的计算机程序设计语言体系仍然是计算机技术的基础,也是计算机技术的重要知识体系之一。不能了解和熟悉汇编语言,不仅将导致学生知识结构的缺乏,也可能导致学生认知水平的降低,开发手段的贫乏。

然而,初学者往往感到它难学、难懂、抽象,更难以掌握。教师开展教学困难,学生学习和掌握困难,教学效果差,以致会影响后继课程的学习。

2 实验环节在汇编语言教学中的作用

在计算机相关专业的教学领域,实验和实训教学是培养大学生学习能力、实践能力、思考能力、创新能力的重要环节和有效途径。显然,学生在学习汇编语言这门课程中产生的困难,首先来自于他们对所学知识缺乏必要的感性认识,没有充分的实验。

计算机在很多方面不同于其他学科,尤其是与硬件有密切关系的课程。由于汇编语言课程具有硬件操作的密切相关性,实验环节在整个教学活动中就占据了举足轻重的地位.汇编语言的实验对培养学生的动手能力和学习兴趣,提高学生阅读、编辑和调试程序的能力,有着不可替代的重要作用。学生通过实验课深入了解CPU、存储器、接口及外部设备的工作特性,对数据在计算机中的表达和传送产生感性认识。在实验中对汇编语言达到更好的理解、掌握,从感性认识上升到理论认识。

3 实验教学的设计思路

由于各高校办学类型不同、培养目标不同、所在地及周边地区社会需求不同,计算机及其相关专业的教学内容也应有所不同。对于非研究型院校的相关专业,对“汇编语言”的教学可以集中在适度的理论知识和充分的操作实践上。“适度”体现在理论课的讲授中内容不必展开太宽,“充分”体现在实验课的安排上要充分。

尽管学生学习汇编语言有着不少困难,但“兴趣是最好的老师”,要激发学生的学习兴趣。有了兴趣,他就能积极地思考,大胆地探索,变被动接受为主动思考。因此,汇编语言的实验教学总的思路就是要以激发学生兴趣为主线,尽量设计趣味性的实验内容,充分发挥学生的积极性和创造性。

很多学生不重视实验课的主要原因之一是认为实验课的好坏对学习成绩影响不大,目前多数院校的学习成绩评定,仅以期末一张考试卷的好坏而定,这使很多学生重理论、轻实验。因此,应认真记载每个学生在实验课上的实际操作能力和编程能力,并以优、良、中、差进行仔细考核,开学初就明确告诉学生这种考核制度的存在,使之开始就没有怠慢的情绪,从思想上重视实验。

实验教学的安排按照由浅入深、循序渐进的方式进行,合理选择实验内容,尽量避免过多过杂,内容选择注意举一反三,即以启发思维为主,对设计型、综合型实验只要能完成预定实验目标,不苛求实验过程与步骤的统一。实验所演算的汇编语言程序应具备好的观测效果,能直接体现计算机的操作特点,教师演示和学生实践穿行,并且注意重复对比,让学生发现自己操作的失误,加深对汇编语言操作规律的理解。

实验教师在实验中主要起到引导的作用,实验前的讲解以重点、难点和注意事项为主,不应面面俱到,可以先给出一些问题,让学生带着问题去做、去观察、去思考。实验中,则应以学生为主体,让每个同学通过操作行为感受计算机的物理过程,教师将理论揉在实例中的具体操作中,学生会感到数据是有形的,CPU的操作是物质化的。经过反复练习,学生不但学到了基础知识,而且提高了综合分析和理解能力。实验中,还要鼓励学生自己修改实验,有时学生对自己编的程序没有把握,一旦上机实验后就清楚了。他在计算机上修改程序,观察修改后的结果,实际上就是了解改动部分在整个程序中所起的作用,这种作用的认识和理解不是通过说教得来的,而是切身经历的、看到的,学生对它的理解、记忆就要深刻得多。

4 实验内容的具体安排

具体的实验内容应覆盖汇编语言教学中的各重要方面,内容涉及debug、汇编语言编程环境、汇编语言程序设计、输入输出与中断、Win32汇编、汇编语言与C语言的混合编程等。类型分为选作和必做。每个实验分属验证型、设计型或综合型。

4.1 稳扎稳打练好基本功:debug和编程环境

“万事开头难”。对汇编语言的学习,能否开好头很关键,很多学生就是因为开始没学好,感觉跟不上,就不再认真地学习了,有的甚至放弃了。其实汇编语言实验开始的基础部分是比较简单的,想掌握它是没什么大问题的。

汇编语言源程序通常以ASCII文本文件的形式保存,通过汇编链接形成一个EXE可执行文件。对EXE文件的调试构成了实验课的主体内容,贯穿始终,而EXE文件的调试通常是通过debug实现的。学生通过使用debug可以观察到存储器的数据存储情况,也可以随时观察到CPU中寄存器的数据变化。debug的反汇编命令是理解汇编语言的助记符形态和机器指令的01码形态的对应关系的重要工具,学生可以通过它深入体会汇编语言中指令的构成及各部分含义。debug提供的单步执行命令是另一个重要工具,利用t单步执行一条指令,及时观察数据缓冲区的变化情况,这也是进行调试、发现程序错误的最直接有效的方法。

debug的实验部分以使用a、t、r、d、u等命令为主反复进行指令练习。学生通过使用debug观察到指令执行前后机器中数据的变化,对深入理解计算机的工作原理、汇编指令的作用是直接的和不可替代的。学生不再感到机器是复杂的,指令是抽象的。

接下来安排的实验则是对汇编语言编程环境的熟悉和掌握,这也是重要的一环。对编程环境不熟悉,不仅会影响学习汇编语言的效率,还会引起一些不必要的错误发生。因此可以考虑多给几个简单完整的程序,让学生多去 使用编程环境,熟悉汇编链接过程。实验初,只给一些正确的程序,让学生经过汇编链接可以较容易地形成exe文件并成功执行,看到了正确的结果,学生就有了方向,也就有信心去做下面的实验了。

在熟悉了简单的编译过程之后,接下来可以在原有程序中适当安排一两个错误,让学生观察汇编链接中出现的错误信息,理解这些错误发生的原因,这一点对程序调试是至关重要的,如果看不懂错误信息,就没有办法正确定位错误,也谈不上修正错误了。

以上分析,学习汇编语言伊始,一定要练好基本功,包括对debug的熟练使用,对编程环境的熟悉。这部分实验一定要安排得充分,力求使学生不再对机器望而生畏,不再对汇编指令有抽象难懂的感觉,如果能开好这个头,后继的学习就顺利得多了。

4.2 轻轻松松做改变:汇编语言程序设计

由于学习汇编语言之前,学生通常已经学习过一门程序设计语言,因此这部分实验可安排简单、典型的验证型、设计型实验,以编写程序为主。先要求学生用之前学过的程序设计语言实现,然后再给出汇编语言的实现,通过对比;学生自然可以发现汇编语言与其他程序设计语言的异同。当程序出现错误时,则必须要求学生使用debug进行调试,观察变化,排除错误,加强程序调试能力。

4.3 细心耐心学核心:输入输出与中断

中断是学习汇编语言的重点加难点部分,能否真正掌握汇编语言也在于此,中断也是汇编语言的魅力所在。这部分实验一定要找一些学生感兴趣的、具有明显观测效果的例子,至少安排两个阶段的实验。第一阶段以验证型实验为主,先使学生熟悉中断过程、中断处理程序的框架;第二阶段以设计型实验为主,让学生自己去思考中断过程中发生的事情,中断程序设计的方法。对这部分知识的传授一定要有耐心,对每个程序的讲解要透彻、概念清晰。中断是真正要用的东西,之前学习的内容只是为它做铺垫,不能学好中断,汇编语言这门课的真谛就没有学到。

4.4 兴趣延伸:WIn32汇编、汇编语言与C语言混合编程

很多学生学习汇编语言之初就会问汇编语言用在哪里,很少接触到汇编语言等问题,其实现在汇编语言很少单独使用,而Win32汇编、汇编语言与C语言的混合编程用的比较多,这两部分内容学起来并不难,可当作拓展知识部分,作为自学内容。教师可以找一些实际使用这部分内容的例子,让学生知道汇编语言的用途,使学生不再“学而不用”,“学而不知用”。

汇编语言程序设计范文第7篇

关键词:关键词:汇编语言;教学质量;教学方法

中图分类号:G4    文献标识码:A     文章编号:

    1.引言

    《汇编语言》课程是计算机科学与技术专业及其他相关专业必修的一门专业基础课程,也是《微机原理与接口技术》、《操作系统》等专业课的先修课,此编程语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。在对程序的空间和时间要求很高的情况下,汇编语言也是必不可少的。学好《汇编语言》对于训练学生掌握程序设计方法与技术,从事计算机程序设计和系统软件的开发,在计算机科学与技术、信息安全、计算机控制等多方面,均具有十分重要的作用。因此,《汇编语言》课程在高校课程体系中是非常重要的。如何科学的设置本门课程,让学生有效的了解汇编语言、掌握汇编语言就尤为重要。目前,我校《汇编语言》课程的教学已经取得了一定的效果,但仍存在一些问题,如何进行教学改革,进一步提高《汇编语言》课程的教学质量已成为当前教学改革的核心和焦点之一。

    2.提高《汇编语言》课程教学质量的措施

    2.1让学生充分了解汇编语言

    汇编语言属于一门低级语言,是符号化了的机器语言,学习过程中的枯燥乏味是众所周知的,很多知识需要死记硬背,因此,在讲授本课程之前要让学生充分了解其特点,让学生对《汇编语言》课程产生浓厚的兴趣,为下一步学习做好准备。在授课过程中,很多学生会提出疑问:高级语言这么多,用起来这么方便,为什么我们还要学习这样一门低级语言呢?这就要让学生明确汇编语言的优势,以及所应用的领域,用一些简单易懂的例子进行引导,使学生对汇编语言有所期待,从而喜欢上这门课程。

    2.2 多种教学方法和手段并用

    由于汇编语言的易懂性和易理解性不如高级语言强,所以在授课过程中要采用多元化的教学方法和手段,帮助学生完成对汇编语言知识的记忆和理解。

    1)充分利用多媒体教学的动画功能

    多媒体现在被广泛应用在高校的教学当中,在《汇编语言》课程的授课过程中,可以充分利用多媒体课件的动画功能,比如在MOV AX,2000H 指令中,如果用动画演示2000H传送给AX寄存器,其中20传送给AX的高字节AH部分,而00传送给AX的低字节AL部分,则可以使学生更加直观的理解AX寄存器的使用。再比如讲解PUSHA/POPA指令时,也可以使用动画功能,让学生看到所有寄存器入栈出栈的顺序和过程,我们还可以采用动画演示功能来讲解物理地址的形成过程等。

    2)采用“相似比较”的方法加深记忆

    汇编语言的寻址方式是汇编语言学习的基础,学习起来比较枯燥,而且容易混淆,在讲解过程中,可以采用相似比较的方法来完成教学。比如,8086/8088的7种寻址方式中,可以把立即寻址方式和直接寻址方式进行比较讲解,MOV AX,2000H 和 MOV AX,[2000H]两条指令的源操作数分别是立即寻址和直接寻址,在格式上区别仅一个括号而已,但是含义却大不相同,前者表示指令执行之后AX寄存器的内容为2000H,而后者指令执行后AX寄存器中存储的是偏移地址为2000H所对应的物理地址里的内容;再比如MOV AX, BX 和MOV AX, [BX]两条指令,其源操作数分别是寄存器寻址和寄存器间接寻址,在格式上也是仅仅一个括号,但是实际操作中,前者表示把BX寄存器的内容传送给AX寄存器,后者表示把BX寄存器的内容做偏移地址,并把其对应的物理地址里的内容传送给AX寄存器。类似以上的知识点,都可以采用相似比较的方法来进行讲解,使学生加深记忆,并进行对比学习,避免混淆。

    3)采用比喻的方法加深理解

    在汇编语言授课过程中可以适当采用比喻的方法,让学生对所学知识更快的理解。比如在讲解存储器的知识点时,一个存储器由很多个存储单元构成,可以比喻成一个宾馆由很多房间组成,如果cpu要访问存储单元,必须要知道存储单元地址才能实现,相当于要到宾馆要找人,必须知道所在宾馆的房间号才能找到。这样的讲解学生易懂易理解,可以提高听课效果。再比如在讲解存储器分段时,如何用16位数据来描述20位地址的问题,可以比喻成如何用20个编号来描述100个人,那就是采用分组的方法,把100人分成5组,每一组都有20人构成,这样,就可以实现用20个编号来描述100个人。要想找到某个人,必须要知道此人所在的组,以及此人在组内的编号,即可以映射成物理地址=段地址*16d+偏移地址。采用这种方法让学生形象的理解存储器分段的原因和实现方法,可以有效地提高学习效率。

    2.3调整授课内容

    目前,大多数《汇编语言程序设计》教材都以8086/8088为主对汇编语言进行介绍,且前后顺序基本为先介绍汇编语言的基础知识,比如寻址方式、指令系统等,然后按结构化程序设计的思想介绍汇编语言的编程思路和技巧。在实际授课过程中,我们可以适当调整书本顺序,如果单纯的介绍汇编语言指令,会使学生对指令的理解不深入、不透彻,我们可以把对指令的介绍直接放在程序设计的内容里进行讲解,比如,在循环结构程序设计中介绍LOOP、LOOPZ、LOOPNZ指令,在子程序结构中介绍CALL和RET指令等,让学生把指令和程序联系在一起,体现汇编语言的编程特点。

    2.4理论和实践相结合

    任何一门语言在学习的过程中都需要把理论和实践有机的结合在一起,汇编语言也不例外。在授课过程中,要重视实践环节,在上机调试程序之前,先给学生适当补充dos和debug的相关知识,在实验课上适当安排综合性实验和设计性实验,以提高学生的实践能力和创新意识。比如让学生分组选作发声程序、进制转换程序、文件加密解密程序等。

    2.5合理利用网络资源

    为了使学生更好的学好汇编语言这门课程,我们可以建设汇编语言课程的学习网站,学生可以通过网络资源自学相关知识,学生和教师也可以通过网络进行有效的沟通和交流,使学生在学习中遇到的困难能够及时解决。

    3.结语

   《汇编语言》课程的重要性不言而喻,如何讲授好这门课程,如何让学生真正的掌握汇编语言这门编程 语言,是我们每一位讲授本课程的教师应该思考的问题,我们要不断探索新的教学方法和手段,不断总结教学经验,使《汇编语言》课程的讲授能够适应新的发展和新的变化。

参考文献:

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

[2]王现红.计算机专业课堂教学方法的探究与实践[J].决策探索,2010.6

[3]李扬等.汇编语言教学探讨[J].合肥工业大学学报,2008.12

[4]杨建军,陈星.  汇编语言程序设计实验教学的研究与探索[J]. 实验室科学. 2008.04

[5]刘跃华.  以实践教学来增强“汇编语言”的教学效果[J]. 计算机教育. 2008.06

汇编语言程序设计范文第8篇

摘 要:本文对计算机专业学生存在的专业课学习兴趣低、自主学习能力弱以及工程能力不强等问题,进行了分析和思考。结合汇编语言程序设计课程教学的实践体会,探索如何引入工程案例改进教学方法,激发学生专业学习的兴趣,培养学生自主学习能力,逐步提升其工程能力。

关键词:计算机专业;工程案例教学;工程能力;汇编语言程序设计

基金项目:重庆市教委(113014),地方高校计算机及其相关专业工程应用型人才培养模式研究与实践(2009006);重庆理工大学校级项目(2009006),结合工程认证,创建新型的计算机专业教学体系。

作者简介:徐世军,男,教授,硕士生导师,研究方向嵌入式技术;范伟,男,副教授,研究方向为计算机应用与物联网;黄贤英,女,教授,硕士生导师,研究方向计算机应用。

1 背景

计算机科学与应用技术的发展是高新技术的主要标志,如何跟上时代的发展和社会的需求是计算机专业教学所面临的挑战。教育部计算机科学与技术教学指导委员会在2004年的《关于计算机人才需求的调研报告》中指出:计算机专业的学生仍处于应试教育模式中,实践课程少,动手能力不强,导致学生毕业后竞争力不强。随着近年来高校招生规模的扩大,学生综合素质不断下降;有些问题显得更加突出,如:学生普遍学习能力较弱、缺乏学习的热情,部分学生对专业不感兴趣,甚至厌学。

工科毕业生缺乏工程背景、动手能力弱,被认为是当前大学教育的首要“弊病”。在担任计算机专业教学工作之前,本人一直在企业从事工程设计和产品研发工作,这也使我有机会从社会需求和大学教学两个不同的角度去观察和思索一些问题。从社会需求角度去观察大学毕业生,你会发现他们大多存在自主学习能力差、专业知识面窄(甚至除专业书本外一无所知)、动手能力差、思维僵化、方法能力和社会能力严重欠缺等不足。而高校教学的主要方法仍然是传统的以理论知识灌输为核心,力求学生能全面领会和掌握主要知识点。即使谈到教学改革,很多学校的主要办法还是把教学计划排得更满,让学生学得更多、更细。从本质上讲,这仍然是应试教育思维模式的一种延续[4]。

就计算机专业教材而言,多数是原理性、条款式、菜单型论述结构,内容大都比较抽象和枯燥。若课程教学仍沿用以教师为中心、以理论灌输为主、轻学生自主动手参与的传统教学模式,将很不利于激发学生的学习兴趣、调动其主动学习的积极性,当然更不谈不上培养学生的工程能力。

引导其学习兴趣、培养自主学习的能力从而提高教学效果,是教学改革的关键;如何采用更有效的课堂教学的形式,逐步培养其动手能力,也已经成为计算机各门专业课程都必须进行反复思考和不断改进的重要课题。

2 改进思路

究其原因,是我们在教学过程中很少注意去区分和思考“科学研究”和“工程技术”的差异问题。在实际工作中,社会对从事“科学研究”和“工程技术”的人员素质和能力的要求是有很大差别的。科学研究

往往是专注于某个专业并从某个专业领域入手,遵循系统、严密的理论推演,往往是由个人完成的;而工程技术需要的是综合性知识和能力(有的工程甚至是凭一种感悟),一个具体的工程技术问题,大多不是一门专业学科知识所能解决的,需要多学科知识的综合应用。工程的许多条件常常是动态变化的,工程问题的解决更象是一场开卷考试――思路和方法更重要。工程更注重是团队行为(管理和协调),成员的协作精神常常决定了工程的成败。科学要求严谨和一丝不苟,而工程则注重对全局把握(可能会牺牲局部)和利害的权衡取舍[1]。因此,所谓“工程能力”实际上就是对上述“工程技术”素质要求的综合。

“授之以鱼,莫若授之以渔”。我们要清楚地认识到,工程能力的培养仅靠传授科学知识是远远不够的,它更加强调对学生思路和方法的训练,让学生学会学习、学会思考、才能真正解决实际问题。简言之:学生工程素质和能力的培养,就是通过各种具体工程案例教学使学生尽早学会用综合的、全局的、动态的思维方法去发现问题、分析问题和解决问题,全面提高学生的专业能力和社会能力[3]。

3 具体方法

汇编语言程序设计课程的专业性、综合性强,涉及的知识点多,学生普遍反映抽象难懂,不易掌握。因为汇编语言和机器的体系结构结合紧密,使用者必须对计算机组成、硬件控制和指令解释过程有比较清晰的理解和认识,因此学生在学习中容易产生厌烦情绪,对汇编语言的学习热情普遍不高。针对这些特点,笔者注意从以下几个方面入手进行教学形式的改进和尝试。

1) 让学生尽早领会汇编语言的特点及应用领域,明确学习目标、激发学生的学习兴趣。

在第一堂课,向学生播放一组经过精心准备,且学生感兴趣的介绍嵌入式产品功能及应用的视频短片,尽可能向学生展示部分实物的内部结构,并重点说明其控制方法和运行机理。比如:汽车电子部件(AT组件、电喷、电动门窗、防盗报警、辅助转向等),智能仪器、仪表(智能电表、温度调节仪、自动售货机)以及一些智能小家电产品(智能小风扇)等等;还可以找适当的时机给学生介绍一下计算机病毒的工作机理。要让学生明白,在某些特定的领域和场合,汇编语言具有不可替代的地位。在第一堂课上,就明确地提出学习本门课程要达到的目标,特别是学习后可以解决哪些实际工程问题。

通过实例分析让学生体会到汇编语言特点:它是一种最接近计算机核心的语言,可以最大限度地发挥计算机硬件的性能,是一种能够利用计算机的硬件特性直接控制计算机硬件的语言。用汇编语言编写的小程序的速度通常要比高级语言快几倍、几十倍、甚至成百上千倍。同时,提醒学生注意:学习汇编语言的好处――有利于理解软件和硬件的关系,学会如何有效地设计数据结构,能让计算机存储空间更少、处理速度更快,能更有效地提高调试能力。要从思想上改变学生“重软轻硬”的倾向,明确告诉他们,如果想真正地控制自己的程序,只知道源代码级的调试是远远不够的。

2) 在明确学习目标和具体工程应用之后,让学生针对“如何实现这些目标(特别是工程应用问题)”,各自提出自己认为课程中应学习的知识点和方法,最后由教师加以总结和归纳,形成“汇编语言程序设计”课程的基本教学和实验内容。

让学生“带着问题学习、带着问题实验”是培养学生学习兴趣、提高学生工程能力的好办法,只有学生的全身心投入才可能克服被动“填鸭式”教学的种种弊端。

3) 抓住课程特点,使用更直观生动的教学形式让学生更容易理解和掌握。

针对汇编语言和机器体系结构结合紧密、抽象、难于理解的问题,在讲解指令系统时,一定要与CPU功能结构图、存储器结构示意图结合起来,把地址、数据和控制信息的传递过程通过图示进行分解。并且在实验课中,专门设计若干段由各类指令组成的小程序实验,让学生反复使用DEBUG工具演示指令流程,仔细跟踪每条指令运行后各个寄存器和存储器的变化状况,列表并作好记录,让学生自己对指令功能进行理解、分析和总结,这也是训练学生调试程序和发现逻辑错误非常有效的手段。

4) 在指令系统学习完以后,就可以引入完整的工程案例进行教学。通过选取真实具体的工程案例,使学生学会用跨专业、综合的、全局的思维方法去观察问题、分析问题和解决问题。

实际上,要选择一个合适的工程案例是非常困难的,不但要考虑工程项目本身的特点,而且要考虑学生的实际领悟、消化能力。教学案例可取自实际工作中涉及的工程应用实例(变科研工作为教学资源),要强调实用性,兼顾趣味性,这样更能激发学生参与的积极性。教师通过案例分析,将汇编语言程序设计方法和相关专业的知识点恰当地融入案例的分析和演示过程中[2]。

笔者选用了一个工业产品开发项目――“直流无刷电机智能控制系统”的研发全过程作为案例教学的主线,分步骤、分模块地进行讲解和分析。案例教学的重点包括:工程目的,工程项目的主要知识点,具体的实施步骤。同时,在案例中穿插介绍一些编程技巧和设计及调试工作的要点和难点。案例的教学可按以下层次逐步展开。

① 首先介绍项目目的、目标、实施方案和主要知识点。必须让学生深刻地认识到任何一个项目都不是一门专业学科知识所能解决的,需要多学科知识的综合应用,要解决工程问题必须有开放的思维和综合的知识。通过介绍,使学生逐步领会工程项目开发的步骤和基本方法。

② 提供全部汇编语言程序清单,并让学生充分认识和消化一段时间后再进行讲解,使学生建立汇编语言程序语句、结构和形式的总体概念。总体概念的建立,比具体的编程方法和技巧更加重要。

③ 提供全套软件设计的程序流程图,让学生对照程序清单去领悟汇编语言程序设计的基本思路和方法。

④ 在充分消化的基础上,提出若干问题让学生自己在案例中去寻找答案,最后再由老师加以分析和总结。这些问题的提出和解决,就是处理具体工程问题的基本方法和步骤。解决问题的方法有很多,但在具体工程中必须找到最优方案(成本低、可靠性高),如:

如何实现驱动电路发生短路时,系统在10μS以内启动保护(硬件中断方式);

如何确保电机能准确地换相操作(采用定时器中断,定时查询换相标志);

如何用软件准确设置MOS管上下臂的“死区(>300nS)”(采用NOP指令延时);

如何实现主程序和子程序以及子程序之间的参数传递(约定变量――存储器法);

如何用软件设计计数器、定时器(+1/-1、比较和循环指令)。

⑤ 在实验课中,简化一些条件,让学生分组实现一些功能模块:电压/电流处理、温度保护、调速、换相处理的子程序设计,并且,实现这些功能模块的组合。通过分组编程和组合实验,使学生初步体会到工程开发的团队行为,并逐步学会管理和协调。

⑥ 对部分软件进行点评和总结。

5) 另外,针对其他的一些指令应用和编程技巧可选取适当的工程案例进行专项教学和训练。

笔者选用了一个“猎枪弹自动装配机控制系统”的设计案例――装配机共有22个工位,其中:1、3、6、9、12等5个工位分别是“弹壳、底火、发射药、弹托、成弹”检测工位。只要有一个检测工位不合格,后续的装配就不再进行,当不合格品进入第22工位(“排废”工位)时自动剔出。先要求学生思考采用什么方法实现最容易,然后设计程序流程图,最后将笔者的设计方案供大家讨论。这样,就强化了学生对AND、OR及移位指令的功能理解,并学会了如何应用逻辑运算解决工程问题的编程技巧。

要培养计算机专业学生的学习兴趣,还可以让某些学生较早地参与到教师的科研工作或实际项目开发中,并根据学生的实际情况分配一些具有一定难度的任务,也能较好地调动学生自主学习的积极性[5]。

4 结语

通过对汇编语言程序设计课程教学的一些改进尝试,提高了学生的学习兴趣,避免了其学习的盲目性,也为学生进行工程研发积累了经验。计算机专业系列课程的教学改革是一个系统工程,每门课程的实际操作中都有许多工作要做,尤其是案例教学环节,笔者根据自己从事工程研发的经验,谈了一点肤浅认识,希望能对计算机专业系列课程的教学改革有所帮助。

参考文献:

[1] 蔡敬民,魏朱宝. 应用型本科人才培养的战略思考[J]. 中国高等教育,2008(12):58.

[2] 张雪兰,谭毓安,李元章. 汇编语言程序设计课程教学改革与创新能力培养[J]. 计算机教育,2008(8):22-23.

[3] 黄贤英,李玉桃. 构建面向岗位的计算机专业教学体系和教学模式[J]. 重庆工学院学报.2007(21):175-177.

[4] 黄贤英,刘恒祥,范伟. 计算机专业实践教学体系建设思考[J]. 实验技术与管理,2009(10):34.

[5] 范伟,黄贤英. 大学计算机教育中的工程素质培养[J]. 重庆工学院学报, 2008(3):163-166.

Strengthen Engineering Ability Training, Professional Teaching

Reform Practice in the Course of Exploration

XU Shijun, FAN Wei, HUANG Xianying

(College of Computer Science and Engineering, Chongqing University of Technology, Chongqing 400054, China)