返回首页
当前位置: 主页 > 网络编程 > .Net实例教程 >

c#的逆向工程-IL指令集大全

时间:2012-10-31 21:21来源:知行网www.zhixing123.cn 编辑:麦田守望者

一些 IL 语言解释:

跳转指令集合

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。

------分隔线----------------------------
标签(Tag):C# C#实例教程 c#基础教程 C#源代码 c#技巧
------分隔线----------------------------
推荐内容
猜你感兴趣