[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
LODSB            Load String Byte                    Flags: not altered

LODSB

          Logic:    AL . (DS:SI)
                    if DF = 0
                        SI . SI + 1
                    else
                        SI . SI - 1

    LODSB transfers the byte pointed to by DS:SI into AL and increments or
    decrements SI (depending on the state of the Direction Flag) to point
    to the next byte of the string.

  --------------------------------------------------------------------------
   Operands                  Clocks   Transfers  Bytes   Example
      -                        12         -        1     LODSB
   (repeat)                 9+13/rep    1/rep      1     REP LODSB
  --------------------------------------------------------------------------

       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, 8           ;CX is counter for LOOP instruction
  AGAIN:  LODSB                   ;Load a byte into AL...
          OUT     250,AL          ;   ...and output it to the port.
          LOOP    AGAIN

See Also: LODS LODSW CMPS MOVS SCAS STOS REP CLD STD
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson