Intel Pentium Instruction Set Reference
XADD - Exchange and Add
Code |
Mnemonic |
Description |
0F C0/r |
XADD r/m8, r8 |
Exchange r8 and r/m8; load sum into r/m8. |
0F C1/r |
XADD r/m16, r16 |
Exchange r16 and r/m16; load sum into r/m16. |
0F C1/r |
XADD r/m32, r32 |
Exchange r32 and r/m32; load sum into r/m32. |
Description
Exchanges the first operand (destination operand) with the second operand (source operand), then loads the sum of the two values into the destination operand. The destination operand can be a register or a memory location; the source operand is a register.
This instruction can be used with a LOCK prefix.
Operands |
Bytes |
Clocks |
reg, reg |
3 |
3 |
NP |
mem, reg |
3 + d(0 - 2) |
4 |
NP |
Flags
ID |
unaffected |
DF |
unaffected |
VIP |
unaffected |
IF |
unaffected |
VIF |
unaffected |
TF |
unaffected |
AC |
unaffected |
SF |
sets according to the result of the addition, which is stored in the destination operand |
VM |
unaffected |
ZF |
sets according to the result of the addition, which is stored in the destination operand |
RF |
unaffected |
AF |
sets according to the result of the addition, which is stored in the destination operand |
NT |
unaffected |
PF |
sets according to the result of the addition, which is stored in the destination operand |
IOPL |
unaffected |
CF |
sets according to the result of the addition, which is stored in the destination operand |
OF |
sets according to the result of the addition, which is stored in the destination operand |