Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(操作码)以及跟随其后的零至多个代表此操作所需参数(操作数)构成。字节码指令集是一种具有鲜明特点、优劣势都很突出的指令集架构,由于限制了Java虚拟机操作码的长度为一个字节,所以指令集的操作码总数不可能超过256条。
将一个局部变量加载到操作栈
iload、iload_<n>、lload、lload_<n>、fload、fload_<n>、dload、dload_<n>、aload、aload_<n>
将一个数值从操作数栈存储到局部变量表
fstore、fstore_<n>、dstore、dstore_<n>、astore、astore_<n>、istore、istore_<n>、lstore、lstore_<n>
将一个常量加载到操作数栈
bipush、sipush、ldc、ldc_w、ldc2_w、aconst_null、iconst_ml、iconst_<i>、lconst_<l>、fconst_<f>、dconst_<d>
扩充局部变量表的访问索引的指令
wide
加法指令
iadd、ladd、fadd、dadd
减法指令
isub、lsub、fsub、dsub
乘法指令
imul、lmul、fmul、dmul
除法指令
idiv、ldiv、fdiv、ddiv
求余指令
irem、lrem、frem、drem
取反指令
ineg、lneg、fneg、dneg
位移指令
ishl、ishr、iushr、lshl、lshe、lushr
按位或指令
ior、lor
按位与指令
iand、land
按位异或指令
ixor、lxor
局部变量自增指令
iinc
比较指令
dcmpg、dcmpl、fcmpg、fcmpl、lcmp