我可以在 jasmin 中打印一个整数,如下所示:
getstatic java/lang/System/out Ljava/io/PrintStream;
bipush 7
invokevirtual java/io/PrintStream/println(I)V
要打印长整型(64 位整数),println
的参数是什么?
我已经尝试过了
invokevirtual java/io/PrintStream/println(L)V
但汇编器告诉我 (L)V
是一个非法签名。 (注意:当我尝试调用此方法时,System.out
和 long 都在堆栈上。)
最佳答案
我之前也遇到过这个问题。 L
保留用于文字对象名称,不能用于打印长整型。但是,J
可用于打印长(64 位)值。
所以,你的代码就是:
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc2_w 7
调用虚拟java/io/PrintStream/println(J)V
关于java - 如何在 Jasmine 中打印长条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26309203/