__asm ブロックでの C または C++ シンボルの使用
Microsoft 固有の仕様
__asm
ブロックでは、ブロックが表示されるスコープ内の任意の C または C++ シンボルを参照できます。 (C および C++ のシンボルは、変数名、関数名、ラベルです。つまり、シンボリック定数または enum
メンバーではない名前です。C++ メンバー関数を呼び出すことはできません)。
C および C++ シンボルの使用には、いくつかの制限が適用されます。
各アセンブリ言語ステートメントには、C または C++ シンボルを 1 つのみ含めることができます。 LENGTH、TYPE、SIZE 式でのみ、同じアセンブリ命令に複数のシンボルを指定できます。
__asm
ブロックで参照される関数は、プログラムの早い段階で宣言 (プロトタイプ化) する必要があります。 それ以外の場合、コンパイラによって__asm
ブロック内の関数名とラベルを区別することはできません。__asm
ブロックでは、MASM 予約語と同じスペルの任意の C または C++ シンボルを使用することはできません (大文字小文字は区別されません)。 MASM 予約語には、PUSH などの命令名と SI などのレジスタ名が含まれます。__asm
ブロックでは、構造体と共用体タグは認識されません。
Microsoft 固有の仕様はここまで