Jump to content

Список инструкций 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 Побитовое исключающее ИЛИ целочисленных значений возвращает целое число. Базовая инструкция

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0713dac10b22259402b03813f962a9d3__1693131660
URL1:https://arc.ask3.ru/arc/aa/07/d3/0713dac10b22259402b03813f962a9d3.html
Заголовок, (Title) документа по адресу, URL1:
List of CIL instructions - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)