VC内联汇编和GCC内联汇编的语法区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC内联汇编和GCC内联汇编的语法区别相关的知识,希望对你有一定的参考价值。

VC:

    #include <stdio.h>
    
    main(){
        int a = 1;
        int b = 2;
        int c;
        __asm{
            mov eax,a
            mov ebx,b
            mov ecx,1h
            add eax,ebx
            mov c,ecx
        }
        printf("%x\n", c);
    }

GCC:

    #include <stdio.h>
    
    main(){
        int a = 1;
        int b = 2;
        int c;
        asm(
            "add %2,%0"        //1
            :"=g"(c)           //2
            :"0"(a),"g"(b)     //3
            :"memory"          //4
        );
            printf("%x\n", c);
    }

以上是关于VC内联汇编和GCC内联汇编的语法区别的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有扩展内联 asm 的情况下在 gcc 内联汇编中声明和初始化局部变量?

ARM嵌入式开发中的GCC内联汇编__asm__

最牛X的GCC 内联汇编

最牛X的GCC 内联汇编

GCC内联汇编常见陷阱

用于复数乘法的汇编代码/AVX 指令。 (GCC 内联汇编)