7.5 C++ の asm キーワードを使用したインラインアセンブリ言語構文

C++ をコンパイルするとき、コンパイラは ISO C++ 標準で提案されている 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.