Bagikan melalui


OpCodes.Ldind_U1 Bidang

Definisi

Memuat nilai jenis unsigned int8 sebagai int32 ke tumpukan evaluasi secara tidak langsung.

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

Nilai Bidang

Keterangan

Tabel berikut mencantumkan format rakitan heksadesimal instruksi dan Microsoft Intermediate Language (MSIL), bersama dengan ringkasan referensi singkat:

Format Format Rakitan Deskripsi
47 ldind.u1 unsigned int8 Memuat nilai di alamat addr ke tumpukan sebagai int32.

Perilaku transisi tumpukan, dalam urutan berurutan, adalah:

  1. Alamat didorong ke tumpukan.

  2. Alamat dimunculkan dari tumpukan; nilai yang terletak di alamat diambil.

  3. Nilai yang diambil didorong ke tumpukan.

ldind.u1 Instruksi secara tidak langsung memuat unsigned int8 nilai dari alamat yang ditentukan (dari jenisnative int, &, atau *) ke tumpukan sebagai int32.

ldind Semua instruksi adalah pintasan untuk Ldobj instruksi yang menentukan kelas nilai bawaan yang sesuai.

Perhatikan bahwa nilai bilangan bulat kurang dari 4 byte diperluas ke int32 (bukan native int) ketika dimuat ke tumpukan evaluasi. Nilai floating-point dikonversi menjadi F jenis saat dimuat ke tumpukan evaluasi.

Microsoft Intermediate Language (MSIL) yang dibentuk dengan benar memastikan bahwa ldind instruksi digunakan dengan cara yang konsisten dengan jenis pointer.

Alamat yang awalnya didorong ke tumpukan harus diselaraskan dengan ukuran alami objek pada mesin atau NullReferenceException dapat terjadi (lihat Unaligned instruksi awalan untuk langkah-langkah pencegahan). Hasil dari semua instruksi MSIL yang mengembalikan alamat (misalnya, Ldloca dan Ldarga) diselaraskan dengan aman. Untuk jenis data yang lebih besar dari 1 byte, pengurutan byte tergantung pada CPU target. Kode yang bergantung pada pengurutan byte mungkin tidak berjalan di semua platform.

NullReferenceException dapat dilemparkan jika alamat yang tidak valid terdeteksi.

Metode berikut Emit kelebihan beban dapat menggunakan ldind.u1 opcode:

Berlaku untuk