MPLAB XC16編譯器提供了一系列內建函數,使C語言編程人員可以訪問目前只能通過行內匯編訪問的匯編運算符或機器指令。內建函數名都有一個前綴__builtin_,源代碼用C語言編寫,在句法上類似于函數調用,但它會被編譯成直接實現功能的匯編代碼,且不涉及函數調用或庫函數。
相比于使用行內匯編,內建函數具有以下優勢:
1.提供專用的內建函數可以簡化編碼。
2.使用行內匯編時會禁止某些優化功能,而使用內建函數則不會。
3.對于使用專用寄存器的機器指令來說,編寫行內匯編代碼時要特別注意避免寄存器分配錯誤。
而內建函數使這個過程更簡單,無需考慮每個機器指令的特殊寄存器要求。內建函數的編程接口和使用說明請參考《MPLAB XC16編譯器用戶指南》。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4331瀏覽量
62610 -
編譯器
+關注
關注
1文章
1634瀏覽量
49129 -
MPLAB
+關注
關注
9文章
215瀏覽量
66883
發布評論請先 登錄
相關推薦
GCC內建函數問題!!!
目前的代碼中使用了GCC的內建函數__builtin_clz()和__builtin_popcount(),在CCS中編譯不能通過,請問,CCS是否有庫支持這兩個函數,多謝!
發表于 06-21 18:30
MPLAB X IDE和XC16編譯器適用的頭文件是什么
和XC16編譯器必須有新的適用的頭文件。有人有建議嗎?順便說一下,我能夠成功地使用SPI總線進行文本討論,從而成功地實現了SPI通信。 以上來自于百度翻譯 以下為原文 I'm using Explorer
發表于 03-20 12:08
MPLAB-X 3.55無法識別XC16編譯器
一周前安裝它)。GC30編譯器是在C:\Studio\Microchip \ MPLABC30\v3.31中,為什么MPLAB-X找不到XC16????? 以上來自于百度翻譯 以下為原文 I am
發表于 04-01 14:39
xc16編譯器不編譯延遲向量
大家好。和平在每個人身上。要編譯長代碼的所有部分,而我的編譯器XC16 V 1.31處于優化級別。S是代碼的一部分。當在S模式下編譯時,它不編譯
發表于 04-17 08:48
內置函數真的內置到XC16編譯器嗎?
內置函數是否在“庫”中,或者它們真的“內置”到XC16編譯器嗎?不可能從編譯器中分離出任何未使用的內置代碼,就像圖書館那樣嗎?我在PIC33E中使用以下內容:u
發表于 05-07 11:26
MPLAB IDE X v2.00軟件免費下載
MPLAB X IDE v2.00按照單片機的位數,有XC8、XC16、XC32,三款編譯器,可以有選擇的安裝也可以都安裝上去。
發表于 04-17 17:26
?233次下載
MPLAB X v2.10軟件下載
MPLAB X IDE v2.00按照單片機的位數,有XC8、XC16、XC32,三款編譯器,可以有選擇的安裝也可以都安裝上去。
發表于 04-17 18:24
?220次下載
如何將C源代碼從MPLAB C18編譯器移植到MPLAB XC8C編譯器的詳細概述
本文檔介紹了針對PIC18 MCU的MPLAB? C編譯器(以前的說法,本文檔稱為MPLAB C18)與MPLAB XC8 C
發表于 06-07 09:28
?30次下載
面向嵌入式工程師的MPLAB XC16用戶指南
本文檔介紹了5個適用于16位器件和MPLAB? XC16 C編譯器的代碼示例,這些代碼示例使用通用C 接口(Common C Interface,CCI)。關于CCI 的更多信息,請參
發表于 04-29 10:26
?25次下載
評論