ホームページ > バックエンド開発 > C#.Net チュートリアル > .NET Framework 中間言語 IL 命令集

.NET Framework 中間言語 IL 命令集

黄舟
リリース: 2017-02-22 10:40:52
オリジナル
2138 人が閲覧しました

IL は、.NET Framework の Intermediate Language の略称です。 .NET Framework が提供するコンパイラを使用すると、ソース プログラムを .exe または .dll ファイルに直接コンパイルできますが、このときコンパイルされたプログラム コードは CPU で直接実行できるマシンコードではなく、中間言語 IL (Intermediate Language) コード。

名前 説明
Add 2 つの値を加算し、結果を計算スタックにプッシュします。
Add.Ovf 2 つの整数を加算し、オーバーフロー チェックを実行し、結果を計算スタックにプッシュします。
Add.Ovf.Un 2 つの符号なし整数値を加算し、オーバーフロー チェックを実行し、結果を評価スタックにプッシュします。
And 2 つの値のビットごとの AND を計算し、結果を評価スタックにプッシュします。
Arglist 現在のメソッドの引数リストへのアンマネージ ポインターを返します。
Beq 2つの値が等しい場合、制御をターゲット命令に移します。
Beq.S 2 つの値が等しい場合、制御をターゲット命令 (短い形式) に転送します。
Bge 最初の値が 2 番目の値以上の場合、制御をターゲット命令に移します。
Bge.S 最初の値が 2 番目の値以上の場合、制御をターゲット命令 (短い形式) に転送します。
Bge.Un 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値より大きい場合、制御はターゲット命令に移されます。
Bge.Un.S 符号なし整数値またはソート不可能な浮動小数点数を比較する場合、最初の値が 2 番目の値より大きい場合、制御はターゲット命令 (短い形式) に転送されます。
Bgt 最初の値が 2 番目の値より大きい場合、制御をターゲット命令に転送します。
Bgt.S 最初の値が 2 番目の値より大きい場合、制御をターゲット命令 (短い形式) に転送します。
Bgt.Un 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値より大きい場合、制御はターゲット命令に移されます。
Bgt.Un.S 符号なし整数値またはソート不可能な浮動小数点数を比較する場合、最初の値が 2 番目の値より大きい場合、制御はターゲット命令 (短い形式) に転送されます。
Ble 最初の値が 2 番目の値以下の場合、制御をターゲット命令に転送します。
Ble.S 最初の値が 2 番目の値以下の場合、制御をターゲット命令 (短い形式) に転送します。
Ble.Un 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値以下の場合、制御はターゲット命令に移されます。
Ble.Un.S 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値以下の場合、制御をターゲット命令 (短縮形) に転送します。
Blt 最初の値が 2 番目の値より小さい場合、制御をターゲット命令に転送します。
Blt.S 最初の値が 2 番目の値より小さい場合、制御をターゲット命令 (短い形式) に転送します。
Blt.Un 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値より小さい場合、制御はターゲット命令に移されます。
Blt.Un.S 符号なし整数値またはソート不可能な浮動小数点値を比較する場合、最初の値が 2 番目の値より小さい場合、制御をターゲット命令 (短い形式) に転送します。
Bne.Un 2 つの符号なし整数値またはソート不可能な浮動小数点値が等しくない場合、制御をターゲット命令に移します。
Bne.Un.S 2 つの符号なし整数値またはソート不可能な浮動小数点値が等しくない場合に、制御をターゲット命令 (短い形式) に転送します。
Box 値クラスをオブジェクト参照(O型)に変換します。
Br 無条件にターゲット命令に制御を移します。
Br.S 無条件にターゲット命令に制御を移します (短い形式)。
Break 共通言語構造 (CLI) に信号を送り、ブレークポイントに到達したことをデバッガーに通知します。
Brfalse 値が false の場合、null 参照 (Visual Basic では Nothing)、またはゼロは、ターゲット命令に制御を移します。
Brfalse.S 値が false、null 参照、または 0 の場合、制御をターゲット命令に転送します。
Brtrue 値が true、null 以外、または 0 以外の場合、制御をターゲット命令に転送します。
Brtrue.S 値が true、null 以外、または 0 以外の場合、制御をターゲット命令 (短い形式) に転送します。
Call 渡されたメソッド指定子で示されたメソッドを呼び出します。
Calli 呼び出し規約で記述されたパラメータを使用して、計算スタック上に示されたメソッドを (エントリ ポイントへのポインタとして) 呼び出します。
Callvirt オブジェクトの遅延バインディング メソッドを呼び出し、戻り値を計算スタックにプッシュします。
Castclass 参照によって渡されたオブジェクトを指定されたクラスにキャストしようとします。
Ceq 2 つの値を比較します。 2 つの値が等しい場合は、整数値 1 (int32) が評価スタックにプッシュされ、そうでない場合は 0 (int32) が評価スタックにプッシュされます。
Cgt 2 つの値を比較します。最初の値が 2 番目の値より大きい場合は、整数値 1 (int32) が評価スタックにプッシュされ、それ以外の場合は 0 (int32) が評価スタックにプッシュされます。
Cgt.Un 2 つの符号なしまたは並べ替え不可能な値を比較します。最初の値が 2 番目の値より大きい場合は、整数値 1 (int32) が評価スタックにプッシュされ、それ以外の場合は 0 (int32) が評価スタックにプッシュされます。
Ckfinite 値が有限数でない場合は、ArithmeticException をスローします。
Clt 2 つの値を比較します。最初の値が 2 番目の値より小さい場合は、整数値 1 (int32) が評価スタックにプッシュされ、そうでない場合は 0 (int32) が評価スタックにプッシュされます。
Clt.Un 符号なしまたは並べ替え不可能な値value1とvalue2を比較します。 value1 が value2 より小さい場合、整数値 1 (int32) が評価スタックにプッシュされ、それ以外の場合、0 (int32) が評価スタックにプッシュされます。
Constrained 仮想メソッド呼び出しが行われる型を制約します。
Conv.I 計算スタックの最上位の値をネイティブ int に変換します。
Conv.I1 計算スタックの先頭の値を int8 に変換し、それを int32 に拡張 (パディング) します。
Conv.I2 計算スタックの先頭の値を int16 に変換し、それを int32 に拡張 (パディング) します。
Conv.I4 計算スタックの先頭の値を int32 に変換します。
Conv.I8 計算スタックの先頭の値を int64 に変換します。
Conv.Ovf.I 評価スタックの最上位にある符号付き値を符号付きネイティブ int に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I.Un 評価スタックの最上位にある符号なしの値を符号付きネイティブ int に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I1 評価スタックの先頭にある符号付き値を符号付き int8 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I1.Un 評価スタックの最上位にある unsigned 値を signed int8 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I2 評価スタックの先頭にある符号付き値を符号付き int16 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I2.Un 評価スタックの先頭にある符号なしの値を符号付き int16 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I4 評価スタックの先頭にある符号付き値を符号付き int32 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I4.Un 評価スタックの最上位にある符号なしの値を符号付き int32 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I8 評価スタックの先頭にある符号付き値を符号付き int64 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.I8.Un 評価スタックの先頭にある符号なしの値を符号付き int64 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U 計算スタックの先頭にある符号付き値を符号なしネイティブ int に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U.Un 評価スタックの最上位にある符号なし値を符号なしネイティブ int に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U1 評価スタックの先頭にある符号付き値を unsigned int8 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U1.Un 評価スタックの先頭にある unsigned 値を unsigned int8 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U2 計算スタックの先頭にある符号付きの値を unsigned int16 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U2.Un 評価スタックの最上位にある unsigned 値を unsigned int16 に変換し、それを int32 に拡張し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U4 計算スタックの先頭にある符号付きの値を unsigned int32 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U4.Un 計算スタックの先頭にある unsigned 値を unsigned int32 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U8 計算スタックの先頭にある符号付き値を unsigned int64 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.Ovf.U8.Un 計算スタックの先頭にある unsigned 値を unsigned int64 に変換し、オーバーフロー時に OverflowException をスローします。
Conv.R.Un 計算スタックの先頭にある符号なし整数値を float32 に変換します。
Conv.R4 計算スタックの先頭の値を float32 に変換します。
Conv.R8 計算スタックの先頭の値を float64 に変換します。
Conv.U 計算スタックの最上位の値を unsigned ネイティブ int に変換し、それをネイティブ int に展開します。
Conv.U1 計算スタックの先頭の値を unsigned int8 に変換し、それを int32 に拡張します。
Conv.U2 計算スタックの先頭の値を unsigned int16 に変換し、それを int32 に拡張します。
Conv.U4 計算スタックの先頭の値を unsigned int32 に変換し、それを int32 に拡張します。
Conv.U8 計算スタックの先頭の値を unsigned int64 に変換し、それを int64 に拡張します。
Cpblk 指定されたバイト数をソースアドレスから宛先アドレスにコピーします。
Cpobj オブジェクトのアドレス (&、* またはネイティブ int 型) にある値の型を、ターゲット オブジェクトのアドレス (&、* またはネイティブ int 型) にコピーします。
p 2つの値を除算し、結果をfloat(F型)または商(int32型)として計算スタックにプッシュします。
p.Un 2 つの符号なし整数値を除算し、結果 ( int32 ) を評価スタックにプッシュします。
Dup 計算スタックの現在の最上位値をコピーし、そのコピーを計算スタックにプッシュします。
Endfilter 制御を例外のフィルター句から共通言語構造 (CLI) 例外ハンドラーに戻します。
Endfinally 例外ブロックの Fault 句または Finally 句から制御を共通言語構造 (CLI) 例外ハンドラーに戻します。
Initblk 特定のアドレスにある指定されたメモリ ブロックを、指定されたサイズと初期値に初期化します。
Initobj 指定されたアドレスにある値型の各フィールドを null 参照、または適切なプリミティブ型の場合は 0 に初期化します。
Isinst オブジェクト参照 (O 型) が特定のクラスのインスタンスであるかどうかをテストします。
Jmp 現在のメソッドを終了し、指定されたメソッドにジャンプします。
Ldarg パラメータ(指定されたインデックス値によって参照される)をスタックにロードします。
Ldarg.0 インデックス 0 のパラメーターを計算スタックにロードします。
Ldarg.1 インデックス 1 のパラメーターを計算スタックにロードします。
Ldarg.2 インデックス 2 のパラメーターを計算スタックにロードします。
Ldarg.3 インデックス 3 のパラメーターを計算スタックにロードします。
Ldarg.S 引数 (指定された短縮形式のインデックスによって参照される) を評価スタックにロードします。
Ldarga は、パラメータアドレスを計算スタックにロードします。
Ldarga.S パラメータアドレスを短い形式で計算スタックにロードします。
Ldc.I4 提供された int32 型の値を int32 として評価スタックにプッシュします。
Ldc.I4.0 整数値 0 を int32 として計算スタックにプッシュします。
Ldc.I4.1 整数値 1 を int32 として評価スタックにプッシュします。
Ldc.I4.2 整数値 2 を int32 として評価スタックにプッシュします。
Ldc.I4.3 整数値 3 を int32 として評価スタックにプッシュします。
Ldc.I4.4 整数値 4 を int32 として評価スタックにプッシュします。
Ldc.I4.5 整数値 5 を int32 として計算スタックにプッシュします。
Ldc.I4.6 整数値 6 を int32 として計算スタックにプッシュします。
Ldc.I4.7 整数値 7 を int32 として評価スタックにプッシュします。
Ldc.I4.8 整数値 8 を int32 として計算スタックにプッシュします。
Ldc.I4.M1 整数値 -1 を int32 として計算スタックにプッシュします。
Ldc.I4.S 提供された int8 値を int32 (短い形式) として計算スタックにプッシュします。
Ldc.I8 提供された int64 型の値を int64 として評価スタックにプッシュします。
Ldc.R4 提供された float32 型の値を F (float) 型として評価スタックにプッシュします。
Ldc.R8 float64 型の提供された値を F (float) 型として評価スタックにプッシュします。
Ldelem ディレクティブで指定された型に従って、指定された配列インデックスにある要素を計算スタックの先頭にロードします。
Ldelem.I 指定された配列インデックスにあるネイティブ int 型の要素を、評価スタックの最上位にネイティブ int としてロードします。
Ldelem.I1 指定された配列インデックスにある int8 型の要素を、評価スタックの先頭に int32 としてロードします。
Ldelem.I2 指定された配列インデックスにある int16 型の要素を、評価スタックの最上位に int32 としてロードします。
Ldelem.I4 指定された配列インデックスにある int32 型の要素を、評価スタックの最上位に int32 としてロードします。
Ldelem.I8 指定された配列インデックスにある int64 型の要素を、評価スタックの最上位に int64 としてロードします。
Ldelem.R4 指定された配列インデックスにあるタイプ float32 の要素を、タイプ F (float) として評価スタックの最上位にロードします。
Ldelem.R8 指定された配列インデックスにあるタイプ float64 の要素を、タイプ F (float) として評価スタックの最上位にロードします。
Ldelem.Ref 指定された配列インデックスにあるオブジェクト参照を含む要素を、O 型 (オブジェクト参照) として評価スタックの最上位にロードします。
Ldelem.U1 指定された配列インデックスにある unsigned int8 型の要素を、評価スタックの先頭に int32 としてロードします。
Ldelem.U2 指定された配列インデックスにある unsigned int16 型の要素を、評価スタックの最上位に int32 としてロードします。
Ldelem.U4 指定された配列インデックスにある unsigned int32 型の要素を、評価スタックの先頭に int32 としてロードします。
Ldelema 指定された配列インデックスにある配列要素のアドレスを、評価スタックの先頭に & 型 (マネージド ポインター) としてロードします。
Ldfld 参照が現在計算スタック上にあるオブジェクト内のフィールドの値を検索します。
Ldflda 参照が現在計算スタック上にあるオブジェクト内のフィールドのアドレスを検索します。
Ldftn 特定のメソッドを実装するネイティブ コードを指すアンマネージ ポインター (ネイティブ int 型) を計算スタックにプッシュします。
Ldind.I ネイティブ int 型の値をネイティブ int として計算スタックに間接的にロードします。
Ldind.I1 int8 型の値を int32 として計算スタックに間接的にロードします。
Ldind.I2 int16 型の値を int32 として計算スタックに間接的にロードします。
Ldind.I4 int32 型の値を int32 として計算スタックに間接的にロードします。
Ldind.I8 int64 型の値を int64 間接として計算スタックにロードします。
Ldind.R4 float32 値を F (float) 型として計算スタックに間接的にロードします。
Ldind.R8 float64 値を F (float) 型として計算スタックに間接的にロードします。
Ldind.Ref は、オブジェクト参照を O (オブジェクト参照) 型として計算スタックに間接的に読み込みます。
Ldind.U1 unsigned int8 型の値を int32 として計算スタックに間接的にロードします。
Ldind.U2 unsigned int16 型の値を int32 として計算スタックに間接的にロードします。
Ldind.U4 unsigned int32 型の値を int32 として計算スタックに間接的にロードします。
Ldlen ゼロベースの 1 次元配列の要素の数を計算スタックにプッシュします。
Ldloc 指定されたインデックスにあるローカル変数を評価スタックにロードします。
Ldloc.0 インデックス 0 のローカル変数を評価スタックにロードします。
Ldloc.1 インデックス 1 のローカル変数を評価スタックにロードします。
Ldloc.2 インデックス 2 のローカル変数を評価スタックにロードします。
Ldloc.3 インデックス 3 のローカル変数を評価スタックにロードします。
Ldloc.S 特定のインデックスにあるローカル変数を評価スタックにロードします (短い形式)。
Ldloca は、特定のインデックスにあるローカル変数のアドレスを評価スタックにロードします。
Ldloca.S 特定のインデックスにあるローカル変数のアドレスを評価スタックにロードします (短い形式)。
Ldnull null 参照 (O 型) を計算スタックにプッシュします。
Ldobj アドレスが指す値型オブジェクトを計算スタックの先頭にコピーします。
Ldsfld 静的フィールドの値を計算スタックにプッシュします。
Ldsflda 静的フィールドのアドレスを計算スタックにプッシュします。
Ldstr メタデータに格納されている文字列への新しいオブジェクト参照をプッシュします。
Ldtoken メタデータ トークンをランタイム表現に変換し、コンピューティング スタックにプッシュします。
Ldvirtftn 指定されたオブジェクトに関連付けられた特定の仮想メソッドを実装するネイティブ コードへのアンマネージ ポインター (ネイティブ int 型) を評価スタックにプッシュします。
Leave 保護されたコード領域を終了し、無条件に特定のターゲット命令に制御を移します。
Leave.S 保護されたコード領域を出て、無条件に制御をターゲット命令(短縮形)に移します。
Localloc ローカル動的メモリプールから特定のバイト数を割り当て、最初に割り当てられたバイトのアドレス (一時ポインタ、タイプ *) を計算スタックにプッシュします。
Mkrefany 特定の型のインスタンスへの型付き参照を計算スタックにプッシュします。
Mul 2 つの値を乗算し、結果を計算スタックにプッシュします。
Mul.Ovf 2 つの整数値を乗算し、オーバーフロー チェックを実行し、結果を計算スタックにプッシュします。
Mul.Ovf.Un 2 つの符号なし整数値を乗算し、オーバーフロー チェックを実行し、結果を評価スタックにプッシュします。
Neg 値の否定を実行し、結果を計算スタックにプッシュします。
Newarr 要素が特定の型である新しい 0 から始まる 1 次元配列へのオブジェクト参照を評価スタックにプッシュします。
Newobj 新しいオブジェクトまたは値型の新しいインスタンスを作成し、(O 型の) オブジェクト参照を計算スタックにプッシュします。
いいえ オペコードをパッチする場合はスペースを埋めます。処理サイクルは消費されますが、意味のある操作は実行されません。
Not スタックの先頭にある整数値のビット単位の補数を計算し、結果を同じ型として計算スタックにプッシュします。
Or スタックの先頭にある 2 つの整数値のビット単位の補数を計算し、結果を評価スタックにプッシュします。
Pop 現在計算スタックの一番上にある値を削除します。
Prefix1 インフラストラクチャ。このコマンドは予約されています。
Prefix2 インフラストラクチャ。このコマンドは予約されています。
Prefix3 インフラストラクチャ。このコマンドは予約されています。
Prefix4 インフラストラクチャ。このコマンドは予約されています。
Prefix5 インフラストラクチャ。このコマンドは予約されています。
Prefix6 インフラストラクチャ。このコマンドは予約されています。
Prefix7 インフラストラクチャ。このコマンドは予約されています。
Prefixref インフラストラクチャ。このコマンドは予約されています。
Readonly 後続の配列アドレス操作が実行時に型チェックを実行せず、変更可能性が制限されたマネージド ポインターを返すことを指定します。
Refanytype 型付き参照内に埋め込まれた型タグを取得します。
Refanyval 型付き参照内に埋め込まれたアドレス (および型) を取得します。
Rem 2 つの値を除算し、余りを計算スタックにプッシュします。
Rem.Un 2 つの符号なしの値を除算し、余りを計算スタックにプッシュします。
Ret 現在のメソッドから戻り、戻り値 (存在する場合) を呼び出し元の計算スタックから呼び出し先の計算スタックにプッシュします。
Rethrow 現在の例外を再度スローします。
Shl 整数値を指定された桁数だけ左にシフトし (ゼロを埋め込み)、結果を評価スタックにプッシュします。
Shr 整数値を指定された桁数だけ右にシフトし (符号を保持し)、結果を評価スタックにプッシュします。
Shr.Un 符号なし整数値を指定された桁数だけ右にシフトし (ゼロを埋め込み)、結果を評価スタックにプッシュします。
Sizeof 指定された値の型のサイズ (バイト単位) を計算スタックにプッシュします。
Starg 計算スタックの先頭の値を、指定されたインデックスのパラメーター スロットに保存します。
Starg.S パラメーター スロットの指定されたインデックスにある計算スタックの先頭にある値を格納します (短い形式)。
Stelem 指定されたインデックスにある配列要素を、ディレクティブで指定された型の計算スタックの値に置き換えます。
Stelem.I 指定されたインデックスにある配列要素を、計算スタック上のネイティブの int 値に置き換えます。
Stelem.I1 指定されたインデックスの配列要素を計算スタック上の int8 値に置き換えます。
Stelem.I2 指定されたインデックスにある配列要素を計算スタック上の int16 値に置き換えます。
Stelem.I4 指定されたインデックスの配列要素を計算スタック上の int32 値に置き換えます。
Stelem.I8 指定されたインデックスの配列要素を計算スタック上の int64 値に置き換えます。
Stelem.R4 指定されたインデックスにある配列要素を、計算スタック上の float32 値に置き換えます。
Stelem.R8 指定されたインデックスにある配列要素を計算スタック上の float64 値に置き換えます。
Stelem.Ref 指定されたインデックスにある配列要素を、計算スタック上のオブジェクト ref 値 (O 型) に置き換えます。
Stfld オブジェクト参照またはポインタのフィールドに格納されている値を新しい値に置き換えます。
Stind.I ネイティブ int 型の値を指定されたアドレスに保存します。
Stind.I1 int8 型の値を指定されたアドレスに格納します。
Stind.I2 int16 型の値を指定されたアドレスに格納します。
Stind.I4 int32 型の値を指定されたアドレスに格納します。
Stind.I8 int64 型の値を指定されたアドレスに格納します。
Stind.R4 float32 値を指定されたアドレスに格納します。
Stind.R8 float64 値を指定されたアドレスに格納します。
Stind.Ref は、指定されたアドレスにオブジェクト参照値を保存します。
Stloc 計算スタックの先頭から現在の値をポップし、指定されたインデックスのローカル変数リストに格納します。
Stloc.0 現在の値を評価スタックの先頭からポップし、ローカル変数リストのインデックス 0 に格納します。
Stloc.1 現在の値を評価スタックの先頭からポップし、ローカル変数リストのインデックス 1 に格納します。
Stloc.2 評価スタックの先頭から現在の値をポップし、インデックス 2 のローカル変数リストに格納します。
Stloc.3 現在の値を評価スタックの先頭からポップし、ローカル変数リストのインデックス 3 に格納します。
Stloc.S 現在の値を計算スタックの先頭からポップし、ローカル変数リスト (短い形式) のインデックスに格納します。
Stobj 指定された型の値を評価スタックから指定されたメモリ アドレスにコピーします。
Stsfld 静的フィールドの値を計算スタックの値に置き換えます。
Sub 他の値から値を減算し、結果を計算スタックにプッシュします。
Sub.Ovf 整数値を別の値から減算し、オーバーフロー チェックを実行し、結果を計算スタックにプッシュします。
Sub.Ovf.Un 符号なし整数値を別の値から減算し、オーバーフロー チェックを実行し、結果を評価スタックにプッシュします。
Switch ジャンプテーブルを実装します。
Tailcall 実際の呼び出し命令を実行する前に、サフィックス付きのメソッド呼び出し命令を実行して、現在のメソッドのスタック フレームを削除します。
Throw 現在計算スタック上にある例外オブジェクトをスローします。
Unaligned 現在評価スタック上にあるアドレスが、直後の ldind、stind、ldfld、stfld、ldobj、stobj、initblk、または cpblk 命令の自然なサイズと整列していない可能性があることを示します。
Unbox 値型のボックス化表現をボックス化されていない形式に変換します。
Unbox.Any ディレクティブ内の指定された型のボックス化表現をボックス化されていない形式に変換します。
Volatile 現在計算スタックの最上位にあるアドレスが揮発性である可能性があり、その場所の読み取り結果をキャッシュしたり、そのアドレスへの複数のストアを非アクティブ化したりできないことを指定します。
Xor 計算スタックの先頭にある 2 つの値のビットごとの XOR を計算し、結果を計算スタックにプッシュします。

概要

この記事では、IL 命令の詳細については説明せず、概要のみを示します。古いことわざに、「水を一口ずつ飲まなければなりません。道は一歩ずつ歩かなければなりません。」という言葉があります。少し短いので次の章があります。次回の記事でも、IL の基本的な説明をいくつか書いていきます。私自身の理解を組み合わせて、誰でも理解しやすいように、できるだけ平易に文章を書くように努めます。

上記は .NET Framework 中間言語 IL 命令の内容です。その他の関連内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート