ASM ++ .NET-, :
ASM
mov eax, DWORD PTR _X$[ebp]
mov ecx, DWORD PTR _Y$[ebp]
mov edx, DWORD PTR [eax]
xor edx, DWORD PTR [ecx]
mov eax, DWORD PTR _X$[ebp]
mov DWORD PTR [eax], edx
mov ecx, DWORD PTR _Y$[ebp]
mov edx, DWORD PTR _X$[ebp]
mov eax, DWORD PTR [ecx]
xor eax, DWORD PTR [edx]
mov ecx, DWORD PTR _Y$[ebp]
mov DWORD PTR [ecx], eax
mov edx, DWORD PTR _X$[ebp]
mov eax, DWORD PTR _Y$[ebp]
mov ecx, DWORD PTR [edx]
xor ecx, DWORD PTR [eax]
mov edx, DWORD PTR _X$[ebp]
mov DWORD PTR [edx], ecx
, :
X ^= Y;
Y ^= X;
X ^= Y;
# ( JetBrains dotPeek)
int& local1 = @X;
int num1 = ^local1;
int& local2 = @Y;
int num2 = ^local2;
int num3 = X ^= Y;
int num4;
int num5 = num4 = num2 ^ num3;
^local2 = num4;
int num6 = num5;
int num7 = num1 ^ num6;
^local1 = num7;
&,^,@, , :
int xStartingValue = X;
X ^= Y;
Y ^= X;
X = xStartingValue ^ Y;
source
share