汇编语言程序设计知识wt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《汇编语言程序设计知识wt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 程序设计 知识 wt 课件
- 资源描述:
-
1、目目录录&第一章第一章 微机基础知识微机基础知识&第二章第二章 89C5189C51单片机的结构和原理单片机的结构和原理&第三章第三章 89C5189C51指令系统指令系统&第四章第四章 汇编语言程序设计知识汇编语言程序设计知识&第五章第五章 中断系统中断系统&第六章第六章 定时器及应用定时器及应用&第七章第七章 89C5189C51串行口及通信技术串行口及通信技术&第八章第八章 单片机小系统片外扩展单片机小系统片外扩展&第九章第九章 应用系统配置及接口技术应用系统配置及接口技术&附录附录A 89C51A 89C51指令系统表指令系统表&参考资料参考资料第1页,共54页。4.1 4.1 编程的
2、步骤、方法和技巧编程的步骤、方法和技巧4.2 4.2 汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编第四章汇编语言程序设计知识汇编语言程序设计知识第2页,共54页。4.1.1 4.1.1 编程的步骤编程的步骤4.1.2 4.1.2 编程的方法和技巧编程的方法和技巧4.1.3 4.1.3 汇编语言程序的基本结构汇编语言程序的基本结构第3页,共54页。n1、分析问题、分析问题n2、确定算法、确定算法n3、画程序流程图、画程序流程图n4、编写程序、编写程序第4页,共54页。1、分析问题 对需要解决的问题进行分析,以求对问题有对需要解决的问题进行分析,以求对问题有正确的理解。正确的理解。解决问题
3、的任务是什么?解决问题的任务是什么?工作过程?工作过程?现有的条件,已知数据,对运算的精度和速现有的条件,已知数据,对运算的精度和速 度方面的要求?度方面的要求?设计的硬件结构是否方便编程?设计的硬件结构是否方便编程?第5页,共54页。2、确定算法 算法是如何将实际问题转化成程序模块来处理。算法是如何将实际问题转化成程序模块来处理。在编程以前,先要对几种不同的算法进行分在编程以前,先要对几种不同的算法进行分 析、比较,找出最适宜的算法。析、比较,找出最适宜的算法。第6页,共54页。程序流程图是使用各种程序流程图是使用各种图形图形、符号符号、有向线段有向线段等来说明程序等来说明程序 设计过程的一
4、种直观的表示。设计过程的一种直观的表示。画流程图是程序结构设计是采用的一种重要手段。画流程图是程序结构设计是采用的一种重要手段。流程图步骤分得越细致,编写程序是也越方便。流程图步骤分得越细致,编写程序是也越方便。一个系统软件有总的流程图(主程序框图)和局部的流程图。一个系统软件有总的流程图(主程序框图)和局部的流程图。流程图常采用的流程图常采用的图形和符号图形和符号。3、画程序流程图第7页,共54页。椭圆框椭圆框或桶形框或桶形框:表示程序的开始或结束。:表示程序的开始或结束。矩形框矩形框:表示要进行的工作。:表示要进行的工作。菱形框菱形框:表示要判断的事情,菱形框内的:表示要判断的事情,菱形框
5、内的 表达式表示要判断的内容。表达式表示要判断的内容。圆圈圆圈:表示连接点:表示连接点指向线指向线:表示程序的流向:表示程序的流向第8页,共54页。开始开始将学生成绩存入将学生成绩存入累加器累加器A中中比较比较(A)与与#60的大小的大小(A)=#60?增加增加R1的值的值打印学生成绩打印学生成绩(A)#60?增加增加R2的值的值结束结束YESYESNONO第9页,共54页。4、编写程序n用用89C51汇编语言编写的源程序行(一条语句)包括四个部分,也叫汇编语言编写的源程序行(一条语句)包括四个部分,也叫四个字段:四个字段:标号标号:操作码操作码操作数操作数;注释;注释n每个字段之间要用分隔符
6、分隔,而每个字段内部不能使用分隔符。可每个字段之间要用分隔符分隔,而每个字段内部不能使用分隔符。可以用作分隔符的符号:空格以用作分隔符的符号:空格“”、冒号、冒号“:”、逗号、逗号“,”、分、分号号“;”等。等。例:例:LOOP:MOV A,#00H ;立即数;立即数00HA第10页,共54页。标号标号:操作码操作码操作数操作数;注释;注释n出现在助记符之前的,是由用户定义的一个字符串。出现在助记符之前的,是由用户定义的一个字符串。n一条指令的标号是该条指令的符号名字,标号的值是汇编这条指一条指令的标号是该条指令的符号名字,标号的值是汇编这条指令时指令的地址,代表令时指令的地址,代表16位长的
7、位长的ROM地址编码。地址编码。n标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令指令标号标号。n并不是每一条语句都需要标号,只有那些欲被引用的语句才需要。并不是每一条语句都需要标号,只有那些欲被引用的语句才需要。(1)标号4、编写程序第11页,共54页。标号标号:操作码操作码操作数操作数;注释注释n对于标号的限定:对于标号的限定:最多可由最多可由31个字符构成,字符可以是个字符构成,字符可以是英文字母英文字
8、母(一般不区一般不区 分大小写分大小写)、阿拉伯数字阿拉伯数字和其他字符和其他字符(“?”和和“_”););第一字符必须是第一字符必须是非数字非数字;后面跟冒号后面跟冒号“:”;一个标号在程序中只能定义一次;一个标号在程序中只能定义一次;标号不能为指令助记符、伪指令、标号不能为指令助记符、伪指令、SFR名称等系统保留字。名称等系统保留字。(1)标号4、编写程序第12页,共54页。标号标号:操作码操作码操作数操作数;注释注释(2)操作码n操作码是必不可少的。操作码是必不可少的。n它用一组字母符号表示指令的操作码。在它用一组字母符号表示指令的操作码。在89C51中,由指令中,由指令助记符组成。助记
9、符组成。n一般留出标号字段的空位,以便与标号相区别。一般留出标号字段的空位,以便与标号相区别。4、编写程序第13页,共54页。(3)操作数n汇编语言指令可能要求或不要求操作数,所以这一字段可汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。能有也可能没有。n若有两个操作数,操作数之间用逗号若有两个操作数,操作数之间用逗号“,”分开。分开。n操作数字段的内容复杂多样,可能包括:操作数字段的内容复杂多样,可能包括:标号标号:操作码操作码操作数操作数;注释注释4、编写程序第14页,共54页。由由RS0和和RS1规定的当前工作寄存器区中的规定的当前工作寄存器区中的R0R7。21个特殊功
10、能寄存器个特殊功能寄存器SFR的名字。的名字。赋值标号赋值标号 由汇编指令由汇编指令EQU等赋值的标号;等赋值的标号;指令标号指令标号 指令标号指示的指令的第一字节地址是该标号的值。指令标号指示的指令的第一字节地址是该标号的值。用来表示程序计数器的当前值。用来表示程序计数器的当前值。(3)操作数 符号符号第15页,共54页。可为二进制(可为二进制(B)、八进制()、八进制(O)、十进制()、十进制(D)、十六进制()、十六进制(H)或字符串。或字符串。(3)操作数 数值数值 汇编时,计算出表达式的值填入目标码。汇编时,计算出表达式的值填入目标码。一般缺省情况下,汇编器默认的数值是十进制数值;一
11、般缺省情况下,汇编器默认的数值是十进制数值;若常数以字符若常数以字符AF开头,必须在其前面加开头,必须在其前面加“0”作为引导,以便作为引导,以便 与标号或符号名相区别。与标号或符号名相区别。表达式表达式第16页,共54页。4、编写程序标号标号:操作码操作码操作数操作数;注释注释(4)注释n注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。n良好的注释是汇编语言程序编写中的重要组成部分。良好的注释是汇编语言程序编写中的重要组成部分。n由由“;”或或“/*/”表示。表示。5、上机调试第17页,共54页。n1、模块化的程序设计方法、
12、模块化的程序设计方法n2、编程技巧、编程技巧第18页,共54页。1、模块化的程序设计方法n单个模块结构的程序功能单一,易于编写、调试和修改。单个模块结构的程序功能单一,易于编写、调试和修改。n便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。软件研制进度。n程序可读性好,便于功能扩充和版本升级。程序可读性好,便于功能扩充和版本升级。n对程序的修改可局部进行,其它部分可以保持不变。对程序的修改可局部进行,其它部分可以保持不变。n对于使用频繁的子程序可建立子程序库,便于多个模块调用。对于使用频繁的子程序可建立子
13、程序库,便于多个模块调用。(1)程序功能模块化的优点第19页,共54页。1、模块化的程序设计方法n每个模块应具有独立的功能,能产生一个明确的结果,即单模每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能块的功能高内聚性高内聚性。n模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的的低耦合性低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。是指模块间的信息交换方式、交换量的多少及交换频繁程度。n模块长度适中。模
14、块长度适中。20条条100条的范围较合适。条的范围较合适。(2)划分模块的原则第20页,共54页。2、编程技巧n尽量采用尽量采用循环结构循环结构和和子程序子程序。n尽量少用尽量少用无条件转移指令无条件转移指令。n对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹出),即再弹出),即保护现场保护现场。n在中断处理程序中,除了要保护处理程序中用到的寄存器外,在中断处理程序中,除了要保护处理程序中用到的寄存器
15、外,还要还要保护标志寄存器保护标志寄存器。n用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。累加器内容压入堆栈。第21页,共54页。n1、模块化的程序设计方法、模块化的程序设计方法n2、编程技巧、编程技巧第22页,共54页。n 1、顺、顺序程序序程序n 2、分、分支程序支程序n 3、循环程序、循环程序第23页,共54页。1、顺序程序n顺序程序是最简单的程序结构,也称直线程序。顺序程序是最简单的程序结构,也称直线程序。n程序按顺序一条一条地执行指令。这类程序是所有复杂程序的基础。程序按顺序一条一条地执
16、行指令。这类程序是所有复杂程序的基础。n要写出高质量的程序还是需要掌握一定的技巧,需要熟悉指令要写出高质量的程序还是需要掌握一定的技巧,需要熟悉指令系统,正确地选择指令,最大限度地优化程序。系统,正确地选择指令,最大限度地优化程序。第24页,共54页。2、分支程序n程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断、满足条件则进行程序转移,不满足条件就顺序执行程序。断、满足条件则进行程序转移,不满足条件就顺序执行程序。n分支程序又分为分支程序又分为单分支单分支和和多分支多分支结构。结构。n多分支程序是首先把分支程序按序
17、号排列,然后按序号值进行转移。多分支程序是首先把分支程序按序号排列,然后按序号值进行转移。第25页,共54页。n在在MCS-51指令系统中,通过条件判断实现单分支程序转移的指令指令系统中,通过条件判断实现单分支程序转移的指令有:有:JZ、JNZ、CJNE、DJNZ等。此外还有以位状态作为条件进等。此外还有以位状态作为条件进行程序分支的指令,如行程序分支的指令,如JC、JNC、JB、JNB、JBC等。使用这些等。使用这些指令可以完成指令可以完成0、1、正、负,以及相等、不相等作为各种条件、正、负,以及相等、不相等作为各种条件判断依据的程序转移。判断依据的程序转移。散转指令散转指令转向转向0分支分
展开阅读全文