次の方法で共有


OpCodes.Ldind_U2 フィールド

定義

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

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

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単な参照の概要を示します。

形式 アセンブリ形式 説明
49 ldind.u2 アドレスaddrの値を unsigned int16 としてint32スタックに読み込みます。

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

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

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

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

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

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

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

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

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

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

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

適用対象