「Java」- 虚拟机指令

astore 0x3a

「栈顶引用型数值」存入指定的「本地变量」

astore_<n>

「栈顶引用型数值」存入「索引为n的本地变量」

Operand Stack
…, objectref →

Forms
astore_0 = 75 (0x4b)
astore_1 = 76 (0x4c)
astore_2 = 77 (0x4d)
astore_3 = 78 (0x4e)

objectref必须是returnAddress或者reference类型。

aload 0x19

将指定的「引用类型本地变量」推至「栈顶」

aload_<n>

「第n+1个引用类型本地变量」推至「栈顶」

Forms
aload_0 = 42 (0x2a)
aload_1 = 43 (0x2b)
aload_2 = 44 (0x2c)
aload_3 = 45 (0x2d)

Operand Stack
… →
…, objectref

aaload 0x32

「引用型数组」「索引指定的值」推至栈顶

Operand Stack
…, arrayref, index →
…, value

athrow 0xbf

将栈顶的异常抛出

arraylength 0xbe

获得数组的长度值,并压入栈顶

Operand Stack
…, arrayref →
…, length

areturn 0xb0

从当前方法返回对象引用

aastore 0x53

将栈顶引用型数值存入指定数组的指定索引位置

Operand Stack
…, arrayref, index, value →

aconst_null 0x01

「null对象引用」推至栈顶

Operand Stack
… →
…, null

anewarray 0xbd

创建一个引用类型(如类,接口,数组)的数组,并将其引用值压入栈顶。

Operand Stack
…, count →
…, arrayref

引用值占用两个字节,该引用值为指向运行时常量池中某个项的索引值,该项的内容为一个类、接口或数组。