//只有X64可以用
void get_rip_x64only()
{
void* rip;
__asm__ __volatile__("lea 0(%%rip),%0":"=r"(rip));
}
//X86和X64都可以用
void get_rip_x86andx64()
{
void* rip;
__asm__ __volatile__(
"jmp _label2\n\t"
"_label1:\n\t"
"jmp _getRIP\n\t"
"_label2:\n\t"
"call _label1\n\t"
"_getRIP:\n\t"
"pop %%rax\n\t"
"movq %%rax,%0"
:"=r"(rip)
);
}


发表回复