Java反汇编指令全集( 二 )

  • dup 复制栈顶部一个字长内容
  • dup_x1 复制栈顶部一个字长的内容,然后将复制内容及原来弹出的两个字长的内容压入栈
  • dup_x2 复制栈顶部一个字长的内容,然后将复制内容及原来弹出的三个字长的内容压入栈
  • dup2 复制栈顶部两个字长内容
  • dup2_x1 复制栈顶部两个字长的内容,然后将复制内容及原来弹出的三个字长的内容压入栈
  • dup2_x2 复制栈顶部两个字长的内容,然后将复制内容及原来弹出的四个字长的内容压入栈
  • swap 交换栈顶部两个字长内容
  • 类型转换
    • i2l 把int类型的数据转化为long类型
    • i2f 把int类型的数据转化为float类型
    • i2d 把int类型的数据转化为double类型
    • l2i 把long类型的数据转化为int类型
    • l2f 把long类型的数据转化为float类型
    • l2d 把long类型的数据转化为double类型
    • f2i 把float类型的数据转化为int类型
    • f2l 把float类型的数据转化为long类型
    • f2d 把float类型的数据转化为double类型
    • d2i 把double类型的数据转化为int类型
    • d2l 把double类型的数据转化为long类型
    • d2f 把double类型的数据转化为float类型
    • i2b 把int类型的数据转化为byte类型
    • i2c 把int类型的数据转化为char类型
    • i2s 把int类型的数据转化为short类型
    整数运算
    • iadd 执行int类型的加法
    • ladd 执行long类型的加法
    • isub 执行int类型的减法
    • lsub 执行long类型的减法
    • imul 执行int类型的乘法
    • lmul 执行long类型的乘法
    • idiv 执行int类型的除法
    • ldiv 执行long类型的除法
    • irem 计算int类型除法的余数
    • lrem 计算long类型除法的余数
    • ineg 对一个int类型值进行取反操作
    • lneg 对一个long类型值进行取反操作
    • iinc 把一个常量值加到一个int类型的局部变量上
    逻辑运算
    移位操作
    • ishl 执行int类型的向左移位操作
    • lshl 执行long类型的向左移位操作
    • ishr 执行int类型的向右移位操作
    • lshr 执行long类型的向右移位操作
    • iushr 执行int类型的向右逻辑移位操作
    • lushr 执行long类型的向右逻辑移位操作
    按位布尔运算
    • iand 对int类型值进行“逻辑与”操作
    • land 对long类型值进行“逻辑与”操作
    • ior 对int类型值进行“逻辑或”操作
    • lor 对long类型值进行“逻辑或”操作
    • ixor 对int类型值进行“逻辑异或”操作
    • lxor 对long类型值进行“逻辑异或”操作
    浮点运算
    • fadd 执行float类型的加法
    • dadd 执行double类型的加法
    • fsub 执行float类型的减法
    • dsub 执行double类型的减法
    • fmul 执行float类型的乘法
    • dmul 执行double类型的乘法
    • fdiv 执行float类型的除法
    • ddiv 执行double类型的除法
    • frem 计算float类型除法的余数
    • drem 计算double类型除法的余数
    • fneg 将一个float类型的数值取反
    • dneg 将一个double类型的数值取反
    对象和数组
    对象操作指令
    • new 创建一个新对象
    • checkcast 确定对象为所给定的类型
    • getfield 从对象中获取字段
    • putfield 设置对象中字段的值
    • getstatic 从类中获取静态字段
    • putstatic 设置类中静态字段的值
    • instanceof 判断对象是否为给定的类型
    数组操作指令
    • newarray 分配数据成员类型为基本上数据类型的新数组
    • anewarray 分配数据成员类型为引用类型的新数组
    • arraylength 获取数组长度
    • multianewarray 分配新的多维数组
    控制流
    条件分支指令