OpCodes.Unaligned Alan

Tanım

Şu anda değerlendirme yığınının üzerinde olan bir adresin, hemen aşağıdaki ldind, , stind, ldfld, stfld, ldobj, , stobj, initblkveya cpblk yönergesinin doğal boyutuna hizalanmayabileceğini gösterir.

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

Alan Değeri

Açıklamalar

Aşağıdaki tabloda yönergenin onaltılık ve Microsoft Ara Dil (MSIL) derleme biçiminin yanı sıra kısa bir başvuru özeti listelenmiştir:

Format Derleme Biçimi Açıklama
FE 12 <unsigned int8> Hizalanmamış. alignment Sonraki işaretçi yönergesinin hizalanmamış olabileceğini gösterir.

Sıralı sırada yığın geçiş davranışı şöyledir:

  1. Bir adres yığına gönderilir.

Unalignedyığındaki adresin (yönetilmeyen işaretçi, native int) hemen ardından ldindgelen , , stind, ldfldstfld, , ldobj, , stobj, initblkveya cpblk yönergesinin doğal boyutuna hizalanmayabileceğini belirtir. Diğer bir ifadeyle, bir Ldind_I4 yönerge için adresin hizalaması 4 baytlık bir sınıra olmayabilir. için initblk ve cpblk varsayılan hizalama mimariye bağımlıdır (32 bit CPU'larda 4 bayt, 64 bit CPU'larda 8 bayt). Derleme zamanında hizalamanın 8 bayt olarak bilinmemesi durumunda çıkışlarını 32 bit sözcük boyutuyla kısıtlamayan kod oluşturucuların kullanması unaligned gerekir.

Hizalama değeri 1, 2 veya 4 olmalıdır ve oluşturulan kodun adresin sırasıyla bayt, çift bayt veya dört bayt hizalı olduğunu varsayması gerektiği anlamına gelir. Geçici işaretçilerin (tür *) her zaman hizalandığını unutmayın.

Yönergenin cpblk hizalaması mantıksal olarak iki sayı gerektirse de (biri kaynak ve biri hedef için), yalnızca daha düşük sayı belirtilirse performans üzerinde belirgin bir etki olmaz.

unaligned ve volatile ön ekleri her iki sırada da birleştirilebilir. Bir , , , , ldind, , stindldfld, stfld, ldobjveya stobj yönergeden hemen önce initblkcpblkolmalıdır. Volatile ve Ldsfld yönergeleri için yalnızca ön eke Stsfld izin verilir.

Aşağıdaki Emit yöntem aşırı yüklemeleri opcode'unu unaligned kullanabilir:

Şunlara uygulanır