C中使用汇编交换两个值

  使用宏定义虽然也可以,总是觉得不方便。吾一直想,最好提供一个交换指令,然后直接定义一个函数供调用。

以下代码没有经过测试,请自行验证。

  • 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);

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/89402032
今日推荐