C 內聯彙編

彙編 可以使得程序更高效,不過現在應該主要是和硬件有交互的時候纔會用這個,那麼知道基本語法應該也就可以了。

__asm__ __volatile__ (

        "movl %1,%%eax" //書上 沒有\n\t 直接分號,編譯一直有錯誤,
        "movl %2,%%ebx"
        "movl %%eax,%0"
        :"=r"(reg)

        :"r"(ce) ,"r"(ee) )


下面代碼 源自linux 內核編程,但是 書上我直接編譯有錯誤,



#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int fun()
{
    int ee = 0x4000,ce=0x8000 ,reg;
 
    __asm__ __volatile__ (
        "movl %1,%%eax\n\t"
        "movl %2,%%ebx\n\t"
        "movl %%eax,%0\n\t"
        :"=r"(reg)
        :"r"(ce) ,"r"(ee)
        :"%eax" ,"%ebx"  );
 
    printf("reg = %x",reg);
    return 0;
}
 

歡迎訪問我的獨立博客:http://www.fuxiang90.me/?p=708

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章