2017-03-08 10 views
0

퍼티에서 Java 프로그램으로 어셈블되어 실행될 때 "431"정수가 출력되는 Jasmin 프로그램을 만들려고합니다. 프로그램을 어셈블 할 때 콘솔에 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) "으로 제한 할 스택 (10)"이 될 것이며, 내가 그 쓴 방법에있어 문제점은 무엇인지 볼 수 없습니다 : 여기 내 코드입니다. 내가 뭘 잘못하고 있니?

답변

2

오류는 회선에보고 될 수 있지만 이전 회선 (또는 다음 회선)에 의해 트리거 될 수 있으므로 항상 문제가되는 회선을 둘러보십시오.

내 재스민 (버전 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

이어야합니다.