LODSW            Load String Word                    Flags: not altered
 
LODSW
 
          Logic:    AX  (DS:SI)
                    if DF = 0
                        SI  SI + 2
                    else
                        SI  SI - 2
 
    LODSW transfers the word pointed to by DS:SI into AX and increments or
    decrements SI (depending on the state of the Direction Flag) to point
    to the next word of the string.
 
  --------------------------------------------------------------------------
   Operands                  Clocks   Transfers  Bytes   Example
      -                        16         -        1     LODSW
   (repeat)                 9+17/rep    1/rep      1     REP LODSW
  --------------------------------------------------------------------------
 
       Note:          Although it is legal to repeat this instruction, it
                      is almost never done since doing so would
                      continually overwrite the value in AL.
 
  -------------------------------- Example ---------------------------------
 
    The following example sends the eight bytes at INIT_PORT to port 250.
    (Don't try this on your machine, unless you know what's hanging off
    port 250.)
 
  INIT_PORT:
          DB      '$CMD0000'      ;The string we want to send
          .
          .
          CLD                     ;Move forward through string at INIT_PORT
          LEA     SI, INIT_PORT   ;SI gets starting address of string
          MOV     CX, 4           ;Moving 4 words (8 bytes)
  AGAIN:  LODSW                   ;Load a word into AX...
          OUT     250,AX          ;   ...and output it to the port.
          LOOP    AGAIN

Seealso:



This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster