Команды MOVS, MOVSB, MOVSW, MOVSD используются для копирования одного участка памяти в другой. Копирование может происходить побайтно, словами или двойными словами.

 

Команда MOVS
Синтаксис: MOVS op1,op2
Операнды: op1 - m8, m16, m32
op2 - m8, m16, m32
Назначение: Копирование строки
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда MOVS на самом деле не является командой процессора. Когда в тексте программы встречается эта команда, компилятор вычисляет размерность ее операндов и на основании вычислений подставляет на ее место одну из реальных команд процессора MOVSB, MOVSW или MOVSD.
Ограничения: Операнды должны иметь один и тот же размер
Примеры:
movs	str1, es:str2
Команда MOVSB
Синтаксис: MOVSB
Операнды: Нет
Назначение: Копирование строк байтов
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда MOVSB копирует один байт из ячейки памяти по адресу DS:SI в ячейку памяти по адресу ES:DI.
После выполнения команды, регистры SI и DI увеличиваются на 1, если флаг DF = 0, или уменьшаются на 1, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно.
Ограничения: Нет
Примеры:
mov	si,offset str1
mov	di,offset str2
cld
movsb
Команда MOVSW
Синтаксис: MOVSW
Операнды: Нет
Назначение: Копирование строк слов
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда MOVSW копирует слово из ячейки памяти по адресу DS:SI в ячейку памяти по адресу ES:DI.
После выполнения команды, регистры SI и DI увеличиваются на 2, если флаг DF = 0, или уменьшаются на 2, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно.
Ограничения: Нет
Примеры:
mov	si,offset str1
mov	di,offset str2
cld
movsw
Команда MOVSD
Синтаксис: MOVSD
Операнды: Нет
Назначение: Копирование строк двойных слов
Процессор: 80386+
Флаги: Не изменяются
Комментарий: Команда MOVSD копирует двойное слово из ячейки памяти по адресу DS:SI в ячейку памяти по адресу ES:DI.
После выполнения команды, регистры SI и DI увеличиваются на 4, если флаг DF = 0, или уменьшаются на 4, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно.
Ограничения: Нет
Примеры:
mov	si,offset str1
mov	di,offset str2
cld
movsd