OpCodes.Ldind_I8 フィールド
この記事の内容
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
int64
型の値を int64
として評価スタックに間接的に読み込みます。
public: static initonly System::Reflection::Emit::OpCode Ldind_I8;
public static readonly System.Reflection.Emit.OpCode Ldind_I8;
staticval mutable Ldind_I8 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I8 As OpCode
次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンスの概要を示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
4C | ldind.i8 | アドレスaddr の値を int64 としてint64 スタックに読み込みます。 |
スタック遷移の動作は、順番に次のようになります。
アドレスがスタックにプッシュされます。
アドレスはスタックからポップされます。アドレスにある値がフェッチされます。
フェッチされた値がスタックにプッシュされます。
命令はldind.i8
、指定されたアドレス (型 native int
、&
、または *) から 値を としてスタックint64
に間接的に読み込みますint64
。
ldind
すべての命令は、対応する組み込み値クラスをLdobj指定する命令のショートカットです。
4 バイト未満の整数値は、評価スタックに int32
読み込まれると ( ではなく native int
) に拡張されることに注意してください。 浮動小数点値は、評価スタックに F
読み込まれると型に変換されます。
正しい形式の Microsoft Intermediate Language (MSIL) を使用すると、ポインターの ldind
型と一致する方法で命令が使用されます。
最初にスタックにプッシュされたアドレスは、マシン上のオブジェクトの自然なサイズに合わせる必要があります。または NullReferenceException 、 が発生する可能性があります (予防措置については、プレフィックス命令を参照してください Unaligned )。 アドレス (や など) を返すすべての MSIL 命令の結果は、 LdlocaLdarga安全に調整されます。 1 バイトを超えるデータ型の場合、バイト順序はターゲット CPU に依存します。 バイト順序に依存するコードは、すべてのプラットフォームで実行されない場合があります。
NullReferenceException は、無効なアドレスが検出された場合にスローされる可能性があります。
次 Emit のメソッド オーバーロードでは、オペコードを ldind.i8
使用できます。
適用対象
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。