MOV (Переслать) пересылает байт, слово или двойное слово из операнда источника в операнд назначения. Команда MOV используется при передаче данных между следующими элементами :
- из регистра в память;
- из памяти в регистр;
- между регистрами общего назначения;
- непосредственные данные в регистр;
- непосредственные данные в память;
Команда MOV не может пересылать данные из памяти в память или из сегментного регистра в сегментный регистр. Пересылка из памяти в память может быть выполнена при помощи команды пересылки строк MOVS. Специальная форма команды MOV разработана для обеспечения пересылки данных между регистрами AL или EAX и местом в памяти, закодированным при помощи 32-разрядного смещения, заданного в команде. Эта форма команды не позволяет выходить за границу сегмента, и запрещает использование индексных регистров или масштабирования. Кодирование данной формы команды на один байт короче, чем кодирование команды MOV общего назначения. Аналогичное кодирование выполняется для перемещения 8-,16- или 32-разрядов непосредственно в один из регистров общего назначения.
XCHG (Перестановка) переставляет содержимое двух операндов. Эта команда используется вместо трех команд MOV. Она не требует временного размещения в памяти одного из операндов в то время, когда другой загружается. Команда XCHG oсобенно полезна при использовании семафоров или аналогичных структур данных в процессе синхронизации. Команда XCHG может менять местами два байта, два слова или два двойных слова. Операндами для команды XCHG могут служить два регистровых операнда или операнд-регистр и операнд, расположенный в памяти. Когда команда XCHG использует операнд, расположенный в памяти, она автоматически активизирует сигнал LOCK (Смотри Главу 13 для получения более подробной информации о блокировке шин).