7

TI コード コンポーザー スタジオ (ARM 用) を使用して C コードでインライン アセンブリ コードを実行するにはどうすればよいか教えてください。

検索して試しましたが、何も機能しませんでした。

たとえば、この非常に単純なコードを試すと、次のようになります。

asm("push r0\n");

またはこれ

__asm("push r0\n");

私はいつも得る:

[E0002] 不正なニモニック指定のプッシュ r0

1 アセンブリ エラー、アセンブリ警告なし

私の以前のコードは GCC スタイルであり、TI コンパイラはそれを受け入れない!. 次に、独自のインライン アセンブリ コードを実行するにはどうすればよいでしょうか。

4

2 に答える 2

7

最後に私は解決策を見つけました!!

主な問題は、次のようにアセンブリ命令の前にスペースまたはタブを追加することで解決されます。

asm(" MOVS R0, #5\n");

これはうまくいきません:

asm("MOVS R0, #5\n");

プッシュでは、レジスタを中かっこ {R0} で囲む必要があります。

asm(" PUSH {R0}\n");

それが役立つことを願っています。

于 2015-07-04T12:41:09.880 に答える