当前位置: 代码迷 >> 汇编语言 >> 64位汇编程序,该如何解决
  详细解决方案

64位汇编程序,该如何解决

热度:1149   发布时间:2013-02-26 00:00:00.0
64位汇编程序
怎么用汇编实现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));