Этот код генерирует исключение java.lang.NullPointerException. Я пытаюсь скомпилировать немного кода для jvm, и это то, что выводит мой компилятор
.class public test
.super java/lang/Object
.field static i [I
.method public static main([Ljava/lang/String;)V
invokestatic test/main()V
return
.limit locals 1
.limit stack 20
.end method
.method public static main()V
.limit locals 8
getstatic test/i [I
ldc 1
ldc 5
iastore
return
.limit stack 20
.end method
Однако это не работает, и я могу понять, откуда взялась ошибка (номер строки не указан).
Я держу пари, что он неправильно сохраняет значение из глобального массива в строках
getstatic test/i [I
ldc 1
ldc 5
iastore
Мой вопрос в том, как это скомпилировать
test.i
. Как выглядит код на вашем исходном языке? Если это что-то вродеint[] i; void main() { i[1] = 5; }
, то ваш сгенерированный байт-код правильный (при условии семантики, подобной Java), просто исходный код вызывает NPE. - person sepp2k   schedule 30.11.2018