Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Loopne/loopnz метка_перехода



Команды реализуют описанные далее действия.

1. Декремент регистра СХ.

2. Сравнение регистра СХ с нулем и анализ состояния флага нуля ZF:

ü если (СХ) > 0 и ZF = 0, управление передается на метку перехода;

ü если (СХ) = 0 или ZF = 1, управление передается на следующую после LOOP команду.

Команды LOOPE/LOOPZ и LOOPNE/LOOPNZ по принципу своей работы являются взаимнообратными. Они расширяют действие команды LOOP тем, что дополнительно анализируют флаг ZF. Это дает возможность организовать досрочный выход из цикла, используя этот флаг в качестве индикатора. Типичное применение этих команд связано с операцией поиска определенного значения в последовательности или со сравнением двух чисел.

Недостаток команд организации цикла LOOP, LOOPE/LOOPZ и LOOPNE/LOOPNZ заключается в том, что они реализуют только короткие переходы (от -128 до +127 байт). Для работы с длинными циклами придется использовать команды условного перехода и команду JMP

Пример. Подсчет нулевых байтов с использованием команд управления циклом

model small

.stack 100h

.data

len equ 10;количество элементов в mas

mas db 1,0,9,8,0,7,8,0,2,0

.code

start:

mov ax,@data

mov ds,ax

mov сx,len

xor ax,ax

xor si,si

jcxz exit

cycl:

cmp mas[si],0

jne ml

inc al

ml:

inc si

loop cycl

exit:

mov ax,4c00h

int 21h

end start

У команды JCXZ осталась только одна функция – не допустить выполнения «пустого» цикла, поэтому несколько изменилось ее место в тексте программы: теперь она стоит перед меткой начала цикла cycl. Изменение и контроль содержимого регистра СХ в процессе выполнения каждой итерации выполняет команда LOOP.





Дата публикования: 2014-12-08; Прочитано: 492 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...