0

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


字节码问题 - 考虑以下问题:

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

在定义函数 m() 的主体时,它应该如下所示:

enter 0, 0
getfield 0
exit
return

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

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

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

有任何想法吗?

4

0 回答 0