Команды REP, REPE, REPNE, REPNZ, REPZ - на самом деле это префиксы к командам, работающим со строками, такими как MOVSB, SCSB и т.п. Эти префиксы позволяют организовывать циклы без использования команды LOOP.

 

Префиксы REP, REPE, REPZ
Синтаксис: REP
REPE
REPZ
Операнды: Нет
Назначение: Префикс повторения команды
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Все эти три префикса являются синонимами и имеют один и тот же код операции. Префиксы повторяют выполнение следующей за ними команды, работающей со строками. Количество повторений заносится в регистр CX до выполнения команды с префиксом. После каждого повторения команды регистр CX уменьшается на 1 и, если он стал равен нулю или в результате выполнения команды флаг ZF стал равен 0, происходит выход из цикла.
Если команда используется в 32-разрядном режиме адресации, то в качестве счетчика используется регистр ECX.
Ограничения: Нет
Примеры:
mov	si,offset str1
mov	di,offset str2
mov	cx,40
rep	movsb	;Перенос 40 байт из str1 в str2
Префиксы REPNE, REPNZ
Синтаксис: REPNE
REPNZ
Операнды: Нет
Назначение: Префикс повторения команды
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Эти два префикса являются синонимами и имеют один и тот же код операции. Префиксы повторяют выполнение следующей за ними команды, работающей со строками. Количество повторений заносится в регистр CX до выполнения команды с префиксом. После каждого повторения команды регистр CX уменьшается на 1 и, если он стал равен нулю или в результате выполнения команды флаг ZF стал равен 1, происходит выход из цикла.
Если команда используется в 32-разрядном режиме адресации, то в качестве счетчика используется регистр ECX.
Ограничения: Нет
Примеры:
mov	di,offset str1
mov	al,13
mov	cx,40
repne	scasb	;Поиск символа в строке