Меню сайта

Урок 69. Пересылка строки

Может показаться удобным использоватькоманды LODS и STOS для
— — — пересылки данных из одного места в другое,но для этой цели
— — — существует другая команда, пересылкастроки MOVS. — Эта команда
— — — подобна комбинации команд LODS иSTOS. — Она берет данные из пары
— — — регистров [DS:SI], помещает их в парурегистров [ES:DI], и изменяет
— — — как регистр SI, так и регистр DI, чтобыони указывали на следующую
— — — ячейку в каждой строке. — Команда MOVS делает это одна, и не
— — — загружает аккумулятор во времяпересылки. — Команда MOVS делает
— — — сочетание LODS и STOS более быстрым идающим меньше побочных
— — — эффектов.

— — — — — Команда MOVS указывает два операндапамяти. Только MOVS и еще
— — — одна строковая команда CMPS работают сдвумя операндами памяти. Все
— — — остальные команды требуют, чтобы один илиоба операнда находились в
— — — регистре микропроцессора. Как и командыLODS и STOS, команда MOVS
— — — работает как с байтами, так и со словами.Поскольку строковые
— — — команды имеют дело с жестко заданнымиадресами, для определения
— — — типов служат только операнды, написанныепрограммистом. Команда
— — — должна иметь оба операнда, и оба онидолжны быть одинаковых типов,
— — — иначе программист может указать типпересылки частью кода операции,
— — — т.е. команда MOVSB и случае байтовых строкили команда MOVSW для
— — — строк, состоящих из слов. Если в программеиспользуется основная
— — — форма, команда MOVS, ассемблер проверяетпеременные на правильность
— — — сегментной адресации, а также проверяет ихтипы.

— — — — — Комбинация команды MOVS с префиксом REPдает эффективную
— — — команду пересылки блока. Имея счетчик врегистре CX и показывающий
— — — направление пересылки флаг направления,команда REP MOVS пересылает
— — — данные из одного места памяти в другоеочень быстро.
— — — Микропроцессор, выполняющий команду REPMOVS, пересылает данные с
— — — максимально возможной скоростью. Он большене выбирает никакие
— — — команды, поскольку единственное, чтоделается во время такой
— — — пересылки — это пересылка.

— — — — — Установка флага направления критична дляправильной работы
— — — команды REP MOVS. Различные виды установкифлага направления
— — — обсуждались в гл.3 именно на примерекоманды пересылки, и в
— — — программе необходимо придерживатьсярекомендаций, данных в этой
— — — главе, особенно, если поля источника ирезультата перекрываются.

Категория: Программирование на Ассемблере | Дата: 05.02.13

Меню раздела
Блок