用彙編的眼光看C (之嵌入彙編)

2021-08-26 04:41:46 字數 1310 閱讀 5316

嵌入式彙編是對純彙編檔案的一種有益補充。通常會有下面幾種情況使用到彙編:(1)提高**的工作效率 ,使用到cpu的一些特殊指令,比如說mmx指令;(2)對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的**中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實證明一切。

(1)使用嵌入彙編的時候,注意暫存器的保護

int process()

return 1;

}

(2)呼叫函式的時候,直接使用call即可,返回值用eax傳遞,同時注意堆疊平衡

int add(int a, int b)

int process()

return 1;

}

(3)計算的時候注意指標和數值的差別

void process()

assert(value == 2);

return ;

}

(4)全域性資料的訪問

static int global = 10;

void process()

assert(global == 11);

return ;

}

(5)迴圈的跳轉

void process()

assert(value == 10);

return ;

}

(6) 關中斷的指令在vc中並不能被執行,會產生異常

void process()

return ;

}

(7) vc6.0支援mmx指令集,但是vs2005支援mmx和sse指令集

(8)如果工程中存在*.asm彙編檔案,那麼需要按照下面的步驟進行操作

a) 選擇【project】-> 【setting】

b) 單擊左邊的工程,選擇某乙個*.asm檔案,右邊的tab會出現兩個選項,分別是general和custom build

c) 在commands中輸入對應的編譯指令,至於是masm還是nasm型別,請參考對應的編譯手冊

用彙編的眼光看C (之嵌入彙編)

嵌入式彙編是對純彙編檔案的一種有益補充。通常會有下面幾種情況使用到彙編 1 提高 的工作效率 使用到cpu的一些特殊指令,比如說mmx指令 2 對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的 中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實...

用彙編的眼光看C (之嵌入彙編)

嵌入式彙編是對純彙編檔案的一種有益補充。通常會有下面幾種情況使用到彙編 1 提高 的工作效率 使用到cpu的一些特殊指令,比如說mmx指令 2 對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的 中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實...

用彙編的眼光看C (之嵌入彙編)

嵌入式彙編是對純彙編檔案的一種有益補充。通常會有下面幾種情況使用到彙編 1 提高 的工作效率 使用到cpu的一些特殊指令,比如說mmx指令 2 對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的 中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實...