AR# 18561

|

11.1 EDK - C ソース ファイル内へインライン アセンブリを含める方法

説明

C ソース ファイル内にインライン アセンブリ コマンドを配置しようと思います。

MicroBlaze GNU コンパイラーではこれは認識されますか。

このソースを挿入するためのフォーマットを教えてください。

ソリューション

GNU コンパイラー (mb-gcc) は、MicroBlaze 用に構築されており、多くの GNU 機能をサポートしています。 

アプリケーション ソースのサポート機能については、GNU ソース マニュアルを参照してください。 

次は、単純なインライン アセンブル コマンドとメイン ソース コードを配置する例です。

 

int main()  

while(1) 

for (i=128;i>0;i--){ 

microblaze_nbwrite_datafsl(i, 0); 

j++; //below is the equivalent inline assembly commands 

 

asm("lwi r3, r0, 292"); // load word immediate 

asm("addik r3, r3, 1"); // immediate add w/ keep carry 

asm("swi r3, r0, 292"); // store word immediate 

}  

 

その他の例 :

 

int a,b,c = 0; 

asm ("add %0,%1,%2": "=r" (a): "r" (b), "r" (c)) ; 

 

この例では値 b および c を add 命令に渡して、結果を a に戻しています。

AR# 18561
日付 03/05/2015
ステータス アクティブ
種類 一般
ツール 詳細 概略
People Also Viewed