OpCodes.Ldind_I8 Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет косвенную загрузку значения с типом int64
в стек вычислений как int64
.
public: static initonly System::Reflection::Emit::OpCode Ldind_I8;
public static readonly System.Reflection.Emit.OpCode Ldind_I8;
staticval mutable Ldind_I8 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I8 As OpCode
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:
Формат | Формат сборки | Описание |
---|---|---|
4C | ldind.i8 | Загружает значение по int64 адресу addr в стек в виде int64 . |
Переходный режим стека в последовательном порядке:
Адрес помещается в стек.
Адрес выскочил из стека; извлекается значение, расположенное по адресу.
Извлекаемое значение помещается в стек.
Инструкция ldind.i8
косвенно загружает int64
значение из указанного адреса (типа native int
, &
или *) в стек в виде int64
.
Все инструкции ldind
являются ярлыками для инструкции Ldobj , которая задает соответствующий встроенный класс значений.
Обратите внимание, что целочисленные значения менее 4 байт расширяются до int32
(не native int
) при загрузке в стек вычислений. Значения с плавающей запятой преобразуются в F
тип при загрузке в стек вычислений.
Правильно сформированный язык MSIL гарантирует, что инструкции ldind
будут использоваться в соответствии с типом указателя.
Адрес, изначально помещаемый в стек, должен быть выровнен по естественному размеру объектов на компьютере или NullReferenceException может возникнуть (см Unaligned . инструкцию по префиксам для профилактических мер). Результаты всех инструкций MSIL, возвращающих адреса (например, Ldloca и Ldarga), надежно выравниваются. Для типов данных, превышающих 1 байт, порядок байтов зависит от целевого ЦП. Код, зависящий от порядка байтов, может выполняться не на всех платформах.
NullReferenceException может вызываться при обнаружении недопустимого адреса.
Emit Следующая перегрузка ldind.i8
метода может использовать код операции: