ARM汇编程序设计教学的

点赞:4627 浏览:16424 近期更新时间:2024-03-22 作者:网友分享原创网站原创

摘 要:本文从目前“ARM汇编语言程序设计”课程教学中存在的问题入手,从教学内容、教学方法、教学手段,实验教学等几个方面讨论了提高课程教学质量的思路与策略.

关 键 词 :ARM;汇编程序设计;教学;比较法教学

中图分类号:TP313-4


1.课程的地位与现状

“汇编程序设计”是计算机及相关专业的专业基础必修课,学生通过本课程的学习,首先,可以更加深入的理解计算机硬件系统的组成结构和原理,可以更好的理解寄存器,中断,寻址方式等概念;其次,可以促进对高级编程语言相关概念的理解,高级语言在编译时通常会先生成汇编语言代码,然后再转换为最终的机器码,学习汇编语言程序设计可以充分理解程序的编译执行过程,同时学生对于堆栈的使用、子程序调用等过程会更清晰;利用汇编语言还可以设计出效率极高的核心底层程序,如设备驱动程序,汇编语言程序能够直接有效地利用机器硬件资源,因此用汇编语言编写的程序一般比用高级语言编写的程序执行的快,且所占内存较少,在一些实时控制系统中,这点更不可缺少和替代[1].因此本课程一直是计算机专业的核心课程之一,在整个计算机专业课教学中起着承上启下的作用,为后续课程的学习打下重要的基础.而目前以ARM为核心的嵌入式技术逐渐成为各个高校教学的主流,基于ARM架构的汇编语言程序设计是学习嵌入式技术的基础.

但是在实际教学过程中,往往教学效果并不好,学生学习的积极性不高.笔者认为主要包括以下一些问题:(1)指令多而且复杂,难以记忆;(2)课程的内容比较抽象,与高级语言程序设计有较大的差别;(3)课程内容滞后于当前计算机技术的发展;(4)课程内容连贯性强,如果有一部分内容掌握不好就会造成知识脱节;(5)实践教学环节薄弱.对“ARM汇编语言程序设计”课程教学进行改革,从而提高课程的教学质量,达到预期的教学效果是我们急需解决的问题.笔者经过教改探索,认为应从以下几点进行改革.

2.合理安排教学内容

在“ARM汇编语言程序设计”课程中主要包括三个部分,第一部分主要介绍汇编语言程序设计的基础知识和ARM系列微处理器,第二部分是ARM指令系统,第三部分是ARM汇编语言程序设计.目前授课时都是先讲完所有的指令(包括数据处理指令,Load/Store指令,分支指令,程序状态寄存器指令,协处理器指令和软件中断指令)以及伪指令后,再开始讲授如何编写汇编程序.学生需要记忆大量的指令、伪指令的格式和功能,却不知如何用来编写程序,导致无法理解消化所学内容,容易感到枯燥,学习兴趣不高[2].

笔者认为可以将课程内容进行调整.比如讲完数据传送指令、运算类指令之后就可以讲一些顺序程序设计的实例并让学生完成一些简单的题目,在实际做题过程中更好的学习指令的功能和用法.同样在讲述指令的条件执行时与分支和循环程序设计结合起来,讲述分支指令BL时与子程序设计结合起来,将编程环节提前,通过实际的例子让学生建立起感性认识,对指令的掌握会更好,在此过程中学生会建立成就感,学习兴趣也自然产生了.

ARM汇编程序设计教学的参考属性评定
有关论文范文主题研究: 关于多媒体的论文范本 大学生适用: 函授论文、学位论文
相关参考文献下载数量: 53 写作解决问题: 毕业论文怎么写
毕业论文开题报告: 文献综述、论文摘要 职称论文适用: 核心期刊、职称评初级
所属大学生专业类别: 毕业论文怎么写 论文题目推荐度: 免费选题

另一方面,“ARM汇编语言程序设计”课程与其它一些专业课程密切相关,在安排教学内容时要尽量注意课程之间的衔接与融合.“ARM汇编语言程序设计”与“嵌入式系统接口原理与应用”,“嵌入式软件设计与应用”等课程都密切相关,是学习嵌入式系统设计不可缺少的一部分.还有一部分同学认为汇编语言已经“过时”了,在今后的工作中不会用到,教师讲授时可以通过一个嵌入式系统应用的实例说明汇编语言程序设计在系统引导程序,接口驱动程序中的重要作用,以及具有高级语言无法比拟的优势.

3.采用比较教学法

所谓比较教学法是指将陌生的东西与熟悉的东西做比较,找出相同和不同的地方,然后进行差异化学习[3].比如可以将ARM指令系统与我们熟悉的x86指令类比,来提速学生的理解记忆过程.ARM指令与x86指令编程操作有明显的共性,甚至很多指令助记符都是相同的.如MOV,ADD,SUB等,学生很容易接受.所以要特别突出ARM指令体系的不同之处,比如:ARM绝大部分指令可以根据状态寄存器的状态决定是否执行;ARM指令集中设置专门的Load/Store指令用于存储器的访问;ARM不设专门的移位指令,各指令中均直接可进行移位操作等等,而这些不同之处更突出体现了ARM处理器的RISC特性,所以学生很容易记忆.同样在硬件上也可以做类比,比如ARM与x86处理器的中断处理过程的区别.

还可以将汇编语言与学生比较熟悉的高级语言做类比.汇编语言也好,高级语言也好,都只不过是程序设计的工具,因此对于程序的基本功能和程序设计的基本问题都有相通的实现机制,特别是在程序设计的基本思想上.但是汇编语言和高级语言毕竟是不同级别的语言类别,高级语言语句功能更强,编程时更灵活方便,而且即便是同样的问题,如数据安排、数据处理、程序流程控制、子程序调用等,实现起来也有不同的方法.比如高级语言子程序调用时需要同时提供参数,一般格式是:函数名(参数);而在汇编语言中,子程序在定义时不需要有关参数的说明,在调用时也无需同时提供参数,子程序的调用格式为:BL子程序名.也就是说,高级语言中函数的参数传递是显式进行的,而汇编语言中的参数传递是隐式的.在汇编语言中参数传递可以利用寄存器实现,也可以利用存储单元实现,还可以用堆栈实现.在实际应用中通常综合以上方法来达到最佳效果.

4.采用多媒体与板书相结合的教学手段

充分采用多媒体的手段来授课是必要的,在汇编语言的教学中,大量采用多媒体课件,对于一些抽象难懂的知识,借助于图表、动画等进行讲解,可以给学生一个感性、直观的认识,使大家集中注意力,加深对内容的理解.比如在讲解寻址方式时,通过工作流程动画的演示,学生很容易理解各种寻址方式的不同之处.但是教师并不能完全依赖于多媒体手段,如果把所讲的程序直接做到课件中,讲解时会出现朗读课件的情况,与学生的交互不足,影响授课效果.因此最好将多媒体与板书相结合,在多媒体课件中展示程序的流程图,而将程序以板书形式展现给学生,写板书时可以与学生充分交流,让他们有足够的时间来理解编程的思路和过程,同时也大大活跃了课堂气氛.

5.实验教学注重实用性

汇编语言是一门实践性很强的语言,实验环节在整个教学活动中占据了举足轻重的地位,是提高学生动手能力的重要环节.因此,教师一方面要耐心讲解让学生熟悉汇编语言从汇编、链接到调试执行的整个过程,另一方面要让学生多进行上机实践.还可以要求学生将一些c语言的程序段的功能通过汇编语言实现.通过集成开发环境的帮助,学生可以更好的掌握两种语言编程的异同点,达到更好的学习效果.对于一些复杂的题目,可以让学生课外分组来进行设计,题目的类型可以是研讨型的让学生从更多的角度去思考编写程序.

6.结束语

计算机技术的发展日新月异,计算机教育也应该与时俱进,跟上计算机发展的步伐.汇编语言是衔接计算机软硬件的重要基础课程,其重要性始终不可替代,为了让学生学好这门课,作为一名教师,应该从课程的内容,授课方法,教学手段等多方面积极进行改革,从而提高教学质量,充分发挥学生的学习积极性.