您的当前位置:首页正文

内存块移动(单片机)

2022-08-08 来源:小奈知识网
课程名称:单片机实验

电子信息工程 系 电信 专业 班 姓名 实验名称 内存块移动 实验日期 2011/10/14 序号 39 指导老师 实验成绩

一、实验目的和要求

1、实验目的

(1)了解内存的移动方法 (2)加深对存储器读写的认识 2、实验要求

将指定源地址和长度的存储块移到指定目标位置。

二、实验说明

本程序是给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。移动3000H-4000H,256字节。

三、程序框图

设置移动长度

目标地址加1 是否移动完 是 源地址加1 否 保存到目标地址中 从源地址取数 设置块的目标地址 设置块的源地址 实验汇编程序:(移动 3000H --> 4000H, 256 字节) 结束 Block equ 3000h

mov dptr,#Block ; 起始地址 mov r5,#0 ; 清256字节

mov a, #2 ;将02h写进累加器a中 Loop1:

movx @dptr, a

inc dptr ; 指向下一个地址 djnz r5, Loop1 ; 记数减一

mov r0, #30h ;将高8位放进寄存器r0 mov r1, #00h ;将低8位放进寄存器r1 mov r2, #40h mov r3, #00h mov r7, #0 Loop2:

mov dph, r0 ;将目标数据放进dptr mov dpl, r1

movx a, @dptr ;将dptr所指的片外RAM单元中的内容送到a中 mov dph, r2 mov dpl, r3 movx @dptr, a

cjne r1, #0ffh, Goon1 ;比较r1与0ffh是否相等,相等顺序执行,不相等跳转 ;到goon1继续执行 inc r0 ;r0+1→r0 Goon1:

inc r1

cjne r3, #0ffh, Goon2 inc r2 Goon2:

inc r3

djnz r7, Loop2 ;r1-1→r1,判断r1是否为0,等于0顺序执行,不等于0

;跳转到loop2继续执行

ljmp $ end

四、实验结果与分析

1、实验程序:

2、编译:

3、运行结果:

分析:内存块移动是计算机常用操作之一,多用于大量的数据复制和图象操作

五、心得体会

通过本实验,我学会了内存的移动方法,也加深对存储器读写的认识。了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。

因篇幅问题不能全部显示,请点此查看更多更全内容