在Java(MicroJava)中定义成员函数的主体时,是否使用getfield或load?

时间:2013-08-30 14:23:34

标签: java bytecode

编辑:这个问题与MicroJava字节码有关,而不是与实际的Java字节码

有关

字节码问题 - 请考虑以下事项:

class C {
    int d;
    int m() {
        return d;
    }
}

在定义函数体m()时,它看起来像这样:

enter 0, 0
getfield 0
exit
return

现在,getfield指令要求对象的地址位于堆栈顶部,但是,在这种情况下,它不是(至少我认为它不是,因为我没有明确地把它放在那里,并且不知道如何,因为我在课堂上看到了。

另一方面,load指令将相对于函数本身,并且由于我没有传递任何参数来起作用,这似乎是不可能的。

另外,由于class C是在另一个类(即程序)中定义的,因此使用getstatic也应该是错误的,因为它不是全局变量。

任何想法?

0 个答案:

没有答案