MOVSD lo que hace es mover un dword(4 bytes ) desde la posición quue apunta esi hacia la posión que apunta edi , movsw hace lo mismo solamente que en vez de un dword mueve un word Para que lo entienddas mejor te dejo un codigo
Código (asm) [Seleccionar]
include 'win32ax.inc'
.code
start:
mov esi,Hola ;Le pasamos el puntero de "Hola" a esi
mov edi,Buffer ;Le pasamos el puntero de el buffer a edi
movsd ;Copiamos los 4 bytes
invoke MessageBox,0,Buffer,0,0 ;Los imprimimos
invoke ExitProcess,0 ;Salimos
.data
Buffer db 20 dup (0)
Hola db 'Hola',0
.end start