当前位置:首页 > 清零和内存块移动
软件实验一 存储器块清零
一、实验要求
1. 指定存储器中某块的起始地址和长度,要求能将其内容清零。
二、实验目的
1. 掌握存储器读写方法 2. 了解存储器的块操作方法
三、实验说明
通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请学生修改程序,完成此操作。
四、程序框图
设置块起始地址 设置块长度 当前地址内容清零 地址加1 否 是否清除完 是 结束
Block equ 3000h
mov dptr, #Block ; 起始地址 mov r0, #0 ; 清 256 字节
Loop:
个地址
clr a movx @dptr, a
inc dptr djnz r0, Loop ljmp $ end
; 指向下一; 记数减一 软件实验四 内存块移动
一、实验要求
将指定源地址和长度的存储块移到指定目标位置
二、实验目的
1.了解内存的移动方法。
2.加深对存储器读写的认识。
三、实验说明
块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起
始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?
四、程序框图
设置块的源地址 设置块的目标地址 设置移动长度 从源地址取数 保存到目标地址中 源地址加1 目标地址加1 否 是否移动完 是 结束
移动 3000H --> 4000H, 256 字节
mov r0, #30h mov r1, #00h mov r2, #40h mov
mov Loop:
mov mov movx mov mov movx
cjne inc Goon1:
inc
cjne r3, #00h r7, #0 dph, r0 dpl, r1 a, @dptr dph, r2 dpl, r3 @dptr, a r1, #0ffh, Goon1 r0 r1 r3, #0ffh, Goon2
inc r2 Goon2:
inc r3
djnz r7, Loop
ljmp
end
$
共分享92篇相关文档