使用宏定义虽然也可以,总是觉得不方便。吾一直想,最好提供一个交换指令,然后直接定义一个函数供调用。
以下代码没有经过测试,请自行验证。
- WINDOWS
int x=1, y=200;
_asm
{
push x;
push y;
pop x;
pop y;
}
printf("x=%d, y=%d\n", x, y);
- LINUX
int x=1, y=200;
asm(
"push x\n\t"
"push y\n\t"
"pop x\n\t"
"pop y\n\t"
);
printf("x=%d, y=%d\n", x, y);