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 |