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
See also: LODSW
See also: CMPS
See also: MOVS
See also: SCAS
See also: STOS
See also: REP
See also: CLD
See also: STD

LODSB Load String Byte