Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
XADD
Влияние команды на флаги и форматы команды:
* |
|
|
|
* |
* |
* |
* |
* |
0F C0+rb |
XADD r/m8,r8 |
Обменять r8 и r/m8, загрузить их сумму в r/m8 |
Intel486 |
xadd al,dl |
0F C1+rw |
XADD r/m16,r16 |
Обменять r16 и r/m16, загрузить их сумму в r/m16 |
Intel486 |
xadd ax,cx |
0F C1+rd |
XADD r/m32,r32 |
Обменять r32 и r/m32, загрузить их сумму в r/m32 |
Intel486 |
xadd ebx,ecx |
Описание:
Команда XADD обменивает значения операнда-назначения (DEST) и операнда-источника (SRC), а затем загружает сумму этих операндов в операнд-назначение. Флаги CF, PF, AF, SF, ZF устанавливаются согласно значения, сохраняемого в операнде-назначении. Операнд-назначение может быть регистром общего назначения или ячейкой памяти, операнд-источник может быть только регистром общего назначения. С командой применим префикс блокировки LOCK.
Операция:
TEMP = SRC + DEST;
SRC = DEST;
DEST = TEMP;
Особые ситуации защищенного режима:
#GP(0), если операнд-назначение находится в сегменте, запрещенном для записи, если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#SS, если любая часть операнда находится вне пространства эффективных адресов в сегменте SS.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru