Buenas, ando un poco entreverado con este tema y por eso pongo mi solucion para ver si no me equivoque en algo, agradezco cualquier comentario y/o sugerencia, gracias!
PD: No tuve en cuenta el caso que entre D1 y D2 no hayan N bytes porque ni siquiera se si esta bien la solucion.
Copiar PROC
XOR SI, SI; Inicializo iterador
PUSH AX; Voy a re-utilizar AX en el While, por eso "guardo el contexto"
While:
CMP CX, SI
JE Fin
MOV ES:[BX+SI], AX; D2+iterador = D1+iterador, la primera vez iterador es 0
INC SI; iterador++
PUSH BX
MOV BX, AX; Guardo en BX el valor de AX para poder hacer ES:[BX+SI]
MOV AX, ES:[BX+SI]
POP BX
JMP While
Fin:
POP AX
RET