天天看點

Linux C語言調用彙編

核心裡面和一些開源的代碼裡,我們經常看到一些内聯彙編(inline assemble)函數。裡面經常有一些彙編代碼

下面的函數不是内聯彙編,是一個C語言調用AT&T彙編 (還有一種Intel彙編)

int replace(){

int a=1;

int b=2;

asm("movl %1,%%eax"
    "movl %%eax,%0"
           
: "=r" (b) /* output Regester */
           
: "r"  (a) /* input Regester */
           
: "%eax"); /* eax Regester */

printf(" b  is %d \n",b)

}
           

調用replace輸出結果:

b  is 1

繼續閱讀