次の方法で共有


インライン アセンブラー (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 固有の仕様→

参照

概念

関数の属性