Я пытаюсь сделать статический анализ байт-кода в Prolog. Я использую библиотеку bcel для получения списка инструкций из MethodGen. Для aload_0 я получаю 0:aload_0[42](1)
Нужна помощь, чтобы понять инструкцию Java Bytecode
Я понимаю, что aload_0
предназначен для загрузки 0-й локальной переменной. Но мне трудно понять следующие бит i.e [42](1)
. Также имеются другие инструкции, например:
invokespecial[183](3) 8
return[177](1)
Может кто-нибудь объяснить, что это такое? Был бы очень признателен!
Обычный способ использования API Java, является запрос свойств объекта с помощью членов класса, чьи имена, как правило, очевидны, а не делать догадки о формате 'ToString()' вывод. Кроме того, [он задокументирован] (https://commons.apache.org/proper/commons-bcel/apidocs/org/apache/bcel/generic/Instruction.html#toString-boolean-): 'Длинный формат вывода: <имя опкода> "[" <номер кода операции> "]" "(" <длина инструкции> ")" ' – Holger
@ Хольгер Спасибо за то, что поучили меня. Я проверил документацию, как я утверждал, и получил ответ, просто забыл отметить это здесь. –