インライン アセンブラー (c)
Microsoft 固有の仕様 →
インライン アセンブラーは追加のアセンブリとリンク ステップのない C プログラムの作成元のアセンブリ言語命令を直接埋め込むことができます。インライン アセンブラーはコンパイラにビルド — MASM (Microsoft Macro Assembler) などの別のアセンブラーは必要ではありません。
インライン アセンブラーが別のアセンブリとリンク ステップを必要としないため別のアセンブラー方が便利です。インライン アセンブラー コードでスコープ内にあるためプログラムの C コードと統合する方が簡単な C の変数や関数名を使用できます。アセンブリ コードおよび C のステートメントを混在させることができるため単独で C で使いにくくまたは不可能なタスクを実行できます。
__asm のキーワードはインライン アセンブラーを起動してC. のステートメントを実行できる場所ならどこでも指定できます。これは単独では使用できません。これは命令のアセンブリ命令中かっこで囲まれた少なくともグループ空のかっこのペアを指定する必要があります。用語 __asm 「ブロック」ここについての命令またはグループを中かっこでかどうかを示します。
次のコードでは中かっこで囲まれた __asm の単純なブロックです。(コードはカスタム関数プロローグのシーケンスです)。
__asm
{
push ebp
mov ebp, esp
sub esp, __LOCAL_SIZE
}
また各アセンブリ命令の前の __asm を配置できます :
__asm push ebp __asm mov ebp, esp __asm sub esp, __LOCAL_SIZE
__asm のキーワードがステートメントの区分線であるため同じ行または命令にアセンブリを配置する :
__asm push ebp
__asm mov ebp, esp
__asm sub esp, __LOCAL_SIZE
終了 Microsoft 固有の仕様→