作者:paradoxfx 來源:電子產(chǎn)品世界 在C/C++與匯編語言混合編程的情況下,一般我們都會選擇C/C++來實現(xiàn)所期待的功能。在我們用C/C++來實現(xiàn)某些位操作、數(shù)學(xué)運算等功能后,編譯器會盡可能地把它們編譯為一些已經(jīng)高度優(yōu)化的匯編函數(shù)(內(nèi)聯(lián)函數(shù)),一般情況下是一條或者多條匯編指令的集合,在封裝之后,我們可以在C/C++編程的時候直接使用這樣的內(nèi)聯(lián)函數(shù)。如果不直接使用它們,那么在單步調(diào)試的時候,也可以從C/C++代碼編譯生成的匯編代碼中找到對應(yīng)的內(nèi)聯(lián)函數(shù),能夠幫助我們加深對編譯和代碼執(zhí)行的理解。這些編譯器的內(nèi)聯(lián)函數(shù)都有一個顯著的外觀,即以兩個下劃線作為開頭,而使用方法則與C/C++編程中函數(shù)的調(diào)用形式是一樣的。例如: long lvar; int ivar; unsigned int uivar; lvar = __mpyxu(ivar, uivar); 下面我們就列舉一下TMS320C28x C/C++ 編譯器的內(nèi)聯(lián)函數(shù)。為了方便對比說明,表格并不是完全安裝函數(shù)名的字母順序來排列的。 表1 TMS320C28x C/C++ 編譯器的內(nèi)聯(lián)函數(shù)列表 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 表2 TMS320C28x C/C++ 編譯器的內(nèi)聯(lián)函數(shù)列表-面向FPU ![]() ![]() |