单片机(曹丹华)微机实验一.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微机实验》报告 实验名称 KeilC的使用与汇编语言上机操作 专业班级 姓名_______ 学号 U200914186 序号 联系方式 任务要求 1.掌握KeilC环境的使用 1)字节拆分、合并:调试e421.asm程序, 观察相关寄存器和单元的内容。 2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。 2. 编写两个十六位数的加法程序。 有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。 二、设计思路 对于任务要求(1),由于实验代码已知,操作人员只需在Keil软件上进行运行调试,在此不一一赘述,下面仅针对实验要求(2)叙述我的设计思路。 关于编写两个十六位数的加法程序,在低位相加时,直接采用指令ADD然后存数即可,在处理高位时,由于可能存在进位,因此在相加时应采用指令ADDC将被加数、加数、以及低位到高位的进位相加然后存数,而且在处理该问题时应考虑到两个十六位相加可能会出现第十七位,故应另辟一个地址单元存放最高位的数。 三、资源分配 根据此程序的要求。两个十六位无符号数,分别存放在从20H和30H开始的数据区中;和存于R3(高4八位)和R4(低八位),进位位存于R2。 流程图 源代码 (含文件头说明、资源使用说明、语句行注释) File name: test.asm Description: 两个十六位数的加法程序 Date: 2011/9/27 Designed by: ChenXin Source used: 20H: 加数A的低位 21H: 加数A的高位 30H: 加数B的低位 31H: 加数B的高位 R4: 和的低位 R3: 和的高位 R2: 和的进位 ORG 0000H LJMP MAIN ORG 0000H 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 ;将低位相加 MOV R4,A ;其和存入R4中 CLR A ;对累加器A清零 MOV R0,21H ;将A中的高位存入R0中 MOV A,31H ;将B中的高位存入A累加器中 ADDC A,R0 ;将高位以及进位位相加 MOV R3,A ;其和存入R4中 CLR A ;对累加器A清零 ADDC A,#0 ;将进位存入A.7 MOV R2,A ;将进位存入R2.7 SJMP $ END 六、程序测试方法与结果、软件性能分析 手动输入改变两个加数的值,均可得到正确的和。对于不同的加数,分别在调试过程中跟踪A,R4,R3,R2的值,均可得到对应的预期的数值。因此,可以说,该程序的源代码是放心、可靠、经过检验的,该程序是合格的。 七、心得与体会 本次实验,在经历安装Keil、调试已知源代码、编写源代码后,对Keil的运行环境有了一定认知,能够建立一个工程编写一些简单的小程序,并进行相应的调试。同时在学习过程中也加深了我对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。 附 思考题 1.怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly 窗口有何作用? 答:电击调试后,在工作窗左侧的Register中可以清晰的观察到工作寄存器R0-R7、特殊寄存器和PSW各位的空间内容;在右下角Memory1中输入D+片内地址,即可查看片内RAM的空间内容;输入X+片外地址即可查看片外RAM的空间内容;。。。Disassembly窗口的作用是显示程序计数器PC指向的地址。 字节拆分、合并还有哪些方法,举一例说明。 ORG 0000H

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档