1 / 32
文档名称:

微机实验报告心得.doc

格式:doc   大小:63KB   页数:32页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

微机实验报告心得.doc

上传人:raojun00001 2019/6/5 文件大小:63 KB

下载得到文件列表

微机实验报告心得.doc

文档介绍

文档介绍:微机实验报告心得篇一:微机实验报告《微机实验》报告实验名称:keilc的使用与汇编语言上机操作一、任务要求实验目的:熟悉keilc环境,通过在keilc环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对bcd码、ascii码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。实验内容:)字节拆分、合并:,观察相关寄存器和单元的内容。2)数据块填充:,观察相关寄存器和单元的内容。。有两个十六位无符号数,分别存放在从20h和30h开始的数据区中,低八位先存,高八位在后,和存于r3(高八位)和r4(低八位),进位位存于r2。二、设计思路实验1中的两个实验,已经给出了程序代码,,无需再进行设计。下面阐述实验2的设计思路:对于该程序,在处理低位相加时,直接采用指令add,然后存数,在处理高位时,考虑到可能存在进位,所以在相加时,应使用指令addc将被加数、加数以及低位到高位的进位相加然后存数。此外,在处理该问题时,还应考虑到两个十六位相加可能会出现第十七位,所以要另外安排一个地址单元用来存放最高位的数。三、资源分配两个十六位无符号数,分别存放在从20h和30h开始的数据区中;和存于r3(高4八位)和r4(低八位);进位位存于r2。四、流程图四、源代码(含文件头说明、资源使用说明、语句行注释)filename::两个十六位数的加法程序date:2012/09/26designedby:zhangbosourceused:20h:加数a的低位21h:加数a的高位30h:加数b的低位31h:加数b的高位r4:和的低位r3:和的高位r2:0000hmain:clrc;将进位位清零mov20h,#10h六、程序测试方法与结果、软件性能分析手动输入两个加数的值,可得到正确的和,多改变几次,皆正确。对于不同的加数,分别在调试过程中跟踪a,r4,r3,r2的值,皆可得到预期数值。所以,可以说,该程序的源代码是合理正确的,该程序合格,本实验取得成功。软件性能良好。思考题:、sfr、片内ram、片外ram及程序代码空间内容?disassembly窗口有何作用?选择debug下的start/stopdebugsession,在界面的左侧会出现程序代码的空间内容。mov21h,#2ahmov30h,#21hmov31h,#00hmovr0,20h;将a中的地位存入r0中mova,30haddca,r0movr4,aclra;将b中的地位存入a累加器中;将低位相加;其和存入r4中;对累加器a清零movr0,21h;将a中的高位存入r0中mova,31h;将b中的高位存入a累加器中addca,r0;将高位以及进位位相加movr3,a;其和存入r4中clra;对累加器a清零addca,#0;,a;$、合并还有哪些方法,0100hmain:movsp,#40h;赋堆栈指针mov30h,#49h;30h单元赋值movr0,#32h;r0指针赋值******@r0,30h;将30h中的内容copy到32h中mova,f0h;累加器a赋值anla,30h;,应如何修改程序?在原程序中修改,从main开始,第三行改为movr0,#ffh第四行改为movdptr,#70ffh第六行改为deca第七行改为decdptr第八行改为decr0第九行改为cjner0,#ffh,,连续填充10个字节,应该如何修改程序?不妨将10-19送入7020h-7029单元中,main:movsp,#40h0100hfill:mova,#10;将10h送入累加器a中movr0,#10h;设循环计数器movdptr,#7020h;设数据指针fill1:******@dptr,aincainc;传送到片外ram;a内容加1;修改数据指针;判断是否结束dptrdjner0,fill1here:sjmphere;,应如何修改程序?不妨设加数分别存于30h-31h、40h-41h中,低位在前高位在后,各单元均为压缩的bcd码。将和存入50h-51h中。其程序片段如下:...mova,30hadda,40hdaamov50h,a;低2位bcd码之和存入50hmova,31hadda,41hdaamov51h,a;高