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;

Изключения в защитен режим:

Специални ситуации на режим V86: