一些 IL 语言解释

发布时间:2024年01月19日
跳转指令集合

Public field Static ? ? Beq ? ? 如果两个值相等,则将控制转移到目标指令。
Public field Static ? ? Beq_S ? ? 如果两个值相等,则将控制转移到目标指令(短格式)。
Public field Static ? ? Bge ? ? 如果第一个值大于或等于第二个值,则将控制转移到目标指令。
Public field Static ? ? Bge_S ? ? 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Bge_Un ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。
Public field Static ? ? Bge_Un_S ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Bgt ? ? 如果第一个值大于第二个值,则将控制转移到目标指令。
Public field Static ? ? Bgt_S ? ? 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Bgt_Un ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。
Public field Static ? ? Bgt_Un_S ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Ble ? ? 如果第一个值小于或等于第二个值,则将控制转移到目标指令。
Public field Static ? ? Ble_S ? ? 如果第一个值小于或等于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Ble_Un ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于或等于第二个值,则将控制转移到目标指令。
Public field Static ? ? Ble_Un_S ? ? 当比较无符号整数值或不可排序的浮点值时,如果第一个值小于或等于第二个值,则将控制权转移到目标指令(短格式)。
Public field Static ? ? Blt ? ? 如果第一个值小于第二个值,则将控制转移到目标指令。
Public field Static ? ? Blt_S ? ? 如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Blt_Un ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令。
Public field Static ? ? Blt_Un_S ? ? 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。
Public field Static ? ? Bne_Un ? ? 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。
Public field Static ? ? Bne_Un_S ? ? 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。
Public field Static ? ? Br ? ? 无条件地将控制转移到目标指令。
Public field Static ? ? Br_S ? ? 无条件地将控制转移到目标指令(短格式)。
Public field Static ? ? Brfalse ? ? 如果 value 为 false、空引用(Visual Basic 中的 Nothing)或零,则将控制转移到目标指令。
Public field Static ? ? Brfalse_S ? ? 如果 value 为 false、空引用或零,则将控制转移到目标指令。
Public field Static ? ? Brtrue ? ? 如果 value 为 true、非空或非零,则将控制转移到目标指令。
Public field Static ? ? Brtrue_S ? ? 如果 value 为 true、非空或非零,则将控制转移到目标指令(短格式)。

比较指令集合
Public field Static ? ? Ceq ? ? 比较两个值。如果这两个值相等,则将整数值 1 (int32) 推送到计算堆栈上;否则,将 0 (int32) 推送到计算堆栈上。
Public field Static ? ? Cgt ? ? 比较两个值。如果第一个值大于第二个值,则将整数值 1 (int32) 推送到计算堆栈上;反之,将 0 (int32) 推送到计算堆栈上。
Public field Static ? ? Cgt_Un ? ? 比较两个无符号的或不可排序的值。如果第一个值大于第二个值,则将整数值 1 (int32) 推送到计算堆栈上;反之,将 0 (int32) 推送到计算堆栈上。
Public field Static ? ? Clt ? ? 比较两个值。如果第一个值小于第二个值,则将整数值 1 (int32) 推送到计算堆栈上;反之,将 0 (int32) 推送到计算堆栈上。
Public field Static ? ? Clt_Un ? ? 比较无符号的或不可排序的值 value1 和 value2。如果 value1 小于 value2,则将整数值 1 (int32 ) 推送到计算堆栈上;反之,将 0 ( int32 ) 推送到计算堆栈上。

Public field Static ? ? Jmp ? ? 退出当前方法并跳至指定方法。



? ? ? 名称 ? ? ? 说明
Public field Static ? ? Add ? ? 将两个值相加并将结果推送到计算堆栈上。
Public field Static ? ? Add_Ovf ? ? 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。
Public field Static ? ? Add_Ovf_Un ? ? 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。
Public field Static ? ? And ? ? 计算两个值的按位“与”并将结果推送到计算堆栈上。
Public field Static ? ? Arglist ? ? 返回指向当前方法的参数列表的非托管指针。

Public field Static ? ? Box ? ? 将值类转换为对象引用(O 类型)。
Public field Static ? ? Break ? ? 向公共语言结构 (CLI) 发出信号以通知调试器已撞上了一个断点。
Public field Static ? ? Call ? ? 调用由传递的方法说明符指示的方法。
Public field Static ? ? Calli ? ? 通过调用约定描述的参数调用在计算堆栈上指示的方法(作为指向入口点的指针)。
Public field Static ? ? Callvirt ? ? 对对象调用后期绑定方法,并且将返回值推送到计算堆栈上。
Public field Static ? ? Castclass ? ? 尝试将引用传递的对象转换为指定的类。
Public field Static ? ? Ckfinite ? ? 如果值不是有限数,则引发 ArithmeticException。

Public field Static ? ? Constrained ? ? 约束要对其进行虚方法调用的类型。
Public field Static ? ? Conv_I ? ? 将位于计算堆栈顶部的值转换为 natural int。
Public field Static ? ? Conv_I1 ? ? 将位于计算堆栈顶部的值转换为 int8,然后将其扩展(填充)为 int32。
Public field Static ? ? Conv_I2 ? ? 将位于计算堆栈顶部的值转换为 int16,然后将其扩展(填充)为 int32。
Public field Static ? ? Conv_I4 ? ? 将位于计算堆栈顶部的值转换为 int32。
Public field Static ? ? Conv_I8 ? ? 将位于计算堆栈顶部的值转换为 int64。
Public field Static ? ? Conv_Ovf_I ? ? 将位于计算堆栈顶部的有符号值转换为有符号 natural int,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I_Un ? ? 将位于计算堆栈顶部的无符号值转换为有符号 natural int,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I1 ? ? 将位于计算堆栈顶部的有符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I1_Un ? ? 将位于计算堆栈顶部的无符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I2 ? ? 将位于计算堆栈顶部的有符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I2_Un ? ? 将位于计算堆栈顶部的无符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I4 ? ? 将位于计算堆栈顶部的有符号值转换为有符号 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I4_Un ? ? 将位于计算堆栈顶部的无符号值转换为有符号 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I8 ? ? 将位于计算堆栈顶部的有符号值转换为有符号 int64,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_I8_Un ? ? 将位于计算堆栈顶部的无符号值转换为有符号 int64,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U ? ? 将位于计算堆栈顶部的有符号值转换为 unsigned natural int,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U_Un ? ? 将位于计算堆栈顶部的无符号值转换为 unsigned natural int,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U1 ? ? 将位于计算堆栈顶部的有符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U1_Un ? ? 将位于计算堆栈顶部的无符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U2 ? ? 将位于计算堆栈顶部的有符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U2_Un ? ? 将位于计算堆栈顶部的无符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U4 ? ? 将位于计算堆栈顶部的有符号值转换为 unsigned int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U4_Un ? ? 将位于计算堆栈顶部的无符号值转换为 unsigned int32,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U8 ? ? 将位于计算堆栈顶部的有符号值转换为 unsigned int64,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_Ovf_U8_Un ? ? 将位于计算堆栈顶部的无符号值转换为 unsigned int64,并在溢出时引发 OverflowException。
Public field Static ? ? Conv_R_Un ? ? 将位于计算堆栈顶部的无符号整数值转换为 float32。
Public field Static ? ? Conv_R4 ? ? 将位于计算堆栈顶部的值转换为 float32。
Public field Static ? ? Conv_R8 ? ? 将位于计算堆栈顶部的值转换为 float64。
Public field Static ? ? Conv_U ? ? 将位于计算堆栈顶部的值转换为 unsigned natural int,然后将其扩展为 natural int。
Public field Static ? ? Conv_U1 ? ? 将位于计算堆栈顶部的值转换为 unsigned int8,然后将其扩展为 int32。
Public field Static ? ? Conv_U2 ? ? 将位于计算堆栈顶部的值转换为 unsigned int16,然后将其扩展为 int32。
Public field Static ? ? Conv_U4 ? ? 将位于计算堆栈顶部的值转换为 unsigned int32,然后将其扩展为 int32。
Public field Static ? ? Conv_U8 ? ? 将位于计算堆栈顶部的值转换为 unsigned int64,然后将其扩展为 int64。
Public field Static ? ? Cpblk ? ? 将指定数目的字节从源地址复制到目标地址。
Public field Static ? ? Cpobj ? ? 将位于对象(&、* 或 natural int 类型)地址的值类型复制到目标对象(&、* 或 natural int 类型)的地址。
Public field Static ? ? Div ? ? 将两个值相除并将结果作为浮点(F 类型)或商(int32 类型)推送到计算堆栈上。
Public field Static ? ? Div_Un ? ? 两个无符号整数值相除并将结果 ( int32 ) 推送到计算堆栈上。
Public field Static ? ? Dup ? ? 复制计算堆栈上当前最顶端的值,然后将副本推送到计算堆栈上。
Public field Static ? ? Endfilter ? ? 将控制从异常的 filter 子句转移回公共语言结构 (CLI) 异常处理程序。
Public field Static ? ? Endfinally ? ? 将控制从异常块的 fault 或 finally 子句转移回公共语言结构 (CLI) 异常处理程序。
Public field Static ? ? Initblk ? ? 将位于特定地址的内存的指定块初始化为给定大小和初始值。
Public field Static ? ? Initobj ? ? 将位于指定地址的对象的所有字段初始化为空引用或适当的基元类型的 0。
Public field Static ? ? Isinst ? ? 测试对象引用(O 类型)是否为特定类的实例。
Public field Static ? ? Ldarg ? ? 将参数(由指定索引值引用)加载到堆栈上。
Public field Static ? ? Ldarg_0 ? ? 将索引为 0 的参数加载到计算堆栈上。
Public field Static ? ? Ldarg_1 ? ? 将索引为 1 的参数加载到计算堆栈上。
Public field Static ? ? Ldarg_2 ? ? 将索引为 2 的参数加载到计算堆栈上。
Public field Static ? ? Ldarg_3 ? ? 将索引为 3 的参数加载到计算堆栈上。
Public field Static ? ? Ldarg_S ? ? 将参数(由指定的短格式索引引用)加载到计算堆栈上。
Public field Static ? ? Ldarga ? ? 将参数地址加载到计算堆栈上。
Public field Static ? ? Ldarga_S ? ? 以短格式将参数地址加载到计算堆栈上。
Public field Static ? ? Ldc_I4 ? ? 将所提供的 int32 类型的值作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_0 ? ? 将整数值 0 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_1 ? ? 将整数值 1 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_2 ? ? 将整数值 2 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_3 ? ? 将整数值 3 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_4 ? ? 将整数值 4 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_5 ? ? 将整数值 5 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_6 ? ? 将整数值 6 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_7 ? ? 将整数值 7 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_8 ? ? 将整数值 8 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_M1 ? ? 将整数值 -1 作为 int32 推送到计算堆栈上。
Public field Static ? ? Ldc_I4_S ? ? 将提供的 int8 值作为 int32 推送到计算堆栈上(短格式)。
Public field Static ? ? Ldc_I8 ? ? 将所提供的 int64 类型的值作为 int64 推送到计算堆栈上。
Public field Static ? ? Ldc_R4 ? ? 将所提供的 float32 类型的值作为 F (float) 类型推送到计算堆栈上。
Public field Static ? ? Ldc_R8 ? ? 将所提供的 float64 类型的值作为 F (float) 类型推送到计算堆栈上。
Public field Static ? ? Ldelem ? ? 按照指令中指定的类型,将指定数组索引中的元素加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_I ? ? 将位于指定数组索引处的 natural int 类型的元素作为 natural int 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_I1 ? ? 将位于指定数组索引处的 int8 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_I2 ? ? 将位于指定数组索引处的 int16 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_I4 ? ? 将位于指定数组索引处的 int32 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_I8 ? ? 将位于指定数组索引处的 int64 类型的元素作为 int64 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_R4 ? ? 将位于指定数组索引处的 float32 类型的元素作为 F 类型(浮点型)加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_R8 ? ? 将位于指定数组索引处的 float64 类型的元素作为 F 类型(浮点型)加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_Ref ? ? 将位于指定数组索引处的包含对象引用的元素作为 O 类型(对象引用)加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_U1 ? ? 将位于指定数组索引处的 unsigned int8 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_U2 ? ? 将位于指定数组索引处的 unsigned int16 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelem_U4 ? ? 将位于指定数组索引处的 unsigned int32 类型的元素作为 int32 加载到计算堆栈的顶部。
Public field Static ? ? Ldelema ? ? 将位于指定数组索引的数组元素的地址作为 & 类型(托管指针)加载到计算堆栈的顶部。
Public field Static ? ? Ldfld ? ? 查找对象中其引用当前位于计算堆栈的字段的值。
Public field Static ? ? Ldflda ? ? 查找对象中其引用当前位于计算堆栈的字段的地址。
Public field Static ? ? Ldftn ? ? 将指向实现特定方法的本机代码的非托管指针(natural int 类型)推送到计算堆栈上。
Public field Static ? ? Ldind_I ? ? 将 natural int 类型的值作为 natural int 间接加载到计算堆栈上。
Public field Static ? ? Ldind_I1 ? ? 将 int8 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldind_I2 ? ? 将 int16 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldind_I4 ? ? 将 int32 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldind_I8 ? ? 将 int64 类型的值作为 int64 间接加载到计算堆栈上。
Public field Static ? ? Ldind_R4 ? ? 将 float32 类型的值作为 F (float) 类型间接加载到计算堆栈上。
Public field Static ? ? Ldind_R8 ? ? 将 float64 类型的值作为 F (float) 类型间接加载到计算堆栈上。
Public field Static ? ? Ldind_Ref ? ? 将对象引用作为 O(对象引用)类型间接加载到计算堆栈上。
Public field Static ? ? Ldind_U1 ? ? 将 unsigned int8 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldind_U2 ? ? 将 unsigned int16 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldind_U4 ? ? 将 unsigned int32 类型的值作为 int32 间接加载到计算堆栈上。
Public field Static ? ? Ldlen ? ? 将从零开始的、一维数组的元素的数目推送到计算堆栈上。
Public field Static ? ? Ldloc ? ? 将指定索引处的局部变量加载到计算堆栈上。
Public field Static ? ? Ldloc_0 ? ? 将索引 0 处的局部变量加载到计算堆栈上。
Public field Static ? ? Ldloc_1 ? ? 将索引 1 处的局部变量加载到计算堆栈上。
Public field Static ? ? Ldloc_2 ? ? 将索引 2 处的局部变量加载到计算堆栈上。
Public field Static ? ? Ldloc_3 ? ? 将索引 3 处的局部变量加载到计算堆栈上。
Public field Static ? ? Ldloc_S ? ? 将特定索引处的局部变量加载到计算堆栈上(短格式)。
Public field Static ? ? Ldloca ? ? 将位于特定索引处的局部变量的地址加载到计算堆栈上。
Public field Static ? ? Ldloca_S ? ? 将位于特定索引处的局部变量的地址加载到计算堆栈上(短格式)。
Public field Static ? ? Ldnull ? ? 将空引用(O 类型)推送到计算堆栈上。
Public field Static ? ? Ldobj ? ? 将地址指向的值类型对象复制到计算堆栈的顶部。
Public field Static ? ? Ldsfld ? ? 将静态字段的值推送到计算堆栈上。
Public field Static ? ? Ldsflda ? ? 将静态字段的地址推送到计算堆栈上。
Public field Static ? ? Ldstr ? ? 推送对元数据中存储的字符串的新对象引用。
Public field Static ? ? Ldtoken ? ? 将元数据标记转换为其运行时表示形式,并将其推送到计算堆栈上。
Public field Static ? ? Ldvirtftn ? ? 将指向实现与指定对象关联的特定虚方法的本机代码的非托管指针(natural int 类型)推送到计算堆栈上。
Public field Static ? ? Leave ? ? 退出受保护的代码区域,无条件将控制转移到特定目标指令。
Public field Static ? ? Leave_S ? ? 退出受保护的代码区域,无条件将控制转移到目标指令(缩写形式)。
Public field Static ? ? Localloc ? ? 从本地动态内存池分配特定数目的字节并将第一个分配的字节的地址(瞬态指针,* 类型)推送到计算堆栈上。
Public field Static ? ? Mkrefany ? ? 将对特定类型实例的类型化引用推送到计算堆栈上。
Public field Static ? ? Mul ? ? 将两个值相乘并将结果推送到计算堆栈上。
Public field Static ? ? Mul_Ovf ? ? 将两个整数值相乘,执行溢出检查,并将结果推送到计算堆栈上。
Public field Static ? ? Mul_Ovf_Un ? ? 将两个无符号整数值相乘,执行溢出检查,并将结果推送到计算堆栈上。
Public field Static ? ? Neg ? ? 对一个值执行求反并将结果推送到计算堆栈上。
Public field Static ? ? Newarr ? ? 将对新的从零开始的一维数组(其元素属于特定类型)的对象引用推送到计算堆栈上。
Public field Static ? ? Newobj ? ? 创建一个值类型的新对象或新实例,并将对象引用(O 类型)推送到计算堆栈上。
Public field Static ? ? Nop ? ? 如果修补操作码,则填充空间。尽管可能消耗处理周期,但未执行任何有意义的操作。
Public field Static ? ? Not ? ? 计算堆栈顶部整数值的按位求补并将结果作为相同的类型推送到计算堆栈上。
Public field Static ? ? Or ? ? 计算位于堆栈顶部的两个整数值的按位求补并将结果推送到计算堆栈上。
Public field Static ? ? Pop ? ? 移除当前位于计算堆栈顶部的值。
Public field Static ? ? Prefix1 ? ? 此指令为保留指令。
Public field Static ? ? Prefix2 ? ? 此指令为保留指令。
Public field Static ? ? Prefix3 ? ? 此指令为保留指令。
Public field Static ? ? Prefix4 ? ? 此指令为保留指令。
Public field Static ? ? Prefix5 ? ? 此指令为保留指令。
Public field Static ? ? Prefix6 ? ? 此指令为保留指令。
Public field Static ? ? Prefix7 ? ? 此指令为保留指令。
Public field Static ? ? Prefixref ? ? 此指令为保留指令。
Public field Static ? ? Readonly ? ? 指定后面的数组地址操作在运行时不执行类型检查,并且返回可变性受限的托管指针。
Public field Static ? ? Refanytype ? ? 检索嵌入在类型化引用内的类型标记。
Public field Static ? ? Refanyval ? ? 检索嵌入在类型化引用内的地址(& 类型)。
Public field Static ? ? Rem ? ? 将两个值相除并将余数推送到计算堆栈上。
Public field Static ? ? Rem_Un ? ? 将两个无符号值相除并将余数推送到计算堆栈上。
Public field Static ? ? Ret ? ? 从当前方法返回,并将返回值(如果存在)从调用方的计算堆栈推送到被调用方的计算堆栈上。
Public field Static ? ? Rethrow ? ? 再次引发当前异常。
Public field Static ? ? Shl ? ? 将整数值左移(用零填充)指定的位数,并将结果推送到计算堆栈上。
Public field Static ? ? Shr ? ? 将整数值右移(保留符号)指定的位数,并将结果推送到计算堆栈上。
Public field Static ? ? Shr_Un ? ? 将无符号整数值右移(用零填充)指定的位数,并将结果推送到计算堆栈上。
Public field Static ? ? Sizeof ? ? 将提供的值类型的大小(以字节为单位)推送到计算堆栈上。
Public field Static ? ? Starg ? ? 将位于计算堆栈顶部的值存储到位于指定索引的参数槽中。
Public field Static ? ? Starg_S ? ? 将位于计算堆栈顶部的值存储在参数槽中的指定索引处(短格式)。
Public field Static ? ? Stelem ? ? 用计算堆栈中的值替换给定索引处的数组元素,其类型在指令中指定。
Public field Static ? ? Stelem_I ? ? 用计算堆栈上的 natural int 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_I1 ? ? 用计算堆栈上的 int8 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_I2 ? ? 用计算堆栈上的 int16 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_I4 ? ? 用计算堆栈上的 int32 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_I8 ? ? 用计算堆栈上的 int64 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_R4 ? ? 用计算堆栈上的 float32 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_R8 ? ? 用计算堆栈上的 float64 值替换给定索引处的数组元素。
Public field Static ? ? Stelem_Ref ? ? 用计算堆栈上的对象 ref 值(O 类型)替换给定索引处的数组元素。
Public field Static ? ? Stfld ? ? 用新值替换在对象引用或指针的字段中存储的值。
Public field Static ? ? Stind_I ? ? 在所提供的地址存储 natural int 类型的值。
Public field Static ? ? Stind_I1 ? ? 在所提供的地址存储 int8 类型的值。
Public field Static ? ? Stind_I2 ? ? 在所提供的地址存储 int16 类型的值。
Public field Static ? ? Stind_I4 ? ? 在所提供的地址存储 int32 类型的值。
Public field Static ? ? Stind_I8 ? ? 在所提供的地址存储 int64 类型的值。
Public field Static ? ? Stind_R4 ? ? 在所提供的地址存储 float32 类型的值。
Public field Static ? ? Stind_R8 ? ? 在所提供的地址存储 float64 类型的值。
Public field Static ? ? Stind_Ref ? ? 存储所提供地址处的对象引用值。
Public field Static ? ? Stloc ? ? 从计算堆栈的顶部弹出当前值并将其存储到指定索引处的局部变量列表中。
Public field Static ? ? Stloc_0 ? ? 从计算堆栈的顶部弹出当前值并将其存储到索引 0 处的局部变量列表中。
Public field Static ? ? Stloc_1 ? ? 从计算堆栈的顶部弹出当前值并将其存储到索引 1 处的局部变量列表中。
Public field Static ? ? Stloc_2 ? ? 从计算堆栈的顶部弹出当前值并将其存储到索引 2 处的局部变量列表中。
Public field Static ? ? Stloc_3 ? ? 从计算堆栈的顶部弹出当前值并将其存储到索引 3 处的局部变量列表中。
Public field Static ? ? Stloc_S ? ? 从计算堆栈的顶部弹出当前值并将其存储在局部变量列表中的 index 处(短格式)。
Public field Static ? ? Stobj ? ? 将指定类型的值从计算堆栈复制到所提供的内存地址中。
Public field Static ? ? Stsfld ? ? 用来自计算堆栈的值替换静态字段的值。
Public field Static ? ? Sub ? ? 从其他值中减去一个值并将结果推送到计算堆栈上。
Public field Static ? ? Sub_Ovf ? ? 从另一值中减去一个整数值,执行溢出检查,并且将结果推送到计算堆栈上。
Public field Static ? ? Sub_Ovf_Un ? ? 从另一值中减去一个无符号整数值,执行溢出检查,并且将结果推送到计算堆栈上。
Public field Static ? ? Switch ? ? 实现跳转表。
Public field Static ? ? Tailcall ? ? 执行后缀的方法调用指令,以便在执行实际调用指令前移除当前方法的堆栈帧。
Public field Static ? ? Throw ? ? 引发当前位于计算堆栈上的异常对象。
Public field Static ? ? Unaligned ? ? 指示当前位于计算堆栈上的地址可能没有与紧接的 ldind、stind、ldfld、stfld、ldobj、stobj、initblk 或 cpblk 指令的自然大小对齐。
Public field Static ? ? Unbox ? ? 将值类型的已装箱的表示形式转换为其未装箱的形式。
Public field Static ? ? Unbox_Any ? ? 将指令中指定类型的已装箱的表示形式转换成未装箱形式。
Public field Static ? ? Volatile ? ? 指定当前位于计算堆栈顶部的地址可以是易失的,并且读取该位置的结果不能被缓存,或者对该地址的多个存储区不能被取消。
Public field Static ? ? Xor ? ? 计算位于计算堆栈顶部的两个值的按位异或,并且将结果推送到计算堆栈上。

文章来源:https://blog.csdn.net/weixin_46771779/article/details/135688396
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。