#include <iostream.h>
class tt
{
public:
int a;
int b;
int add(int on)
{
if(on==1)
{
void *tpecx;
_asm
{
mov tpecx,ecx //保存this指针
}
cout<<"ok"<<endl;
_asm
{
// mov edi,edi
// mov edi,edi
mov eax,tpecx
add eax,0x0C //成员变量a和b在到这个函数 刚好为C 跳到main函数的结束后面
jmp [eax]
}
}
_asm
{
mov edi,edi
mov edi,edi
mov ebx,ebp //函数开头都是push ebp/mov ebp,esp ..故ebp+4保存的是函数返回地址
add ebx,4
mov ebx,[ebx] //要跳到函数调用
VC内联汇编实现跳转调用
最新推荐文章于 2023-08-05 23:51:56 发布
这篇博客介绍了如何在C++类的方法中利用VC内联汇编实现条件跳转调用。通过保存和恢复`this`指针,计算并跳转到目标地址,实现了在不同条件下的函数调用。示例代码展示了如何在`add`方法中根据参数跳转到`main`函数的不同位置。
摘要由CSDN通过智能技术生成