(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 и команды ins/insb/insw/insd, cmps/cmpsb/cmpsw/cmpsd, movs/movsb/movsw/movsd, outs, scas/scasb/scasw/scasd, stos/stosb/stosw/stosd, rep/repe/repz/repne/repnz