Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программир на ассемблере.doc
Скачиваний:
8
Добавлен:
17.09.2019
Размер:
605.7 Кб
Скачать

7.1.4.1. Movs - пересылка строки байтов или слов

Эта инструкция пересылает байт или слово источника, адресуемого регистром SI, в строку-приемник, адресуемую регистром DI, и модифицирует содержимое регистров SI и DI таким образом, чтобы они указывали на следующие элементы строк. Величина элементов строк и соответственно тип пересылки (байт или слово) определяется ассемблером путем анализа атрибутов операндов инструкции. При использовании префикса REP инструкция MOVS может пересылать блоки памяти.

7.1.4.2. Movsb/movsw - пересылка строки байтов или слов

Эти инструкции обеспечивают пересылку байта (MOVSB) или слова (MOVSW) из элемента строки-источника, адресуемого регистром SI, в элемент строки-приемника, адресуемого регистром DI. Содержимое регистров SI и DI изменяется (уменьшается или увеличивается в соответствии со значением флага DF) на 1 для MOVSB или на 2 для MOVSW с тем, чтобы они указывали на следующие элементы строк. Использование этих инструкций полезно в том случае, когда ассемблер не может определить атрибуты строк, например, при пересылке участка программного кода. Эти инструкции могут повторяться при использовании соответствующих префиксов.

7.1.4.3. Lods - загрузка строки байтов или слов

Инструкция LODS загружает элемент строки-источника (байт или слово в зависимости от типа операнда), адресуемый регистром SI, в регистр AL или AX соответственно и устанавливает SI указывающим на следующий элемент строки. Обычно эта инструкция не повторяется, т.к. каждое повторение замещало бы содержимое регистров AL или AX, и сохранялось бы только последнее значение. Однако, инструкция LODS весьма полезна в программных циклах как часть более сложной строковой операции.

7.1.4.4. LODSB/LODSW - загрузка строки байтов или слов

Работа этих инструкций аналогична LODS с той лишь разницей, что здесь длина элемента строки задана явно: 1 байт для LODSB и 2 байта для LODSW.

7.1.4.5. STOS - сохранение строки байтов или слов

Инструкция STOS помещает содержимое регистров AL или AX (в зависимости от типа операнда) в элемент строки-приемника, адресуемый регистром DI, и устанавливает регистр DI указывающим на следующий элемент строки. Как повторяемая инструкция STOS является традиционным средством для заполнения строки каким-либо значением.

7.1.4.6. STOSB/STOSW - сохранение строки байтов или слов

Работа этих инструкций аналогична STOS с той лишь разницей, что здесь длина элемента строки задана явно: 1 байт для STOSB и 2 байта для STOSW.

7.1.4.7. CMPS - сравнение строки байтов или слов

Инструкция CMPS вычитает байт или слово строки-приемника, адресуемые регистром DI, из байта или слова строки-источника, адресуемых регистром SI. Величина элементов строк определяется ассемблером путем анализа атрибутов операндов инструкции. CMPS не изменяет содержимое самих строк, но устанавливает флаги AF, CF, OF, PF, SF и ZF таким образом, что они отражают отношение элемента строки-приемника к элементу строки-источника. Если инструкция CMPS использована с префиксом REPE или REPZ, выполняется операция "сравнение до конца строки (пока в CX не 0) и пока строки равны (ZF=1)". Если CMPS использована с префиксом REPNE или REPNZ, выполняется операция "сравнение до конца строки (пока в CX не 0) и пока строки не равны (ZF=0)". Таким образом, инструкция CMPS может применяться для поиска совпадающих или несовпадающих элементов строк.