对于两个数据块分离的情况,如图(a),数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。
可以得出如下结论:当源数据块首址大于目的块首址时,从数据块首地址开始传送数据。当源数据块首址小于目的块首址时,从数据块末址开始传送数据。程序框图如下:
程序设计要求:
1. 源数据块内存首地址为4000H单元;目的数据块内存首地址为4100H单元,字节
长度为20H单元。 2. 按程序流程图要求设计出数据块传送程序并调试通过。
46
搬家字节数→ CX
源数据块首址→SI
目的区首址→DI
SI+(CX-1) → SI (SI) → (DI)
DI+(CX-1) → DI
DI+1 → DI SI+1 → SI (SI) → (DI)
SI-1 → SI CX-1 CX → DI-1→DI N CX-1→ CX (CX) =0?
Y N =0 ? ( CX ) Y
结 束
数据块传送程序流程图
N Y (SI)>(DI)
五 实验报告主要内容及要求
1.读懂实验源程序,分析程序中每条指令的功能﹑用途,理解该程序的设计思路和方法。
2. 按实验要求自行完成程序设计、调试及修改,使其成满足设计要求,并按步骤进行程序的装入、运行,并记录运行后的结果。
47
3. 认真记录整理和分析自己所设计的程序在运行中的各种信息。 六 注意事项
数据块传送程序调试通过后,将源数据块地址和目的数据块首址对调一下,并在源数据块中重新设置一组数据,运行程序考察程序能否满足下要求:当源数据块首址大于目的数据块首址时,从数据块首地址开始传送数据。当源数据块首址小于目的数据块首址时,从数据块末址开始传送数据。
48
附录一 DICE-598K元件排列图
49