ХАНДЫФАР
Инструкция LODSB/LODSW
Загрузка из памяти в регистр AL или AX
LODSB - Загрузить байт по адресу DS:SI в регистр AL.
LODSW - Загрузить слово по адресу DS:SI в регистр AX.
Загружает байт или слово из исходного операнда в регистр al или ax. Исходный операнд - это ячейка памяти, адрес которой считывается из регистров ds:si. Сегмент ds может быть переопределен префиксом переопределения сегмента.
После передачи байта или слова из ячейки памяти в регистр al или ax регистр si увеличивается или уменьшается автоматически в соответствии с установкой флага DF в регистре FLAGS. (Если флаг DF равен 0, регистр si увеличивается; если флаг DF равен 1, регистр si уменьшается.) Регистр si увеличивается или уменьшается на 1 для операций с байтами или на 2 для операций со словами.
В качестве примера рассмотрим случай, когда у нас есть байтовый массив из чисел и нам необходимо выйти из цикла если значение загруженное в регистр al будет равно 510 и вернуть в регистре ax позицию найденного элемента. Если элемент в массиве не найден то, вернуть в регистре ax значение -1. Количество загружаемых данных указывается в регистре cx.
Инструкция LODSB/LODSW
Загрузка из памяти в регистр AL или AX
___________________________LODSB - Загрузить байт по адресу DS:SI в регистр AL.
___________________________LODSW - Загрузить слово по адресу DS:SI в регистр AX.
Загружает байт или слово из исходного операнда в регистр al или ax. Исходный операнд - это ячейка памяти, адрес которой считывается из регистров ds:si. Сегмент ds может быть переопределен префиксом переопределения сегмента.
После передачи байта или слова из ячейки памяти в регистр al или ax регистр si увеличивается или уменьшается автоматически в соответствии с установкой флага DF в регистре FLAGS. (Если флаг DF равен 0, регистр si увеличивается; если флаг DF равен 1, регистр si уменьшается.) Регистр si увеличивается или уменьшается на 1 для операций с байтами или на 2 для операций со словами.
В качестве примера рассмотрим случай, когда у нас есть байтовый массив из чисел и нам необходимо выйти из цикла если значение загруженное в регистр al будет равно 510 и вернуть в регистре ax позицию найденного элемента. Если элемент в массиве не найден, то вернуть в регистре ax значение -1. Количество загружаемых данных указывается в регистре cx.