bytecode - Jasminbytecode 说它缺少指令 goto 的参数
问题描述
我正在尝试在我的 jasmin 字节码程序中实现分支,但无论我尝试什么,我总是在分支上遇到语法错误。代码应该检查这两个数字是否相等,如果为真则打印“真”,否则跳转到结束标签并退出程序。
我以官方 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 汇编器?我相信在这种情况下它会给出更有用的错误信息。
推荐阅读
- angular - 在不同的组件Angular 6中获取价值
- vpn - shadowsocks 打不开 https://scholar.google.com
- r - 使用不同的质心数值运行 K-Means 的多次迭代
- javascript - Bootstrap 无法与 VueJS 中的数组道具一起正常工作
- java - 如何从java中的分隔字符串中提取整数
- python - 整数列表上的 CountVectorizer
- javascript - 如何在 Meteor 的后端读取文件?
- java - 线程“主”org.lwjgl.opengl.OpenGLException 中的异常:操作无效 (1282)
- ios - 推送新的 UIViewController 时 UISearchController 消失
- sitecore - SitecoreJSS 9.1 发布日期和 SitecoreJSS 9 限制