dest = source
The movd instruction moves the source value (second operand) to the destination. The purpose of this instruction is to move a data between memory, general purpose registers and floating point registers. Thus the destination must be one of those categories and the source must be a different category with one exception: movd can be used to move a value from one floating point register to another. The 32 bits are moved without conversion.
movd eax, xmm0 ; move 32 bits of xmm0 to eax
; places 0 in top half of rax
movd [x], xmm0 ; move 32 bits of xmm0 to 32 bit variable x
movd xmm0, [y] ; move 32 bit variable y to xmm0
; places 0 in upper 3/4 of xmm0
movd xmm2, xmm1 ; move 32 bits of xmm1 to xmm2
; places 0 in upper 3/4 of xmm2
movd [x], eax ; move eax to 32 bit variable x