我正在尝试在 Prolog 中对字节码进行静态分析。我正在使用 bcel 库从 MethodGen 获取指令列表。对于aload_0,我得到
0:aload_0[42](1)
我明白 aload_0
意味着加载第 0 个局部变量。但我很难理解接下来的部分,即 [42](1)
。它还提供其他说明,例如:
invokespecial[183](3) 8
return[177](1)
有人可以解释一下那些是什么吗?非常感谢!
最佳答案
42
是 aload_0
的操作码。
183
是 invokespecial
的操作码。 177
是返回等等。 invokespecial后面的8
可能是该指令使用的16位常量池索引。
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-7.html
关于java - 需要帮助来理解 Java 字节码指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603326/