【问题标题】:Assembly language in Jasmin - getting syntax errorJasmin 中的汇编语言 - 出现语法错误
【发布时间】:2017-03-08 07:43:30
【问题描述】:

在腻子中,我试图创建一个 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”,我看不出我写的有什么问题。我做错了什么?

【问题讨论】:

    标签: java java-bytecode-asm jasmin


    【解决方案1】:

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

    我的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      相关资源
      最近更新 更多