使用函数指针调用汇编函数

时间:2018-04-27 12:31:35

标签: assembly compiler-construction vtable

基本上我想用我的语言进行动态方法绑定。

我想要一个动态类型并调用相应的方法。我不确定如何在汇编中使用指向这些方法的指针,因为简单的标签在编译器中不再起作用,因为我们无法弄清楚对象的动态类型。 一个解决方案是引用方法指针所在的vtable,但我不知道如何做到这一点。 提前谢谢。

这是一个例子: 伪代码

class Main{
void main() {
A a;
a = new B(); //Dynamic type of is B
a.method(); //should call B's method()
}

}

class A{
method(){}

}

class B extends A{
method(){} //OVERRIDING
}

Pseudoassembly:

Main.main:
...
call POINTERTORIGHTMETHOD #### my proble, how can I ensure now (via vtables that I'm calling the right Method????

....
A.method:
....


....

B.method:
...

0 个答案:

没有答案