Есть ли умный способ определить длину инструкций байт-кода Java?

Я создаю инструмент статического анализа для Java, и есть некоторая информация о программах, которые я анализирую, которые будет легче получить, если я смогу получить их из байт-кода в.class файлы.

Меня не волнует каждыйинструкции это может быть в файле класса. Например, мне нужно только посмотреть, есть лиgetfield инструкции.

Проблема состоит в том, что, поскольку каждая инструкция имеет переменную длину, кажется, что в общем случае мне нужно (в моем коде) указать длину каждого отдельного кода операции, прежде чем я смогу определить, где (например,)getfield инструкции начинаются и заканчиваются.

Для некоторых других наборов команд (например,x86), существуют такие правила, как «любой код операции ниже 0x0F равен 1 байту, а все, что равно или больше 0x0F, составляет два байта».

Есть ли такой удобный шаблон в инструкциях байт-кода Java?

Ответы на вопрос(3)

Ваш ответ на вопрос