- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 MCS51汇编语言程序设计课件
第5章 MCS-51汇编语言程序设计;本章主要内容;5.1 概述;5.2 伪指令;MCS-51系列单片机的常用伪指令;(1) 定位伪指令 ORG
格式: ORG 16位地址
功能: 规定程序块或数据块存放的起始地址。
如: ORG 8000H
START: MOV A, #30H
规定“MOV A, #30H”指令从地址8000H单元开始存放,即标号START的值为8000H;(2)汇编结束伪指令 END;(3) 赋值伪指令 EQU;(4) 定义字节数据伪指令 DB;(5) 定义字数据伪指令 DW;(6) 定义空间伪指令 DS;(7)位定义指令 BIT;5.3 汇编语言程序设计概述;常用流程图中的符号包括:
(1)起始框,形状为 ,用来表示过程的开始和结束。
(2)处理框,形状为 ,用来表示某种处理和运算。
(3)判断框,形状为 ,用来判断并测试某条件是否满足。
(4)流程线,形状为 ,用来表示流程图的路径和方向。
(5)换页连接点,形状为О ,当流程图在一页上画不完时,为了确保流程的完整准确,在相应的连接处画上相同的符号,以表示流程图从这里向页外某个地方(出口点)或从本页流程图外某一个地方流入这里(入口点)。;MCS-51汇编语言源程序的一般结构;START: …… ;主程序开始
……
LCALL SUB1
LCALL SUB2
……
LJMP START ;循环执行主程序或者暂停
SUB1: …… ;子程序SUB1
……
RET
SUB2: …… ;子程序SUB2
……
RET
INT_0: …… ;中断服务程序INT_0
……
RETI
TAB: DB …, …, … ;定义数据表
DB …, …, …
END ;汇编结束
; 5.4 顺序结构;(3)编写源程序
参考程序:
ORG 1000H
MOV A,22H ;A←(22H)
ADD A,32H;A←(22H)+(32H)
DA A ;BCD码调整
MOV 42H,A ;存结果低位
MOV A,23H ;A←(23H)
ADDC A,33H ;A←(23H)+(33H)+CY
DA A ;BCD码调整
MOV 43H,A ;结果存高位
SJMP $
END ;汇编结束
;【例】 双字节变补程序(设数据在R4R5中)。
请分析解决步骤,画出程序流图。
参考程序:
MOV A,R5 ;取低字节
CPL A
ADD A,#01H ;低字节变补
MOV R5,A
MOV A, R4 ;取高字节
CPL A
ADDC A,#00H ;高字节变补
MOV R4,A ;5.5 分支结构;分支程序结构图;?1、单分支程序
使用条件判断实现程序单分支的指令有:
(1)字节状态判断:JZ、JNZ、CJNE和DJNZ。
(2)位状态判断:JC、JNC、JB、JNB和JBC。
使用这些指令,可以完成对0、正负、大小、溢出、状态等各种条件判断。;【例】假设有两个数在内部RAM 单元的40H 和41H 中,现在要求找出其中较大的一个数,并将较大的数存入40H 中,而将较小的一个数存入41H 中。
分析:根据程序的要求,画出程序的流程图如右图所示,编写程序如下:;【例】设40H单元存放的是一有符号数,求它的绝对值存到41H单元。
分析:有符号数的最高位是符号位,如果符号位是1,则是负数,取反加一可以得到绝对值;如果符号位是0,则是正数,保持不变。;2、多分支程序
多分支又称散转程序,在单片机应用程序开发中经常会遇到程序多分支散转情况,所以散转程序设计技术是开发者需要掌握的。
(1)多次使用条件转移,以转向不同的分支入口
;【例】求符号函数Y=SGN(X)。
+1 (当 X0)
SGN(X)= 0 (当 X=0)
-1 (当 X0)
分析:程序流程图如右
?参考程序:
SYMB: MOV A,40H ;取X
JZ STOR ;A=0转stor
JB ACC.7,MINUS
MOV A,#01H ;X>0,Y=+1
SJMP STOR
MINUS:MOV A,#0FFH ;X<0,Y= -1
STOR: MOV 41H, A ;保存Y
RET
;【例】某温度控制系统,采集的温度值(Ta)放在累加器A中。此外,在内部RAM30H单元存放控制温度下限值(Tmin),在31H单元存放控制温度上限值
文档评论(0)