资源描述:
《实验一keilc的使用与汇编语言上机操作实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《微机实验》报告一、任务要求1.掌握KeilC环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。2.编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。二、设计思路对于任务1,可直接创建工程模拟运行程序,调试查看结果;对于任务2,可用加法指令ADD,但是考虑到高位存在进位,所以采用ADDC指令加法。三、资源分配假设两个十六位无符号数存放在从20H和30H开
2、始的区域中,它们加法后的高位存放在R3寄存器,低位存放在R4寄存器,进位存放在R2寄存器。四、流程图开始清零A进位C清零低位相加和存在R3定义两个十六位无符号数进位存在R2低位相加,进位存在C,和存在R4结束五、源代码(含文件头说明、资源使用说明、语句行注释)Filename:16位加法.asmSourceused:20HA的低位;21HA的高位;30HB的低位;31HB的高位;R3和的高位;R4和的低位;R2进位ORG0000HLJMPMAINORG0100HMAIN:CLRCMOV20H,#10HMOV21H,#2AHMOV30H,#21HMOV31H,#00H;把两个
3、数的高低位地址赋值MOVR0,#20H;A低位给R0MOVA,30H;B低位给AADDCA,R0;AB低位相加,进位存在CMOVR4,A;和存在R4CLRAMOVR0,21H;A高位给R0MOVA,31H;B高位给AADDCA,R0;AB低位相加MOVR3,A;和存在R3CLRAADDCA,#0;进位存在AMOVR2,A;进位存在R2SJMP$END六、程序测试方法与结果、软件性能分析在KeilC环境下模拟仿真没有发现错误,跟踪A,R2,R3,R4的值都没有发现错误,说明程序是可行的。七、心得与体会这是单片机的第一次上机实验,对于Keil软件的安装到初步使用有了大致的了解,
4、对于实验的编程,发现现场编写速度很慢,这说明自己对于上课学的知识还不够了解,基础不扎实,同时在程序查错的过程中花费了很多时间,后来发现在程序查错时,跟踪程序中的寄存器的值得变化时查错的一个不错的方法,可以很大的减少找错花的时间。同时,自己平时也要多联系编程,这样才能熟悉软件,减少错误发生率。八、思考题1.怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly窗口有何作用?开始DeBug之后,在Register窗口可以查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容。Disassembly窗口可查看程序机器码。3.若按递减
5、1规律填充数据块,应如何修改程序?ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HFILL:MOVA,#0FFHMOVR0,#00HMOVDPTR,#7020HFILL1:MOVX@DPTR,ADECAINCDPTRINCR0CJNER0,#00H,FILL1HERE:SJMPHEREEND5.若完成双字节BCD码加法,应如何修改程序?ORG0000HLJMPMAINORG0100HMAIN:CLRCMOV20H,#00HMOV21H,#01HMOV30H,#10HMOV31H,#11HMOVR0,#20HMOVA,30HADDA,R0DAAM
6、OV40H,ACLRAMOVR0,21HMOVA,31HADDA,R0MOV41H,ASJMP$END