Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kratkie_otvety_ekzamen_CP_2011-12.docx
Скачиваний:
19
Добавлен:
14.04.2019
Размер:
132.13 Кб
Скачать

Цепочечные команды

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

В системе команд процессора 8086 имеется 5 команд, предназ­наченных для обработки одного элемента цепочки. Цепочечной команде может предшествовать специальный однобайтный префикс повторения REP, который вызывает повторение действия команды над следующими элементами цепочки. Повторение расчитано на максималь­ную длину цепочек 64 Кбайт и выполняется значительно быстрее цикла LOOP.

Цепочечные команды могут иметь операнд-источник, операнд­получатель или и то и другое одновременно. Подразумевается, что цепочка-источник по умолчанию находится в текущем сегменте дан­ных, но допускается префикс замены сегмента. Цепочка-получатель может находиться только в текущем дополнительном сегменте. При этом содержимое регистра SI всегда считается смещением текущего элемента цепочки-источника, а содержимое регистра DI - смещением текущего элемента цепочки-получателя.

Необходимые в команде индексные и сегментные регистры должны быть инициализированы до ее выполнения.

При выполнении цепочечной команды содержимое регистров SI и DI автоматически изменяется, чтобы адресовать следующие элементы цепочек. Флаг направления DF определяет автоинкремент (DF=0) или автодекремент индексных регистров.

Если команде предшествует префикс повторения, то после каждого ее выполнения производится декремент регистра-счетчика CX, поэтому его необходимо предварительно инициализировать на

требуемое число повторений.  Когда содержимое CX достигает  нуля,

управление передается следующей команде.

Префикс повторения

Префикс повторения имеет 5 мнемокодов: REP, REPE, REPZ, REPNE, REPNZ.

Префикс REP используется с командами MOVS и STOS и вызывает повторение операции до тех пор, пока содержимое CX не равно 0.

Префиксы REPE и REPZ соответствуют тому же коду команды, что и мнемоника REP, но используются совместно с командами CMPS и SCAS. Они вызывают повторение операции до тех пор, пока ZF=1 и содержимое CX не равно 0.

Префиксы REPNE и REPNZ соответствуют одному коду команды, и используются совместно с командами CMPS и SCAS. Они вызывают повторение операции до тех пор, пока ZF=0 и содержимое CX не рав­но 0.

Команда movs

Команда MOVS передает байт или слово из цепочки, адресуемой регистром SI, в цепочку, адресуемую регистром DI. Команда переда­чи цепочки байт MOVSB после пердачи байта увеличивает содержимое регистров SI и DI на 1, а команда передачи цепочки слов MOVSW после передачи слова увеличивает их содержимое на 2.

Формат команды:

MOWSB

MOVSW

Команда cmps

Команда сравнения цепочек CMPS производит вычитание байта или слово цепочки, адресуемой регистром DI, из байта или слова цепочки, адресуемой регистром SI. В зависимости от результата вычитания устанавливаются флаги, но сами операнды не изменяются. Команда сравнения цепочек байт CMPSB после каждой операции срав­нения увеличивает содержимое регистров SI и DI на 1, а команда сравнения цепочек слов CMPSW - на 2.

Формат команды:

CMPSB

CMPSW

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]