java - Jasmin 中的汇编语言 - 出现语法错误

标签 java java-bytecode-asm jasmin

在putty中,我尝试创建一个Jasmin程序,当它作为Java程序组装和运行时,将输出整数“431”。当我尝试汇编程序时,控制台显示第 11 行存在语法错误。我无法弄清楚它是什么。这是我的代码:

.class public Lab3_JasminExample
.super java/lang/Object

.method public <init>()V
        aload_0
        invokespecial java/lang/Object/<init>()V
        return
.end method

.method public static main ([Ljava.lang.String;)V
        .limit stack 10
        .limit locals 10

        getstatic  java/lang/System/out Ljava/io/PrintStream;

        sipush 431

        invokevirtual java/io/PrintStream/println(I)V
        return
.end method

第 11 行将是“.limit stack 10”,我看不出我的写法有什么问题。我做错了什么?

最佳答案

错误可能会在一行上报告,但会被前一行(或后一行!)触发,因此请始终查看有问题的行。

我的 Jasmin(版本 2.4)正确报告第 10 行的错误

a.j:10: Warning - Syntax error.
.method public static main ([Ljava.lang.String;)V
                                                  ^

这确实是一个愚蠢的错误:方法名称 (main) 及其描述符 (([Ljava.lang.String;)V)

第10行应该是.method public static main([Ljava.lang.String;)V

关于java - Jasmin 中的汇编语言 - 出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42665630/

相关文章:

java - tomcat jsp容器中将jsp代码转换为servlet代码的类是什么?

java - 对话框上下文问题 - Android

java - ASM 5 : when initializing a ClassWriter, COMPUTE_MAXS 和 COMPUTE_FRAMES 有什么区别?

java - Jasmine 黑客攻击和验证错误

jvm - JVM 中的逻辑 NOT 运算

java - 使用 Runnable Thread Android 创建弹出窗口

java - Android - 选项卡、MapView、选项卡内的 Activity

java - 有没有办法知道访问字节码时使用 `new` 创建了哪些类?

java - 调用字节码类方法,java

Java 字节码与 Jasmin : why is the message not printed on the screen?