什么是';a';在JVM指令中的意思是';aload&x27;或';areturn';?

什么是';a';在JVM指令中的意思是';aload&x27;或';areturn';?,jvm,terminology,Jvm,Terminology,在诸如“aload”或“areturn”之类的JVM指令中,“a”是什么意思? 我知道它们是对引用进行操作的,但是为什么它们被命名为“aload”、“astore”等而不是“rload”、“rstore”等呢?我相信从历史上看,“a”代表“address”,因为对象引用只是堆中的一个普通地址 Sun Microsystems提供的源代码中可以找到对这一想法的支持,Sun Microsystems是Java ME最早的Java虚拟机之一。这些资料可从以下网址下载: 来自kvm/VmCommon/s

在诸如“aload”或“areturn”之类的JVM指令中,“a”是什么意思?
我知道它们是对引用进行操作的,但是为什么它们被命名为“aload”、“astore”等而不是“rload”、“rstore”等呢?

我相信从历史上看,“a”代表“address”,因为对象引用只是堆中的一个普通地址

Sun Microsystems提供的源代码中可以找到对这一想法的支持,Sun Microsystems是Java ME最早的Java虚拟机之一。这些资料可从以下网址下载:

来自
kvm/VmCommon/src/bytecodes.c
的片段:

#if STANDARDBYTECODES
SELECT(ILOAD)            /* Load integer from local variable */
        unsigned int index = ip[1];
        pushStack(lp[index]);
DONE(2)
#endif

...

#if STANDARDBYTECODES
SELECT(ALOAD)            /* Load address from local variable */
        unsigned int index = ip[1];
        pushStack(lp[index]);
DONE(2)
#endif

它还与指令
astore
可以存储returnaddress类型的值(最多为Java 6)这一事实相匹配。那么
aaload
的含义是什么呢?@shaoyhe表示第一个“a”表示“地址”,第二个表示“数组”。这些指令从数组加载引用。