Java反汇编指令全集

栈和局部变量操作将常量压入栈的指令

  • aconst_null 将null对象引用压入栈
  • iconst_m1 将int类型常量-1压入栈
  • iconst_0 将int类型常量0压入栈
  • iconst_1 将int类型常量1压入栈
  • iconst_2 将int类型常量2压入栈
  • iconst_3 将int类型常量3压入栈
  • iconst_4 将int类型常量4压入栈
  • iconst_5 将int类型常量5压入栈
  • lconst_0 将long类型常量0压入栈
  • lconst_1 将long类型常量1压入栈
  • fconst_0 将float类型常量0压入栈
  • fconst_1 将float类型常量1压入栈
  • dconst_0 将double类型常量0压入栈
  • dconst_1 将double类型常量1压入栈
  • bipush 将一个8位带符号整数压入栈
  • sipush 将16位带符号整数压入栈
  • ldc 把常量池中的项压入栈
  • ldc_w 把常量池中的项压入栈(使用宽索引)
  • ldc2_w 把常量池中long类型或者double类型的项压入栈(使用宽索引)
从栈中的局部变量中装载值的指令
  • iload 从局部变量中装载int类型值
  • lload 从局部变量中装载long类型值
  • fload 从局部变量中装载float类型值
  • dload 从局部变量中装载double类型值
  • aload 从局部变量中装载引用类型值(refernce)
  • iload_0 从局部变量0中装载int类型值
  • iload_1 从局部变量1中装载int类型值
  • iload_2 从局部变量2中装载int类型值
  • iload_3 从局部变量3中装载int类型值
  • lload_0 从局部变量0中装载long类型值
  • lload_1 从局部变量1中装载long类型值
  • lload_2 从局部变量2中装载long类型值
  • lload_3 从局部变量3中装载long类型值
  • fload_0 从局部变量0中装载float类型值
  • fload_1 从局部变量1中装载float类型值
  • fload_2 从局部变量2中装载float类型值
  • fload_3 从局部变量3中装载float类型值
  • dload_0 从局部变量0中装载double类型值
  • dload_1 从局部变量1中装载double类型值
  • dload_2 从局部变量2中装载double类型值
  • dload_3 从局部变量3中装载double类型值
  • aload_0 从局部变量0中装载引用类型值
  • aload_1 从局部变量1中装载引用类型值
  • aload_2 从局部变量2中装载引用类型值
  • aload_3 从局部变量3中装载引用类型值
  • iaload 从数组中装载int类型值
  • laload 从数组中装载long类型值
  • faload 从数组中装载float类型值
  • daload 从数组中装载double类型值
  • aaload 从数组中装载引用类型值
  • baload 从数组中装载byte类型或boolean类型值
  • caload 从数组中装载char类型值
  • saload 从数组中装载short类型值
将栈中的值存入局部变量的指令
  • istore 将int类型值存入局部变量
  • lstore 将long类型值存入局部变量
  • fstore 将float类型值存入局部变量
  • dstore 将double类型值存入局部变量
  • astore 将将引用类型或returnAddress类型值存入局部变量
  • istore_0 将int类型值存入局部变量0
  • istore_1 将int类型值存入局部变量1
  • istore_2 将int类型值存入局部变量2
  • istore_3 将int类型值存入局部变量3
  • lstore_0 将long类型值存入局部变量0
  • lstore_1 将long类型值存入局部变量1
  • lstore_2 将long类型值存入局部变量2
  • lstore_3 将long类型值存入局部变量3
  • fstore_0 将float类型值存入局部变量0
  • fstore_1 将float类型值存入局部变量1
  • fstore_2 将float类型值存入局部变量2
  • fstore_3 将float类型值存入局部变量3
  • dstore_0 将double类型值存入局部变量0
  • dstore_1 将double类型值存入局部变量1
  • dstore_2 将double类型值存入局部变量2
  • dstore_3 将double类型值存入局部变量3
  • astore_0 将引用类型或returnAddress类型值存入局部变量0
  • astore_1 将引用类型或returnAddress类型值存入局部变量1
  • astore_2 将引用类型或returnAddress类型值存入局部变量2
  • astore_3 将引用类型或returnAddress类型值存入局部变量3
  • iastore 将int类型值存入数组中
  • lastore 将long类型值存入数组中
  • fastore 将float类型值存入数组中
  • dastore 将double类型值存入数组中
  • aastore 将引用类型值存入数组中
  • bastore 将byte类型或者boolean类型值存入数组中
  • castore 将char类型值存入数组中
  • sastore 将short类型值存入数组中
wide指令
  • wide 使用附加字节扩展局部变量索引
通用(无类型)栈操作