Поделиться через


OpCodes.Localloc Поле

Определение

Выделяет определенное количество байтов из пула локальной динамической памяти и помещает в стек вычислений адрес (временный указатель с типом *) первого выделенного байта.

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 

Значение поля

Комментарии

В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:

Формат Формат сборки Описание
FE 0F localloc Выделение пространства из локальной кучи.

Переходный режим стека в последовательном порядке:

  1. Количество выделенных байтов помещается в стек.

  2. Число байтов, выброщенных из стека; объем памяти, соответствующий размеру, выделяется из локальной кучи.

  3. Указатель на первый байт выделенной памяти помещается в стек.

Инструкция localloc выделяет (типnatural unsigned int) байтов size из локального пула динамической памяти и возвращает адрес (временный указатель, тип *) первого выделенного байта. Возвращаемый блок памяти инициализируется значением 0, только если флаг инициализации метода имеет значение true. Когда текущий метод выполняет , локальный Retпул памяти становится доступным для повторного использования.

Полученный адрес выравнивается таким образом, что любой примитивный тип данных можно сохранить в нем с помощью stind инструкций (например, Stind_I4) и загрузить с помощью инструкций ldind (например Ldind_I4, ).

Инструкция localloc не может выполняться в блоке filter, catch, finallyили fault .

StackOverflowException возникает, если недостаточно памяти для обслуживания запроса.

Emit Следующая перегрузка localloc метода может использовать код операции:

Применяется к