7.4 C および C++ の __asm キーワードを使用したインラインアセンブリ言語構文

インラインアセンブラはアセンブラ指定子 __asm で呼び出され、その後には中括弧または丸括弧で囲まれたアセンブラ命令のリストが配置されます。

インラインアセンブリコードは以下の形式で指定できます。
  • 1 行で記述する場合の例:
    __asm("instruction[;instruction]");
    __asm{instruction[;instruction]}
    
    コメントを含めることはできません。
  • 複数の隣接する文字列で記述する場合の例:
    __asm("ADD x, x, #1\n"
          "MOV y, x\n");
    
    これにより、マクロを使用してインラインアセンブリを生成できます。以下に例を示します。
    #define ADDLSL(x, y, shift) __asm ("ADD " #x ", " #y ", LSL " #shift)
    
  • 複数行で記述する場合の例:
    __asm
    {
        ...
        instruction
        ...
    }
    
    C または C++ のコメントは、インラインアセンブリ言語ブロック内の任意の場所に使用できます。
__asm ステートメントは、ステートメントを記述できる場所であればどこでも使用できます。
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.