《汇编语言程序设计基础》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 汇编语言程序设计基础 * * 7.1 程序设计概述 一、汇编语言程序设计的步骤与方法 1. 程序设计的一般步骤 (1) 分析设计任务,确定算法或思路,明确要达到的工作目的、技术指标等。 (2)程序的总体设计及画程序流程图。 (3)分配内存工作单元,确定程序与数据的存放地址。 (4)编写源程序。 (5)上机调试、修改源程序。 (6)编写文档。 ?程序设计任务书。包括功能要求和指标。 ?程序流程图,存储单元分配清单,源程序清单。 ?应用系统资源分配,参量计算和设计、错误信息的定义。 ?实际功能及指标测试结果说明。 ?程序使用和维护说明书。 2. 程序设计的一般原则 ?按照尽可能使程序简短和缩短运行时间两个原则编写程序。 ?应用程序一般都由一个主程序(包括若干个功能模块)和多个子程序构成,即采用模块化的程序设计方法。 ?每一功能模块或子程序都能完成一个明确的任务,实现某个具体功能,如检测输入信号、码制转换、输出控制信号、发送数据、接收数据、延时、显示、打印等。 3. 模块化程序设计方法的特点 ?单个模块结构的程序功能单一,易于编写、调试和修改。 ?对程序的局部修改,可以使无关的部分保持不变。 ?程序可读性好,便于功能扩展和版本升级。 ?使用频繁的子程序可以建立子程序库,便于多个模块调用。 ?可实现多人同时进行程序的编写和调试工作,缩短程序编写时间。 4. 划分模块应遵循的原则 ?高内聚性。每个模块应具有独立的功能,能产生一个明确的结果。 ?低耦合性。模块之间的控制耦合应尽量简单,数据耦合应尽量少。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换(传递)方式、交换量的多少及交换的频繁程度。 ?模块长度适中。模块语句的长度为20~100条的范围较合适。模块太长时,分析和调试比较困难,失去了模块化程序结构的优越性;过短则模块的连接太复杂,信息交换太频繁。 二、伪指令 1. ORG(Origin)汇编起始指令 功能:是规定对汇编语言源程序进行汇编时,目的程序在程序存储器中存放的起始地址。 格式:ORG 16位地址或标号 注意:在一个源程序中,可多次使用ORG指令,以规定不同程序段的起始位置,地址应从小到大顺序排列,不允许重叠。(P165 例) 2. END(End)汇编结束指令 END是汇编语言程序结束伪指令。 功能:是表示程序已结束,汇编程序对END后面的指令不再汇编。 格式:END 注意:在一个源程序中,只能有一条END指令,而且必须放在整个程序的末尾。 3. EQU(Equate)赋值指令 EQU是赋值(也称等值)伪指令 。 功能:把操作数段中的数据或地址赋值给标号字段中的字符名称 。 格式:字符名称 EQU 数值或汇编符号 注意:字符名称必须先赋值后使用,故EQU指令通常放在源程序的开头。 EQU可定义8位或16位的数据或地址, 例如:CNT EQU 30H ;CNT与30H等值 … MOV A,CNT ;把片内RAM30H单元中的数据送入A MOV A,#CNT ;把数30H送入累加器A中 4.BIT(Bit)位地址赋值指令 BIT是位地址赋值伪指令 。 功能:把位地址赋给字符名称 。 格式:字符名称 BIT 位地址 例如: K1 BIT 00H K2 BIT 20H.1 K3 BIT P1.0 … MOV C,K1 CLR K3 ;将P1.0清零 5.DB(Define Byte)定义字节指令 DB是定义字节伪指令 。 功能:从程序存储器指定地址单元开始存放若干个字节的数值或ASCII码字符 。 格式:[标号:] DB 字节数据或ASCII码字符 注意:多个字节数据或ASCII码字符之间要用逗号相隔,DB指令常用于定义8位的数据常数表。 例如: ORG 1000H TAB: DB 0A0H,60,A DB ,6 6.DW(Define Word)定义字指令 DW是定义字伪指令 。 功能:从程序存储器指定地址单元开始存放若干个字的数值 。 格式: [标号:] DW 字节数据或ASCII码字符 注意:多个字数据之间要用逗号相隔,DW指令常用于定义16位的地址表。 例如: ORG 1000H TAB: DW 10D0H,3550H,0F500H 00H F5H 50H 35H D0H 10H 1005H 1004H 1003H 1002H 1001H 1000H

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档