On a further note, please don't paste Windows disassembly on this
mailing list.
On 10-Oct-08, at 2:27 PM, Jack Yi wrote:
  question about InterlockedCompareExchange.
 MSDN says: The function returns the initial value of the destination.
 I just don't understand, why can we get the initial value of
 destination as return value by 'return 0Ch' ?
 Thank you!
 .text:7C8097A2 ; PVOID __stdcall InterlockedCompareExchange(PVOID
 *Destination,PVOID Exchange,PVOID Comperand)
 .text:7C8097A2                 public _InterlockedCompareExchange@12
 .text:7C8097A2 _InterlockedCompareExchange@12 proc near
 .text:7C8097A2                                         ; CODE XREF:
 BaseComputeProcessDllPath(x,x)+97B3p
 .text:7C8097A2                                         ;
 CreateActCtxW(x)+15D2Dp
 .text:7C8097A2
 .text:7C8097A2 Destination     = dword ptr  4
 .text:7C8097A2 Exchange        = dword ptr  8
 .text:7C8097A2 Comperand       = dword ptr  0Ch
 .text:7C8097A2
 .text:7C8097A2                 mov     ecx, [esp+Destination]
 .text:7C8097A6                 mov     edx, [esp+Exchange]
 .text:7C8097AA                 mov     eax, [esp+Comperand]
 .text:7C8097AE
 .text:7C8097AE loc_7C8097AE:                           ; DATA
 XREF: .data:7C884014o
 .text:7C8097AE                 lock cmpxchg [ecx], edx
 .text:7C8097B2                 retn    0Ch
 .text:7C8097B2 _InterlockedCompareExchange@12 endp
 _______________________________________________
 Ros-dev mailing list
 Ros-dev(a)reactos.org
 
http://www.reactos.org/mailman/listinfo/ros-dev 
Best regards,
Alex Ionescu