- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机原理及应用实验三报告
电 子 科 技 大 学
实 验 报 告
课程名称 单片机原理及应用
实验名称 实验三:运算类程序实验
指导教师 唐续 学生姓名 学 号
实验地点:清水河校区科B451 实验时间 2015年4月12日
一、实验目的
⒈ 掌握使用运算类指令编程及程序调试的方法。
⒉ 掌握运算类指令对各状态标志的影响及其测试方法。
⒊ 学习子程序的使用。
二、实验内容
多字节十进制加法:编制程序实现两个4位十进制数的相加,其中20H、21H分别放置被加数的高字节和低字节;30H、31H为加数的高字节和低字节。
参考程序如下:
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV 81H, #50H
MOV R0, #20H
MOV @R0, #45H
INC R0
MOV @R0, #74H
MOV R1, #30H
MOV @R1, #67H
INC R1
MOV @R1, #28H
CLR C
MOV R2, #2H
L2: ACALL L1
DEC R0
DEC R1
DJNZ R2, L2
CLR A
MOV ACC.0, C
MOV @R0, A
L3: SJMP L3
L1: MOV A,@R0
ADDC A,@R1
DA A
MOV @R0,A
RET
END
三、实验步骤
1.输入汇编语言源程序;
2.对源程序进行编译并加载运行;
3.观察RAM中存放运算结果的单元,判断结果是否正确;
4.修改程序,使其能进行五位十进制数的相加运算,并考察程序的正确性。
四、实验结果
由伟福仿真软件仿真得到,(19H)=01,(20H)=13,(21H)=02
五、结果分析
由于存放于20H和21H单元中的四位十进制数是4574,存放于30H和31H单元中的四位十进制数是6728,所以两者相加结果是11302,与由软件仿真而得到的结果相同,说明仿真结果正确,程序正确。
六、实验思考题
1. 仔细阅读理解参考程序后,画出程序的流程框图。
2. 若需要对五位十进制数相加,程序需作何修改?
分析:只需要将五位十进制数的最高位存入19H单元中,被加数和加数相加,并进行十进制加法调整,则最终的进位存放在19H单元的高字节区,所以只要将原程序中的
CLR A
MOV ACC.0, C
MOV @R0, A
删除,并修改五位地址单元的赋值即可实现,修改后的程序如下所示:
ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV 81H, #50H
MOV R0, #1FH
MOV @R0, #06H
INC R0
MOV @R0, #45H
INC R0
MOV @R0, #74H
MOV R1,#2FH
MOV @R1, #05H
INC R1
MOV @R1, #67H
INC R1
MOV @R1, #28H
CLR C
MOV R2, #03H
L2: ACALL L1
DEC R0
DEC R1
DJNZ R2, L2
CLR A
L3: SJMP L3
L1: MOV A,@R0
ADDC A,@R1
DA A
MOV @R0,A
RET
END
程序运行设置被加数为64574和加数为56728,则运行结果为121302,表明程序正确。
3. 运算的结果存放在哪些单元中?
运算结果存于19H,,20H,,21H单元中,其中19H存放进位数据,20H存放高字节数据,21H存放低字节数据。
1
程序赋初始地址值
跳转到主程序
给被加数赋字节地址和所存数
给加数赋字节地址和所存数
清零进位标志C=0
置循环次数为N=2
进入L2,调用L1,进行十进制加法
文档评论(0)