1、华南理工大学广州学院学生实验报告课程名称 微机与单片机实验 电信 系 电子信息工程 专业 电信 1 班 姓名 实验名称 内存块移动 实验日期 2011-10-10 指导老师 实验成绩 一、 实验要求将指定源地址和长度的存储块移到指定目标位置。二、 实验目的1了解内存的移动方法。2加深对存储器读写的认识。三、 实验说明块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?四、 程序框图五、 汇编程序移动片内 RAM 30H 70H, 16 字节Blo
2、ck equ 30hmov r0, #Block ; 起始地址mov r1, #20h ; 设置长度 32 字节Loop:mov r0, #11hinc r0 ; 指向下一个地址djnz r1, Loop ; 记数减一mov r0, #30h ; 起始地址mov r1, #70h ;目标地址mov r5, #10h ;设置长度 16 字节Loop1:mov a, r0mov r1,ainc r1djnz r5, Loop1sjmp $end移动片外 RAM 3000H 4000H, 48 字节Block equ 3000hmov dptr , #Block ; 起始地址mov r0, #0 ;
3、 清 256 字节clr aLoop:movx dptr, ainc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一mov r0, #30h ;设置起始地址高 8 位mov r1, #00h ;设置起始地址低 8 位mov r2, #40h ;设置目标地址高 8 位mov r3, #00h ;设置目标地址低 8 位mov r7, #40h ;设置长度 48 字节Loop1:mov dph, r0mov dpl, r1movx a, dptrmov dph, r2mov dpl, r3movx dptr, acjne r1, #0ffh, Goon1inc r0Goon1:inc r1cjne r3, #0ffh, Goon2inc r2Goon2:inc r3djnz r7, Loop1ljmp $end六、 实验结果与分析执行第一个程序,移动片内 RAM 30H 70H, 16 字节,截图如下:执行第二个程序,移动片外 RAM 3000H 4000H, 48 字节,截图如下: