LODSB Загрузка байта из строки
LODSW Загрузка слова из строки
Команды предназначены для операций над строками (строкой называется последовательность
байтов или слов памяти с любым содержимым). Они загружают в регистр AL (в случае
операций над байтами) или АХ (в случае операций над словами) содержимое ячейки
памяти по адресу, находящемуся в паре регистров DS:SI. Команда lodsb загружает
1 байт, команда lodsw - 1 слово, а команда lods может быть использована для
загрузки как байтов, так и слов. В последнем случае размер загружаемого данного
определяется описанием строки (с помощью директив db или dw). После операции
загрузки регистр SI получает положительное (если флаг DF=0) или отрицательное
(если флаг DF=1) приращение. Величина приращения составляет 1 или 2, в зависимости
от размера загружаемого элемента. Команда не имеет параметров и не воздействует
на флаги процессора.
Вариант команды lods имеет формат
lods строка
(что не избавляет от необходимости инициализировать регистры DS:SI адресом строки). В этом формате возможна замена сегмента строки строка:
lods ES:строка
Пример 1
;В полях данных сегмента данных, адресуемого через DS:
str db 'qwertyuiop'
; В программном сегменте:
сld ;Двигаемся по строке вперед
mov SI, off set str ;Адрес строки
add SI,BX ;Добавим смещение (пусть ВХ=4)
lodsb ;AL='t', SI -> 'у'
Пример 2
;В полях данных сегмента данных, адресуемого через ES:
str db 'qwertyuiop'
;В программном сегменте:
сld ;Двигаемся по строке вперед
mov SI,offset str ;Адрес строки
lodsbES:str ;AL='q', ES:SI -> 'w'