Jasminbytecode 说它缺少指令 goto 的参数

Jasminbytecode says it's missing arguments for instruction goto

我试图在我的 jasmin 字节码程序中实现分支,但无论我尝试什么,我总是在分支上遇到语法错误。代码应检查 2 个数字是否相等,如果为真则打印 "true" 否则跳转到结束标签并退出程序。

我以 official jasmin instructions 页面为例。

错误:

test.j:13: Warning - Syntax error.
if_icmpeg L1
             ^
test.j:15: JAS Error: Missing arguments for instruction goto.
L
 ^
test.j: Found 2 errors

Jasmin字节码文件:

.class public test
.super java/lang/Object

.method public static main([Ljava/lang/String;)V
.limit stack 99
.limit locals 99

getstatic java/lang/System/out Ljava/io/PrintStream;
ldc 5
ldc 3
isub
ldc 7
if_icmpeg L1
goto LE1
L1:
ldc "true"
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
LE1:
return
.end method

你打错了。应该是if_icmpeq,不是if_icmpeg.

附带说明一下,您是否考虑过尝试 Krakatau assembler?我相信在这种情况下它会给出更有用的错误信息。