LODS/LODSB/LODSW/LODSD
(LOad String Byte/Word/Double word operands)
Загрузка строки байтов/слов/двойных слов
Схема команды: | lods источник lodsb lodsw lodsd |
Назначение: загрузка элемента из последовательности (цепочки) в регистр-аккумулятор al/ax/eax.
Алгоритм работы:
загрузить элемент из ячейки памяти, адресуемой парой ds:esi/si, в регистр al/ax/eax. Размер элемента определяется неявно (для команды lods) или явно в соответствии с применяемой командой (для команд lodsb, lodsw, lodsd);
изменить значение регистра si на величину, равную длине элемента цепочки. Знак этой величины зависит от состояния флага df:
df=0 — значение положительное, то есть просмотр от начала цепочки к ее концу;
df=1 — значение отрицательное, то есть просмотр от конца цепочки к ее началу.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команды извлекают элемент из ячейки памяти в один из регистров. Перед командой lods можно указать префикс повторения rep, но в этом нет особого смысла, так как обычно эту команду используют в некотором цикле для просмотра некоторой цепочки с элементами фиксированного размера.
str db ... ... cld lea si,str lodsb ;загрузить первый байт из str в al |
См. также: урок 11 и команды , , , , , ,