【发布时间】:2014-10-06 21:37:22
【问题描述】:
正如documentation 所说:
公共接口操作码
定义 JVM 操作码、访问标志和 数组类型代码。 这个接口没有定义所有的JVM操作码 因为一些操作码是自动处理的。例如,xLOAD 和 xSTORE 操作码自动被 xLOAD_n 和 xSTORE_n 替换 尽可能使用操作码。 因此,xLOAD_n 和 xSTORE_n 操作码是 未在此接口中定义。同样对于 LDC,自动 必要时替换为 LDC_W 或 LDC2_W,WIDE、GOTO_W 和 JSR_W。
问题:
如果我有两个几乎相同的 .class 文件 - 一个使用 istore_<n> 和一个使用显式操作数的 istore。 Asm 将始终告诉(ClassReader 和 ClassVisitor)存在带有显式操作数的 istore。我想使用 asm,但我需要了解这些差异。使用 asm 可以获得任何指令的真实操作码吗?
【问题讨论】:
-
你可以使用不同的库。
标签: java jvm bytecode java-bytecode-asm