Condividi tramite


OpCodes.Localloc Campo

Definizione

Esegue l'allocazione di un numero di byte dal pool di memoria dinamica locale e inserisce l'indirizzo (un puntatore transitorio di tipo *) del primo byte allocato nello stack di valutazione.

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

Valore del campo

Commenti

La tabella seguente elenca il formato dell'assembly esadecimale e Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
FE 0F localloc Allocare spazio dall'heap locale.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Il numero di byte da allocare viene eseguito il push nello stack.

  2. Il numero di byte viene rimosso dallo stack; una quantità di memoria corrispondente alla dimensione viene allocata dall'heap locale.

  3. Un puntatore al primo byte della memoria allocata viene eseguito il push nello stack.

L'istruzione localloc alloca size (tipo natural unsigned int) byte dal pool di memoria dinamica locale e restituisce l'indirizzo (puntatore temporaneo, tipo *) del primo byte allocato. Il blocco di memoria restituito viene inizializzato su 0 solo se il flag inizializza nel metodo è true. Quando il metodo corrente esegue un Retoggetto , il pool di memoria locale viene reso disponibile per il riutilizzo.

L'indirizzo risultante è allineato in modo che qualsiasi tipo di dati primitivo possa essere archiviato usando le istruzioni (ad esempio ) e caricate usando le stindldind istruzioni ( ad esempio Stind_I4Ldind_I4).

L'istruzione localloc non può verificarsi all'interno di un filterblocco , catch, finallyo fault .

StackOverflowException viene generato se è presente memoria insufficiente per il servizio della richiesta.

L'overload del metodo seguente Emit può usare il localloc codice opcode:

Si applica a