1
我正在使用Diab C編譯器(v5.3.1.0)用於PowerPC,並且需要將MSR複製到函數的局部變量。 Diab不支持GCC風格的C表達式擴展,所以「mfmsr%0 \ n」:「= r」(msr)不起作用。簡單地引用變量(mfmsr msr)也不起作用。儘管它說內聯彙編對於使用靜態變量很有幫助,但沒有舉例說明,但對於訪問C變量,文檔大多是無聲的。使用內聯彙編程序訪問函數變量
任何意見或例子?
我正在使用Diab C編譯器(v5.3.1.0)用於PowerPC,並且需要將MSR複製到函數的局部變量。 Diab不支持GCC風格的C表達式擴展,所以「mfmsr%0 \ n」:「= r」(msr)不起作用。簡單地引用變量(mfmsr msr)也不起作用。儘管它說內聯彙編對於使用靜態變量很有幫助,但沒有舉例說明,但對於訪問C變量,文檔大多是無聲的。使用內聯彙編程序訪問函數變量
任何意見或例子?
盯着文檔最後把我引向了asm宏。我創建了一個看起來很像C函數的彙編宏,並調用它。
__asm INT32U getMSR()
{
! "r3" /* Scratch register.*/
mfmsr r3
}
,並在那裏我想要得到的MSR:
{
...
msr = getMSR();
...
}