实验四数据块移动一、实验目的1、了解内存中数据块移动方法。2、掌握分支程序的设计。二、实验内容设计一通用数据块间数据搬移程序。三、编程指南程序要求把内存中一数据区(称为源数据块)传送到内存另一数据区(称为目的数据块)。源数据块和目的数据块在存贮中可能有三种情况,如下图所示。对于两个数据块分离的情况,如图(a),数据的传送从据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭破坏。可以得出如下结论:当源数据块首址大于目的块首址时,从数据块首地址开始传送数据。当源数据块首址小于目的块首址时,从数据块末址开始传送数据。四、实验程序框图五、实验步骤联机模式:(1)在源数据块4000H~4FFFH中首址、末址几个单元,填入几个标志性字节,按下MON键,返回P状态。(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击S8.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。(3复位RST键,查看目的数据块4100H~4FFFH数据是否和源数据块4000H~4FFFH单元相一致。脱机模式:⑴在P.态下,按SCAL键,然后在源数据块4000H~4FFFH中首址、末址几个单元,填入几个标志性字节,按下MON键,返回P状态。⑵在P.态下,输入2EF0,按EXEC键。⑶复位RST键,查看目的数据块4100H~4FFFH数据是否和源数据块4000H~4FFFH单元相一致。六、实验程序清单CODESEGMENT;S8.ASMASSUMECS:CODE;MOVRAM:4000-40FFHTO4100-41FFHORG2EF0HSTART:MOVCX,0100H;数据长度MOVSI,4000H;源首址MOVDI,4100H;目首址;CMPSI,DI;比较源,目首址大小JAFADR;SIDIFADRADDSI,CX;源末址+1ADDDI,CX;目末址+1DECSIDECDICON1:MOVAL,[SI];取源数MOV[DI],AL;写目数DECSI;源址减1DECDI;目址减1DECCX;长度减1JNECON1;未完继续JMP$FADR:MOVAL,[SI];取源数MOV[DI],AL;写目数INCSI;源址加1INCDI;目址加1DECCX;长度加1JNEFADR;未完继续JMP$CODEENDSENDSTART