Иллюстрированный самоучитель по Assembler

L

LOOPNE/LOOPNZ Циклическое выполнение, пока не равно/циклическое выполнение, пока не нуль

Оба обозначения представляют собой синонимы и относятся к одной команде. Команда выполняет декремент содержимого регистра СХ, и если оно не равно 0, и флаг ZF сброшен, осуществляет переход на указанную метку вперед или назад в том же программном сегменте в диапазоне -128… + 127 байтов. Содержимое регистра СХ рассматривается как целое число без знака, поэтому максимальное число повторений группы включенных в цикл команд составляет 65536. Команда не воздействует на флаги процессора.

Пример:

;В полях данных:
command db 80 dup (0)
;В программном сегменте:
…; Копирование в поле command строки,
; содержимое которой следует анализировать
lea SI,command; Настроим DS:SI
cld; Обработка вперед
mov CX,80; Обрабатывать не более 80 байтов
slash: lodsb; Загрузим в AL очередной символ
cmp AL, ' / '; Ищем знак ' / '
loopne slash; во всей строке
;DS:SI › первый символ за знаком '/'

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › L При использовании в качестве счетчика расширенного регистра ЕСХ максимальное число шагов в цикле увеличивается до 232. Для того чтобы в 16-разрядном приложении процессор при выполнении команд loopne/loopnz использовал не 16-разрядный регистр СХ, а 32-разрядный регистр ЕСХ, перед командами loopne/loopnz необходимо указать префикс замены размера адреса 67h.

Пример:

mov ЕСХ,1000000; Предельное число шагов
хххх:…; Тело цикла
db 67h
loopne xxxx

386Р+ LSL Загрузка границы сегмента

Команда Isl загружает в первый операнд границу сегмента из дескриптора сегмента, заданного селектором во втором операнде.

В качестве первого операнда команды Isl можно использовать 16- или 32-разрядный регистр общего назначения; в качестве второго – 16- или 32-разрядный регистр общего назначения или 16- или 32-битовое поле памяти.

386Р+ LTR Загрузка регистра задачи TR

Команда Itr загружает регистр задачи TR селектором сегмента состояния задачи TSS из второго операнда, в качестве которого можно использовать 16- или 32-разрядный регистр общего назначения или 16- или 32-битовое поле памяти. Команда используется в защищенном режиме, если программный комплекс выполнен в виде нескольких самостоятельных задач, и переключения между ними осуществляются с использованием включенных в процессор аппаратных средств поддержки многозадачности.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.