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 に答える