13. Команды пересылки

Одна из основных команд языка ассемблер – это команда пересылки. С её помощью можно записать в регистр значение другого регистра, константу или значение ячейки памяти, а также можно записать в ячейку памяти значение регистра или константу.

Команда MOV копирует данные из операнда-источника в операнд-получатель. Она относится к группе команд пересылки данных (data transfer) и используется в любой программе. Команда MOV является двуместной (т.е. имеет два операнда): первый операнд определяет получателя данных (destination), а второй — источник данных (source):

MOV получатель, источник

При выполнении этой команды изменяется содержимое операнда-получателя, а содержимое операнда-источника не меняется.В команде MOV могут использоваться самые разные операнды. Кроме того, необходимо учитывать правила и ограничения на использование режимов адресации.

Команда XCHG (Exchange Data, или Обмен данными) позволяет обменять содержимое двух операндов. Существует три варианта команды XCHG:

XCHG		reg, reg
XCHG		reg, mem
XCHG		mem, reg

Для операндов команды XCHG нужно соблюдать те же правила и ограничения, что и для операндов команды MOV, которые были рассмотрены ранее, за исключение того, что операнды команды XCHG не могут быть непосредственно заданными значениями.
Команда XCHG часто используется в программах сортировки элементов массивов, по скольку позволяет очень быстро поменять местами два элемента. Вот несколько примеров использования команды XCHG:
XCHG example

Чтобы поменять содержимое двух переменных, расположенных в памяти, не прибегая к использованию XCHG, необходимо воспользоваться промежуточным регистром и двумя дополнительными командами MOV:
exchenge wothout XCHG example

17.07.2015