单片机4、汇编语言程序设计.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机4、汇编语言程序设计

第四章 汇编语言程序设计 4-1 汇编程序约定 汇编语言程序: 用汇编语言编写的、完成特定功能的指令序列。 汇编程序: 能将汇编语言源程序转换成机器语言目标程序的系统软件。 源程序使用机器汇编要考虑汇编程序的约定 汇编的主要任务: 1)确定程序中每条汇编语言指令的指令机器码。 2)确定每条指令在存储器中的存放地址。 3)提供错误信息。 4)提供目标执行文件(*.OBJ/*.HEX)和列表文件(*.LST)。 二.汇编控制指令(伪指令) 汇编控制指令(伪指令) 常用伪指令及其功能: 1. ORG—起始地址指令:指明程序和数据块起始地址。 指令地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,@R0 … ORG 3000H 3000H 23 DB 23H,100,‘A’ 3001H 64 3002H 41 4. EQU —等值。为标号或标识符赋值。 X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ADD A,#X2 5. END —结束汇编指令。 例:START: … … END START 4-2 汇编语言程序设计步骤 一.确定方案和计算方法 二.了解应用系统的硬件配置、性能指标。 三.建立系统数学模型,确定控制算法和操作步骤。 四.画程序流程图 表示程序结构和程序功能 常用程序结构: 直线程序、分支程序、循环程序、子程序 4-3 直线程序 直线程序又称简单程序,程序走向只有一条路径。 例 压缩式BCD码分解成为单字节BCD码。 MOV R0,#40H ;设指针 MOV A,@R0 ;取一个字节 MOV R2,A ;暂存 ANL A,#0FH ;清0高半字节 INC R0 MOV @R0,A ;保存数据个位 MOV A,R2 SWAP A ;十位换到低半字节 ANL A,#0FH INC R0 MOV @R0,A ;保存数据十位 4-4 分支程序 由条件转移指令构成程序判断框部分,形成程序分支结构。 4-4-1 单重分支程序 一个判断决策框,程序有两条出路。 两种分支结构: 例:行李计价:当G≤5,M=G×3; 当G>5,M=G×3+(G-5)×(5-3) FRT: MOV A,40H ;取行李重量G MOV R3,A ;G暂存R3中 MOV B,#03H ;M=G×3 MUL AB MOV R2,A ;暂存3G到R2 MOV A,R3 ;取回G CJNE A,#05H,L1;G≤5 ? SJMP WETC L1: JC WETC ;是,转至WETC SUBB A,#05H ;否则M=3G+2(G-5) RLC A ADD A,R2 SJMP LOOP WETC: MOV A,R2 ;3G到A LOOP: MOV 41H,A ;存结果M到41H RET 4-4-2 多重分支程序 一.多次使用条件转移指令,形成两个以上判断框。 例 求符号函数Y=SGN(X) +1 当 X0 SGN(X)= 0 当 X=0 -1 当 X0 二.按分支号转移 如:分支号=0,程序转移到ADDR0处;当分支号=1,程序转移到ADDR1处;… 。 4-5 循环程序 包含多次重复执行的程序段,循环结构使程序紧凑。 4-5-1 循环程序的构成 4-5-2 单重循环 简单循环结构:循环体中不套循环。 例:求n个单字节数据的累加和. 设数据串在43H起始的单元,数据串长度在42H单元,累加和不超过2个字节,存在40H和41H中。 例 比较两个数据串是否完全相等,若完全相等,A=0;否则A=FFH。 PMT: MOV R2,A ;设数串长度 CHC: MOV A,@R0 ;各取数串中的一个数 MOV 42H,@R1 CJNE A,42H,NOM ;是否相等?不相等转移 INC R0 ;相等,修改指针 INC R1 DJNZ R2,CHC ;全部比较完? MOV A,#0 ;完全相等 SJMP PEND NOM: MOV A,#0FFH ;不

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档