LODSB - Зареждане на низ операнд в AL
Влияние на командата върху командните флагове и формати:
Мнемониките LODSB, LODSW и LODSD са синоними на инструкцията LODS за байт, дума и двойна дума.
Инструкцията LODS зарежда в регистъра AL, AX или EAX байт, дума или двойна дума от мястото в паметта, указано от индексния регистър на източника. След зареждане индексният регистър на източника се променя автоматично. Ако DF флагът е 0 (издадена е команда CLD), тогава индексът на източника се увеличава; ако флагът DF е 1 (издадена е команда STD), тогава индексът на източника се намалява. Увеличаването или намаляването става с 1, ако е зареден байт, с 2, ако е заредена дума, с 4, ако е заредена двойна дума.
Инструкцията LODS може да бъде предшествана от префикс REP, но е по-често да се използва инструкцията LODS в конструкции LOOP, тъй като обикновено се изисква допълнителна обработка на данни в регистрите AL, AX или EAX.
IF AddressSize = 16
ТОГАВА използвайте SI за индекс на източника;
ИНАЧЕ (* AddressSise = 32 *) Използвайте ESI за индекс на източника;
IF (Команда за тип байт)
AL = [източник-индекс]; (*зареждане на байт*)
IF DF = 0 THEN IncDec = 1; ИНАЧЕ IndDec = -1; FI;
IF OperandSize = 16
AX = [източник-индекс]; (*Качване на дума*)
IF DF = 0 THEN IncDec = 2; ИНАЧЕ IndDec = -2; FI;
ИНАЧЕ (*Размер на операцията=32*)
EAX = [индекс-източник]; (* Зареждане на двойна дума *)
IF DF = 0 THEN IncDec = 4; ИНАЧЕ IndDec = -4; FI;
индекс-източник = индекс-източник + IncDec;