Почему Jasmin не нравится этот ассемблерный код? - PullRequest
1 голос
/ 07 октября 2019

Я читаю программирование для виртуальной машины Java Джошуа Энгеля, и я попытался набрать один из примеров в книге. Я понимаю, что в книге используется Улун, и я использую Жасмин, однако для такого простого примера, и поскольку синтаксис Улунга и Жасмин очень похож, я не понимаю, почему это не работает. Как примечание, я не смог найти ничего о разнице в синтаксисе между улун и жасмин. Может ли кто-нибудь указать мне на такой ресурс?

Вот код, в точности такой, как в книге:

.class Test
.method static run()I
    bipush 9
    bipush 6
    imul

    ireturn
.end method

И когда я запускаю Jasmin на этом, я получаю следующие ошибки:

Test.j:2: Warning - Syntax error.
.method
        ^
Test.j:2: Error - Couldn't repair and continue parse.
.method 
        ^

Так что же я делаю не так?

1 Ответ

1 голос
/ 19 октября 2019

Jasmin требуется ключевое слово .super после .class.

Следующий код должен скомпилировать нормально:

.class Test
.super java/lang/Object
.method static run()I
    bipush 9
    bipush 6
    imul

    ireturn
.end method
...