I can print an integer in jasmin like so:
getstatic java/lang/System/out Ljava/io/PrintStream;
bipush 7
invokevirtual java/io/PrintStream/println(I)V
What would the argument to println
be to print a long (64-bit integer)?
I have tried
invokevirtual java/io/PrintStream/println(L)V
but the assembler tells me that (L)V
is an illegal signature. (Note: System.out
and a long are both on the stack when I try to call this method.)
I was previously having trouble with this as well. L
is reserved for literal object names and can not be used to print longs. However, J
can be used to print long (64 bit) values.
So, your code would just be:
getstatic java/lang/System/out Ljava/io/PrintStream;
ldc2_w 7
invokevirtual java/io/PrintStream/println(J)V