Список инструкций CIL
Это список инструкций в наборе инструкций байт-кода Common Intermediate Language.
- Код операции, сокращенно от кода операции, представляет собой часть инструкции машинного языка, которая определяет операцию, которую необходимо выполнить.
- Базовые инструкции образуют полный по Тьюрингу набор команд.
- Инструкции объектной модели обеспечивают реализацию системы общего типа .
Код операции | Инструкция | Описание | Тип инструкции |
---|---|---|---|
0x58 | add
|
Добавьте два значения, вернув новое значение. | Базовая инструкция |
0xD6 | add.ovf
|
Добавьте целочисленные значения со знаком переполнения с проверкой . | Базовая инструкция |
0xD7 | add.ovf.un
|
Добавляйте целые числа без знака переполнения с проверкой . | Базовая инструкция |
0x5F | and
|
Побитовое И двух целых значений возвращает целочисленное значение. | Базовая инструкция |
0xFE 0x00 | arglist
|
Возвращаемый аргументов дескриптор списка для текущего метода. | Базовая инструкция |
0x3B | beq <int32 (target)>
|
Перейти к цели, если она равна. | Базовая инструкция |
0x2E | beq.s <int8 (target)>
|
Переход к цели, если равен , короткая форма. | Базовая инструкция |
0x3C | bge <int32 (target)>
|
Переход к цели, если значение больше или равно . | Базовая инструкция |
0x2F | bge.s <int8 (target)>
|
Перейти к цели, если она больше или равна , короткая форма. | Базовая инструкция |
0x41 | bge.un <int32 (target)>
|
Перейти к целевому элементу, если он больше или равен ( без знака или без порядка). | Базовая инструкция |
0x34 | bge.un.s <int8 (target)>
|
Перейти к цели, если больше или равно ( без знака или без порядка), короткая форма. | Базовая инструкция |
0x3D | bgt <int32 (target)>
|
Переход к цели, если она больше , чем . | Базовая инструкция |
0x30 | bgt.s <int8 (target)>
|
Переход к цели, если , короткая чем больше форма . | Базовая инструкция |
0x42 | bgt.un <int32 (target)>
|
Переход к цели, если ( больше или без знака без порядка ). | Базовая инструкция |
0x35 | bgt.un.s <int8 (target)>
|
Переход к цели, если ( или больше без знака без порядка ), короткая форма. | Базовая инструкция |
0x3E | ble <int32 (target)>
|
Перейти к цели, если меньше или равно . | Базовая инструкция |
0x31 | ble.s <int8 (target)>
|
Перейти к цели, если меньше или равно , короткая форма. | Базовая инструкция |
0x43 | ble.un <int32 (target)>
|
Перейти к цели, если меньше или равно ( без знака или без порядка). | Базовая инструкция |
0x36 | ble.un.s <int8 (target)>
|
Перейти к цели, если меньше или равно ( без знака или без порядка), короткая форма. | Базовая инструкция |
0x3F | blt <int32 (target)>
|
Переход если меньше , к цели . | Базовая инструкция |
0x32 | blt.s <int8 (target)>
|
Переход к цели, если , меньше короткая чем форма . | Базовая инструкция |
0x44 | blt.un <int32 (target)>
|
Перейти если меньше без знака ( к цели , или без порядка). | Базовая инструкция |
0x37 | blt.un.s <int8 (target)>
|
Переход к цели, если ( знака меньше без или без порядка ), короткая форма. | Базовая инструкция |
0x40 | bne.un <int32 (target)>
|
Переход к цели, если она не соответствует требованиям или не упорядочена. | Базовая инструкция |
0x33 | bne.un.s <int8 (target)>
|
Переход к цели, если она некачественная или неупорядоченная , короткая форма. | Базовая инструкция |
0x8C | box <typeTok>
|
Преобразование значения box- able в его коробочную форму. | Инструкция объектной модели |
0x38 | br <int32 (target)>
|
Ветвь к цели. | Базовая инструкция |
0x2B | br.s <int8 (target)>
|
Переход к цели, краткая форма. | Базовая инструкция |
0x01 | break
|
Сообщите отладчику о останова достижении точки . | Базовая инструкция |
0x39 | brfalse <int32 (target)>
|
Переход к цели, если значение равно нулю ( false ). | Базовая инструкция |
0x2C | brfalse.s <int8 (target)>
|
Переход к цели, если значение равно нулю ( false ), короткая форма. | Базовая инструкция |
0x3A | brinst <int32 (target)>
|
Переход к целевому объекту, если значение является ненулевой ссылкой на объект (псевдоним для brtrue ). | Базовая инструкция |
0x2D | brinst.s <int8 (target)>
|
Переход к целевому объекту, если значение является ненулевой ссылкой на объект, короткая форма (псевдоним для brtrue.s ). | Базовая инструкция |
0x39 | brnull <int32 (target)>
|
Переход к целевому объекту, если значение равно нулю (псевдоним brfalse ). | Базовая инструкция |
0x2C | brnull.s <int8 (target)>
|
Переход к цели, если значение равно нулю (псевдоним для brfalse.s ), короткая форма. | Базовая инструкция |
0x3A | brtrue <int32 (target)>
|
Переход к целевому объекту, если значение не равно нулю ( true ). | Базовая инструкция |
0x2D | brtrue.s <int8 (target)>
|
Переход к цели, если значение не равно нулю ( true ), короткая форма. | Базовая инструкция |
0x39 | brzero <int32 (target)>
|
Переход к целевому объекту, если значение равно нулю (псевдоним brfalse ). | Базовая инструкция |
0x2C | brzero.s <int8 (target)>
|
Переход к цели, если значение равно нулю (псевдоним brfalse.s ), короткая форма. | Базовая инструкция |
0x28 | call <method>
|
Метод вызова , описанный методом. | Базовая инструкция |
0x29 | calli <callsitedescr>
|
вызова Метод , указанный в стеке, с аргументами, описанными в callsitedescr. | Базовая инструкция |
0x6F | callvirt <method>
|
Вызов метода, связанного с объектом. | Инструкция объектной модели |
0x74 | castclass <class>
|
Приведите obj к классу . | Инструкция объектной модели |
0xFE 0x01 | ceq
|
Нажмите 1 (типа int32), если значение1 равно значению2, иначе нажмите 0. | Базовая инструкция |
0xFE 0x02 | cgt
|
Нажмите 1 (типа int32), если значение 1 превышает значение 2, иначе нажмите 0. | Базовая инструкция |
0xFE 0x03 | cgt.un
|
Нажмите 1 (типа int32), если значение 1 больше значения 2, без знака или неупорядочено , в противном случае нажмите 0. | Базовая инструкция |
0xC3 | ckfinite
|
Выдать ArithmeticException, если значение не является конечным числом. | Базовая инструкция |
0xFE 0x04 | clt
|
Нажмите 1 (типа int32), если значение 1 меньше значения 2, в противном случае нажмите 0. | Базовая инструкция |
0xFE 0x05 | clt.un
|
Нажмите 1 (типа int32), если значение 1 меньше значения 2, без знака или неупорядочено , в противном случае нажмите 0. | Базовая инструкция |
0xFE 0x16 | constrained. <thisType>
|
Вызовите виртуальный метод для типа, ограниченного типом T. | Префикс к инструкции |
0xD3 | conv.i
|
Преобразуйте в собственный int , поместив собственный int в стек. | Базовая инструкция |
0x67 | conv.i1
|
Преобразуйте в i nt8, поместив i nt32 в стек. | Базовая инструкция |
0x68 | conv.i2
|
Преобразуйте в i nt16, поместив i nt32 в стек. | Базовая инструкция |
0x69 | conv.i4
|
Преобразуйте в i nt32, поместив i nt32 в стек. | Базовая инструкция |
0x6A | conv.i8
|
Преобразуйте в i nt64, поместив i nt64 в стек. | Базовая инструкция |
0xD4 | conv.ovf.i
|
Преобразуйте в собственный int (в стеке как собственный ) и создайте исключение переполнении при int . | Базовая инструкция |
0x8A | conv.ovf.i.un
|
Преобразуйте unsigned ( в собственный int в стеке как собственный ) и создайте исключение переполнении при int . | Базовая инструкция |
0xB3 | conv.ovf.i1
|
Преобразуйте в int8 (в стеке как ) и создайте исключение переполнении при int32 . | Базовая инструкция |
0x82 | conv.ovf.i1.un
|
Преобразуйте беззнаковый тип в int8 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xB5 | conv.ovf.i2
|
Преобразуйте в int16 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0x83 | conv.ovf.i2.un
|
Преобразуйте беззнаковое значение в int16 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xB7 | conv.ovf.i4
|
Преобразуйте в int32 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0x84 | conv.ovf.i4.un
|
Преобразуйте беззнаковое значение в int32 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xB9 | conv.ovf.i8
|
Преобразуйте в int64 (в стеке как int64) и создайте исключение при переполнении. | Базовая инструкция |
0x85 | conv.ovf.i8.un
|
Преобразуйте беззнаковый тип в int64 (в стеке как int64) и создайте исключение при переполнении. | Базовая инструкция |
0xD5 | conv.ovf.u
|
Преобразуйте в собственный беззнаковый int (в стеке как собственный int) и создайте исключение при переполнении. | Базовая инструкция |
0x8B | conv.ovf.u.un
|
Преобразуйте unsigned в собственный беззнаковый int (в стеке как собственный int) и создайте исключение при переполнении. | Базовая инструкция |
0xB4 | conv.ovf.u1
|
Преобразуйте в беззнаковый int8 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0x86 | conv.ovf.u1.un
|
Преобразуйте беззнаковый тип int8 в беззнаковый (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xB6 | conv.ovf.u2
|
Преобразуйте в беззнаковый int16 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0x87 | conv.ovf.u2.un
|
Преобразуйте unsigned в unsigned int16 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xB8 | conv.ovf.u4
|
Преобразуйте в беззнаковый int32 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0x88 | conv.ovf.u4.un
|
Преобразуйте unsigned в беззнаковый int32 (в стеке как int32) и создайте исключение при переполнении. | Базовая инструкция |
0xBA | conv.ovf.u8
|
Преобразуйте в беззнаковый int64 (в стеке как int64) и создайте исключение при переполнении. | Базовая инструкция |
0x89 | conv.ovf.u8.un
|
Преобразуйте unsigned в unsigned int64 (в стеке как int64) и создайте исключение при переполнении. | Базовая инструкция |
0x76 | conv.r.un
|
Преобразуйте целое число без знака в число с плавающей запятой, поместив F в стек. | Базовая инструкция |
0x6B | conv.r4
|
Преобразуйте в float32, поместив F в стек. | Базовая инструкция |
0x6C | conv.r8
|
Преобразуйте в float64, поместив F в стек. | Базовая инструкция |
0xE0 | conv.u
|
Преобразовать в собственный беззнаковый int, помещая собственный int в стек. | Базовая инструкция |
0xD2 | conv.u1
|
Преобразуйте в беззнаковый int8, поместив int32 в стек. | Базовая инструкция |
0xD1 | conv.u2
|
Преобразуйте в беззнаковый int16, поместив int32 в стек. | Базовая инструкция |
0x6D | conv.u4
|
Преобразуйте в беззнаковый int32, поместив int32 в стек. | Базовая инструкция |
0x6E | conv.u8
|
Преобразуйте в беззнаковый int64, поместив int64 в стек. | Базовая инструкция |
0xFE 0x17 | cpblk
|
Копирование данных из памяти в память. | Базовая инструкция |
0x70 | cpobj <typeTok>
|
Скопируйте тип значения из src в dest. | Инструкция объектной модели |
0x5B | div
|
Разделите два значения, чтобы получить частное или результат с плавающей запятой. | Базовая инструкция |
0x5C | div.un
|
Разделите два значения без знака, вернув частное. | Базовая инструкция |
0x25 | dup
|
Дублируйте значение на вершине стека. | Базовая инструкция |
0xDC | endfault
|
Конечный пункт ошибки блока исключений. | Базовая инструкция |
0xFE 0x11 | endfilter
|
Завершите предложение фильтра обработки исключений. | Базовая инструкция |
0xDC | endfinally
|
Завершить предложениеfinally блока исключений. | Базовая инструкция |
0xFE 0x18 | initblk
|
Установите для всех байтов в блоке памяти заданное значение байта. | Базовая инструкция |
0xFE 0x15 | initobj <typeTok>
|
Инициализируйте значение по адресу dest. | Инструкция объектной модели |
0x75 | isinst <class>
|
Проверьте, является ли obj экземпляром класса, возвращающим значение null или экземпляром этого класса или интерфейса. | Инструкция объектной модели |
0x27 | jmp <method>
|
Выйдите из текущего метода и перейдите к указанному методу. | Базовая инструкция |
0xFE 0x09 | ldarg <uint16 (num)>
|
Загрузите аргумент с номером num в стек. | Базовая инструкция |
0x02 | ldarg.0
|
Загрузите аргумент 0 в стек. | Базовая инструкция |
0x03 | ldarg.1
|
Загрузите аргумент 1 в стек. | Базовая инструкция |
0x04 | ldarg.2
|
Загрузите аргумент 2 в стек. | Базовая инструкция |
0x05 | ldarg.3
|
Загрузите аргумент 3 в стек. | Базовая инструкция |
0x0E | ldarg.s <uint8 (num)>
|
Загрузить аргумент с номером num в стек, короткая форма. | Базовая инструкция |
0xFE 0x0A | ldarga <uint16 (argNum)>
|
Получите адрес аргумента argNum. | Базовая инструкция |
0x0F | ldarga.s <uint8 (argNum)>
|
Получить адрес аргумента argNum, короткая форма. | Базовая инструкция |
0x20 | ldc.i4 <int32 (num)>
|
Поместите число типа int32 в стек как int32. | Базовая инструкция |
0x16 | ldc.i4.0
|
Поместите 0 в стек как int32. | Базовая инструкция |
0x17 | ldc.i4.1
|
Поместите 1 в стек как int32. | Базовая инструкция |
0x18 | ldc.i4.2
|
Поместите 2 в стек как int32. | Базовая инструкция |
0x19 | ldc.i4.3
|
Поместите 3 в стек как int32. | Базовая инструкция |
0x1A | ldc.i4.4
|
Поместите 4 в стек как int32. | Базовая инструкция |
0x1B | ldc.i4.5
|
Поместите 5 в стек как int32. | Базовая инструкция |
0x1C | ldc.i4.6
|
Поместите 6 в стек как int32. | Базовая инструкция |
0x1D | ldc.i4.7
|
Поместите 7 в стек как int32. | Базовая инструкция |
0x1E | ldc.i4.8
|
Поместите 8 в стек как int32. | Базовая инструкция |
0x15 | ldc.i4.m1
|
Поместите -1 в стек как int32. | Базовая инструкция |
0x15 | ldc.i4.M1
|
Поместите -1 в стек как int32 (псевдоним ldc.i4.m1). | Базовая инструкция |
0x1F | ldc.i4.s <int8 (num)>
|
Поместите num в стек как int32, короткая форма. | Базовая инструкция |
0x21 | ldc.i8 <int64 (num)>
|
Поместите число типа int64 в стек как int64. | Базовая инструкция |
0x22 | ldc.r4 <float32 (num)>
|
Поместите число типа float32 в стек как F. | Базовая инструкция |
0x23 | ldc.r8 <float64 (num)>
|
Поместите число типа float64 в стек как F. | Базовая инструкция |
0xA3 | ldelem <typeTok>
|
Загрузите элемент по индексу на вершину стека. | Инструкция объектной модели |
0x97 | ldelem.i
|
Загрузите элемент с типом Native Int по индексу на вершину стека как Native Int. | Инструкция объектной модели |
0x90 | ldelem.i1
|
Загрузите элемент с типом int8 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x92 | ldelem.i2
|
Загрузите элемент с типом int16 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x94 | ldelem.i4
|
Загрузите элемент с типом int32 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x96 | ldelem.i8
|
Загрузите элемент с типом int64 по индексу на вершину стека как int64. | Инструкция объектной модели |
0x98 | ldelem.r4
|
Загрузите элемент с типом float32 по индексу на вершину стека как F. | Инструкция объектной модели |
0x99 | ldelem.r8
|
Загрузите элемент с типом float64 по индексу на вершину стека как F. | Инструкция объектной модели |
0x9A | ldelem.ref
|
Загрузите элемент по индексу на вершину стека как O. Тип O такой же, как тип элемента массива, помещенного в стек CIL. | Инструкция объектной модели |
0x91 | ldelem.u1
|
Загрузите элемент с типом unsigned int8 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x93 | ldelem.u2
|
Загрузите элемент с типом unsigned int16 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x95 | ldelem.u4
|
Загрузите элемент с типом unsigned int32 по индексу на вершину стека как int32. | Инструкция объектной модели |
0x96 | ldelem.u8
|
Загрузите элемент с типом unsigned int64 по индексу на вершину стека как int64 (псевдоним ldelem.i8). | Инструкция объектной модели |
0x8F | ldelema <class>
|
Загрузите адрес элемента по индексу на вершину стека. | Инструкция объектной модели |
0x7B | ldfld <field>
|
Поместите значение поля объекта (или типа значения) obj в стек. | Инструкция объектной модели |
0x7C | ldflda <field>
|
Поместите адрес поля объекта obj в стек. | Инструкция объектной модели |
0xFE 0x06 | ldftn <method>
|
Поместите указатель на метод, на который ссылается метод, в стек. | Базовая инструкция |
0x4D | ldind.i
|
Косвенная загрузка значения типа Native Int как Native Int в стек. | Базовая инструкция |
0x46 | ldind.i1
|
Косвенная загрузка значения типа int8 как int32 в стек. | Базовая инструкция |
0x48 | ldind.i2
|
Косвенная загрузка значения типа int16 как int32 в стек. | Базовая инструкция |
0x4A | ldind.i4
|
Косвенная загрузка значения типа int32 как int32 в стек. | Базовая инструкция |
0x4C | ldind.i8
|
Косвенная загрузка значения типа int64 как int64 в стек. | Базовая инструкция |
0x4E | ldind.r4
|
Косвенная загрузка значения типа float32 как F в стек. | Базовая инструкция |
0x4F | ldind.r8
|
Косвенная загрузка значения типа float64 как F в стек. | Базовая инструкция |
0x50 | ldind.ref
|
Косвенное значение загрузки объекта типа, обозначенного как O, в стеке. | Базовая инструкция |
0x47 | ldind.u1
|
Косвенная загрузка значения типа unsigned int8 как int32 в стек. | Базовая инструкция |
0x49 | ldind.u2
|
Косвенная загрузка значения типа unsigned int16 как int32 в стек. | Базовая инструкция |
0x4B | ldind.u4
|
Косвенная загрузка значения типа unsigned int32 как int32 в стек. | Базовая инструкция |
0x4C | ldind.u8
|
Косвенная загрузка значения типа unsigned int64 как int64 в стек (псевдоним ldind.i8). | Базовая инструкция |
0x8E | ldlen
|
Поместите длину (типа Native unsigned int) массива в стек. | Инструкция объектной модели |
0xFE 0x0C | ldloc <uint16 (indx)>
|
Загрузите локальную переменную индекса indx в стек. | Базовая инструкция |
0x06 | ldloc.0
|
Загрузите локальную переменную 0 в стек. | Базовая инструкция |
0x07 | ldloc.1
|
Загрузите локальную переменную 1 в стек. | Базовая инструкция |
0x08 | ldloc.2
|
Загрузите локальную переменную 2 в стек. | Базовая инструкция |
0x09 | ldloc.3
|
Загрузите локальную переменную 3 в стек. | Базовая инструкция |
0x11 | ldloc.s <uint8 (indx)>
|
Загрузите локальную переменную индекса indx в стек, короткая форма. | Базовая инструкция |
0xFE 0x0D | ldloca <uint16 (indx)>
|
Загрузить адрес локальной переменной с индексом indx. | Базовая инструкция |
0x12 | ldloca.s <uint8 (indx)>
|
Загрузить адрес локальной переменной с индексом indx, короткая форма. | Базовая инструкция |
0x14 | ldnull
|
Поместите нулевую ссылку в стек. | Базовая инструкция |
0x71 | ldobj <typeTok>
|
Скопируйте значение, хранящееся по адресу src, в стек. | Инструкция объектной модели |
0x7E | ldsfld <field>
|
Поместите значение статического поля в стек. | Инструкция объектной модели |
0x7F | ldsflda <field>
|
Поместите адрес статического поля field в стек. | Инструкция объектной модели |
0x72 | ldstr <string>
|
Нажмите строковый объект для буквальной строки. | Инструкция объектной модели |
0xD0 | ldtoken <token>
|
Преобразуйте токен метаданных в его представление во время выполнения. | Инструкция объектной модели |
0xFE 0x07 | ldvirtftn <method>
|
Поместите адрес виртуального метода в стек. | Инструкция объектной модели |
0xDD | leave <int32 (target)>
|
Выход из защищенной области кода. | Базовая инструкция |
0xDE | leave.s <int8 (target)>
|
Выход из защищенной области кода, короткая форма. | Базовая инструкция |
0xFE 0x0F | localloc
|
Выделите пространство из локального пула памяти. | Базовая инструкция |
0xC6 | mkrefany <class>
|
Поместите типизированную ссылку на ptr класса типа в стек. | Инструкция объектной модели |
0x5A | mul
|
Умножьте значения. | Базовая инструкция |
0xD8 | mul.ovf
|
Умножение целочисленных значений со знаком. Подписанный результат должен соответствовать тому же размеру. | Базовая инструкция |
0xD9 | mul.ovf.un
|
Умножьте целые числа без знака. Беззнаковый результат должен соответствовать тому же размеру. | Базовая инструкция |
0x65 | neg
|
Отрицательное значение. | Базовая инструкция |
0x8D | newarr <etype>
|
Создайте новый массив с элементами типа etype. | Инструкция объектной модели |
0x73 | newobj <ctor>
|
Выделите неинициализированный объект или тип значения и вызовите ctor. | Инструкция объектной модели |
0xFE 0x19 | no. { typecheck, rangecheck, nullcheck } |
Указанная проверка(и) ошибок, обычно выполняемая как часть выполнения последующей инструкции, может/должна быть пропущена. | Префикс к инструкции |
0x00 | nop
|
делать ( Нет операции Ничего не ). | Базовая инструкция |
0x66 | not
|
Побитовое дополнение. | Базовая инструкция |
0x60 | or
|
Побитовое ИЛИ двух целочисленных значений возвращает целое число. | Базовая инструкция |
0x26 | pop
|
Извлечь значение из стека. | Базовая инструкция |
0xFE 0x1E | readonly.
|
Укажите, что последующая операция с адресом массива не выполняет проверку типа во время выполнения и возвращает управляемый указатель с контролируемой изменчивостью. | Префикс к инструкции |
0xFE 0x1D | refanytype
|
Отправьте токен типа, хранящийся в типизированной ссылке. | Инструкция объектной модели |
0xC2 | refanyval <type>
|
Нажмите адрес, сохраненный в типизированной ссылке. | Инструкция объектной модели |
0x5D | rem
|
Помните о делении одного значения на другое. | Базовая инструкция |
0x5E | rem.un
|
Напоминание о делении одного беззнакового значения на другое. | Базовая инструкция |
0x2A | ret
|
Возврат урны из метода, возможно, со значением. | Базовая инструкция |
0xFE 0x1A | rethrow
|
Перевызовите текущее исключение. | Инструкция объектной модели |
0x62 | shl
|
Сдвинуть целое число влево (сдвиг по нулям), вернуть целое число. | Базовая инструкция |
0x63 | shr
|
Сдвинуть целое число вправо (сдвиг знака), вернуть целое число. | Базовая инструкция |
0x64 | shr.un
|
Сдвинуть целое число вправо (сдвиг на ноль), вернуть целое число. | Базовая инструкция |
0xFE 0x1C | sizeof <typeTok>
|
Введите размер типа в байтах как беззнаковый int32. | Инструкция объектной модели |
0xFE 0x0B | starg <uint16 (num)>
|
Сохраните значение в аргументе с номером num. | Базовая инструкция |
0x10 | starg.s <uint8 (num)>
|
Сохраните значение в аргументе с номером num, в короткой форме. | Базовая инструкция |
0xA4 | stelem <typeTok>
|
Замените элемент массива по индексу значением в стеке. | Инструкция объектной модели |
0x9B | stelem.i
|
Замените элемент массива по индексу собственным значением int в стеке. | Инструкция объектной модели |
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
|
Замените элемент массива по индексу значением ref в стеке. | Инструкция объектной модели |
0x7D | stfld <field>
|
Замените значение поля объекта obj значением. | Инструкция объектной модели |
0xDF | stind.i
|
Сохраните значение типа Native int в памяти по адресу. | Базовая инструкция |
0x52 | stind.i1
|
Сохраните значение типа int8 в памяти по адресу. | Базовая инструкция |
0x53 | stind.i2
|
Сохраните значение типа int16 в памяти по адресу. | Базовая инструкция |
0x54 | stind.i4
|
Сохраните значение типа int32 в памяти по адресу. | Базовая инструкция |
0x55 | stind.i8
|
Сохраните значение типа int64 в памяти по адресу. | Базовая инструкция |
0x56 | stind.r4
|
Сохраните значение типа float32 в памяти по адресу. | Базовая инструкция |
0x57 | stind.r8
|
Сохраните значение типа float64 в памяти по адресу. | Базовая инструкция |
0x51 | stind.ref
|
Сохраните значение объекта типа ref (тип O) в памяти по адресу. | Базовая инструкция |
0xFE 0x0E | stloc <uint16 (indx)>
|
Поместите значение из стека в локальную переменную indx. | Базовая инструкция |
0x0A | stloc.0
|
Поместите значение из стека в локальную переменную 0. | Базовая инструкция |
0x0B | stloc.1
|
Поместите значение из стека в локальную переменную 1. | Базовая инструкция |
0x0C | stloc.2
|
Поместите значение из стека в локальную переменную 2. | Базовая инструкция |
0x0D | stloc.3
|
Поместите значение из стека в локальную переменную 3. | Базовая инструкция |
0x13 | stloc.s <uint8 (indx)>
|
Поместите значение из стека в локальную переменную indx, короткая форма. | Базовая инструкция |
0x81 | stobj <typeTok>
|
Сохраните значение типа typeTok по адресу. | Инструкция объектной модели |
0x80 | stsfld <field>
|
Замените значение статического поля на val. | Инструкция объектной модели |
0x59 | sub
|
Вычтите значение2 из значения1, вернув новое значение. | Базовая инструкция |
0xDA | sub.ovf
|
Вычтите собственный int из собственного int. Подписанный результат должен соответствовать тому же размеру. | Базовая инструкция |
0xDB | sub.ovf.un
|
Вычтите собственное беззнаковое целое число из собственного беззнакового целого. Беззнаковый результат должен соответствовать тому же размеру. | Базовая инструкция |
0x45 | switch <uint32, int32, int32 (t1..tN)>
|
Перейти к одному из n значений. | Базовая инструкция |
0xFE 0x14 | tail.
|
Последующий вызов завершает текущий метод. | Префикс к инструкции |
0x7A | throw
|
Выбросить исключение. | Инструкция объектной модели |
0xFE 0x12 | unaligned. (alignment)
|
Последующая инструкция указателя может быть невыровнена . | Префикс к инструкции |
0x79 | unbox <valuetype>
|
Извлеките тип значения из obj, его коробочного представления, и поместите на него управляемый указатель с контролируемой изменчивостью на вершину стека. | Инструкция объектной модели |
0xA5 | unbox.any <typeTok>
|
Извлеките тип значения из obj, его коробочного представления и скопируйте на вершину стека. | Инструкция объектной модели |
0xFE 0x13 | volatile.
|
Последующая ссылка на указатель является непостоянной . | Префикс к инструкции |
0x61 | xor
|
Побитовое исключающее ИЛИ целочисленных значений возвращает целое число. | Базовая инструкция |
См. также
[ редактировать ]- Common Intermediate Language — это язык ассемблера, использующий набор инструкций.
- Инфраструктура общего языка — это стандарт, в котором определен общий промежуточный язык.
- .NET Framework — это платформа и реализация Common Language Infrastructure.
- Mono — это кроссплатформенная с открытым исходным кодом . реализация Common Language Infrastructure