嵌入式彙編是對純彙編檔案的一種有益補充。通常會有下面幾種情況使用到彙編:(1)提高**的工作效率 ,使用到cpu的一些特殊指令,比如說mmx指令;(2)對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的**中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實證明一切。
(1)使用嵌入彙編的時候,注意暫存器的保護
cpp**
int process()
return 1;
}
(2)呼叫函式的時候,直接使用call即可,返回值用eax傳遞,同時注意堆疊平衡
cpp**
int add(int a, int b)
int process()
return 1;
}(3)計算的時候注意指標和數值的差別
cpp**
void process()
assert(value == 2);
return ;
}(4)全域性資料的訪問
cpp**
static
int global = 10;
void process()
assert(global == 11);
return ;
}(5)迴圈的跳轉
cpp**
void process()
assert(value == 10);
return ;
}(6) 關中斷的指令在vc中並不能被執行,會產生異常
cpp**
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 對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的 中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實...