Opcode | Instruction | Description |
---|
0x58 | | Add two values, returning a new value. |
0xD6 | | Add signed integer values with overflow check. |
0xD7 | | Add unsigned integer values with overflow check. |
0x5F | | Bitwise AND of two integral values, returns an integral value. |
0xFE 0x00 | | Return argument list handle for the current method. |
0x3B | | Branch to target if equal. |
0x2E | | Branch to target if equal, short form. |
0x3C | | Branch to target if greater than or equal to. |
0x2F | | Branch to target if greater than or equal to, short form. |
0x41 | | Branch to target if greater than or equal to (unsigned or unordered). |
0x34 | | Branch to target if greater than or equal to (unsigned or unordered), short form |
0x3D | | Branch to target if greater than. |
0x30 | | Branch to target if greater than, short form. |
0x42 | | Branch to target if greater than (unsigned or unordered). |
0x35 | | Branch to target if greater than (unsigned or unordered), short form. |
0x3E | | Branch to target if less than or equal to. |
0x31 | | Branch to target if less than or equal to, short form. |
0x43 | | Branch to target if less than or equal to (unsigned or unordered). |
0x36 | | Branch to target if less than or equal to (unsigned or unordered), short form |
0x3F | | Branch to target if less than. |
0x32 | | Branch to target if less than, short form. |
0x44 | | Branch to target if less than (unsigned or unordered). |
0x37 | | Branch to target if less than (unsigned or unordered), short form. |
0x40 | | Branch to target if unequal or unordered. |
0x33 | | Branch to target if unequal or unordered, short form. |
0x8C | | Convert a boxable value to its boxed form |
0x38 | | Branch to target. |
0x2B | | Branch to target, short form. |
0x01 | | Inform a debugger that a breakpoint has been reached. |
0x39 | | Branch to target if value is zero (false). |
0x2C | brfalse.s <int8 (target)> | Branch to target if value is zero (false), short form. |
0x3A | | Branch to target if value is a non-null object reference (alias for brtrue). |
0x2D | | Branch to target if value is a non-null object reference, short form (alias for brtrue.s). |
0x39 | | Branch to target if value is null (alias for brfalse). |
0x2C | | Branch to target if value is null (alias for brfalse.s), short form. |
0x3A | | Branch to target if value is non-zero (true). |
0x2D | | Branch to target if value is non-zero (true), short form. |
0x39 | | Branch to target if value is zero (alias for brfalse). |
0x2C | | Branch to target if value is zero (alias for brfalse.s), short form. |
0x28 | | Call method described by method. |
0x29 | | Call method indicated on the stack with arguments described by callsitedescr. |
0x6F | | Call a method associated with an object. |
0x74 | | Cast obj to class. |
0xFE 0x01 | | Push 1 (of type int32) if value1 equals value2, else push 0. |
0xFE 0x02 | | Push 1 (of type int32) if value1 > value2, else push 0. |
0xFE 0x03 | | Push 1 (of type int32) if value1 > value2, unsigned or unordered, else push 0. |
0xC3 | | Throw ArithmeticException if value is not a finite number. |
0xFE 0x04 | | Push 1 (of type int32) if value1 < value2, else push 0. |
0xFE 0x05 | | Push 1 (of type int32) if value1 < value2, unsigned or unordered, else push 0. |
0xFE 0x16 | | Call a virtual method on a type constrained to be type T |
0xD3 | | Convert to native int, pushing native int on stack. |
0x67 | | Convert to int8, pushing int32 on stack. |
0x68 | | Convert to int16, pushing int32 on stack. |
0x69 | | Convert to int32, pushing int32 on stack. |
0x6A | | Convert to int64, pushing int64 on stack. |
0xD4 | | Convert to a native int (on the stack as native int) and throw an exception on overflow. |
0x8A | | Convert unsigned to a native int (on the stack as native int) and throw an exception on overflow. |
0xB3 | | Convert to an int8 (on the stack as int32) and throw an exception on overflow. |
0x82 | | Convert unsigned to an int8 (on the stack as int32) and throw an exception on overflow. |
0xB5 | | Convert to an int16 (on the stack as int32) and throw an exception on overflow. |
0x83 | | Convert unsigned to an int16 (on the stack as int32) and throw an exception on overflow. |
0xB7 | | Convert to an int32 (on the stack as int32) and throw an exception on overflow. |
0x84 | | Convert unsigned to an int32 (on the stack as int32) and throw an exception on overflow. |
0xB9 | | Convert to an int64 (on the stack as int64) and throw an exception on overflow. |
0x85 | | Convert unsigned to an int64 (on the stack as int64) and throw an exception on overflow. |
0xD5 | | Convert to a native unsigned int (on the stack as native int) and throw an exception on overflow. |
0x8B | | Convert unsigned to a native unsigned int (on the stack as native int) and throw an exception on overflow. |
0xB4 | | Convert to an unsigned int8 (on the stack as int32) and throw an exception on overflow. |
0x86 | | Convert unsigned to an unsigned int8 (on the stack as int32) and throw an exception on overflow. |
0xB6 | | Convert to an unsigned int16 (on the stack as int32) and throw an exception on overflow. |
0x87 | | Convert unsigned to an unsigned int16 (on the stack as int32) and throw an exception on overflow. |
0xB8 | | Convert to an unsigned int32 (on the stack as int32) and throw an exception on overflow. |
0x88 | | Convert unsigned to an unsigned int32 (on the stack as int32) and throw an exception on overflow. |
0xBA | | Convert to an unsigned int64 (on the stack as int64) and throw an exception on overflow. |
0x89 | | Convert unsigned to an unsigned int64 (on the stack as int64) and throw an exception on overflow. |
0x76 | | Convert unsigned integer to floating-point, pushing F on stack. |
0x6B | | Convert to float32, pushing F on stack. |
0x6C | | Convert to float64, pushing F on stack. |
0xE0 | | Convert to native unsigned int, pushing native int on stack. |
0xD2 | | Convert to unsigned int8, pushing int32 on stack. |
0xD1 | | Convert to unsigned int16, pushing int32 on stack. |
0x6D | | Convert to unsigned int32, pushing int32 on stack. |
0x6E | | Convert to unsigned int64, pushing int64 on stack. |
0xFE 0x17 | | Copy data from memory to memory. |
0x70 | | Copy a value type from src to dest. |
0x5B | | Divide two values to return a quotient or floating-point result. |
0x5C | | Divide two values, unsigned, returning a quotient. |
0x25 | | Duplicate the value on the top of the stack. |
0xDC | | End fault clause of an exception block. |
0xFE 0x11 | | End an exception handling filter clause. |
0xDC | | End finally clause of an exception block. |
0x4C | | Indirect load value of type unsigned int64 as int64 on the stack (alias for ldind.i8). |
0xFE 0x18 | | Set all bytes in a block of memory to a given byte value. |
0xFE 0x15 | | Initialize the value at address dest. |
0x75 | | Test if obj is an instance of class, returning null or an instance of that class or interface. |
0x27 | | Exit current method and jump to the specified method. |
0xFE 0x09 | | Load argument numbered num onto the stack. |
0x02 | | Load argument 0 onto the stack. |
0x03 | | Load argument 1 onto the stack. |
0x04 | | Load argument 2 onto the stack. |
0x05 | | Load argument 3 onto the stack. |
0x0E | | Load argument numbered num onto the stack, short form. |
0xFE 0x0A | | Fetch the address of argument argNum. |
0x0F | ldarga.s <uint8 (argNum)> | Fetch the address of argument argNum, short form. |
0x20 | | Push num of type int32 onto the stack as int32. |
0x16 | | Push 0 onto the stack as int32. |
0x17 | | Push 1 onto the stack as int32. |
0x18 | | Push 2 onto the stack as int32. |
0x19 | | Push 3 onto the stack as int32. |
0x1A | | Push 4 onto the stack as int32. |
0x1B | | Push 5 onto the stack as int32. |
0x1C | | Push 6 onto the stack as int32. |
0x1D | | Push 7 onto the stack as int32. |
0x1E | | Push 8 onto the stack as int32. |
0x15 | | Push -1 onto the stack as int32. |
0x15 | | Push -1 of type int32 onto the stack as int32 (alias for ldc.i4.m1). |
0x1F | | Push num onto the stack as int32, short form. |
0x21 | | Push num of type int64 onto the stack as int64. |
0x22 | | Push num of type float32 onto the stack as F. |
0x23 | | Push num of type float64 onto the stack as F. |
0xA3 | | Load the element at index onto the top of the stack. |
0x97 | | Load the element with type native int at index onto the top of the stack as a native int. |
0x90 | | Load the element with type int8 at index onto the top of the stack as an int32. |
0x92 | | Load the element with type int16 at index onto the top of the stack as an int32. |
0x94 | | Load the element with type int32 at index onto the top of the stack as an int32. |
0x96 | | Load the element with type int64 at index onto the top of the stack as an int64. |
0x98 | | Load the element with type float32 at index onto the top of the stack as an F |
0x99 | | Load the element with type float64 at index onto the top of the stack as an F. |
0x9A | | Load the element at index onto the top of the stack as an O. The type of the O is the same as the element type of the array pushed on the CIL stack. |
0x91 | | Load the element with type unsigned int8 at index onto the top of the stack as an int32. |
0x93 | | Load the element with type unsigned int16 at index onto the top of the stack as an int32. |
0x95 | | Load the element with type unsigned int32 at index onto the top of the stack as an int32. |
0x96 | | Load the element with type unsigned int64 at index onto the top of the stack as an int64 (alias for ldelem.i8). |
0x8F | | Load the address of element at index onto the top of the stack. |
0x7B | | Push the value of field of object (or value type) obj, onto the stack. |
0x7C | | Push the address of field of object obj on the stack. |
0xFE 0x06 | | Push a pointer to a method referenced by method, on the stack. |
0x4D | | Indirect load value of type native int as native int on the stack |
0x46 | | Indirect load value of type int8 as int32 on the stack. |
0x48 | | Indirect load value of type int16 as int32 on the stack. |
0x4A | | Indirect load value of type int32 as int32 on the stack. |
0x4C | | Indirect load value of type int64 as int64 on the stack. |
0x4E | | Indirect load value of type float32 as F on the stack. |
0x4F | | Indirect load value of type float64 as F on the stack. |
0x50 | | Indirect load value of type object ref as O on the stack. |
0x47 | | Indirect load value of type unsigned int8 as int32 on the stack |
0x49 | | Indirect load value of type unsigned int16 as int32 on the stack |
0x4B | | Indirect load value of type unsigned int32 as int32 on the stack |
0x8E | | Push the length (of type native unsigned int) of array on the stack. |
0xFE 0x0C | | Load local variable of index indx onto stack. |
0x06 | | Load local variable 0 onto stack. |
0x07 | | Load local variable 1 onto stack. |
0x08 | | Load local variable 2 onto stack. |
0x09 | | Load local variable 3 onto stack. |
0x11 | | Load local variable of index indx onto stack, short form. |
0xFE 0x0D | | Load address of local variable with index indx. |
0x12 | | Load address of local variable with index indx, short form. |
0x14 | | Push a null reference on the stack. |
0x71 | | Copy the value stored at address src to the stack. |
0x7E | | Push the value of field on the stack. |
0x7F | | Push the address of the static field, field, on the stack. |
0x72 | | Push a string object for the literal string. |
0xD0 | | Convert metadata token to its runtime representation. |
0xFE 0x07 | | Push address of virtual method on the stack. |
0xDD | | Exit a protected region of code. |
0xDE | | Exit a protected region of code, short form. |
0xFE 0x0F | | Allocate space from the local memory pool. |
0xC6 | | Push a typed reference to ptr of type class onto the stack. |
0x5A | | Multiply values. |
0xD8 | | Multiply signed integer values. Signed result shall fit in same size |
0xD9 | | Multiply unsigned integer values. Unsigned result shall fit in same size |
0x65 | | Negate value. |
0x8D | | Create a new array with elements of type etype. |
0x73 | | Allocate an uninitialized object or value type and call ctor. |
0xFE 0x19 | no. { typecheck, rangecheck, nullcheck } | The specified fault check(s) normally performed as part of the execution of the subsequent instruction can/shall be skipped. |
0x00 | | Do nothing (No operation). |
0x66 | | Bitwise complement (logical not). |
0x60 | | Bitwise OR of two integer values, returns an integer. |
0x26 | | Pop value from the stack. |
0xFE 0x1E | | Specify that the subsequent array address operation performs no type check at runtime, and that it returns a controlled-mutability managed pointer |
0xFE 0x1D | | Push the type token stored in a typed reference. |
0xC2 | | Push the address stored in a typed reference. |
0x5D | | Remainder when dividing one value by another. |
0x5E | | Remainder when dividing one unsigned value by another. |
0x2A | | Return from method, possibly with a value. |
0xFE 0x1A | | Rethrow the current exception. |
0x62 | | Shift an integer left (shifting in zeros), return an integer. |
0x63 | | Shift an integer right (shift in sign), return an integer. |
0x64 | | Shift an integer right (shift in zero), return an integer. |
0xFE 0x1C | | Push the size, in bytes, of a type as an unsigned int32. |
0xFE 0x0B | | Store value to the argument numbered num. |
0x10 | | Store value to the argument numbered num, short form. |
0xA4 | | Replace array element at index with the value on the stack |
0x9B | | Replace array element at index with the i value on the stack. |
0x9C | | Replace array element at index with the int8 value on the stack. |
0x9D | | Replace array element at index with the int16 value on the stack. |
0x9E | | Replace array element at index with the int32 value on the stack. |
0x9F | | Replace array element at index with the int64 value on the stack. |
0xA0 | | Replace array element at index with the float32 value on the stack. |
0xA1 | | Replace array element at index with the float64 value on the stack. |
0xA2 | | Replace array element at index with the ref value on the stack. |
0x7D | | Replace the value of field of the object obj with value. |
0xDF | | Store value of type native int into memory at address |
0x52 | | Store value of type int8 into memory at address |
0x53 | | Store value of type int16 into memory at address |
0x54 | | Store value of type int32 into memory at address |
0x55 | | Store value of type int64 into memory at address |
0x56 | | Store value of type float32 into memory at address |
0x57 | | Store value of type float64 into memory at address |
0x51 | | Store value of type object ref (type O) into memory at address |
0xFE 0x0E | | Pop a value from stack into local variable indx. |
0x0A | | Pop a value from stack into local variable 0. |
0x0B | | Pop a value from stack into local variable 1. |
0x0C | | Pop a value from stack into local variable 2. |
0x0D | | Pop a value from stack into local variable 3. |
0x13 | | Pop a value from stack into local variable indx, short form. |
0x81 | | Store a value of type typeTok at an address. |
0x80 | | Replace the value of field with val. |
0x59 | | Subtract value2 from value1, returning a new value. |
0xDA | | Subtract native int from a native int. Signed result shall fit in same size |
0xDB | | Subtract native unsigned int from a native unsigned int. Unsigned result shall fit in same size. |
0x45 | switch <uint32, int32,int32 (t1..tN)> | Jump to one of n values. |
0xFE 0x14 | | Subsequent call terminates current method |
0x7A | | Throw an exception. |
0xFE 0x12 | | Subsequent pointer instruction might be unaligned. |
0x79 | | Extract a value-type from obj, its boxed representation. |
0xA5 | | Extract a value-type from obj, its boxed representation |
0xFE 0x13 | | Subsequent pointer reference is volatile. |
0x61 | | Bitwise XOR of integer values, returns an integer. |