2012年5月12日 星期六

GNU C 要 inline(內嵌) 組合語言 語法說明



GNU內嵌組語



一、C內嵌 asm 語法格式:




   asm volatile (“asm code”:output:input:changed); //語法結尾必須以‘;’做結尾




語法格式說明:

1.
開頭的 asm
是內嵌asm關鍵字,接著的 volatile 是\告訴編譯器不要優化內嵌的asm,如果想優化就不加 volatile。

2. ANSI C
的 asm
語法格式必須改為:

__asm__ __volatile__(“asm code”
:output:input:changed);// 這是因ANSI C把asm用於其它用途,不能用於內嵌 asm 語法,GCC就可以

3.
如果後面部分沒有output、input、changed內容,‘:’可以省略,前面或中間的不能省略‘:’,沒有asm code也不可以省略‘“”’,如果沒有changed必須省略‘:’。



沒有留言:

張貼留言

FPGA Verilog 的學習經驗,提供給要入門的新手

今天簡單說說 FPGA Verilog 的學習經驗,提供給要入門的新手: 1.對自己寫的FPGA Verilog程式,所生成的數位電路要心中有數。 這一點個人認為很重要,就正如寫 C語言,心中要能生成對應的組合語言一樣,我是這樣要求自己的。 雖然 FPGA Verilog語言...