, .
InterlockedCompareExchange64 - x86 asm, - http://qc.embarcadero.com/wc/qcmain.aspx?d=6212.
asm
// -> EAX Destination
// ESP+4 Exchange
// ESP+12 Comperand
// <- EDX:EAX Result
PUSH EBX
PUSH EDI
MOV EDI, EAX
MOV EAX, DWORD PTR [Comperand]
MOV EDX, DWORD PTR [Comperand+4]
MOV EBX, DWORD PTR [Exchange]
MOV ECX, DWORD PTR [Exchange+4]
LOCK CMPXCHG8B [EDI]
POP EDI
POP EBX
end;