linux c中嵌入汇编代码

由于有些时候编译器的缘故,导致编译器不能产生我们所需的最优代码,此时我们需要在linux c中加入适当的汇编语言,
有时我们需要访问操作系统中一些特殊的寄存器,它们存放着进程状态信息。执行输入输出操作时,我们需要使用一些特殊的指令来访问特殊存储器的位置,此时我们需要在linux c中嵌入汇编语言。
有时我们需要访问一些机器特性,这个时候,我们也不可以采用linux c访问,此时我们必须采用汇编语言进行访问。



1 使用内嵌代码的方式 asm(汇编代码)

     #include "stdio.h"
     int main()
      {
        asm("setae %al");  //嵌入汇编代码
        return 0;
      }
   


2 在c语言中嵌入一个汇编系列

       int sum3(int x,int y,int *d)
       {
         int result;
         *dest = x*y;
         asm("setae %%bl;movzbl %%bl ,%0"  //将0保存至寄存器%bl中
             : "=r"(result)  //输出
             :               //无输入
             :  "%ebx"      
          );
          return result;
       }