我正在编写一个简单的 VM,并且我对实现对象和结构成员访问有疑问。
由于程序的开始地址在每次运行时都是任意的,因此其每个对象的地址也是任意的。
因此,我能想到的访问对象或其成员对象的唯一方法是访问“基”指针的偏移量,这意味着访问程序结构中的任何内容都需要算术运算。
我的问题是这是否是它在专业编译器中完成的方式,因为显然这种方法会给运行时增加一些开销,而且我自己想不出任何方法来从运行时卸载这个过程,因为缺乏对内存分配及其地址的一致性?
我正在编写一个简单的 VM,并且我对实现对象和结构成员访问有疑问。
由于程序的开始地址在每次运行时都是任意的,因此其每个对象的地址也是任意的。
因此,我能想到的访问对象或其成员对象的唯一方法是访问“基”指针的偏移量,这意味着访问程序结构中的任何内容都需要算术运算。
我的问题是这是否是它在专业编译器中完成的方式,因为显然这种方法会给运行时增加一些开销,而且我自己想不出任何方法来从运行时卸载这个过程,因为缺乏对内存分配及其地址的一致性?