5、 END BEGIN 例3 将内存中某一区域的原数据块传送到另一区域中。 分析:这种程序若源数据块与目的数据块之间地址没有重叠,则可直接用传送或串操作实现;若地址重叠,则要先判断源地址+数据块长度是否小于目的地址,若是,则可按增量方式进行,否则要修改指针指向数据块底部,采用减量方式传送。程序如下: DATA SEGMENT STR DB 1000DUP(?) STR1 EQU STR+7 STR2 EQU STR+25 STRCOUNT EQU 50 DATA ENDS STACK SEGMENT PAR
7、 CMP SI,DI POP SI JL OK STD ADD SI,STRCOUNT-1 ADD DI,STRCOUNT-1 OK: REP MOVSB RET GOO ENDP CODE ENDS END GOO cseg segment main proc near assume cs:cseg, ds:data start: mov ax,dseg mov ds,ax exit: mov ax,4c00h int 21h main endp cseg