' a'在JVM指令中意味着' aload'或者'回归'? 我知道他们是按照参考文献进行操作的,但是他们为什么要命名为“aload',' astore'”等而不是“rload'”' rstore'等等?
答案 0 :(得分:6)
我相信历史性的'代表'地址'因为对象引用只是一个普通的地址进入堆中。
对于这个想法的支持可以在Sun Microsystems的K virtual machine来源中找到 - 这是Java ME的第一个Java虚拟机之一。来源可以从CLDC 1.1 RI page下载。
来自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