怎么用汇编实现2个数的交换 在linux下嵌入64位汇编到.c文件中该怎么写啊?为什么会一直报错啊?我知道用
movq %%rax, %%rbx不会错。变量(如:a)是怎么传到寄存器的?
#include <stdio.h>
int main()
{
int a = 10, b = 0;
__asm__ ("mov %%rax, %a;\r"
);
printf("Result: %d, %d\\n", a, b);
}
求指教!
汇编 64位
------解决方案--------------------------------------------------------
交换不是xchg么
要么就xor
xor a,b
xor b,a
xor a,b
------解决方案--------------------------------------------------------
你以为是VC啊,呵呵?
long x=100;
__asm__ __volatile__("mov %%rax,%0"::"m"(x));