hex байт |
байт код |
описание_инструкции |
0x00 |
nop |
Нет операции |
0x01 |
aconst_null |
Загрузка в стек null (пустой ссылки на объект) |
0x02 |
iconst_m1 |
Загрузка целочисленной константы -1 |
0x03 |
iconst_0 |
Загрузка int 0 |
0x04 |
iconst_1 |
Загрузка int 1 |
0x05 |
iconst_2 |
Загрузка int 2 |
0x06 |
iconst_3 |
Загрузка int 3 |
0x07 |
iconst_4 |
Загрузка int 4 |
0x08 |
iconst_5 |
Загрузка int 5 |
0x09 |
lconst_0 |
Загрузка long 0 |
0x0a |
lconst_1 |
Загрузка long 1 |
0x0b |
fconst_0 |
Загрузка float 0 |
0x0c |
fconst_1 |
Загрузка float 1 |
0x0d |
fconst_2 |
Загрузка float 2 |
0x0e |
dconst_0 |
Загрузка double 0 |
0x0f |
dconst_1 |
Загрузка double 1 |
0x10 |
bipush |
Загрузка в стек byte со знаком (-128~127) |
0x11 |
sipush |
Загрузка в стек short со знаком (-32768~32767) |
0x12 |
ldc |
Загрузка в стек элемента из константного пула |
0x13 |
ldc_w |
Загрузка в стек элемента из константного пула |
0x14 |
ldc2_w |
Загрузка в стек длинного целого или двойного вещественного значения из константного пула |
0x15 |
iload |
Загрузка целого из локальной переменной |
0x16 |
lload |
Загрузка длинного целого из локальной переменной |
0x17 |
fload |
Загрузка float из локальной переменной |
0x18 |
dload |
Загрузка double из локальной переменной |
0x19 |
aload |
Загрузка объектной ссылки из локальной переменной |
0x1a |
iload_0 |
Загрузка целого из локальной переменной |
0x1b |
iload_1 |
Загрузка целого из локальной переменной |
0x1c |
iload_2 |
Загрузка целого из локальной переменной |
0x1d |
iload_3 |
Загрузка целого из локальной переменной |
0x1e |
lload_0 |
Загрузка длинного целого из локальной переменной |
0x1f |
lload_1 |
Загрузка длинного целого из локальной переменной |
0x20 |
lload_2 |
Загрузка длинного целого из локальной переменной |
0x21 |
lload_3 |
Загрузка длинного целого из локальной переменной |
0x22 |
fload_0 |
Загрузка float из локальной переменной |
0x23 |
fload_1 |
Загрузка float из локальной переменной |
0x24 |
fload_2 |
Загрузка float из локальной переменной |
0x25 |
fload_3 |
Загрузка float из локальной переменной |
0x26 |
dload_0 |
Загрузка double из локальной переменной |
0x27 |
dload_1 |
Загрузка double из локальной переменной |
0x28 |
dload_2 |
Загрузка double из локальной переменной |
0x29 |
dload_3 |
Загрузка double из локальной переменной |
0x2a |
aload_0 |
Загрузка объектной ссылки из локальной переменной |
0x2b |
aload_1 |
Загрузка объектной ссылки из локальной переменной |
0x2c |
aload_2 |
Загрузка объектной ссылки из локальной переменной |
0x2d |
aload_3 |
Загрузка объектной ссылки из локальной переменной |
0x2e |
iaload |
Загрузка int из массива |
0x2f |
laload |
Загрузка long из массива |
0x30 |
faload |
Загрузка float из массива |
0x31 |
daload |
Загрузка double из массива |
0x32 |
aaload |
Загрузка объектной ссылки из массива |
0x33 |
baload |
Загрузка boolean или byte из массива |
0x34 |
caload |
Загрузка char из массива |
0x35 |
saload |
Загрузка short из массива |
0x36 |
istore |
Сохранение целого значения в локальной переменной |
0x37 |
lstore |
Сохранение long в локальной переменной |
0x38 |
fstore |
Сохранение float в локальной переменной |
0x39 |
dstore |
Сохранение double в локальной переменной |
0x3a |
astore |
Сохранение объектной ссылки в локальной переменной |
0x3b |
istore_0 |
Сохранение int в локальной переменной |
0x3c |
istore_1 |
Сохранение int в локальной переменной |
0x3d |
istore_2 |
Сохранение int в локальной переменной |
0x3e |
istore_3 |
Сохранение int в локальной переменной |
0x3f |
lstore_0 |
Сохранение long в локальной переменной |
0x40 |
lstore_1 |
Сохранение long в локальной переменной |
0x41 |
lstore_2 |
Сохранение long в локальной переменной |
0x42 |
lstore_3 |
Сохранение long в локальной переменной |
0x43 |
fstore_0 |
Сохранение float в локальной переменной |
0x44 |
fstore_1 |
Сохранение float в локальной переменной |
0x45 |
fstore_2 |
Сохранение float в локальной переменной |
0x46 |
fstore_3 |
Сохранение float в локальной переменной |
0x47 |
dstore_0 |
Сохранение double в локальной переменной |
0x48 |
dstore_1 |
Сохранение double в локальной переменной |
0x49 |
dstore_2 |
Сохранение double в локальной переменной |
0x4a |
dstore_3 |
Сохранение double в локальной переменной |
0x4b |
astore_0 |
Сохранение объектной ссылки в локальной переменной |
0x4c |
astore_1 |
Сохранение объектной ссылки в локальной переменной |
0x4d |
astore_2 |
Сохранение объектной ссылки в локальной переменной |
0x4e |
astore_3 |
Сохранение объектной ссылки в локальной переменной |
0x4f |
iastore |
Сохранение в int массиве |
0x50 |
lastore |
Сохранение в long массиве |
0x51 |
fastore |
Сохранение в float массиве |
0x52 |
dastore |
Сохранение в double массиве |
0x53 |
aastore |
Сохранение в массиве из объектных ссылок |
0x54 |
bastore |
Сохранение в boolean или byte массиве |
0x55 |
castore |
Сохранение в char массиве |
0x56 |
sastore |
Сохранение в short массиве |
0x57 |
pop |
Извлечение слова с вершины стека |
0x58 |
pop2 |
Извлечение двух слов с вершины стека |
0x59 |
dup |
Дублирование слова на вершине стека |
0x5a |
dup_x1 |
Дублирование слово на вершине стека и помещение копии в стек на два слова ниже |
0x5b |
dup_x2 |
Дублирование вершины стека и помещение копии на три слова ниже |
0x5c |
dup2 |
Дублирование двух слов на вершине стека |
0x5d |
dup2_x1 |
Дублирование двух слов на вершине стека и помещение копий на два слова ниже |
0x5e |
dup2_x2 |
Дублирование двух слов на вершине стека и помещение копий на три слова ниже |
0x5f |
swap |
Обмен двух слов на вершине стека |
Арифметическо-логические инструкции |
0x60 |
iadd |
Сложение int |
0x61 |
ladd |
Сложение long |
0x62 |
fadd |
Сложение float |
0x63 |
dadd |
Сложение double |
0x64 |
isub |
Вычитание int |
0x65 |
lsub |
Вычитание long |
0x66 |
fsub |
Вычитание float |
0x67 |
dsub |
Вычитание double |
0x68 |
imul |
Умножение int |
0x69 |
lmul |
Умножение long |
0x6a |
fmul |
Умножение float |
0x6b |
dmul |
Умножение double |
0x6c |
idiv |
Деление int |
0x6d |
ldiv |
Деление long |
0x6e |
fdiv |
Деление float |
0x6f |
ddiv |
Деление double |
0x70 |
irem |
Остаток от деления int |
0x71 |
lrem |
Остаток от деления long |
0x72 |
frem |
Остаток от деления float |
0x73 |
drem |
Остаток от деления double |
0x74 |
ineg |
Отрицание int |
0x75 |
lneg |
Отрицание long |
0x76 |
fneg |
Отрицание float |
0x77 |
dneg |
Отрицание double |
0x78 |
ishl |
Сдвиг int влево |
0x79 |
lshl |
Сдвиг long влево |
0x7a |
ishr |
Арифметический сдвиг int вправо |
0x7b |
lshr |
Арифметический сдвиг long вправо |
0x7c |
iushr |
Логический сдвиг int вправо
>>> |
0x7d |
lushr |
Логический сдвиг long вправо |
0x7e |
iand |
Логическое И с операндами int
B[id] & 0xffffffff |
0x7f |
land |
Логическое И с операндами long |
0x80 |
ior |
Логическое ИЛИ с операндами int
B[id] | 0xffffffff |
0x81 |
lor |
Логическое ИЛИ с операндами long |
0x82 |
ixor |
Исключающее ИЛИ с int
B[id] ^ 0xffffffff ~B[id] |
0x83 |
lxor |
Исключающее ИЛИ с long |
0x84 |
iinc |
Увеличение локальной переменной на константу |
Преобразование типов |
0x85 |
i2l |
Преобразование int в long |
0x86 |
i2f |
Преобразование int в float |
0x87 |
i2d |
Преобразование int в double |
0x88 |
l2i |
Преобразование long в int |
0x89 |
l2f |
Преобразование long в float |
0x8a |
l2d |
Преобразование long в double |
0x8b |
f2i |
Преобразование float в int |
0x8c |
f2l |
Преобразование float в long |
0x8d |
f2d |
Преобразование float в double |
0x8e |
d2i |
Преобразование double в int |
0x8f |
d2l |
Преобразование double в long |
0x90 |
d2f |
Преобразование double в float |
0x91 |
i2b |
Преобразование int в byte |
0x92 |
i2c |
Преобразование int в char |
0x93 |
i2s |
Преобразование int в short |
Сравнение |
0x94 |
lcmp |
Сравнение long |
0x95 |
fcmpl |
Сравнение вещественных одинарной точности (-1 при NaN) |
0x96 |
fcmpg |
Сравнение вещественных одинарной точности (1 при NaN) |
0x97 |
dcmpl |
Сравнение вещественных двойной точности(-1 при NaN) |
0x98 |
dcmpg |
Сравнение вещественных двойной точности(1 при NaN) |
Логические переходы |
0x99 |
ifeq |
Переход, если равно 0 |
0x9a |
ifne |
Переход, если не равно 0 |
0x9b |
iflt |
Переход, если меньше 0 |
0x9c |
ifge |
Переход, если больше или равно 0 |
0x9d |
ifgt |
Переход, если больше 0 |
0x9e |
ifle |
Переход, если меньше или равно 0 |
0x9f |
if_icmpeq |
Переход, если целые равны |
0xa0 |
if_icmpne |
Переход, если целые не равны |
0xa1 |
if_icmplt |
Переход, если целое меньше 0 |
0xa2 |
if_icmpge |
Переход, если целое больше или равно |
0xa3 |
if_icmpgt |
Переход, если целое больше 0 |
0xa4 |
if_icmple |
Переход, если целое меньше или равно |
0xa5 |
if_acmpeq |
Переход, если ссылки на объект равны |
0xa6 |
if_acmpne |
Переход, если ссылки на объект не равны |
Переход |
0xa7 |
goto |
Безусловный переход |
0xa8 |
jsr |
Переход на подпрограмму |
0xa9 |
ret |
Возврат из подпрограммы |
0xaa |
tableswitch |
Доступ к таблице перехода по индексу и переход |
0xab |
lookupswitch |
Доступ к таблице перехода по сравнению с ключом и переход |
Возврат |
0xac |
ireturn |
Возврат int значения функции |
0xad |
lreturn |
Возврат long значения функции |
0xae |
freturn |
Возврат float значения функции |
0xaf |
dreturn |
Возврат double значения функции |
0xb0 |
areturn |
Возврат объектной ссылки из функции |
0xb1 |
return |
Возврат(опустошающий) из процедуры (void) |
Получение поля |
0xb2 |
getstatic |
Получение статического поля класса |
0xb3 |
putstatic |
Установка статического поля в классе |
0xb4 |
getfield |
Перенос поля из объекта |
0xb5 |
putfield |
Установка поля в объекте |
0xb6 |
invokevirtual |
Вызывает метод экземпляра, основываясь на типе времени выполнения |
0xb7 |
invokespecial |
Вызывает метод экземпляра, основываясь на не виртуальном типе |
0xb8 |
invokestatic |
Вызов метода класса (статического метода) |
0xb9 |
invokeinterface |
Вызывает метод интерфейса |
объект |
0xba |
new |
Создает новый объект |
0xbb |
new |
Создает новый объект |
0xbc |
newarray |
Размещение нового массива |
0xbd |
anewarray |
Объявление нового массива из ссылок на объекты |
0xbe |
arraylength |
Возвращает длину массива |
other |
0xbf |
athrow |
Генерация обработки или ошибки |
0xc0 |
checkcast |
Проверяет, что объект имеет данный тип |
0xc1 |
instanceof |
Определяет, имеет ли объект данный тип |
0xc2 |
monitorenter |
Вход в контролируемую область кода |
0xc3 |
monitorexit |
Выход из контролируемой области кода |
0xc4 |
wide |
Расширенный индекс для доступа к локальным переменным для команд загрузки, сохранения и приращения |
0xc5 |
multianewarray |
Размещение нового многомерного массива |
0xc6 |
ifnull |
Переход, если пустой указатель |
0xc7 |
ifnonnull |
Переход, если не пустой указатель |
0xc8 |
goto_w |
Переход на (расширенный индекс) |
0xc9 |
jsr_w |
Переход на подпрограмму (расширенный индекс) |
0xca |
breakpoint |
Остановка и передача контроля обработчику прерываний |
0xd1 |
ret_w |
Возврат из подпрограммы (расширенный индекс) |