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