我想生成这个汇编代码:
mov ecx, <absolute address of func1>
call ecx
如何编写和编译生成此代码的 C 代码?
我想生成这个汇编代码:
mov ecx, <absolute address of func1>
call ecx
如何编写和编译生成此代码的 C 代码?
通常编译器会直接使用函数的地址生成调用。但是因为在你的情况下它使用了一个寄存器,它让我想起了 C++ vtables。那么在 C 中,如何调用指向函数的指针呢?像这样的东西:
void (*fptr)(void);
void foo(void) {
/* some code */
}
fptr = foo;
(*fptr)(); /* <-- your indirect call generated here */