微机实验报告~

微机实验报告~

ID:22714792

大小:282.00 KB

页数:8页

时间:2018-10-31

微机实验报告~_第1页
微机实验报告~_第2页
微机实验报告~_第3页
微机实验报告~_第4页
微机实验报告~_第5页
资源描述:

《微机实验报告~》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.实验名称Keil的使用与汇编语言上机操作成绩一、任务要求1.掌握Keil环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。2.编写多个十六位数的加法程序有4个十六位无符号数,连续存放在20H开始的片上数据区中,低八位先存,高八位在后。要求:和存于R3(高八位)和R2(低八位),进位位存于R4。二、设计思路实验一已给出程序代码,不需要设计,下面阐明实验二,编写多个十六位数的加法程序的设计思路。十六位数相加,先是低八位相加,低八位相加不用考虑进位,所以,此时用

2、ADD指令,但因为在每次循环时都有CLRC操作,所以也可以用ADDC指令。而且题目中要求将和的低八位存于R2,所以将每次低八位相加的和存于R2,然后从R2中取值求和。低八位相加后高八位相加,因为必须处理低位相加的进位问题,所以必须用ADDC指令。而且因为要求高位和存于R3,所以将每次计算的和存于R3,每次从R3中取数跟新的高八位相加。另外考虑到高位进位的问题,所以必须安排一个地址单元或者寄存器存放最高位,也正是因为每次循环中,进位都会被处理,所以每次循环开始要CLRC。三、资源分配4个十六位无符号数,连续存放在20H开始的片上数据区中,低八位先存,高八位在后。

3、和存于R3(高八位)和R2(低八位),进位位存于R4。R0和R1作为数据指针,存放低八位和高八位的地址。循环次数存于R5。四、流程图.一、源代码(含文件头说明、语句行注释)四个十六位数的加法程序:Filename:3.asmDescription:四个十六位数的加法程序Date:2016/09/23Designedby:陈钰Sourceused:R0,R1数据指针R2,R3,R4,R5寄存器.20H-27HORG0000HLJMPMAINORG0100HMAIN:MOVR0,#20HMOVR1,#21H;设数据指针MOVR2,20HMOVR3,21H;R2←(

4、20H),R3←(21H)MOVR4,#00H;最高位进位清零MOVR5,#03H;设置循环次数LOOP:CLRC;进位清零MOVA,R2;A←R2INCR0INCR0;R0←R0+1+1,R0指向下一个低八位ADDA,@R0;A←A+(R0),低八位相加MOVR2,A;R2←A,低八位的和存于R2MOVA,R3;A←R3INCR1INCR1;R1←R1+1+1,R1指向下一个高八位ADDCA,@R1;A←A+(R1)+C,高八位加进位的和MOVR3,A;R3←A,高八位的和存于R3CLRA;A寄存器清零ADDCA,R4;A←A+R4+C,计算进位MOVR4,

5、A;R4←A,进位信息存入R4DJNZR5,LOOP;判断R5是否等于零判断循环是否结束.HERE:SJMPHEREEND一、程序测试方法与结果字节拆分、合并程序:(存于30H的数被拆分,分别转为ASCII码存于31H和32H,最后再合并存于33H)数据块填充程序(将片外RAM7000H-70FFH单元按一定规律填充)四个十六位数的加法程序输入的数:结果:.思考题1.怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly窗口有何作用?1)观察工作寄存器,SFR:点击ViewàRegistersWindow,弹开“Regis

6、ters”窗口。在此窗口查看。2)观察IO端口,Timer,中断控制寄存器:点击菜单Peripherals,弹出外设选项栏,选择对应外设,弹出相应外设控制寄存器窗口,即可观察。3)观察片内RAM,代码区和片外数据区:点击菜单Viewà选择MemoryWindows,在Address栏中键入存储空间类型和地址,可以观察到相应内容。Disassembly窗口显示代码及其相应的机器码,也展示了代码的PC地址。2.字节拆分、合并还有哪些方法,举一例说明。举例:ORG0100HMAIN:MOVSP,#40H;赋堆栈指针MOV30H,#49H;30H单元赋值MOVA,30

7、HANLA,#0FH;拆分出低四位ORL32H,#30H;转换为ASCIIMOVA,30HANLA,#0F0HSWAPA;拆分出高四位ORLA,#30H;转换为ASCIIMOV31H,A;结果存于31H单元HERE:SJMPHERE;踏步END3.若按递减1规律填充数据块,应如何修改程序?将“INCA”改为“DECA”.改后运行结果如下:1.若从7010H单元开始,连续填充20个字节,应该如何修改程序?ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HFILL:CLRA;A寄存器清零MOVR0,#20;设循环计数器MOVDPTR,#

8、7010H;设数据指针FILL1:MO

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

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

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