[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
MOVSW            Move String Word                    Flags: not altered

MOVSW

          Logic:    (ES:DI) . (DS:SI)
                    if DF = 0
                        SI . SI + 2
                        DI . DI + 2
                    else
                        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

  -------------------------------- Example ---------------------------------

    Assuming BUFFER1 as been defined somewhere as:

          BUFFFER1        DB      100 DUP (?)

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

          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 MOVS MOVSB CMPS LODS SCAS STOS REP CLD STD
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson