《微机实验》报告
一、任务要求
1掌握KeilC环境的使用1)字节拆分、合并:调试e421asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fillasm程序,观察相关寄存器和单元的内容。2编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
二、设计思路
对于任务1,可直接创建工程模拟运行程序,调试查看结果;对于任务2,可用加法指令ADD,但是考虑到高位存在进位,所以采用ADDC指令加法。
三、资源分配
假设两个十六位无符号数存放在从20H和30H开始的区域中,它们加法后的高位存放在R3寄存器,低位存放在R4寄存器,进位存放在R2寄存器。
四、流程图
开始清零A
进位C清零低位相加和存在R3定义两个十六位无符号数进位存在R2低位相加,进位存在C和存在R4
结束
五、源代码(含文件头说明、资源使用说明、语句行注释)
File
ame16位加法asmSourceused20HA的低位21HA的高位30HB的低位31HB的高位R3和的高位
fR4和的低位R2进位ORG0000HLJMPMAINORG0100HMAINCLRCMOV20H10HMOV21H2AHMOV30H21HMOV31H00HMOVR020HMOVA30HADDCAR0MOVR4ACLRAMOVR021HMOVA31HADDCAR0MOVR3ACLRAADDCA0MOVR2ASJMPEND
把两个数的高低位地址赋值A低位给R0B低位给AAB低位相加,进位存在C和存在R4A高位给R0B高位给AAB低位相加和存在R3进位存在A进位存在R2
六、程序测试方法与结果、软件性能分析
在KeilC环境下模拟仿真没有发现错误跟踪AR2R3R4的值都没有发现错误说明程序是可行的。
七、心得与体会
这是单片机的第一次上机实验,对于Keil软件的安装到初步使用有了大致的了解,对于实验的编程,发现现场编写速度很慢,这说明自己对于上课学的知识还不够了解,基础不扎实,同时在程序查错的过程中花费了很多时间,后来发现在程序查错时,跟踪程序中的寄存器的值得变化时查错的一个不错的方法,可以很大的减少找错花的时间。同时,自己平时也要多联系编程,这样才能熟悉软件,减少错误发生率。
八、思考题
1.怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly窗口有何作用?开始DeBug之后,在Register窗口可以查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容。Disassembly窗口可查看程序机器码。3若按递减1规律填充数据块,应如何修改程序?
fORG0000HLJMPMAINORG0100HMAINMOVSP40HFILLMOVA0Fr