实验一KeilC的使用和汇编语言上机操作实验报告.docVIP

实验一KeilC的使用和汇编语言上机操作实验报告.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档