我正在尝试在Jasmin Bytecode中存储一个字符串。在分配了一些研究之后,我找不到这是否可行,如果可能的话,应该怎么做。我只能找出如何将其打印出来(这是我打印字符串的方式)。 我还想过将字符串存储为字符数组,但我认为应该有一种更简单的方法。
{{1}}
答案 0 :(得分:0)
找到答案: 字符串不是原始数据类型,因此您使用以下命令保存/加载它:
aastore (number)
aaload (number)
答案 1 :(得分:0)
看到你的答案,现在我不确定问题是什么。
无论如何,这对我有用:
.class public HelloWorld
.super java/lang/Object
.field static private message Ljava/lang/String;
.method public static main([Ljava/lang/String;)V
.limit stack 1
.limit locals 1
ldc "Hello World."
putstatic HelloWorld/message Ljava/lang/String;
invokestatic HelloWorld/print()V
return
.end method
.method public static print()V
.limit stack 2
.limit locals 2
getstatic java/lang/System/out Ljava/io/PrintStream;
getstatic HelloWorld/message Ljava/lang/String;
invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V
return
.end method
一切都是静态的,这不是很好,但main
将message
设置为" Hello World。",并调用print
。然后print
获取message
并使用System.out.println
来自您原始代码的-c
来电打印。
虽然我很想成为那些阅读这两页jasmin文档并且知道所有内容的神奇人物,但在这个过程中我实际上也挖掘出JDK带有反编译器(JDK / bin / javap),它产生了'拆卸'如果你用invokevirtual
开关调用它。不知怎的Case
只是不想处理静态方法......