我试图在我的jasmin字节码程序中实现分支,但无论我尝试什么,我总是在分支时遇到语法错误。代码应该检查这两个数字是否相等,如果为true,则打印"true",否则跳到结束标签并退出程序。
我使用了官方的jasmin说明页面作为例子。
错误:
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汇编程序?我相信在这种情况下,它会给出一个更有用的错误信息。