汇编语言课程内容设置与教学方法规范化探讨
汇编语言课程内容设置与教学方法规范化探讨
作为最接近机器语言的编程语言,汇编语言可以称得上是最接近于计算机操作本质的语言[1]。其直接面向硬件的特性,使得在使用汇编语言时,能够清楚感知计算机的运行过程和原理,充分认识应用程序和计算机硬件之间的联系与交互。相对于高级语言来说,汇编语言在编程者思维逻辑的锻炼上表现尤为突出,对于形成软、硬兼备的编程知识体系具有举足轻重的作用,而且指令集合简约,指令操作直接。对于计算机专业语言类课程的学习来说,从汇编语言开始学习更符合循序渐进的学习原理。特别是论文联盟http://在计算机技术专业的学习中,汇编语言具有十分重要甚至说不可代替的作用。
1 现状分析
1.1 课程设置现状分析
就计算机的应用层面来说,对于绝大多数的软件开发市场,高级语言占据了绝大部分是毋庸置疑的。因此,学习者甚至是教育者都不同程度上受到了误导,通过对目前高校计算机专业语言类课程的设置研究发现,c语言、c++、java等高级语言一应俱全,但用人单位反馈的信息却是高校毕业生在程序编写的过程中很茫然,究其主要原因其实是基础薄弱导致的。而产生这种情况的主要原因是目前大多数高校将c语言作为计算机技术专业体系课程的开启项。其实汇编语言才是计算机技术的基础,原因是汇编语言能够让学生更好地理解高级语言。
在汇编语言程序设计中,对于内存的操作都是基于内存地址的[2],而c语言中最令学生费解的指针概念,其本质就是内存的地址。而在抽象的指针概念和实际内存单元之间建立思维映射是指针学习和应用比较困难的地方,但这些却恰恰是在汇编语言学习中经常会做的一件平常事。另一方面,在c语言中,诸如数据类型、全局变量、形参实参、函数调用、局部变量等概念及操作,都可以通过汇编语言中的一些操作相关联,进而形成一个具体的映像,再通过深度的剖析,很快就能掌握c语言。有了汇编语言和c语言的基础,再学习面向对象的语言时就更加通畅了。当然对于计算机专业的学生来说,学习的是计算机整套的系统知识,其中还包括数据结构、操作系统、微机原理与接口、编译原理、各种高级语言等。因此必须有一个好的教学体系,能够使学生更好地理解计算机知识,而这个教学体系的开启项应该是汇编语言,这是由其充分接触硬件的特性所决定的,汇编语言可以让学生充分理解计算机运行的原理,获得更多的感性认识,进而为高级语言的学习奠定坚实的基础。更重要的是抹去了计算机的神秘与深奥感,增加了学生的信心。此外,由于汇编语言本身是很简单的,再加上和前续课程的密切程度不高,因此,汇编语言作为学习者的入门学科是科学的。
1.2 学习现状分析
据调查发现,目前很多高校学生放弃了对于汇编语言的学习,原因是高级语言的开发更容易找到工作,尽管这个理由是现实的,但是存在着明显的认识误区。
首先,学习是一个系统的过程,而这个系统的过程不是某一门课程所能建立的。因此,对于汇编语言课程的学习,并不是一定要用汇编去赚钱谋生,而是因为本课程对于一个编程人员来说,在基本素质的培养和形成方面具有非常重大的意义。
其次,汇编本身也是很重要的应用技术。由于在学校,学生平时接触最多的是纯软件的东西,因此,在他们的意识中那些各种各样的软件才是计算机技术应用的舞台。但事实上,很多硬件设施的嵌入式编程使用的都是汇编语言,因为汇编语言更直接,更有效率。例如现在很多数码产品赖以生存的芯片、主板等,都包含了嵌入式程序,而这些程序中,汇编语言的使用是非常普遍和相当重要的。
综上所述,作为一名计算机专业教师,如果不能够正确的认识到汇编语言的基础性和重要性,一味地标榜高级语言,那么他越努力地教学也就越“兢兢业业”地误导学习者。再者,学生如果无法认识到汇编的重要性,抛弃了基础,那么他在计算机领域所能做的贡献也是十分有限的。因此,如果想学好计算机编程技能,想做一名合格的编程人员,而且想在计算机编程之路走得更远,就只有,也必须从汇编语言开始,才能完整、完善地建立计算机编程知识体系。
2 汇编语言程序设计课程内容的规划
2.1 基于8086/8088设置教学内容
“汇编语言程序设计”课程的教学目的主要是使学生理解机器语言程序控制计算机工作的基本原理[3],能够较熟练地编写一般的汇编语言程序,解决一些基本的实际问题,较深入地掌握汇编程序设计的思想与方法。
因此该课程在教学内容的设置方面基本应包括以下各个方面:
(1)机器数的各种编码表示、cpu的内部结构、存储器的内部结构、i/o端口等有关基础知识;
(2)指令系统和寻址方式;
(3)汇编语言语句的格式、程序的格式;
(4)循环与分支程序设计;
(5)子程序设计;
(6)i/o程序设计。
为了进一步增强学生的编程及应用能力,拓展知识面,可以将以下各部分内容作为提高和应用部分:
(7)宏汇编等高级技术;
(8)bios和dos中断;
(9)磁盘管理维护与文件存取技术,如对fat损坏的磁盘直接读写以恢复数据、硬
盘软保护程序设计等;
(10)32位机上的保护模式编程[4];
(11)模块化程序设计及与高级语言程序的连接,在高级语言中使用直接嵌入式汇编语言编程等;
(12)存储管理优化及ram驻留程序tsr(terminate and stay resident)设计等;
(13)文件加密、加密文件分析与解密(如.fox文件的解密)等。
对于以上内容的讲述,不同的学论文联盟http://校、教师有不同的观点。虽然主流微处理器已经从8086发展到了酷睿等,但是对于80x86结构中8086/8088的指令是最基本的,其他各指令都是对基本指令集的扩充,因此应当将8086/8088汇编语言作为本课程教学的基本内容。但是对于如80386等结构及其保护模式的接受是不容忽视的,而且应该安排一定的实验。
2.2 整合教学内容精简指令系统
本门课程的前序课程是大学计算基础,因此在本门课程的讲授中,应避免重复内容的讲解,如机器数的编码等。另一方面,在讲解时需要特别注意前后课程的联系,比如在讲解寄存器、存储器时,应对“计算机组成原理”中的相关内容作一个回顾,对汇编指令和后继课程有纵向联系的方面要重点讲解。
汇编语言指令有几百条之多,但是频繁使用的不多。因此,课程讲述时,应详细讲解常用的指令,主要让学生学会自学方法,便于自学其他指令。并且将指令讲解分散到各章中,一方面保证知识的循序渐进,另一方面又让学生从第二章开始就能够接触简单的指令和程序,诱发学生的学习兴趣,使学生在学习程序中学习指令、寻址方式和编程规则,进而在实例中体会、在体会中总结提高。
2.3 教学内容与科研紧密结合
教学内容与科研结合,一方面提高了学生分析问题、解决问题的能力,另一方面保持了教学内容的先进性和时代感[5],同时学生也能够感受到汇编语言的功能和作用。而且教师根据系统开发的经验和体会,帮助学生认识高质量软件必须来自严格的开发过程控制,良好的程序设计能力和风格必须在学习的过程中积累。
3 教学方法及手段
3.1 汇编语言程序设计的教学方法
汇编语言和二进制的机器指令是相对应的,因此它缺乏高级语言结构化的控制语句、过程化的操作语句,所以,汇编语言源程序的编写相对显得繁琐。作为机器指令的符号化,每一条汇编指令所能完成的操作是很有限的,在使用汇编语言编写程序时,寄存器、存储单元及寻址方式是需要密切关注的细节。正是因为它的细致、琐碎和费解,导致了教学的困难。
所以教学过程中对于复杂的程序结构应该避免过多的讨论,主要通过一些经过精心设计的较为典型的例题程序对学生学习汇编格式、指令及程序设计方法进行指导。例题的示范作用,会提高学生规范化设计的意识,也有利于养成良好的编程风格。
通常情况,汇编语言程序的讲述应遵循以下原则:
(1) 程序的算法逻辑应描述得比较自然而且容易理解,程序的结构应该简洁而且解法直接[6]。
(2) 按照结构化设计原则,通过顺序、选择和分支三种基本结构编制程序。
(3) 应注重代码的优化处理,提高程序的运行效率。
因此,以上述原则应该结合典型的例题去讲授,一方面有利于学生掌握这种与高级语言相比略显晦涩的语言,另一方面也进而培养了学生正确和规范的程序设计方法。
3.2 教学手段
利用传统的授课方法和cai课件展开课堂教学,增强教学的直观性和可视性,尽量减少板书时间,提高课堂教学效率。对课程中的重点、难点,比如寻址方式及子程序调用的堆栈变化等知识点,用动态图形的形式去演绎,既可以增加趣味性,又可以达到事半功倍的效果。开展实物实例模拟教学,自己动手制作教具,用模型进行演示。
4 结束语
汇编语言程序设计是计算技术重要的专业基础课程,由于和计算机硬件结合的紧密性,在编程语言中所扮演的角色不可替代,在高校计算专业的课程教学中不应被边缘化,而是应加强课程内容设置和教学方法的规范化,进而解决教学中存在的问题。
上一篇:浅谈计算机语言教学中的科学思维
下一篇:采用有效策略,提高计算能力