LODSB            Load String Byte                    Flags: not altered


Logic:    AL   (DS:SI)
if DF = 0
SI   SI + 1
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.


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.)

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.

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