- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三次分支与循环程序设计
汇编语言程序设计实验
实验六 分支程序设计
实验目的
进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
掌握分支结构程序设计的方法。
学会用条件转移指令、CJNE、JMP及其配合使用来编写二分支、三分支和多分支程序。
实验内容
二分支的条件转移程序
设变量X存放于R0,函数值Y存放在R1,其中X、Y均为二进制数。试按照下式的要求给Y赋值:
Y= 1 X0 0 X=0 -1 X0
程序框图如图3-5所示:
:
三、实验步骤
根据实验内容和参考程序流程图,编出相应的分支结构程序。
输入程序,汇编成功;
用F4(执行到光标处)、F7(跟踪执行)、F8(单步执行)或断点运行等方式调试程序;
观察程序的流程,记录运行结果。
四、思考题
CJNE指令对CY 有影响吗?用CJNE 和JC/JNC指令配合应注意什么?
在用JMP 指令前,若变址(255怎么办?
2.用什么指令可以实现多分支之间的隔离?
五、实验报告要求
写出题目运行结果。
六、参考程序清单
1、二分支的条件转移程序
用二分支结构程序实现:
ORG 0000H
AJMP 0050H
ORG 0050H
MAIN:
MOV A,R0
JZ LOAD
JNB ACC.7,GO
MOV A,#0FFH
SJMP LOAD
GO:
MOV A,#01H
LOAD:
MOV R1,A
SJMP $
END
2)用三分支结构程序实现:
ORG 0000H
AJMP 0050H
ORG 0050H
MAIN:
MOV A,R0
JNZ COMP
MOV R1,#00H
SJMP MP3
COMP:
CJNE R0,#80H,MP1
MOV R1,#0FFH
LJMP MP3
MP1:
JC MP2
MOV R1,#0FFH
LJMP MP3
MP2:
MOV R1,#01H
MP3:
SJMP $
END
实验七 循环程序设计
一、实验目的
进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。
掌握典型算法:冒泡排序法。
实验内容
设计循环程序:冒泡法排序。
具体要求:设单片机8031外部RAM从3600H单元开始存放10个无符号数,试编写程序能使它们按从大到小的顺序排列(最大数存放在3600H单元)。
实验步骤
输入预先编好的程序,汇编成功;
用自动单步方式执行程序,观察循环计数器的变化情况。
用断点运行方式调试排序程序,记录排序过程。
参考流程图
程序流程图如图3-7所示。
五、循环结构程序参考清单:
冒泡法排序法参考程序清单:
ORG 0000H
AJMP 0050H
ORG 0050H
MAIN:
MOV PSW,#00H
MOV P2,#36H
MOV R2,#10-1
LPP0:
MOV R0,#00H
MOV R1,#01H
MOV 03H,R2
CLR 7FH
LPP1:
MOVX A,@R0
MOV 30H,A
MOVX A,@R1
CJNE A,30H,LPP2
SJMP LL1
LPP2:
JC LL1
MOVX @R0,A
XCH A,30H
MOVX @R1,A
SETB 7FH
LL1:
INC R0
INC R1
DJNZ R3,LPP1
JNB 7FH,LPP3
DJNZ R2,LPP0
LPP3:
SJMP $
END
六、思考题
1、若用DJNZ或CJNE指令来控制循环,编写程序有什么不同?
2、如何将排序程序修改为只用一个指针?
3、将无符号数排序程序修改为带符号数排序。
文档评论(0)