Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
I8086.DOC
Скачиваний:
50
Добавлен:
02.05.2014
Размер:
1.36 Mб
Скачать
      1. Lock– блокировка шины

F0

LOCK

блокирование доступа к шине

Описание.ПрефиксLOCKзаставляет процессор выставить на время выполнения следующей инструкции сигналLOCK#, блокирующий доступ к памяти со стороны других процессоров и внешних устройств.

Префикс LOCKможет использоваться только с инструкциямиADD,ADC,AND,DEC,INC,NEG,NOT,OR,SBB,SUB,XORиXCHG.

Флажкипрефиксом не изменяются, но могут быть изменены инструкцией, с которым он используется.

      1. Rep/rePcc– повторение строковой операции

F3 A4

REP MOVSB

пересылка CX байтов из DS:SI в ES:DI

F3 A5

REP MOVSW

пересылка CX слов из DS:SI в ES:DI

F3 AC

REP LODSB

загрузка CX байтов из DS:SI в AL

F3 AD

REP LODSW

загрузка CX слов из DS:SI в AX

F3 AA

REP STOSB

запись CX байтов из AL в ES:DI

F3 AB

REP STOSW

запись CX слов из AX в ES:DI

F3 A6

REPE CMPSB

сравнение CX байтов в DS:SI и ES:DI до несовпадения

F3 A7

REPE CMPSW

сравнение CX слов в DS:SI и ES:DI до несовпадения

F3 AE

REPE SCASB

поиск байта, отличающегося от AL, в CX байтах в ES:DI

F3 AF

REPE SCASW

поиск слова, отличающегося от AX, в CX словах в ES:DI

F2 A6

REPNE CMPSB

сравнение CX байтов в DS:SI и ES:DI до совпадения

F2 A7

REPNE CMPSW

сравнение CX слов в DS:SI и ES:DI до совпадения

F2 AE

REPNE SCASB

поиск байта, совпадающего с AL, в CX байтах в ES:DI

F2 AF

REPNE SCASW

поиск слова, совпадающего с AX, в CX словах в ES:DI

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

Счётчик находится в регистре CX. После каждого выполнения инструкции, употреблённой с префиксом повторения, содержимоеCXуменьшается на единицу и проверяется на равенство нулю. Если нуль ещё не достигнут, снова выполняется инструкция, уменьшается и проверяетсяCXи т.д. Если же в результате вычитания содержимоеCXобнулилось, операция прекращается. Таким образом, операция может быть повторена от одного до 65536 раз.

Помимо завершения операции по обнулению счётчика, в некоторых инструкциях предусмотрено её завершение при выполнении определённого условия, а именно равенства или неравенства флажка ZFнулю.

Логически имеются три разновидности префикса повторения, которым соответствуют пять мнемоник и два однобайтовых кода операции:

– простое повторение – префикс REP, код операцииF3; операция заканчивается, когда содержимое регистраCXобнуляется;

– повторение, пока соблюдается равенство – префикс REPE/REPZ, код операцииF3; операция заканчивается, когда содержимое регистраCXобнуляется или когда сбрасывается флажокZF;

– повторение, пока равенство не соблюдается – префикс REPNE/REPNZ, код операцииF2; операция заканчивается, когда содержимое регистраCXобнуляется или когда устанавливается флажокZF.

С инструкциями MOVS,LODS,STOSможет применяться только обычный префикс повторенияREP. Когда он используется, операция продолжает выполняться до тех пор, пока содержимое регистраCXне станет равным нулю.

С инструкциями CMPSиSCASупотребляются префиксыREPE/REPZиREPNE/REPNZ. Первый префикс обеспечивает прекращение операции при исчерпании счётчика или при сбросе флажкаZFв нуль; последнее событие имеет место, когда обнаружено неравенство сравниваемых байтов или слов. Второй префикс обеспечивает прекращение операции при исчерпании счётчика или при установке флажкаZFв единицу, что происходит при обнаружении равенства сравниваемых байтов или слов.

Флажкисамим префиксом не изменяются, однако инструкцииSCASиCMPS, которые могут употребляться вместе с префиксом повторения, изменяют их.