微机实验一华科大

微机实验一华科大

ID:14273360

大小:56.00 KB

页数:7页

时间:2018-07-27

微机实验一华科大_第1页
微机实验一华科大_第2页
微机实验一华科大_第3页
微机实验一华科大_第4页
微机实验一华科大_第5页
资源描述:

《微机实验一华科大》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《微机实验》报告实验名称KeilC的使用与汇编语言上机操作指导教师曹丹华专业班级光电1103姓名刘洒学号U201115011序号联系方式15527838334一、任务要求1.掌握KeilC环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。2.编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。二、设计思路对于任务要求

2、1,由于实验代码已由老师给出,实验者只需在Keil软件上进行运行调试,在此不一一赘述,仅将程序调试结果截图附录余下。字节拆分、合并程序Filename:e421.asmDescription:1字节BCD码转换为2字节ASCII2字节ASCII码转化为1字节BCD码Date:Designedby:Sourceused:30H:BCDdata31H,32H:ASCIIdata31H,32H->33HORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40H;赋堆栈指针MOV30H,#49H;30H单元赋值MOVR0,

3、#32H;R0指针赋值MOV@R0,#0;32H单元清零MOVA,30HXCHDA,@R0;拆分字节ORL32H,#30H;转换为ASCIISWAPAORLA,#30H;转换为ASCIIMOV31H,A;结果存于31H单元MOVA,31H;从31H单元取值ANLA,#0FH;转换为BCDSWAPAMOV33H,A;结果存于33H单元MOVA,32H;从32H单元取值ANLA,#0FH;转换为BCDORL33H,A;合并字节HERE:SJMPHERE;踏步END数据块填充程序:将片外RAM7000H-70FFH单元按一定规律填充File

4、name:fill.asmDate:2011.8.20Designedby:CDHSourceused:R0:计数器DPTR:片外数据指针ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HFILL:CLRA;A寄存器清零MOVR0,#00H;设循环计数器MOVDPTR,#7000H;设数据指针FILL1:MOVX@DPTR,A;传送到片外RAMINCA;A内容加1INCDPTR;修改数据指针INCR0;修改循环计数器CJNER0,#00H,FILL1;判断是否结束HERE:SJMPHERE;原地踏步END下

5、面对于实验要求2(编写两个十六位数的加法程序。)叙述我的设计思路。要编写两个十六位数的加法程序:1.在低位相加时,直接采用指令ADD然后存数即可。2.在处理高位时,由于存在进位的可能性,因此在相加时应采用指令ADDC将被加数、加数、以及低位到高位的进位全部相加然后存数。3.最后应该考虑到两个十六位数相加,其和可能超出十六位数所能表示的范围,故应另分配一个地址单元存放最高位的数,然后再执行相加操作。三、资源分配根据此程序的要求。两个十六位无符号数,分别存放在从20H和30H开始的数据区中;和存于R3(高4八位)和R4(低八位),进位位存

6、于R2。开始四、流程图赋值存数低位相加,其和存入R4高位相加,其和存入R3低位相加所产生进位Cy存入R2结束四、源代码(含文件头说明、资源使用说明、语句行注释)Filename:test.asmDescription:两个十六位数的加法程序Date:2013/9/27Designedby:liusaSourceused:20H:加数A的低位21H:加数A的高位30H:加数B的低位31H:加数B的高位R4:和的低位R3:和的高位R2:和的进位ORG0000HCLRC;将进位位清零MOV20H,#10H;存数操作MOV21H,#2AHMO

7、V30H,#21HMOV31H,#00HMOVR0,20H;将A中的低位存入R0中MOVA,30H;将B中的低位存入A累加器中ADDA,R0;将低位相加MOVR4,A;其和存入R4中CLRA;对累加器A清零MOVR0,21H;将A中的高位存入R0中MOVA,31H;将B中的高位存入A累加器中ADDCA,R0;将高位以及进位位相加MOVR3,A;其和存入R4中CLRA;对累加器A清零ADDCA,#0;将进位存入AMOVR2,A;将进位存入R2SJMP$END相应程序运行结果截图如下:六、程序测试方法与结果、软件性能分析1.手动输入改变两

8、个加数的值,运行程序后均可得到正确的和。2.对于不同的加数,分别在调试过程中观察A,R4,R3,R2的值,程序显示数值均与预期结果相同。因此,该程序的源代码是合格的。七、心得与体会1.本次实验,在执行了安装Keil软件、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。