Name |
Description |
Add |
Adds two values and pushes the result onto the evaluation stack. |
add.ovf |
Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack. |
Add.Ovf.Un |
Adds the two unsigned integer values, performs an overflow check, and pushes the results onto the evaluation stack. |
and |
Calculates the bitwise "and" of two values and pushes the result onto the evaluation stack. |
Arglist |
Returns an unmanaged pointer to the parameter list of the current method. |
Beq |
If two values are equal, the control is transferred to the target instruction. |
Beq.s |
If two values are equal, the control is transferred to the target instruction (short form). |
Bge |
Transfers control to a target instruction if the first value is greater than or equal to the second value. |
Bge.s |
If the first value is greater than or equal to the second value, the control is transferred to the target instruction (short form). |
bge.un |
When comparing unsigned integer values or unordered floating-point values, transfers control to a target instruction if the first value is greater than the second value. |
Bge.un.s |
When comparing unsigned integer values or unordered floating-point values, transfers control to the target instruction (short form) if the first value is greater than the second value. |
Bgt |
Transfers control to a target instruction if the first value is greater than the second value. |
Bgt.s |
If the first value is greater than the second value, the control is transferred to the target instruction (short form). |
bgt.un |
When comparing unsigned integer values or unordered floating-point values, transfers control to a target instruction if the first value is greater than the second value. |
Bgt.un.s |
When comparing unsigned integer values or unordered floating-point values, transfers control to the target instruction (short form) if the first value is greater than the second value. |
Ble |
Transfers control to a target instruction if the first value is less than or equal to the second value. |
Ble.s |
If the first value is less than or equal to the second value, the control is transferred to the target instruction (short form). |
ble.un |
When comparing unsigned integer values or unordered floating-point values, transfers control to a target instruction if the first value is less than or equal to the second value. |
Ble.un.s |
When comparing unsigned integer values or unordered floating-point values, transfers control to the target instruction (short form) if the first value is less than or equal to the second value. |
Blt |
Transfers control to a target instruction if the first value is less than the second value. |
Blt.s |
If the first value is less than the second value, the control is transferred to the target instruction (short form). |
blt.un |
When comparing unsigned integer values or unordered floating-point values, transfers control to a target instruction if the first value is less than the second value. |
Blt.un.s |
When comparing unsigned integer values or unordered floating-point values, transfers control to the target instruction (short form) if the first value is less than the second value. |
bne.un |
Transfers control to a target instruction when two unsigned integer values or unordered floating-point values are not equal. |
Bne.un.s |
Transfers control to a target instruction (short form) when two unsigned integer values or unordered floating-point values are not equal. |
Box |
Converts a value class to an object reference (O type). |
Br |
The control is unconditionally transferred to the target instruction. |
Br.s |
The control is unconditionally transferred to the target instruction (short form). |
Break |
Signals the common language structure (CLI) to inform the debugger that a breakpoint has been hit. |
Brfalse |
If value is false, a null reference (Nothing in Visual Basic), or 0, the control is transferred to the target instruction. |
Brfalse.s |
If value is false, a null reference, or 0, the control is transferred to the target instruction. |
Brtrue |
If value is true, non-null, or nonzero, the control is transferred to the target instruction. |
Brtrue.s |
If value is true, non-null, or nonzero, the control is transferred to the target instruction (short form). |
Pager |
Invokes the method indicated by the method specifier passed. |
Calli |
Calls the method indicated on the evaluation stack, as a pointer to the entry point, by the parameters described by the calling convention. |
Callvirt |
Calls a late-bound method on an object and pushes the return value onto the evaluation stack. |
Castclass |
Attempts to convert the object passed by reference to the specified class. |
Ceq |
Comparison of two values. If the two values are equal, the integer value 1 (Int32) is pushed onto the evaluation stack, otherwise 0 (int32) is pushed onto the evaluation stack. |
Cgt |
Comparison of two values. If the first value is greater than the second value, the integer value 1 (Int32) is pushed onto the evaluation stack, whereas 0 (int32) is pushed onto the evaluation stack. |
cgt.un |
Compares two unsigned or unordered values. If the first value is greater than the second value, the integer value 1 (Int32) is pushed onto the evaluation stack, whereas 0 (int32) is pushed onto the evaluation stack. |
Ckfinite |
If the value is not a finite number, ArithmeticException is raised. |
Clt |
Comparison of two values. If the first value is less than the second value, the integer value 1 (Int32) is pushed onto the evaluation stack, whereas 0 (int32) is pushed onto the evaluation stack. |
clt.un |
Compare unsigned or unordered values value1 and value2. If value1 is less than value2, the integer value 1 (Int32) is pushed onto the evaluation stack, whereas 0 (int32) is pushed onto the evaluation stack. |
Constrained |
Constrains the type on which to make a virtual method call. |
Conv.i |
Converts the value at the top of the evaluation stack to native int. |
Conv.i1 |
Convert the value at the top of the evaluation stack to int8, and then expand (populate) it to Int32. |
Conv.i2 |
Convert the value at the top of the evaluation stack to int16, and then expand (populate) it to Int32. |
Conv.i4 |
Converts the value at the top of the evaluation stack to int32. |
Conv.i8 |
Converts the value at the top of the evaluation stack to int64. |
Conv.ovf.i |
Converts the signed value at the top of the evaluation stack to a signed native int and throws a overflowexception on overflow. |
conv.ovf.i.un |
Converts the unsigned value at the top of the evaluation stack to a signed native int and throws a overflowexception on overflow. |
Conv.Ovf.I1 |
Converts the signed value at the top of the evaluation stack to a signed int8 and expands it to Int32, and throws OverflowException on overflow. |
Conv.Ovf.I1.Un |
Converts the unsigned value at the top of the evaluation stack to a signed int8 and expands it to Int32, and throws OverflowException on overflow. |
Conv.Ovf.I2 |
Converts the signed value at the top of the evaluation stack to a signed int16 and expands it to Int32, and throws OverflowException on overflow. |
Conv.Ovf.I2.Un |
Converts the unsigned value at the top of the evaluation stack to a signed int16 and expands it to Int32, and throws OverflowException on overflow. |
Conv.Ovf.I4 |
Converts the signed value at the top of the evaluation stack to a signed int32 and throws a OverflowException on overflow. |
Conv.Ovf.I4.Un |
Converts the unsigned value at the top of the evaluation stack to a signed int32 and throws a OverflowException on overflow. |
Conv.Ovf.I8 |
Converts the signed value at the top of the evaluation stack to a signed int64 and throws a overflowexception on overflow. |
Conv.Ovf.I8.Un |
Converts the unsigned value at the top of the evaluation stack to a signed int64 and throws a overflowexception on overflow. |
Conv.ovf.u |
Converts the signed value at the top of the evaluation stack to unsigned native int and throws a overflowexception on overflow. |
conv.ovf.u.un |
Converts the unsigned value at the top of the evaluation stack to unsigned native int and throws a overflowexception on overflow. |
Conv.Ovf.U1 |
Converts the signed value at the top of the evaluation stack to unsigned int8 and expands it to Int32, and raises overflowexception on overflow. |
Conv.Ovf.U1.Un |
Converts the unsigned value at the top of the evaluation stack to unsigned int8 and expands it to Int32, and raises overflowexception on overflow. |
Conv.Ovf.U2 |
Converts the signed value at the top of the evaluation stack to unsigned int16 and expands it to Int32, and raises overflowexception on overflow. |
Conv.Ovf.U2.Un |
Converts the unsigned value at the top of the evaluation stack to unsigned int16 and expands it to Int32, and raises overflowexception on overflow. |
Conv.Ovf.U4 |
Converts the signed value at the top of the evaluation stack to unsigned int32 and raises overflowexception on overflow. |
Conv.Ovf.U4.Un |
Converts the unsigned value at the top of the evaluation stack to unsigned int32 and raises overflowexception on overflow. |
Conv.Ovf.U8 |
Converts the signed value at the top of the evaluation stack to unsigned int64 and raises overflowexception on overflow. |
Conv.Ovf.U8.Un |
Converts the unsigned value at the top of the evaluation stack to unsigned int64 and raises overflowexception on overflow. |
conv.r.un |
Converts the unsigned integer value at the top of the evaluation stack to float32. |
Conv.r4 |
Converts the value at the top of the evaluation stack to float32. |
Conv.r8 |
Converts the value at the top of the evaluation stack to float64. |
Conv.u |
Convert the value at the top of the evaluation stack to unsigned native int, and then extend it to native Int. |
Conv.u1 |
Convert the value at the top of the evaluation stack to unsigned int8, and then extend it to Int32. |
Conv.u2 |
Convert the value at the top of the evaluation stack to unsigned int16, and then extend it to Int32. |
Conv.u4 |
Convert the value at the top of the evaluation stack to unsigned int32, and then extend it to Int32. |
Conv.u8 |
Convert the value at the top of the evaluation stack to unsigned int64, and then extend it to int64. |
Cpblk |
Copies the specified number of bytes from the source address to the destination address. |
Cpobj |
Copy the value type that is located at the address of the object (&, *, or native int) to the address of the target object (&, * or native int type). |
P |
Divides two values and pushes the result as floating point (type F) or quotient (int32 type) onto the evaluation stack. |
p.un |
Divides two unsigned integer values and pushes the result (int32) onto the evaluation stack. |
Dup |
Copies the current topmost value on the evaluation stack, and then pushes the copy onto the evaluation stack. |
Endfilter |
Shifts control from the filter clause of the exception back to the common language structure (CLI) exception handler. |
endfinally |
Transfers control from the fault or finally clause of the exception block back to the common language structure (CLI) exception handler. |
Initblk |
Initializes the specified block of memory at a specific address to the given size and initial value. |
Initobj |
Initializes each field of the value type at the specified address to a null reference or 0 of the appropriate primitive type. |
Isinst |
Tests whether the object reference (O type) is an instance of a particular class. |
Jmp |
Exits the current method and jumps to the specified method. |
Ldarg |
Loads a parameter (referenced by the specified index value) onto the stack. |
ldarg.0 |
Loads a parameter with index 0 onto the evaluation stack. |
Ldarg.1 |
Loads a parameter with index 1 onto the evaluation stack. |
Ldarg.2 |
Loads a parameter with index 2 onto the evaluation stack. |
Ldarg.3 |
Loads a parameter with index 3 onto the evaluation stack. |
Ldarg.s |
Loads a parameter (referenced by a specified short-form index) onto the evaluation stack. |
Ldarga |
Loads the parameter address onto the evaluation stack. |
Ldarga.s |
Loads the parameter address on the evaluation stack in a short format. |
Ldc.i4 |
Pushes the value of the provided Int32 type as int32 onto the evaluation stack. |
ldc.i4.0 |
Pushes an integer value of 0 onto the evaluation stack as a int32. |
ldc.i4.1 |
Pushes an integer value of 1 onto the evaluation stack as a int32. |
ldc.i4.2 |
Pushes an integer value of 2 onto the evaluation stack as a int32. |
ldc.i4.3 |
Pushes an integer value of 3 onto the evaluation stack as a int32. |
ldc.i4.4 |
Pushes an integer value of 4 onto the evaluation stack as a int32. |
ldc.i4.5 |
Pushes an integer value of 5 onto the evaluation stack as a int32. |
ldc.i4.6 |
Pushes an integer value of 6 onto the evaluation stack as a int32. |
ldc.i4.7 |
Pushes an integer value of 7 onto the evaluation stack as a int32. |
ldc.i4.8 |
Pushes an integer value of 8 onto the evaluation stack as a int32. |
Ldc.I4.M1 |
Pushes an integer value of 1 as a int32 onto the evaluation stack. |
Ldc.i4.s |
Pushes the supplied int8 value onto the evaluation stack as a int32 (short form). |
Ldc.i8 |
Pushes the value of the provided int64 type as int64 onto the evaluation stack. |
Ldc.r4 |
Pushes the value of the supplied float32 type to the evaluation stack as an F (float) type. |
Ldc.r8 |
Pushes the value of the supplied float64 type to the evaluation stack as an F (float) type. |
Ldelem |
Loads the elements in the specified array index to the top of the evaluation stack, as specified in the directive. |
Ldelem.i |
Loads an element of type native int at the specified array index as native int onto the top of the evaluation stack. |
Ldelem.i1 |
Loads an element of type int8 at the specified array index as int32 to the top of the evaluation stack. |
Ldelem.i2 |
Loads an element of type Int16 at the specified array index as int32 to the top of the evaluation stack. |
Ldelem.i4 |
Loads an element of type int32 at the specified array index as int32 to the top of the evaluation stack. |
Ldelem.i8 |
Loads an element of type int64 at the specified array index as int64 to the top of the evaluation stack. |
Ldelem.r4 |
Loads an element of type float32 at the specified array index into the top of the evaluation stack as an F type (float). |
Ldelem.r8 |
Loads an element of type float64 at the specified array index into the top of the evaluation stack as an F type (float). |
Ldelem.ref |
Loads the element that contains the object reference at the specified array index as an O type (object reference) to the top of the evaluation stack. |
Ldelem.u1 |
Loads an element of type unsigned int8 at the specified array index as int32 to the top of the evaluation stack. |
Ldelem.u2 |
Loads an element of type unsigned int16 at the specified array index as int32 to the top of the evaluation stack. |
Ldelem.u4 |
Loads an element of type unsigned int32 at the specified array index as int32 to the top of the evaluation stack. |
Ldelema |
Loads the address of the array element at the specified array index as the & type (managed pointer) to the top of the evaluation stack. |
Ldfld |
Finds the value of the field in the object whose reference is currently on the evaluation stack. |
Ldflda |
Finds the address of an object whose reference is currently on the evaluation stack's field. |
ldftn |
Pushes an unmanaged pointer (native int type) that points to the native code that implements a particular method onto the evaluation stack. |
Ldind.i |
Loads a value of type native int as a native int onto the evaluation stack indirectly. |
Ldind.i1 |
The value of the int8 type is indirectly loaded on the evaluation stack as a int32. |
Ldind.i2 |
The value of the Int16 type is indirectly loaded on the evaluation stack as a int32. |
Ldind.i4 |
The value of the Int32 type is indirectly loaded on the evaluation stack as a int32. |
Ldind.i8 |
The value of the int64 type is indirectly loaded on the evaluation stack as a int64. |
Ldind.r4 |
The value of type float32 is indirectly loaded on the evaluation stack as an F (float) type. |
Ldind.r8 |
The value of type float64 is indirectly loaded on the evaluation stack as an F (float) type. |
Ldind.ref |
The object reference is indirectly loaded onto the evaluation stack as an O (object reference) type. |
Ldind.u1 |
The value of the unsigned int8 type is indirectly loaded on the evaluation stack as int32. |
Ldind.u2 |
The value of the unsigned int16 type is indirectly loaded on the evaluation stack as int32. |
Ldind.u4 |
The value of the unsigned int32 type is indirectly loaded on the evaluation stack as int32. |
Ldlen |
Pushes the number of elements of a zero-based, one-dimensional array onto the evaluation stack. |
Ldloc |
Loads the local variable at the specified index onto the evaluation stack. |
ldloc.0 |
Loads the local variable at index 0 onto the evaluation stack. |
Ldloc.1 |
Loads the local variable at index 1 onto the evaluation stack. |
Ldloc.2 |
Loads the local variable at index 2 onto the evaluation stack. |
Ldloc.3 |
Loads the local variable at index 3 onto the evaluation stack. |
Ldloc.s |
Loads a local variable at a specific index onto the evaluation stack (short form). |
Ldloca |
Loads the address of a local variable at a specific index onto the evaluation stack. |
Ldloca.s |
Loads the address of a local variable at a specific index onto the evaluation stack (short form). |
Ldnull |
Pushes a null reference (O type) onto the evaluation stack. |
Ldobj |
Copy the value-type object that the address points to the top of the evaluation stack. |
Ldsfld |
Pushes the value of a static field onto the evaluation stack. |
Ldsflda |
Pushes the address of a static field onto the evaluation stack. |
Ldstr |
Pushes a new object reference to a string stored in metadata. |
Ldtoken |
Converts a metadata token to its run-time representation and pushes it onto the evaluation stack. |
ldvirtftn |
Pushes an unmanaged pointer (native int type) to the native code that implements the specific virtual method associated with the specified object onto the evaluation stack. |
Leave |
Exits a protected area of code and unconditionally transfers control to a specific target directive. |
Leave.s |
Exits the protected area of code and unconditionally transfers control to the target instruction (abbreviated form). |
Localloc |
Allocates a specific number of bytes from a local dynamic memory pool and pushes the address (transient pointer, * type) of the first allocated byte onto the evaluation stack. |
Mkrefany |
Pushes a typed reference to a particular type instance onto the evaluation stack. |
Mul |
Multiplies two values and pushes the result onto the evaluation stack. |
mul.ovf |
Multiplies two integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
Mul.Ovf.Un |
Multiplies two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack. |
Neg |
Performs a negation on a value and pushes the result onto the evaluation stack. |
Newarr |
Pushes an object reference to a new zero-based, one-dimensional array whose elements belong to a particular type, onto the evaluation stack. |
Newobj |
Creates a new object or new instance of a value type and pushes an object reference (type O) onto the evaluation stack. |
Nop |
If the opcode is patched, the space is populated. Although the processing cycle may be consumed, no meaningful action is performed. |
Not |
Computes the bitwise complement of the top integer value of the stack and pushes the result onto the evaluation stack as the same type. |
Or |
Calculates the bitwise complement of the two integer values at the top of the stack and pushes the results onto the evaluation stack. |
Pop |
Removes the value currently on top of the evaluation stack. |
Prefix1 |
Infrastructure. This instruction is a reserved instruction. |
Prefix2 |
Infrastructure. This instruction is a reserved instruction. |
Prefix3 |
Infrastructure. This instruction is a reserved instruction. |
Prefix4 |
Infrastructure. This instruction is a reserved instruction. |
Prefix5 |
Infrastructure. This instruction is a reserved instruction. |
Prefix6 |
Infrastructure. This instruction is a reserved instruction. |
Prefix7 |
Infrastructure. This instruction is a reserved instruction. |
Prefixref |
Infrastructure. This instruction is a reserved instruction. |
Readonly |
Specifies that the subsequent array address operation does not perform a type check at run time, and returns a managed pointer that is subject to variability. |
Refanytype |
Retrieves a type tag embedded within a typed reference. |
Refanyval |
Retrieves an address (& type) embedded within a typed reference. |
Rem |
Divides two values and pushes the remainder onto the evaluation stack. |
rem.un |
Divides two unsigned values and pushes the remainder onto the evaluation stack. |
Ret |
Returns from the current method and pushes the return value (if present) from the caller's evaluation stack onto the callee's evaluation stack. |
Rethrow |
Throws the current exception again. |
Shl |
Shifts the integer value to the left (filled with 0) by the specified number of digits and pushes the result onto the evaluation stack. |
Shr |
Shifts the integer value to the right (reserved symbol) by the specified number of digits and pushes the result onto the evaluation stack. |
shr.un |
Shifts the unsigned integer value right (populated with 0) by the specified number of digits and pushes the result onto the evaluation stack. |
Sizeof |
Pushes the size of the provided value type (in bytes) onto the evaluation stack. |
Starg |
Stores the value at the top of the evaluation stack in the parameter slot at the specified index. |
Starg.s |
Stores the value at the top of the evaluation stack in the parameter slot at the specified index (short form). |
Stelem |
Replaces the array element at the given index with the value from the evaluation stack, and its type is specified in the directive. |
Stelem.i |
Replaces the array element at the given index with the native int value on the evaluation stack. |
Stelem.i1 |
Replaces the array element at the given index with the int8 value on the evaluation stack. |
Stelem.i2 |
Replaces the array element at the given index with the Int16 value on the evaluation stack. |
Stelem.i4 |
Replaces the array element at the given index with the int32 value on the evaluation stack. |
Stelem.i8 |
Replaces the array element at the given index with the int64 value on the evaluation stack. |
Stelem.r4 |
Replaces the array element at the given index with the float32 value on the evaluation stack. |
Stelem.r8 |
Replaces the array element at the given index with the Float64 value on the evaluation stack. |
Stelem.ref |
Replaces the array element at the given index with the object ref value (O type) on the evaluation stack. |
Stfld |
Replace the value stored in the field of the object reference or pointer with the new value. |
Stind.i |
Stores the value of type native int at the provided address. |
Stind.i1 |
Stores the value of the int8 type at the provided address. |
Stind.i2 |
Stores the value of the Int16 type at the provided address. |
Stind.i4 |
Stores the value of the Int32 type at the provided address. |
Stind.i8 |
Stores the value of the int64 type at the provided address. |
Stind.r4 |
Stores the value of the float32 type at the provided address. |
Stind.r8 |
Stores the value of the Float64 type at the provided address. |
Stind.ref |
Stores the object reference value at the provided address. |
Stloc |
POPs the current value from the top of the evaluation stack and stores it in the list of local variables at the specified index. |
stloc.0 |
POPs the current value from the top of the evaluation stack and stores it in the local variable list at index 0. |
Stloc.1 |
POPs the current value from the top of the evaluation stack and stores it in the local variable list at index 1. |
Stloc.2 |
POPs the current value from the top of the evaluation stack and stores it in the local variable list at index 2. |
Stloc.3 |
POPs the current value from the top of the evaluation stack and stores it in the local variable list at index 3. |
Stloc.s |
POPs the current value from the top of the evaluation stack and stores it in the local variable list at index (short form). |
Stobj |
Copies the value of the specified type from the evaluation stack to the provided memory address. |
Stsfld |
Replace the value of the static field with the value from the evaluation stack. |
Sub |
Subtracts a value from another value and pushes the result onto the evaluation stack. |
sub.ovf |
Subtracts an integer value from another value, performs an overflow check, and pushes the result onto the evaluation stack. |
Sub.Ovf.Un |
Subtracts an unsigned integer value from another value, performs an overflow check, and pushes the result onto the evaluation stack. |
Switch |
Implement a jump table. |
Tailcall |
A method invocation instruction that executes the suffix to remove the stack frame of the current method before executing the actual calling instruction. |
Throw |
Throws the exception object that is currently on the evaluation stack. |
Unaligned |
Indicates that the address currently on the evaluation stack may not be aligned with the natural size of the immediately ldind, stind, ldfld, stfld, ldobj, stobj, initblk, or cpblk directives. |
Unbox |
Converts the boxed representation of a value type to its unboxed form. |
Unbox.any |
Converts the boxed representation of a specified type in an instruction to an unboxed form. |
Volatile |
Specifies that the address currently on top of the evaluation stack can be volatile, and that the result of reading that location cannot be cached, or that multiple stores of that address cannot be canceled. |
Xor |
Calculates the bitwise XOR of the two values at the top of the evaluation stack and pushes the results onto the evaluation stack. |