OpCodes.Ldind_U4 フィールド

定義

int32としてunsigned int32型の値を間接的に評価スタックに読み込みます。

public: static initonly System::Reflection::Emit::OpCode Ldind_U4;
public static readonly System.Reflection.Emit.OpCode Ldind_U4;
 staticval mutable Ldind_U4 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_U4 As OpCode 

フィールド値

注釈

次の表に、命令の 16 進数および Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
4B ldind.u4 アドレス addrunsigned int32値をint32としてスタックに読み込みます。

スタック遷移の動作は、順番に次のようになります。

  1. アドレスがスタックにプッシュされます。

  2. アドレスはスタックからポップされます。アドレスにある値がフェッチされます。

  3. フェッチされた値がスタックにプッシュされます。

ldind.u4命令は、指定したアドレス (native int&、または *) からint32としてスタックにunsigned int32値を間接的に読み込みます。

すべての ldind 命令は、対応する組み込み値クラスを指定する Ldobj 命令のショートカットです。

4 バイト未満の整数値は、評価スタックに読み込まれるときに (native intではなく) int32に拡張されることに注意してください。 浮動小数点値は、評価スタックに読み込まれると F 型に変換されます。

正しい形式の Microsoft Intermediate Language (MSIL) により、ldind 命令がポインターの型と一致する方法で使用されるようになります。

最初にスタックにプッシュされたアドレスは、マシン上のオブジェクトの自然なサイズに合わせる必要があります。または、 NullReferenceException が発生する可能性があります (予防措置については、 Unaligned プレフィックス命令を参照してください)。 アドレス ( LdlocaLdargaなど) を返すすべての MSIL 命令の結果は、安全に調整されます。 1 バイトより大きいデータ型の場合、バイト順序はターゲット CPU に依存します。 バイト順序に依存するコードは、すべてのプラットフォームで実行されない場合があります。

NullReferenceException は、無効なアドレスが検出された場合にスローされる可能性があります。

次の Emit メソッドオーバーロードでは、 ldind.u4 オペコードを使用できます。

適用対象