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

2021-06-22 23:59:20 字數 1633 閱讀 2088

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

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

[cpp]view plain

copy

intprocess()  

return

1;  

}       

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

[cpp]view plain

copy

intadd(

inta, 

intb)  

intprocess()  

return

1;  

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

[cpp]view plain

copy

void

process()  

assert(value == 2);  

return

;  }  

(4)全域性資料的訪問

[cpp]view plain

copy

static

intglobal = 10;  

void

process()  

assert(global == 11);  

return

;  }  

(5)迴圈的跳轉

[cpp]view plain

copy

void

process()  

assert(value == 10);  

return

;  }  

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

[cpp]view plain

copy

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 對硬體進行某種特殊的操作,比如說關中斷等,這在核心級的 中是比較常見的。但是我們講究嵌入式彙編的一些基本點和大家一起討論一下,建議大家和我一起做實驗,用事實...