0

我有这个 jasmin 程序集,它相当于我正在编写的字节码重写器生成的 JVM 程序集的简化。它在运行时崩溃,但如果我删除sipush和第一个商店,它就可以工作。

.method public simple()V
    .limit stack 4
    sipush        12345
    istore_1
    getstatic java/lang/System/out Ljava/io/PrintStream;
    sipush        12345
    ldc 12345
    iadd
    invokevirtual java/io/PrintStream/println(I)V
    return
.end method

JVM 是否要求负载使用每个存储?

4

1 回答 1

1

istore_1将值存储到局部变量 #1,但您的方法没有局部变量。

如果添加以下行,该方法将变为有效:

    .limit locals 2
于 2016-03-28T19:36:37.870 回答