[信息与通信]单片机汇编语言5.ppt
《[信息与通信]单片机汇编语言5.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]单片机汇编语言5.ppt(44页珍藏版)》请在三一文库上搜索。
1、第四章 汇编语言程序设计知识,张文昭 15116501516 ,教学要求,了解编程的步骤,熟识编程的方法和技巧; 了解汇编语言程序的基本结构,学会画相应的程序流程框图; 练习用汇编语言编写简单的程序; 了解什么是源程序的汇编, 了解伪指令及其功能,教学重点,汇编语言程序的基本结构及其相应结构的程序流程框图。 练习用汇编语言设计简单的程序,4.1 编程的步骤、方法和技巧,一、 编程步骤 (一)分析问题 (二)确定算法 (三)画程序流程图 (四)编写程序 (五)上机调试,对需要解决的问题进行分析: 解决问题的任务是什么? 工作过程? 现有的条件,已知数据,对运算的精度和速度方面的要求是什么? 设计
2、的硬件结构是否方便编程?,(一)分析问题,(二)确定算法,算法是指如何将实际问题转化成程序模块来处理。 在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法。,(三)画程序流程图 程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示。 常采用以下图形及符号: 椭圆框( )或桶行框( )表示程序的开始或结束。 矩形框( )表示要进行的工作。 菱形框( )表示要判断的事情,菱形框内的表达式表示要判断的内容。 圆圈( )表示连接点。 指向线()表示程序的流向。 流程图步骤分得越细致,编写程序时也就越方便。 画流程图是程序结构设计是采用的一种重要手段。 一个系统软件
3、有总的流程图(主程序框图)和局部的流程图(子程序框图)。,用8051汇编语言编写的源程序行(一条语句)包括四个字段,汇编程序能识别它们。格式如下: 标号: 操作码 操作数 ;注释 1. 标号 标号是用户定义的符号地址。标号的值是汇编这条指令时指令的地址。标号又以英文字母开始的18个字母或数字串组成,以冒号“:”结尾。 标号可以由赋值伪指令赋值。如果标号没有赋值,汇编程序就把存放该指令目标码第一字节的存储单元的地址赋给该标号。,(四)编写程序,2. 操作码 对于一条汇编指令,这个字段是必不可少的,它用一组字母符号表示指令的操作码。在8051中,它由8051的指令系统助记符组成。 3. 操作数 工
4、作寄存器名 特殊功能寄存器名 标号名 常数 $ 表示程序计数器的当前值。 表达式 4. 注释 注释部分不是汇编语言的功能部分,只是用语言增强程序的可读性。,(五)上机调试,上机调试可以检验程序的正确性。 有时编译通过了,调试可能不通过,调试的目的是为了进一步修改程序中的错误,或优化程序。,二、编程的方法和技巧,(一)模块化的程序设计方法 1.程序功能模块化的优点 单个模块结构的程序功能单一,易于编写、调试和修改; 便于分工多个程序员同时进行程序的编写和调试工作,加快软件研制进度; 程序可读性好,便于功能扩充和版本升级; 对程序的修改可局部进行,其他部分可以保持不变; 对于使用频繁的子程序可以建
5、立子程序库,便于多个模块调用。,2.划分模块的原则 模块的划分有很大的灵活性,但也不能随意划分。划分模块时应遵循一定原则: 每个模块应具有独立的功能,能产生一个明确的结果,这就是单模块的功能高内聚性。 模块之间的控制耦合应尽量简单,数据耦合应尽量少,这就是模块间的低耦合性。 模块长度适中。模块语句的长度通常在20条100条的范围较合适。, 尽量采用循环结构和子程序。这样可以使程序的总容量大大减少,提高程序的效率 ,节省内存。 尽量少用无条件转移指令。 对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其它寄存器的内容应压入堆栈(返回前再弹出),即保护现场。
6、由于中断请求是随机产生的,所以在中断处理程序中,除了保护处理程序中用到的寄存器外,还要保护标志寄存器。 用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。,(二)编程技巧,汇编语言程序具有4种结构形式,即顺序结构、分支结构、循环结构和子程序结构。,三、汇编语言程序的基本结构,这种程序中既无分支、循环,也不调用子程序,程序按顺序一条一条地执行指令。,(一)顺序程序,例1 :将片内RAM 20H单元的内容拆成两段,每段四位。并将它们分别存入21H与22H单元中。,例1 :拆字。将片内RAM 20H单元的内容拆成两段,每段四位。并将它们分别存入21H与22H单元中。,
7、解: ORG 2000H MOV R0,#21H ;21HR0 MOV A,20H ;(20H)A ANL A,#0FH ;A#0FHA MOV R0,A ;(A)(R0) INC R0 ;(R0)+1R0 MOV A,20H ;(20H)A SWAP A, ;A03 A47 ANL A,#0FH ;A#0FHA MOV R0,A ;(A)(R0) SJMP $,(二)分支程序,程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件就顺序执行程序。,例2:片内RAM ONE和TWO两个单元中存有两个无符号数,将两个数中的小者存入RES单元。,Y,N
8、,Y,N,例2:片内RAM ONE和TWO两个单元中存有两个无符号数,将两个数中的小者存入RES单元。,解: ORG 1000H ONE DATA 22H ;定义ONE TWO DATA 23H ;定义TWO RES DATA 30H ;定义RES MOV A,ONE START:CJNE A,TWO,BIG SJMP STORE BIG: JC STORE MOV A,TWO STORE:MOV RES,A SJMP $,对于多分支程序,首先把分支程序按序号排列,然后按照序号值进行转移,分支转移结构如下图所示。假如,n个按键,则转向n个键的功能处理程序。,例 4:128种分支转移程序。 功能
9、:根据入口条件转移到128个目的地址。 入口:(R3)=转移目的地址的序号00H7FH。 出口:转移到相应功能分支程序入口。 JMP_128: MOV A,R3 RL A MOV DPTR,#JMPTAB JMP A+DPTR JMPTAB: AJMP ROUT00 AJMP ROUT01 AJMP ROUT7F,在程序运行时,有时需要连续重复执行某段程序,可以使用循环程序。 循环程序结构: 置循环初值 循环体(循环工作部分) 修改控制变量 循环控制部分,(三)循环程序,循环的组织方式,先处理,后判断,先判断,后处理,例3:数据块传送。将片内RAM 20H单元开始的10个字节,传送到片外RAM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 单片机 汇编语言
链接地址:https://www.31doc.com/p-2000764.html