[<<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