Re: 請問XC8如何MIX C and asm?
|
||||
---|---|---|---|---|
管理員
|
jlian你好,目前 #asm ... #endasm 指令僅能在C90的版本下使用,如果需要在C語言程式中使用添加組合語言的程式,需至Project Properties將C standard選項更改為「C 90」,程式中可能會出現警告訊息但應該可以正常編譯,如下圖:
如果需要使用 C99 的標準來編譯程式並加入組合語言,可以使用 asm(""); 來替代上面提到的方式,但需注意每行組合語言的程式皆需搭配 asm(""); 函式來使用。 另外如果需要在C語言的程式中呼叫由組合語言撰寫的函式,可以嘗試使用以下幾種方式: 第一種方式為先新增一個組合語言的 Source File (.s or .asm) ,接著在 Source File中使用組語撰寫函式實體。在C語言的程式中宣告該函式的原型並指向該函式,如下圖: 另一種方式為直接在C語言中使用 asm(""); 或 #asm ... #endasm 指令將組語寫在 Source File (.c) 中,需要時再呼叫該函式,如下圖: 詳細的使用方式可以參考 MPLAB XC8 C Compiler User’s Guide 中的 "5.12 MIXING C AND ASSEMBLY CODE" 章節。
發表於: 2022/10/17 14:45
|
|||
|