- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与应用第4章
第四章 汇编语言程序设计 §4-1 汇编语言程序设计基本概念 §4-2 汇编语言程序的基本结构形式 §4-1 汇编语言程序设计基本概念 一、MCS-51指令操作数说明 1、语句格式 [标号:] 操作码 [操作数(目的操作数,源操作数)] [;注释] 2、操作数 对于立即数 #data (1)立即数188,可表示为 、#0BCH、#188 (2)MOV DPTR,# BLOCK;BLOCK为定义过的标号地址 对于直接地址 direct (1)二进制、十进制、十六进制数,MOV A,30H (2)定义过的标号地址,AGAIN:SJMP AGAIN (3)表达式,如SUM+2,其中SUM为定义过的标号地址 (4) SFR寄存器名,如SP、DPH、DPL等 对于偏移量 rel (1)可以是数值、标号地址、表达式 (2)使用特殊符号“$”,它代表本条转移指令所在的地址, 如LJMP $(死循环) (3)实际编程时,凡指令中用到地址(rel、 addr11 、addr16等)都可用标号地址代替实际地址,而地址的运算有汇编程序完成。 二、常用伪指令 汇编:将计算机不可直接识别的汇编语言源程序翻译成机器语 言的过程。分为计算机汇编和人工汇编两种。 汇编程序:具有完成汇编功能的程序。 目标程序:汇编语言源程序经过汇编得到的机器语言程序。 伪指令:提供汇编用控制信息的指令,只能被汇编程序所识别, 不是单片机的CPU可执行的指令。 1、定位伪指令ORG(Origin) 格式: [标号:] ORG m m:16位二进制数,代表地址。 功能:得到机器语言程序的起始地址。 2、定义字节伪指令DB(Define Byte) 格式:[标号:] DB X1,X2,~Xn Xn:单字节二进制、十进制、十六进制数,或以‘ ’括起来的字符串,数据符号。 功能:定义程序存储器从标号开始的连续单元,用来存放常 数、字符和表格。 ? 3、定义字伪指令DW(Define Word) 格式:[标号:] DW Y1,Y2,~Yn Yn:双字节二进制、十进制、十六进制数,或以‘ ’括起来的 字符串,数据符号。 功能:同DB,不同的是为16位数据。 4、汇编结束命令END 格式:[标号:] END 功能:END是汇编语言源程序的汇编结束标志,在它后面所 写的指令均不予处理。 ? 5、等值命令EQU 格式:字符名称 EQU 数或汇编符号 功能:将一个数或特定的汇编符号赋予规定的字符名称。先 定义后使用。 三、汇编语言程序的结构 1、程序设计的基本步骤 一般步骤为: (1)分析题意,明确要求; (2)建立思路,确定算法; (3)编制框图,绘出流程; (4)编写程序,上机调试; 程序结构有简单顺序、分支、循环和子程序等 2、画流程图 画流程图是指用各种图形、符号、指向线等来说明程序 设计的过程。国际通用的图形和符号说明如下: 椭圆框:起止框,在程序的开始和结束时使用。 矩形框:处理框,表示要进行的各种操作。 菱形框:判断框,表示条件判断,以决定程序的流向。 指向线:流程线,表示程序执行的流向。 圆 圈:连接符,表示不同页之间的流程连接。 各种几何图形符号如下图所示。 §4-2 汇编语言程序的基本结构形式 ? 一、简单程序的设计 例4-1 已知两个压缩BCD码分别放在内部RAM的31H30H和33H 32H等4个单元中,试编程求和,结果存入R4R3R2中。 分析:流程如图: 程序如下: ORG 0000H LJMP MAIN ORG 0040H MAIN: MOV A,30H ADD A,32H DA A MOV R2,A MOV A,31H ADDC A,33H DA A MOV R3,A CLR A MOV ACC.0,C MOV R4,A HERE: SJMP HERE END 二、分支程序设计 1、单分支程序 单分支结构程序使用转移指令实现,即根据条件对程序的执行进行判断,满足条件是转移执行,否则顺序执行。 在MCS-51指令系统中条件转移指令有: (1)判A转移指令JZ、JNZ; (2)判位转移指令JB、JNB、JBC、JC、JNC; (3)比较转移指令CJNE; (4)减1不为0转移指令DJNZ; 例4-2 假定在外部RAM中有100H、10
文档评论(0)