- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一KeilC的使用和汇编语言上机操作实验报告
《微机实验》报告
一、任务要求
1.掌握KeilC环境的使用
1)字节拆分、合并:调试e421.asm程序, 观察相关寄存器和单元的内容。
2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。
2. 编写两个十六位数的加法程序。
有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
二、设计思路
对于任务1,可直接创建工程模拟运行程序,调试查看结果;
对于任务2,可用加法指令ADD,但是考虑到高位存在进位,所以采用ADDC指令加法。
三、资源分配
假设两个十六位无符号数存放在从20H和30H开始的区域中,它们加法后的高位存放在R3寄存器,低位存放在R4寄存器,进位存放在R2寄存器。
四、流程图
开始
清零A
进位C清零
低位相加和存在R3
定义两个十六位无符号数
进位存在R2
低位相加,进位存在C, 和存在R4
结束
五、源代码 (含文件头说明、资源使用说明、语句行注释)
File name: 16位加法.asm
Source used: 20H A的低位;
21H A的高位;
30H B的低位;
31H B的高位;
R3 和的高位;
R4 和的低位;
R2 进位
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: CLR C
MOV 20H,#10H
MOV 21H,#2AH
MOV 30H,#21H
MOV 31H,#00H ;把两个数的高低位地址赋值
MOV R0,#20H ;A低位给R0
MOV A,30H ;B低位给A
ADDC A,R0 ;AB低位相加,进位存在C
MOV R4,A ;和存在R4
CLR A
MOV R0,21H ;A高位给R0
MOV A,31H ;B高位给A
ADDC A,R0 ;AB低位相加
MOV R3,A ;和存在R3
CLR A
ADDC A,#0 ;进位存在A
MOV R2,A ;进位存在R2
SJMP $
END
六、程序测试方法与结果、软件性能分析
在KeilC环境下模拟仿真没有发现错误,跟踪A,R2,R3,R4的值都没有发现错误,说明程序是可行的。
七、心得与体会
这是单片机的第一次上机实验,对于Keil软件的安装到初步使用有了大致的了解,对于实验的编程,发现现场编写速度很慢,这说明自己对于上课学的知识还不够了解,基础不扎实,同时在程序查错的过程中花费了很多时间,后来发现在程序查错时,跟踪程序中的寄存器的值得变化时查错的一个不错的方法,可以很大的减少找错花的时间。同时,自己平时也要多联系编程,这样才能熟悉软件,减少错误发生率。
八、思考题
怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly 窗口有何作用?
开始DeBug之后,在Register窗口可以查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容。Disassembly 窗口可查看程序机器码。
3. 若按递减1规律填充数据块,应如何修改程序?
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#40H
FILL: MOV A,#0FFH
MOV R0, #00H
MOV DPTR, #7020H
FILL1: MOVX @DPTR, A
DEC A
INC DPTR
INC R0
CJNE R0, #00H, FILL1
HERE: SJMP HERE
END
5. 若完成双字节BCD码加法,应如何修改程序?
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: CLR C
MOV 20H,#00H
MOV 21H,#01H
MOV 30H,#10H
MOV 31H,#11H
MOV R0,#20H
MOV A,30H
ADD A,R0
DA A
MOV 40H,A
CLR A
MOV R0,21H
MOV A,3
您可能关注的文档
- 安徽省环保产业技术发展指南(2010_2015).doc
- 安徽省青年度美术家协会入会申请表.doc
- 安徽省公共安全技术防范管理细则[续].doc
- 安徽省蚌埠市第1中学“蚌埠少年智慧少年读起来”策划方案.doc
- 安抚自己好句子感情工作生活.doc
- 安林财务情况说明.doc
- 安易王V8软件说明1.doc
- 安提瓜及巴布达客车组装厂项目可行性报告.doc
- 安格企业的特征和与其它电子商务的区别.doc
- 安徽省合肥市拍卖典当公司大全[共130家].docx
- 中国行业标准 GM/T 0126-2023HTML密码应用置标语法.pdf
- 《JJF 2121-2024恒转速源校准规范》.pdf
- 餐饮服务中20条处理要点.docx
- 《GM/T 0011-2023可信计算 可信密码支撑平台功能与接口规范》.pdf
- 《JJF 2134-2024旋转流变仪校准规范》.pdf
- JJF 2121-2024恒转速源校准规范.pdf
- 计量规程规范 JJF 2121-2024恒转速源校准规范.pdf
- 《JJF 2118-2024压力式六氟化硫气体密度控制器校验仪校准规范》.pdf
- JJF 2134-2024旋转流变仪校准规范.pdf
- 计量规程规范 JJF 2134-2024旋转流变仪校准规范.pdf
文档评论(0)