64,680
社区成员
发帖
与我相关
我的任务
分享
int a, b;
std::swap(a,b);
void swap1(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
return ;
}
void swap2(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
return ;
}
void swap3(int &a,int &b)
{
__asm
{
mov eax,dword ptr[a];
mov ecx,dword ptr[eax];
mov ebx,dword ptr[b];
mov edx,dword ptr[ebx];
mov dword ptr[eax],edx;
mov dword ptr[ebx],ecx;
}
}
void swap4(int &a,int &b)
{
__asm
{
mov eax,dword ptr[a];
push eax;
mov eax,dword ptr[eax];
mov ebx,dword ptr[b];
mov ecx,dword ptr[ebx];
xchg eax,dword ptr[ebx];
pop eax;
xchg ecx,dword ptr[eax];
}
}
#include<stdio.h>
int main()
{
int i=6;
int j=5;
if(i>j)
{
i=i-j;
j=i+j;
i=j-i;
}
else
{
j=j-i;
i=j+i;
j=i-j;
}
printf("%d\t%d\r\n", i, j);
return 0;
}