MOVSW            Move String Word                    Flags: not altered


Logic:    (ES:DI)   (DS:SI)
if DF = 0
SI   SI + 2
DI   DI + 2
SI   SI - 2
DI   DI - 2

This instruction copies the word pointed to by DS:SI to the location
pointed to by ES:DI. After the move, SI and DI are incremented (if the
direction flag is cleared) or decremented (if the direction flag is
set), to point to the next word.

Operands                  Clocks   Transfers  Bytes   Example
-                        26         2        1     MOVSW
(repeat)                 9+25/rep    2/rep      1     REP MOVSW


Assuming BUFFER1 as been defined somewhere as:

BUFFFER1        DB      100 DUP (?)

the following example moves 50 words (100 bytes) from BUFFER1 to

CLD                     ;Move in the forward direction
LEA     SI, BUFFER1     ;Source address to SI
LEA     DI, BUFFER2     ;Destination address to DI
MOV     CX,50           ;Used by REP; moving 50 words
REP     MOVSW                   ;    ...and move it.

See also: MOV
See also: MOVS
See also: MOVSB
See also: CMPS
See also: LODS
See also: SCAS
See also: STOS
See also: REP
See also: CLD
See also: STD

MOVSW Move String Word