问题标签 [jasmin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
217 浏览

java - 在java中使用ANTLR格式化jasmin的输出

此语法将输出一个数字4422
但输出将如下所示 ( 4422)

我想在数字之间添加一个空格,以便输出为( 44 22 )

我认为有些东西需要改变

0 投票
2 回答
3155 浏览

java - Java 类转换成 Jasmin 汇编代码

有没有办法将此代码转换为 jasmin 汇编代码?我很难找到一种方法来做到这一点。答案将不胜感激。

0 投票
1 回答
584 浏览

java - 在 Jasmin 中获取 ClassFormatError

我正在尝试创建一个使用 jasmin 打印一些文本的程序。这是整个代码的一部分:

编译后,我收到此错误:

似乎错误出现在第 4 行的某处,因为在将该行作为注释后,我没有收到任何错误。

0 投票
1 回答
917 浏览

java - 字符串数组上的 Java ByteCode [putstatic 中的错误类型]

我正在尝试为等效于以下内容的类编写 JVM 字节码:

我写的字节码:

我使用 Jasmine 运行字节码并为 getfield/putfield 获取错误类型错误,但无法弄清楚原因。

有谁知道问题出在哪里以及如何解决?

0 投票
1 回答
1158 浏览

java - Java字节码最终字段分配(茉莉)

在 java 语言中,final 字段在初始化时采用立即值并且不能再更改。在 java 字节码 (jasmin) 中,如果我创建一个 final 字段,它会忽略我在初始化时分配给它的立即值,我可以稍后像任何其他变量一样更改它。

前任。爪哇代码:

输出:

前任。茉莉字节码:

输出:

没有错误?我还测试了打印出新的 CONST 值,它就像一个普通变量一样工作。为什么 final 字段不像在 java 代码中那样工作?

0 投票
1 回答
137 浏览

java - Jasmin 的 Java 字节码:为什么屏幕上没有打印消息?

我最近对 ​​Java 字节码产生了兴趣,并创建了以下 Hello World 程序。

打印了“Hello World”,但是我不知道为什么没有打印“Creating awesome object”。你能帮我弄清楚我做错了什么吗?

0 投票
1 回答
540 浏览

java - 使用 Gradle 从 Kotlin 链接到 JVM asm 定义的类

我对 Android 应用程序进行了以下设置:

里面的源文件src/main/asm/SomeJVMClass.jKrakatau格式的 JVM 程序集(和 Jasmin 差不多)。我想使用它从我的主要 Kotlin 源代码中定义的类activity.kt

在我尝试使用 Gradle 自动执行此操作之前,仅手动将文件组装到其中build并没有帮助。这是我尝试过的:

  1. 做一个gradle build来获取骨架build目录(这当然会因为 Kotlin 编译器找不到而失败SomeJVMClass
  2. 我手动运行 Krakatau 以将其类文件放入 build/intermediates/classes/{debug,release}

    /li>
  3. 重新运行grade build,希望 Kotlin 现在可以找到.class文件;但没有任何改善:

所以第一个问题很明显,我应该把生成的.class文件放在哪里,以便 Kotlin 编译器可以找到它们。第二个后续问题是如何实现自动化,以便gradle build在运行 Kotlin 编译器之前,一个命令将首先运行 Krakatau 汇编器。

作为参考,这里是我的源文件:

src/main/asm/SomeJVMClass.j

src/main/kotlin/activity.kt

0 投票
1 回答
337 浏览

jvm - JVM中的逻辑非操作

我正在尝试使用 Jasmin 模仿 NOT 门的行为。行为如下:

  • 从堆栈中弹出一个整数
  • 如果整数为 0,则将 1 推回堆栈
  • 否则将 0 推回堆栈

我已经尝试了两种不同的尝试,但无济于事。

尝试1:

当然,上面的例子不起作用,因为ifeq <offset>它接受了一个标签而不是一个硬编码的整数作为它的偏移量。是否有与 ifeq 类似的操作接受整数作为参数

尝试2:

问题在于我的代码中不止一个地方使用了 NOT 操作。我尝试将 ifeq 与标签一起使用,但完成后我如何知道使用 goto 返回哪一行?有没有办法动态确定哪个“ifeq Zero”实现了跳跃?

任何见解将不胜感激。

0 投票
1 回答
24 浏览

jvm - 无用的商店导致崩溃

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

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

0 投票
0 回答
212 浏览

java - ASM:将 Textifier 输出组装到类文件中

有谁知道是否存在任何工具/库能够将 ASM Textifier 的输出组装到类文件中?

所以,我有以下代码:

现在我想组装asmOutput回类文件。有没有人实现过这么方便的东西?

看起来唯一的解决方案是使用JasminifierClassAdapter.javaASM 示例。但是 Jasmin 本身几乎已经过时和过时,所以这个解决方案是不完美的。