- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章(第4版)
第4章 汇编语言程序设计及知识 §4.1 编程的步骤、方法和技巧 §4.2 汇编语言源程序的编辑和汇编 §4.1 编程的步骤、方法和技巧 §4.1.1 编程的步骤 §4.1.2 编程的方法和技巧 §4.1.3 汇编语言程序的基本结构 §4.1.1 编程的步骤 一、分析问题 二、确定算法 三、画程序流程图 四、编写程序 一、分析问题 对需要解决的问题进行分析,以求对问题由正确的理解。 解决问题的任务是什么? 工作过程? 现有的条件,已知数据,对运算的精度和速度方面的要求? 设计的硬件结构是否方便编程? 二、确定算法 算法是如何将实际问题转化成程序模块来处理。 在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法 三、画程序流程图 程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直观的表示。 流程图步骤分得越细致,编写程序是也越方便。 画流程图是程序结构设计是采用的一种重要手段。 一个系统软件有总的流程图(主程序框图)和局部的流程图。 流程图常采用的图形和符号。 四、编写程序 用89C51汇编语言编写的源程序行(一条语句)包括四个部分,也叫四个字段: 〔标号:〕〔操作码〕〔操作数〕;〔注释〕 每个字段之间要用分隔符分隔,而每个字段内部不能使用分隔符。可以用作分隔符的符号:空格“ ”、冒号“:”、、逗号“,”、分号“;”等。 例:LOOP:MOV A,#00H;立即数00H→A 标号 标号是用户定义的符号地址。 一条指令的标号是该条指令的符号名字,标号的值是汇编这条指令时指令的地址。 标号由以英文字母开始的1~8个字母或数字组成,以冒号“:”结尾。 标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令标号。 操作码 操作码是必不可少的。 它用一组字母符号表示指令的操作码。在89C51中,由89C51的指令助记符组成。 操作数 汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。 若有两个操作数,操作数之间用逗号“,”分开。 操作数包括的内容有: (1)工作寄存器:由PSW.3和PSW.4规定的当前工作寄存器区中的R0~R7。 (2)特殊功能寄存器:21个SFR的名字。 (3)标号名:赋值标号—由汇编指令EQU等赋值的标号;指令标号—指令标号指示的指令的第一字节地址是该标号的值。 (4)常数:可用二进制(B)、十进制、十六进制(H),若常数以字符开头,前面加0。 (5)$:用来表示程序计数器的当前值。 (6)表达式:汇编时,计算出表达式的值填入目标码。 注释 注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。 良好的注释是汇编语言程序编写中的重要组成部分。 §4.1.2 编程的方法和技巧 一、模块化的程序设计方法 二、编程技巧 一、模块化的程序设计方法 1、程序功能模块化的优点 2、划分模块的原则 1、程序功能模块化的优点 单个模块结构的程序功能单一,易于编写、调试和修改。 便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。 程序可读性好,便于功能扩充和版本升级。 对程序的修改可局部进行,其它部分可以保持不变。 对于使用频繁的子程序可以建立子程序库,便于多个模块调用。 2、划分模块的原则 每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。 模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。 模块长度适中。20条~100条的范围较合适。 二、编程技巧 1、尽量采用循环结构和子程序。 2、尽量少用无条件转移指令。 3、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈(返回前再弹出),即保护现场。 4、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。 5、用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。 §4.1.3 汇编语言程序的基本结构 一、顺序程序 二、分支程序 三、循环程序 一、顺序程序 顺序程序是最简单的程序结构,即顺序结构。 程序按顺序一条一条地执行指令。 【例4-1】 双字节加法程序段。设被加数存放于片内RAM的addr1(低位字节)和addr2(高位字节),加数存放于adddr3(低位字节)和addr4(高位字节),运算结果和数存于addr1和addr2中。其程序段如下: START: PUSH ACC ;将A中内容进栈保护 MOV R0,#addr1 ;将addr1地址值送R0
您可能关注的文档
- 辽阳芳烃#1炉整体水压施工方案(修改).doc
- 运输应急方案.doc
- 运输事故主要类型与预防技术.doc
- 运筹学实验一 线性规划求解、运输问题、整数规划求解 2.doc
- 进场道路安全措施.doc
- 迅达四期送电方案.doc
- 进度参考答案.ppt
- 选矿试车方案.doc
- 通信工程安全监督管理的主要工作内容和要求.doc
- 通信工程施工中常见的危险源及应采取的防范措施.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)