我正在学习字节代码检测的ASM框架,并编写了几个示例来实现相同的目标。我看到在大多数示例中,JVM OPCodes用于ex:DUP,AASTORE,LSTORE等但是查看ASM的javadocs操作码我没有看到任何适用于不同OPcode的文档
for ex
AALOAD
static final int AALOAD
DUP
static final int DUP
这个javadoc链接http://asm.ow2.org/asm40/javadoc/user/org/objectweb/asm/Opcodes.html给出了可用的操作码列表,但没有清楚地描述为什么/何时使用每个操作码。我知道这些只是JVM操作码,但是有一个我可以获得的位置关于何时/为何应该使用这些操作码的更多细节?
我目前正在使用ASMIFIER来了解我应该注入的代码的BYTECODE表示应该是什么样子,但是更好地理解OPCodes将有助于我更好地理解我必须注入的BYTECode。
由于
VishwanathB
答案 0 :(得分:4)
如果您想了解操作码的作用,请阅读JVM规范的“The Java Virtual Machine Instruction Set”章节。
如果你想了解如何选择指令序列来做你想做的事情,那就是编程。