Составители:
Рубрика:
Таблица 3.36.Инструкция sizeof
Диаграмма стека для инструкций sizeof:
... -> ... , size
3.3.3.3. Копирование значений
Инструкции, приведенные в таблице 3.37, выполняют копирование
значений типов-значений. Во встроенных операндах этих инструкций со-
держится токен метаданных, указывающий на информацию о типе-значе-
нии в таблицах метаданных.
Инструкция ldobj используется главным образом при вызове мето-
дов для загрузки параметров (если вызываемый метод имеет параметры
типов-значений). Инструкции cpobj и stobj применяются сравнительно
редко, хотя и имеют однобайтовые коды.
Таблица 3.37. Инструкции для копирования значений
Common Intermediate Language
113
112
CIL и системное программирование в Microsoft .NET
Код Инструкция Встроенный Описание
операнд
0x9C stelem.i1 – Сохраняет значение типа int8 в
элементе массива с указанным
индексом
0x9D stelem.i2 – Сохраняет значение типа int16 в
элементе массива с указанным
индексом
0x9E stelem.i4 – Сохраняет значение типа int32 в
элементе массива с указанным
индексом
0x9F stelem.i8 – Сохраняет значение типа int64 в
элементе массива с указанным
индексом
0xA0 stelem.r4 – Сохраняет значение типа float32
в элементе массива с указанным
индексом
0xA1 stelem.r8 – Сохраняет значение типа float64
в элементе массива с указанным
индексом
0xA2 stelem.ref – Сохраняет значение объектной
ссылки в элементе массива с
указанным индексом
0x9B stelem.i – Сохраняет значение типа native
int в элементе массива с указан-
ным индексом
Таблица 3.34. Инструкции для сохранения значений в элементы
массивов
Код Инструкция Встроенный Описание
операнд
0xFE 0x15 initobj token Заполняет все поля значения
нулями
Таблица 3.35. Инструкция initobj
Код Инструкция Встроенный Описание
операнд
0xFE 0x1C sizeof token Загружает на стек размер значе-
ния указанного типа
Код Инструкция Встроенный Описание
операнд
0x70 cpobj token Копирует значение. Диаграмма сте-
ка:
... , destAddr, srcAddr -> ...
(Здесь destAddr – адрес приемника, а
srcAddr – адрес источника.)
0x71 ldobj token Загружает значение на стек вычисле-
ний. Диаграмма стека:
... , addr -> ... , valObj
(Здесь addr – адрес загружаемого
значения.)
0x81 stobj token Сохраняет значение со стека вычис-
лений в память. Диаграмма стека:
... , addr, valObj -> ... (Здесь addr
– адрес, по которому будет сохране-
но значение.)
112 CIL и системное программирование в Microsoft .NET Common Intermediate Language 113 Таблица 3.34. Инструкции для сохранения значений в элементы Таблица 3.36.Инструкция sizeof массивов Код Инструкция Встроенный Описание Код Инструкция Встроенный Описание операнд операнд 0xFE 0x1C sizeof token Загружает на стек размер значе- 0x9C stelem.i1 – Сохраняет значение типа int8 в ния указанного типа элементе массива с указанным индексом Диаграмма стека для инструкций sizeof: 0x9D stelem.i2 – Сохраняет значение типа int16 в ...-> ... , size элементе массива с указанным 3.3.3.3. Копирование значений индексом Инструкции, приведенные в таблице 3.37, выполняют копирование 0x9E stelem.i4 – Сохраняет значение типа int32 в значений типов-значений. Во встроенных операндах этих инструкций со- элементе массива с указанным держится токен метаданных, указывающий на информацию о типе-значе- индексом нии в таблицах метаданных. 0x9F stelem.i8 – Сохраняет значение типа int64 в Инструкция ldobj используется главным образом при вызове мето- элементе массива с указанным дов для загрузки параметров (если вызываемый метод имеет параметры типов-значений). Инструкции cpobj и stobj применяются сравнительно индексом редко, хотя и имеют однобайтовые коды. 0xA0 stelem.r4 – Сохраняет значение типа float32 в элементе массива с указанным Таблица 3.37. Инструкции для копирования значений индексом Код Инструкция Встроенный Описание 0xA1 stelem.r8 – Сохраняет значение типа float64 операнд в элементе массива с указанным 0x70 cpobj token Копирует значение. Диаграмма сте- индексом ка: 0xA2 stelem.ref – Сохраняет значение объектной ... , destAddr, srcAddr -> ... ссылки в элементе массива с (Здесь destAddr – адрес приемника, а указанным индексом srcAddr – адрес источника.) 0x9B stelem.i – Сохраняет значение типа native 0x71 ldobj token Загружает значение на стек вычисле- int в элементе массива с указан- ний. Диаграмма стека: ным индексом ... , addr -> ... , valObj (Здесь addr – адрес загружаемого значения.) Таблица 3.35. Инструкция initobj 0x81 stobj token Сохраняет значение со стека вычис- Код Инструкция Встроенный Описание лений в память. Диаграмма стека: операнд ... , addr, valObj -> ... (Здесь addr 0xFE 0x15 initobj token Заполняет все поля значения – адрес, по которому будет сохране- нулями но значение.)
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »