次の方法で共有


__asm ブロックでの C または C++ シンボルの使用

Microsoft 固有の仕様

__asm ブロックでは、ブロックが表示されるスコープ内の任意の C または C++ シンボルを参照できます。 (C および C++ のシンボルは、変数名、関数名、ラベルです。つまり、シンボリック定数または enum メンバーではない名前です。C++ メンバー関数を呼び出すことはできません)。

C および C++ シンボルの使用には、いくつかの制限が適用されます。

  • 各アセンブリ言語ステートメントには、C または C++ シンボルを 1 つのみ含めることができます。 LENGTHTYPESIZE 式でのみ、同じアセンブリ命令に複数のシンボルを指定できます。

  • __asm ブロックで参照される関数は、プログラムの早い段階で宣言 (プロトタイプ化) する必要があります。 それ以外の場合、コンパイラによって __asm ブロック内の関数名とラベルを区別することはできません。

  • __asm ブロックでは、MASM 予約語と同じスペルの任意の C または C++ シンボルを使用することはできません (大文字小文字は区別されません)。 MASM 予約語には、PUSH などの命令名と SI などのレジスタ名が含まれます。

  • __asm ブロックでは、構造体と共用体タグは認識されません。

Microsoft 固有の仕様はここまで

関連項目

__asm ブロックでの C または C++ の使用