三目运算与ifelse效率 c语言,*****比較if-else與三目運算符的效率***** - .NET技术 / C#...

MSIL 指令大全

公共字段

Add 将两个值相加并将结果推送到计算堆栈上。

Add_Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。

Add_Ovf_Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。

And 计算两个值的位 AND 并将结果推送到计算堆栈上。

Arglist 返回指向当前方法的参数列表的非托管指针。

Beq 如果两个值相等,则将控制转移到目标指令。

Beq_S 如果两个值相等,则将控制转移到目标指令(短格式)。

Bge 如果第一个值大于或等于第二个值,则将控制转移到目标指令。

Bge_S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。

Bge_Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令

Bge_Un_S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指

令(短格式)。

Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。

Bgt_S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。

Bgt_Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令

Bgt_Un_S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指

令(短格式)。

Ble 如果第一个值小于或等于第二个值,则将控制转移到目标指令。

Ble_S 如果第一个值小于或等于第二个值,则将控制转移到目标指令(短格式)。

Ble_Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于或等于第二个值,则将控制转移到目

标指令。

Ble_Un_S 当比较无符号整数值或不可排序的浮点值时,如果第一个值小于或等于第二个值,则将控制权转移到

目标指令(短格式)。

Blt 如果第一个值小于第二个值,则将控制转移到目标指令。

Blt_S 如果第一个值小于第二个值,则将控制转移到目标指令(短格式)。

Blt_Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指令

Blt_Un_S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则将控制转移到目标指

令(短格式)。

Bne_Un 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令。

Bne_Un_S 当两个无符号整数值或不可排序的浮点型值不相等时,将控制转移到目标指令(短格式)。

Box 将值类转换为对象引用(O 类型)。

Br 无条件地将控制转移到目标指令。

Break 向公共语言结构 (CLI) 发出信号以通知调试器已撞上了一个断点。

Brfalse 如果 value 为 false、空引用(Visual Basic 中的 Nothing)或零,则将控制转移到目标指令。

Brfalse_S 如果 value 为 false、空引用或零,则将控制转移到目标指令。

Brtrue 如果 value 为 true、非空或非零,则将控制转移到目标指令。

Brtrue_S 如果 value 为 true、非空或非零,则将控制转移到目标指令(短格式)。

Br_S 无条件地将控制转移到目标指令(短格式)。

Call 调用由传递的方法说明符指示的方法。

Calli 通过调用约定描述的参数调用在计算堆栈上指示的方法(作为指向入口点的指针)。

Callvirt 对对象调用后期绑定方法,并且将返回值推送到计算堆栈上。

Castclass 尝试将引用传递的对象转换为指定的类。

Ceq 比较两个值。如果这两个值相等,则将整数值 1 ((int32) 推送到计算堆栈上;否则,将 0 (int32) 推送

到计算堆栈上。

Cgt 比较两个值。如果第一个值大于第二个值,则将整数值 1 ((int32) 推送到计算堆栈上;反之,将 0

(int32) 推送到计算堆栈上。

Cgt_Un 比较两个无符号的或不可排序的值。如果第一个值大于第二个值,则将整数值 1 ((int32) 推送到计算

堆栈上;反之,将 0 (int32) 推送到计算堆栈上。

Ckfinite 如果值不是有限数,则引发 ArithmeticException。

Clt 比较两个值。如果第一个值小于第二个值,则将整数值 1 ((int32) 推送到计算堆栈上;反之,将 0

(int32) 推送到计算堆栈上。

Clt_Un 比较无符号的或不可排序的值 value1 和 value2。如果 value1 小于 value2,则将整数值 1

((int32) 推送到计算堆栈上;反之,将 0 (int32) 推送到计算堆栈上。

Conv_I 将位于计算堆栈顶部的值转换为 natural int。

Conv_I1 将位于计算堆栈顶部的值转换为 int8,然后将其扩展(填充)为 int32。

Conv_I2 将位于计算堆栈顶部的值转换为 int16,然后将其扩展(填充)为 int32。

Conv_I4 将位于计算堆栈顶部的值转换为 int32。

Conv_I8 将位于计算堆栈顶部的值转换为 int64。

Conv_Ovf_I 将位于计算堆栈顶部的有符号值转换为有符号 natural int,并在溢出时引发 OverflowException

Conv_Ovf_I1 将位于计算堆栈顶部的有符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_I1_Un 将位于计算堆栈顶部的无符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_I2 将位于计算堆栈顶部的有符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_I2_Un 将位于计算堆栈顶部的无符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_I4 将位于计算堆栈顶部的有符号值转换为有符号 int32,并在溢出时引发 OverflowException。

Conv_Ovf_I4_Un 将位于计算堆栈顶部的无符号值转换为有符号 int32,并在溢出时引发 OverflowException。

Conv_Ovf_I8 将位于计算堆栈顶部的有符号值转换为有符号 int64,并在溢出时引发 OverflowException。

Conv_Ovf_I8_Un 将位于计算堆栈顶部的无符号值转换为有符号 int64,并在溢出时引发 OverflowException。

Conv_Ovf_I_Un 将位于计算堆栈顶部的无符号值转换为有符号 natural int,并在溢出时引发

OverflowException。

Conv_Ovf_U 将位于计算堆栈顶部的有符号值转换为 unsigned natural int,并在溢出时引发

OverflowException。

Conv_Ovf_U1 将位于计算堆栈顶部的有符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_U1_Un 将位于计算堆栈顶部的无符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引

发 OverflowException。

Conv_Ovf_U2 将位于计算堆栈顶部的有符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发

OverflowException。

Conv_Ovf_U2_Un 将位于计算堆栈顶部的无符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引

发 OverflowException。

Conv_Ovf_U4 将位于计算堆栈顶部的有符号值转换为 unsigned int32,并在溢出时引发 OverflowException。

Conv_Ovf_U4_Un 将位于计算堆栈顶部的无符号值转换为 unsigned int32,并在溢出时引发

OverflowException。

Conv_Ovf_U8 将位于计算堆栈顶部的有符号值转换为 unsigned int64,并在溢出时引发 OverflowException。

Conv_Ovf_U8_Un 将位于计算堆栈顶部的无符号值转换为 unsigned int64,并在溢出时引发

OverflowException。

Conv_Ovf_U_Un 将位于计算堆栈顶部的无符号值转换为 unsigned natural int,并在溢出时引发

OverflowException。

Conv_R4 将位于计算堆栈顶部的值转换为 float32。

Conv_R8 将位于计算堆栈顶部的值转换为 float64。

Conv_R_Un 将位于计算堆栈顶部的无符号整数值转换为 float32。

Conv_U 将位于计算堆栈顶部的值转换为 unsigned natural int,然后将其扩展为 natural int。

Conv_U1 将位于计算堆栈顶部的值转换为 unsigned int8,然后将其扩展为 int32。

Conv_U2 将位于计算堆栈顶部的值转换为 unsigned int16,然后将其扩展为 int32。

Conv_U4 将位于计算堆栈顶部的值转换为 unsigned int32,然后将其扩展为 int32。

Conv_U8 将位于计算堆栈顶部的值转换为 unsigned int64,然后将其扩展为 int64。

Cpblk 将指定数目的字节从源地址复制到目标地址。

Cpobj 将位于对象(&、* 或 natural int 类型)地址的值类型复制到目标对象(&、* 或 natural int 类型

)的地址。

Div 将两个值相除并将结果作为浮点(F 类型)或商(int32 类型)推送到计算堆栈上。

Div_Un 两个无符号整数值相除并将结果 (int32) 推送到计算堆栈上。

Dup 复制计算堆栈上当前最顶端的值,然后将副本推送到计算堆栈上。

Endfilter 将控制从异常的 filter 子句转移回公共语言结构 (CLI) 异常处理程序。

Endfinally 将控制从异常块的 fault 或 finally 子句转移回公共语言结构 (CLI) 异常处理程序。

Initblk 将位于特定地址的内存的指定块初始化为给定大小和初始值。

Initobj 将位于指定地址的对象的所有字段初始化为空引用或适当的基元类型的 0。

Isinst 测试对象引用(O 类型)是否为特定类的实例。

Jmp 退出当前方法并跳至指定方法。

Ldarg 将参数(由指定索引值引用)加载到堆栈上。

Ldarga 将参数地址加载到计算堆栈上。

Ldarga_S 以短格式将参数地址加载到计算堆栈上。

Ldarg_0 将索引为 0 的参数加载到计算堆栈上。

Ldarg_1 将索引为 1 的参数加载到计算堆栈上。

Ldarg_2 将索引为 2 的参数加载到计算堆栈上。

Ldarg_3 将索引为 3 的参数加载到计算堆栈上。

Ldarg_S 将参数(由指定的短格式索引引用)加载到计算堆栈上。

Ldc_I4 将所提供的 int32 类型的值作为 int32 推送到计算堆栈上。

Ldc_I4_0 将整数值 0 作为 int32 推送到计算堆栈上。

Ldc_I4_1 将整数值 1 作为 int32 推送到计算堆栈上。

Ldc_I4_2 将整数值 2 作为 int32 推送到计算堆栈上。

Ldc_I4_3 将整数值 3 作为 int32 推送到计算堆栈上。

Ldc_I4_4 将整数值 4 作为 int32 推送到计算堆栈上。

Ldc_I4_5 将整数值 5 作为 int32 推送到计算堆栈上。

Ldc_I4_6 将整数值 6 作为 int32 推送到计算堆栈上。

Ldc_I4_7 将整数值 7 作为 int32 推送到计算堆栈上。

Ldc_I4_8 将整数值 8 作为 int32 推送到计算堆栈上。

Ldc_I4_M1 将整数值 -1 作为 int32 推送到计算堆栈上。

Ldc_I4_S 将提供的 int8 值作为 int32 推送到计算堆栈上(短格式)。

Ldc_I8 将所提供的 int64 类型的值作为 int64 推送到计算堆栈上。

Ldc_R4 将所提供的 float32 类型的值作为 F (float) 类型推送到计算堆栈上。

Ldc_R8 将所提供的 float64 类型的值作为 F (float) 类型推送到计算堆栈上。

Ldelema 将位于指定数组索引的数组元素的地址作为 & 类型(托管指针)加载到计算堆栈的顶部。

Ldelem_I 将位于指定数组索引处的 natural int 类型的元素作为 natural int 加载到计算堆栈的顶部。

Ldelem_I1 将位于指定数组索引处的 int8 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldelem_I2 将位于指定数组索引处的 int16 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldelem_I4 将位于指定数组索引处的 int32 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldelem_I8 将位于指定数组索引处的 int64 类型的元素作为 int64 加载到计算堆栈的顶部。

Ldelem_R4 将位于指定数组索引处的 float32 类型的元素作为 F 类型(浮点型)加载到计算堆栈的顶部。

Ldelem_R8 将位于指定数组索引处的 float64 类型的元素作为 F 类型(浮点型)加载到计算堆栈的顶部。

Ldelem_Ref 将位于指定数组索引处的包含对象引用的元素作为 O 类型(对象引用)加载到计算堆栈的顶部。

Ldelem_U1 将位于指定数组索引处的 unsigned int8 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldelem_U2 将位于指定数组索引处的 unsigned int16 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldelem_U4 将位于指定数组索引处的 unsigned int32 类型的元素作为 int32 加载到计算堆栈的顶部。

Ldfld 查找对象中其引用当前位于计算堆栈的字段的值。

Ldflda 查找对象中其引用当前位于计算堆栈的字段的地址。

Ldftn 将指向实现特定方法的本机代码的非托管指针(natural int 类型)推送到计算堆栈上。

Ldind_I 将 natural int 类型的值作为 natural int 间接加载到计算堆栈上。

Ldind_I1 将 int8 类型的值作为 int32 间接加载到计算堆栈上。

Ldind_I2 将 int16 类型的值作为 int32 间接加载到计算堆栈上。

Ldind_I4 将 int32 类型的值作为 int32 间接加载到计算堆栈上。

Ldind_I8 将 int64 类型的值作为 int64 间接加载到计算堆栈上。

Ldind_R4 将 float32 类型的值作为 F (float) 类型间接加载到计算堆栈上。

Ldind_R8 将 float64 类型的值作为 F (float) 类型间接加载到计算堆栈上。

Ldind_Ref 将对象引用作为 O(对象引用)类型间接加载到计算堆栈上。

Ldind_U1 将 unsigned int8 类型的值作为 int32 间接加载到计算堆栈上。

Ldind_U2 将 unsigned int16 类型的值作为 int32 间接加载到计算堆栈上。

Ldind_U4 将 unsigned int32 类型的值作为 int32 间接加载到计算堆栈上。

Ldlen 将从零开始的、一维数组的元素的数目推送到计算堆栈上。

Ldloc 将指定索引处的局部变量加载到计算堆栈上。

Ldloca 将位于特定索引处的局部变量的地址加载到计算堆栈上。

Ldloca_S 将位于特定索引处的局部变量的地址加载到计算堆栈上(短格式)。

Ldloc_0 将索引 0 处的局部变量加载到计算堆栈上。

Ldloc_1 将索引 1 处的局部变量加载到计算堆栈上。

Ldloc_2 将索引 2 处的局部变量加载到计算堆栈上。

Ldloc_3 将索引 3 处的局部变量加载到计算堆栈上。

Ldloc_S 将特定索引处的局部变量加载到计算堆栈上(短格式)。

Ldnull 将空引用(O 类型)推送到计算堆栈上。

Ldobj 将地址指向的值类型对象复制到计算堆栈的顶部。

Ldsfld 将静态字段的值推送到计算堆栈上。

Ldsflda 将静态字段的地址推送到计算堆栈上。

Ldstr 推送对元数据中存储的字符串的新对象引用。

Ldtoken 将元数据标记转换为其运行时表示形式,并将其推送到计算堆栈上。

Ldvirtftn 将指向实现与指定对象关联的特定虚方法的本机代码的非托管指针(natural int 类型)推送到计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值