[英]need to get offset of struct data member
我有一个对象的成员定义为:
struct statebuf
{
void* sp;
void* label;
};
在我的asm代码中,我这样做:
#define restorestate(SSB) \
__asm mov ebx, this \
__asm mov esp, [ebx]SSB.sp\
__asm jmp [ebx]SSB.label
#endif
我像函数一样使用宏。 在“ mov ebx,this”之后,我需要为ebx添加偏移量以击中正确的成员。 如何获得SSB的偏移量?
解决方案是:
#define restorestate(SSB) \
__asm mov ebx, this \
__asm add ebx, [SSB] \
__asm mov esp, [ebx]SSB.sp\
__asm jmp [ebx]SSB.label
#endif
我从反复试验中得到的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.