汇编语言程序设计(精选5篇)
汇编语言程序设计范文第1篇
关键词:汇编语言 教学 改革
汇编语言程序设计是计算机硬件、软件及计算机应用专业必修的基础核心课程。通过本课程的学习,学生掌握程序设计的基本技能,提高编程及用汇编语言解决实际问题的能力,进一步了解80386、80483、Pentium CPU的工作模式及扩充功能,以便跟踪微机新技术的发展和应用水平。
一、汇编语言程序设计课程的特点
汇编语言比机器语言有了很大的进步,但仍是面向机器的一个非常低级的语言,非常冗长单调、易出BUG并且调试困难、代码不易维护、兼容性不好、与硬件关系非常紧密,所以汇编语言的通用性较差。但汇编语言除了保持机器语言的编程质量高、执行速度快、占用内存少的优点外,还具有易记忆、易理解、书写调试较方便等优点。
二、教学中存在的问题
1.传统教学内容的缺点
传统的汇编语言教学一般按照教材的编写顺序,教师先讲CPU的功能结构知识,然后讲存储器与寻址方式知识,最后讲汇编语言指令系统和程序编写。在讲CPU的功能结构的时候,因缺少实践,大多数学生感到所学知识非常抽象,难以理解,逐渐感到汇编语言课程枯燥无味,对汇编语言学习失去兴趣,严重影响了后续章节的学习。
2.实验设备配置不合理
汇编语言课程作为一门实践性很强的课程,必须进行大量的实践,但这恰恰是大多中等职业学校所缺乏的环节,主要有以下原因。
(1)实验设备昂贵,这对于资金并不充裕的中等职业学校来说,很难为了一门课程而购买足够数量的实验设备。实验设备的缺乏,严重影响了学生的实验教学质量。
(2)学校计算机室的计算机不敢让学生进行实验练习,因为汇编语言是针对硬件编写程序的,学生在实验的时候如果出一点差错就有可能对计算机设备造成永久性的破坏。这就使得学生无法完全理解汇编语言程序设计与硬件的联系,达不到汇编语言实验目的,无法验证学生编写程序的正确性。
3.“双师型”教师数量不足
在中等职业学校,由于多方面的原因,学校对于既懂理论,又能实践的双师型教师十分缺乏。很多汇编语言教师,只注重理论教学,忽视了教师自身实践能力的提高,只会按照教材讲课,不会编写汇编语言程序的现象非常常见。只侧重汇编语言理论教学,必然严重阻碍汇编语言实践教学质量的提高,无法满足当今社会对汇编语言程序设计人才的培养要求。
三、教学改革的探索
1.打乱常规教学顺序,激发学生学习兴趣
初次教授汇编语言课程,教师先不要讲解教材上关于CPU的功能结构和存储器及寻址方式部分内容,而应采取与实际应用相结合的一体化教学方式。教师可以先让学生看一段机器语言设计的小程序。给学生讲讲早期的程序员是怎样使用机器语言进行编程的,接下来把上段机器码用汇编指令写出来给大家看,让同学们感觉到使用汇编语言程序设计比机器语言设计既简单又容易记忆,这就为激发学生的学习兴趣奠定了第一步的工作基础。在后续的课程中,教师可以与教材相结合,在讲解程序例题的过程中讲解用到的CPU的功能结构和存储器及寻址方式部分知识,让学生逐个理解和掌握这些抽象的知识,不至于一次把学生讲蒙,也不会因此影响学生学习这门课的兴趣。
2.注重培养“双师型”教师
双师型教师既要具备理论教学的素质,也应具备实践教学的素质。汇编语言作为一门实践课,只有既懂理论知识,又懂实践经验的老师才能最大限度地把汇编语言课程教好。所以,中等职业学校应加强双师型教师的培训,努力把教师培养为双师型教师。同时,教师也应该注重自身的培养,不断地充实自己,俗话说,要想给学生一碗水,自己必须有一桶水。在新技术不断发展的今天,只有教师本身掌握了前沿技术,才能更好地服务于学生。
汇编语言程序设计范文第2篇
关键词:课程改革;汇编语言;课程建设
中图分类号:G642文献标识码:A文章编号:1009-3044(2007)12-21735-02
A Study on College Course Reform of the Assembly Language Programming
WU Guang-yu, CHEN You-xuan
(Zengcheng College of South China Normal University, Guangzhou 511363, China)
Abstract:By analyzing educational actualities of Assembly Language Programming course,a course reform project is proposed. This paper points out the main problems remained in the course practice. Finally, the author proposes a series of reform solutions to the teaching materials, experiment designing and course testing of Assembly Language Programming. The paper also extracts experience from educational reform and practice.
Key words:course reform; assembly language; course developments
1 引言
汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的。因此,各院校的计算机及相关专业均开设了“汇编语言程序设计”。在以往的教学中,学生普遍反映这门课程难学。究其原因有:(1)学习汇编语言需要具备计算机的硬件知识配合,需要比较坚实的程序语言设计基础;(2)汇编语言和高级语言相比有大量的语法规则需要记忆,较琐碎,没有高级语言的完整结构化语句,程序结构不是很明显;(3)上机调试结果不直观且容易出错;(4)再加上近年来较易掌握的高级语言的快速发展,使得汇编语言的角色逐渐在淡化。在教与学的过程中,初学者首先从外界接受到的是汇编语言难学,从主观上就对该课程产生了畏惧心理;而另一方面初学者又受自身的知识面所限,认为汇编语言在应用开发中很少用到,结果给该课程下难又没用的结论。因此,针对现状,纠正学生对课程的认识,改进教学方法已经刻不容缓。
2 教学改革措施
2.1 纠正学生认识,调整教学内容,注重实例教学
纠正学生对课程难学而又没用的认识,才能使课程的教学得以顺利开展。而另一方面毕业生又面临较大的就业压力,其中很大一部分原因就是能培养出人才与社会需求脱节,没用按照市场真正需求确定目标,专业领域紧缺的技能应用型人才存在很大的缺口。因此,加强包括汇编语言在内的硬件体系课程的教学很有必要。
清华大学出版社出版的沈美明等编写的《 汇编语言程序设计》第3章的指令系统的时候,按照传统的教学顺序,把所有的指令讲完,过多的指令在缺乏实际应用实践的支撑下,枯燥乏味。所以在介绍这章的指令的时候。先把基本的数据传送指令、算术运算指令、逻辑运算指令、移位指令讲完。对于控制转移指令、串处理指令、循环指令、中断调用等其它指令分散到分支、循环程序设计,中断调用,I/O程序设计等相应的章节去。让学生能够切身体会学以致用,更能够在指令的应用中加深理解,达到更好的教学效果。
而在程序设计方法的章节里,改变以往一节一个(多个)例子的做法,把程序设计方法设计在一系列有前后关联的例子里,通过每一次课逐步扩充例子的功能,程序设计方法也逐步展示出来。这一系列的例子从把BX的内容以十六进制形式输出,到统计BX中二进制1的个数并输出,到从键盘输入一个十六进制数到BX,到把BX中的内容以十进制形式输出(分无符号数和带符号数),一直扩展到从键盘接受一个数组并排序输出。把最后的例子介绍完后,已基本覆盖课程的基本内容,包括程序格式,三个基本结构,子程序的应用,宏的使用,输入输出程序设计等。通过这样处理课程的连贯性大大增强,很多相关的内容都串联起来,学生也能在较为熟悉的例子中尽快的接收新的知识,从逐步扩展的例子找到程序设计方法之间的差异,方法的适应范围等。
2.2 灵活应用辅助教学手段
利用CAI课件开展课堂教学,对教学的直观性和可视性,提高课堂教学效率都有很大好处。对课程中的重点难点,比如寻址方式及其物理地址计算,堆栈操作指令,子程序调用的堆栈变化等知识点,用动图形式演绎。既可以增加趣味性,又可以达到事半功倍的效果。
2.3 实践环节的教学
针对程序设计课程实践性极强的特点,引入新的编程调试工具TurboDebugger(TD),并编写相关的实验指导书。TD工具相对DOS的Debug,提供的较好的图形界面,同屏能显示所有寄存器,标志位,代码段,数据段还有堆栈段的内容,为调试和理解提供更多的便利。同时,也体现了“机器”和“程序”相结合这一思想,使学生对“计算机”的认识更为深入。
理论课教学有机地和实践环节教学结合。在实验课中,继续沿用理论教学的例子作为基础再进行扩展功能,使学生在熟悉的例子练习中实践,便于把所学知识快速应用于实践中,不但有利于其程序设计能力的提高,也提高了学生对汇编语言的兴趣。
2.4 完善课程的考核方法
任何的教学都需要评价,教学评价在教学过程起激励和监督作用,使教师和学生在评价中受到鼓舞和鞭策,促进教师的技能,激发学生的学习动力。所以考试上的改革也不可或缺。
在考试方面大胆采用开卷考试的形式,重点突出“程序设计”,考核利用语言解决问题并设计程序能力,也就是程序的“读”(分析)和“写”(设计)的能力,为此在题型上,我们放弃了以往的选择题,采用简答题问答题的形式,要求作答时必须写出关键问题的分析或者关键的步骤。以下是我们设计的一份试题(表1)。
在总评成绩的比例上调整平时成绩和期末考试成绩的比例,期末考试成绩50%,平时(包括实践环节)50%。通过调整更注重平时成绩的评定,调动了学生平时学习的积极性,避免他们只靠考试周“冲刺”蒙混过关。
3 其他一些必须注意的问题
3.1 该课程与其他相关课程的关系
与《汇编语言程序设计》相关的有计算机专业的多门主干课程《C程序设计》、《计算机组成原理》、《接口技术》和《单片机》等,在授课时要特别注意前后课程的联系,比如C语言的变量和函数与该课程的数据定义和子程序作比对进行学习,高级语言和汇编语言进行程序设计时思路的异同,还有对和后继课程有纵向联系的汇编指令要重点讲解。
表1 试题的设计
3.2 因材施教,积极引导
对于基础和学习能力不同的学生,可以尝试布置不同梯度的编程题目(项目)以供选择。兴趣浓厚的学生还可以组成活动小组,分析设计更高层次的程序课题。不搞“一刀切”,学生自身根据学习情况选择难度合适的题目,使其能真正去思考,避免抄袭。
3.3 阶段性的检查反馈尤为重要
阶段性的检查如作业,模块测试和实验项目,通过这些手段了解学生的相关知识点与程序设计技能的掌握情况。可以针对教学中一些比较抽象的、容易混淆的基本概念,算法的理解,寄存器的使用和程序的编制等方面进行。发现问题集中以习题课的形式组织学生讨论,进行集体学习,在这个过程中不断会有多种解决方案的提出、已有问题的解决以及新的问题产生,这样,学生的独立思考能力就能得到锻炼和提高。通过学生对习题实验的完成情况的了解,及时发现问题,并采取适当的方法进行补救,以达到阶段性的教学目标。
4 实际教学效果
在将近3年的教学实践中,以上一系列措施的实施,首先课题教学气氛活跃,师生互动得到有效加强;其次实验课中,学生提出的问题质量有所提高;再次,从后续课程《接口技术》等反映,学生汇编语言基础扎实,对机器原理理解较为透彻。
5 结束语
已有高校对该课程进行“以教授Win32汇编语言程序设计为主要内容的Win32汇编语言程序设计”教学改革。而我们根据学校学生的实际情况,主要是教学方法,实践教学和考核方法的整套教学改革措施,课程的主要内容如何进一步改革,还值得同行一起探讨。
参考文献:
[1]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2001.
[2]何克抗, 等. 教学系统设计[M]. 北京:北京师范大学出版社,2002.
[3]谭浩强.C语言程序设计 [M].北京:清华大学出版社,1999.
[4]刘爽. 汇编语言[M]. 北京:清华大学出版社, 2003.
汇编语言程序设计范文第3篇
关键词:汇编语言程序设计; 教学方法; 内联编程
1课程的现状
汇编语言不同于其它高级语言,必须要求编程人员有一定的硬件基础,如对CPU的结构、CPU与存储器等部件的数据传送过程必须要有基本的了解,这样才能学好这门课程。在教学过程中,我们发现学生对高级语言编程学习积极性高,对汇编语言课程缺乏兴趣,因为课程本身指令复杂,规定繁多,再加上学习汇编指令前对CPU的相关工作过程理解不透,导致学生厌学,又由于本课程面对的低年级学生只有高级语言的基础,习惯于高级语言的自然表达,初次接触计算机硬件知识心理上有恐惧感,更难以适应繁杂的低级语言。
针对本课程的特点,对教学内容、环节、过程等进行了精心设计,下面就教学方法的设计、实践教学方法、课程考核形式等方面进行的一系列改革进行详细探讨。
2教学方法设计改革
为了避免学生因指令复杂,规定繁多、难度大而对该课程产生畏惧的学习心理,教师有必要对教学内容进行合理组织,对教学过程进行精心的设计。
2.1利用FLASH技术,使教学难点容易理解
在多年的教学过程中,我发现学生在学习CPU结构这章节中,对介绍的CPU由哪些寄存器(名称、大小)构成,各个寄存器的含义,用途,CPU与存储器等部件的数据传送过程,会觉得很抽象,多数同学都是采用死记硬背的方式,这章节是第二章节的内容,也是能否学好该课程关键的一章,如果理解不深,这无疑为后续的学习,特别是寻址方式的学习埋下了隐患。
针对这个问题,教师有必要对教学过程进行精心的设计。
在这章节中我们利用FLASH技术,把各种寻址方式下传送指令的CPU与存储器等部件的数据传送过程以动画形式展现给学生,使得复杂,抽象的过程变得直观,学生理解比较容易,也加深了对寻址方式的记忆。
2.2对比法教学
目前计算机专业的课程设置中,《汇编程序语言的程序设计》课程通常是学习完C语言课程之后开始学习的。所以在教学中可以采用对比法来讲解课程,对某些语法知识点和程序设计过程我们可以以C语言和汇编语言对应分析。
例如在介绍寄存器时,由于在一般的c语言程序中并没有直接使用到寄存器。因此,我们使用vC++6.0环境下的调试工具显示一个c语言程序及其对应的机器码,让学生看到编写汇编程序寄存器的用途,加深了学生对汇编语言程序的理解。
int m=5,n=6,c;
004010E8 mov dword ptr [ebp-4],5
004010EF mov dword ptr [ebp-8],6
c=m+n;
004010F6 mov eax,dword ptr [ebp-4]
004010F9 add eax,dword ptr [ebp-8]
004010FC mov dword ptr [ebp-0Ch],eax
在介绍语法知识时,比如变量的定义:
C语言中的变量定义形式如下:
int c1,c2=0;
汇编语言的变量定义形式如下:
cl DW ?
c2 DW 0 转贴于
2.3抽象概念的比喻教学法
在对段地址和偏移地址的讲解过程中,可以采用比喻法,把操作数比喻成学生,把教室的房间号比喻成段地址,教室内每个座位编个号,编号就是偏移地址,要想到教室把某个学生找到,就要找到相应的教室号,再到对应的座位号找到这个学生,同理,要想把主存中的操作数找到就要找到段地址和相应的偏移地址,另外要让学生知道每个教室里的座位号都是从0号开始编号的,也就是每个段里的偏移地址如果不特别指定,也是从0号开始编号的。
3实践教学改革
3.1增强实验环节,做一些实际项目
程序设计对于大多数的初学者来说有一定的难度。对于给定的一个实验题目,许多学生往往感到无从下手。目前的上机实验时间往往很短,常常是学生才刚刚有点入门,实验环节就结束了;且课外实践环节几乎没有,导致学生即使课内学的再好也不会应用。
在实验设计方面可以先把一些经典的程序提供给学生,例如分支结构的设计、循环结构的设计等,让学生在写出C语言程序之后再设计汇编程序,找出两者编程思维的区别。这样通过一段时间的经验积累,就能够编写比较复杂的的程序,由于上机时间有限,可以每次实验课之后布置一些题目供学生选择思考,让学生课外分组来设计这些程序,题目的类型可以是研讨型的让学生从更多的角度去思考上机实验过的题目,编写出不同的程序;另一种为编程型,
例如可以设置这2道题目,音乐小键盘、贪吃蛇游戏等,以加强同学们的编程能力的训练。
3.2采用与高级语言混合编程
目前越来越多的场合要使用汇编语言和高级语言进行混合编程,因此在教学时应强调汇编语言和C/C++的混合编程,并且这样也可以为今后嵌入式系统软件开发的学习打下坚实的软硬件基础。
在实验课中可以借助 Visual C++开发工具,采用内联汇编的方式,在 C/C++源程序中嵌入汇编指令序列完成一定的功能,并让学生设置断点然后跟踪执行,同时注意观察寄存器的内容和变量的值。这样可以一方面让同学们熟练掌握两种语言的切换使用,另一方面让他们感受到两种语言各有特点。例如可以利用汇编语言处理高级语言中不方便处理的一些问题。
4课程考核形式改革
因为“汇编语言程序设计”是实践性很强的一门课程,所以实验课成绩应该在总成绩中占有相当大的比重。目前大多数高校的汇编语言课程的实验课成绩只占很小的比重,即理论知识往往占课程期末考核总成绩的70%~80%,这样往往会导致学生不得不将大量的精力放在理论知识的学习中,结果只会造就大批的应试高手。在教学中,我们遇到过有的学生考试试卷能考90分以上,却连最基本的计算机操作都不能动手。今后这门课程的考核,实验课成绩应该提高到占总成绩的1/2。老师在实验中应该营造出互动气氛,检查每个学生的完成情况同时做好记录,根据学生的实际动手情况给出他们的平时实验成绩,而不是只依据交上来的实验报告,这样也能杜绝抄袭之风。
5结束语
通过教学改革的实践,在一定程度上提高了他们对本课程的学习积极性,又降低了学习难度。良好的教学效果是永远追求的目标,在今后的教学中,我们还需要不断进行探索、研究和尝试,不断更新观念,发现自身教学过程中的问题,找到解决办法,提高教学效果。
参考文献
[1] 王成耀.80x86汇编语言程序设计[M].北京:人民邮电出版社,2008(第2版).
[2] 卜登立,彭嵩松,唐卫东,龙侃.“汇编语言程序设计”课程教学改革研究与探讨[J].井冈山学院学报,2009,30(10):124-127.
汇编语言程序设计范文第4篇
摘要:本文从教材建设、课程教学内容改革、教学方式手段改革、实验平台创新、实验改革等方面介绍了我院在“汇编语言程序设计”课程的教学改革实践。
关键词:汇编语言程序设计;实验平台;教学改革
中图分类号: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).
汇编语言程序设计范文第5篇
关键词:汇编语言,C语言
单片机的开发离不开单片机的开发语言,对于一个开发者来说,选择适合的语言是非常重要的一个开发环节。
目前的单片机的编程语言主要有汇编和高级语言两种,每一种类型的单片机都有自己的汇编语言,软件可移植性不是很好。而高级语言有C 语言,PLM 语言,PASCAL 语言,BASIC语言等几种。BASIC 语言主要应用在MCS51 系列单片机上,但效果不是很理想,现在已经基本上不用。PLM 语言主要应用在MCS51 和MCS96 系列单片机中,对硬件的控制能力和代码效率都很好,PLM51语言是介于C语言和汇编语言之间的一种高级语言, 是由一种曾经用于大中型计算机的高级语言 PLM 语言移植来的。PLM 的程序书写格式相当灵活,其说明语句写在输入行的位置不受限制,而且程序的元素之间可以随意插入空格。PASCAL语言在MOTOROLA 单片机中有应用。C语言是现代单片机开发中较常用的高级语言,其程序的可读性,可移植性都很好,对硬件的控制能力也很强,唯一不足的是其代码效率较低,在程序量较大时需使用大容量的程序存储器。下边本文就主流的汇编语言与C语言的语言结构和特点进行研究。
首先是汇编语言的结构及特点。
汇编语言是一种采用助记符来编写程序的语言,它由操作符和操作数两个部分组成,其中操作数又分为源操作数和目的操作数。汇编语言比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。论文大全,汇编语言。。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
由于汇编语言中使用了助记符,用汇编语言编制的程序必须通过预先放入计算机的'汇编程序'的加工和翻译,才可以变成能被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。
汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。
其次是C语言的结构及特点。
C语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可用来编写一般的应用程序。以前计算机的系统软件主要使用汇编语言编写的,对于单片机应用系统来说更是如此。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用系统程序的周期长,而且调试和排错也比较困难。而一般效率高的高级语言难以实现汇编语言对于计算机硬件直接进行操作(如对内存地址的操作移位操作等)的功能。而C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,并且采用C语言编写的程序能够很容易地在不同类型的计算机之间进行移植,因此许多以前只能采用汇编语言来解决的问题现在可以改用C语言来解决。
C语言可以用来编写科学计算或其他应用程序,但它更适合于编写计算机的操作系统程序以及其他一些需要对机器硬件进行操作的场合,有的大型应用软件也采用C语言进行编写,这主要是因为C语言具有很好的可移植性和硬件控制能力,表达和运算能力也较强。
概括来说,C语言具有以下一些特点:
1.语言简洁紧凑,使用方便灵活 :C语言一共只有32个关键字,9个控制语句,主要用小写字母表示,压缩了一切不必要的成分;C语言程序书写形式自由,可以用简单的方法构造出复杂的数据类型和程序结构。
2.运算符丰富 :C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富,共有34 种运算符。C表达式类型多样化,灵活使用各种运算符可以实现其他高级语言难以实现的运算。
3.数据结构类型丰富 :C的数据结构类型丰富,根据需要可以采用:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等多种数据类型来实现复杂数据结构的运算,尤其是指针类型数据使用起来非常灵活多样。
4.可进行结构化程序设计 :C语言是以函数作为程序设计的基本单位的,用函数作为程序模块以实现程序的模块化,是结构化的理想语言。
5.语法限制不严格,程序设计自由度大 :C语言的语法规则不太严格,程序设计的自由度比较大,限制和灵活是一对矛盾。C语言放宽了语法检查,所以程序员应当仔细检查程序,而不要过分依赖C编译程序去查错。
6.C语言允许直接访问物理地址 :C语言允许直接访问物理地址,能进行位(bit )操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,这样它可以对单片机的内部寄存器和I/O口进行操作,可以直接访问片内或片外存储器。
7.生成目标代码质量高 :众所周知,汇编语言程序目标代码的效率是最高的,但统计表明,C语言编 写的程序生成代码的效率仅比汇编语言低10~20%。
8.程序可移植性好 :汇编语言完全依赖于机器硬件,因而不具有可移植性,C语言是通过编译来得到可执行代码的。C语言的编译程序便于移植,基本上不作修改就能用于各种机器和操作系统。
尽管C语言具有许多的优点,但和其他任何一种程序设计语言一样,也有其自身的缺点。但总的来说,C语言的优点远远超过了它的缺点。论文大全,汇编语言。。
因此我们在使用中通常将汇编语言和C语言相结合,利用共同的优点来完成开发工作。那在C语言中如何使用汇编语言呢?这个问题在不同的编译器中,具体实现方法是不同的。不过在实现大方上也不过就是有两种,而且各种编译器的实现方法也是大同小异。论文大全,汇编语言。。通常的方法是:一、对C语言程序编译后形成的汇编程序进行手工修改与优化;二、在C语言程序中直接嵌人汇编语句;三、分别编写C语言程序和汇编语言程序,然后独立编译成目标代码模块,再进行链接。第一种编程方式要求对汇编与C语言都极其熟悉,并且这样的编程方式对程序的可读性和扩展性的负面影响比较大,一般不建议使用。第二种方法适用于语句执行频率非常高,并且C编程与汇编编程效率差异较大的情况,例如进入中断的通用中断子程序等。第三种方式是混合编程最常用的方式之一,在这种方式下,C语言程序与汇编语言程序均可使用另一方定义的函数与变量。通过这样的方法就可以使二者结合起来,达到混合使用的目的。
以上就是本文对多种单片机的开发语言特点进行的研究。
参考文献:
[1]陈建铎.单片机原理于应用.北京:科学出版社,2005.2
[2]刘守义.单片机应用技术.西安:西安电子科技大学出版社,2007.8
[3]李平,杜涛,罗和平.单片机应用开发与实践.北京:机械工业出版社,2008.7
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yyfangchan@163.com (举报时请带上具体的网址) 举报,一经查实,本站将立刻删除