达内LOGO和北京达内网址达内科技培训项目:Java培训 3G培训 Android培训 软件测试培训北京达内服务电话
C++培训
C++培训:C内联汇编

 通常C代码中的内联汇编需要和C的变量建立关联,需要用到完整的内联汇编格式:
   
    _asm_(assembler template
   
    :output operands                 /*optional*/
   
    :input operands                  /*optional*/
   
    :list of clobbered registers     /*optional*/
   
    );
   
    由四部分组成:
   
    1. 汇编指令
   
    2. 第二部分指示汇编指令的运算结果要输出到哪些C操作数中,C操作数应该是左值表达式
   
    3. 第三部分指示汇编指令需要从哪些C操作数中获得输入
   
    4. 在汇编指令中被修改过的寄存器列表
   
    example:
   
    /*将a的值赋给b*/
   
    # include <stdio.h>
   
    int main()
   
    {
   
    int a = 10, b;
   
    _asm_("movl %1, %%eax\n\t"
   
    "movl %%eax, %0\n\t"
   
    :"=r"(b)              /*output*/
   
    :"r"(a)               /*input*/
   
    :"%eax"               /*clobbered register*/
   
    );
   
    printf("Result: %d, %d\n", a, b);
   
    return 0;
   


苏州达内

客服系统