求帮助改写一段汇编
最近在做一个项目的移值工作,从win32移到64bit.
项目一部分用到了汇编,直心让我蛋疼。
一是64位的vc++编译器不支持在代码中直接用asm语句了
二是64位的asm语法和32位的有点不同,比如寄存器名称之类的。
我只是以前略学习过汇编,只记得个大概语法,现在时间比较紧,再重新看书温习感觉也不是一二天能完成,而且代码中的汇编语句比较少。所以这里想请求各位同行帮下忙,帮忙将下面的asm代码改成64bit的。最好能够能写成一个完成的asm文件,让我能直接生成一个obj可以link到我的工程。
非常感谢
#define INTERCEPT_EPILOG(argsSize) \
__asm \
{ \
__asm mov eax, result \
__asm cmp stdcall, 0 \
__asm mov esp, ebp \
__asm pop ebp \
__asm jne stdcall_ret \
__asm ret 4 \
__asm stdcall_ret: \
__asm ret (4 + argsSize) \
}
#define INTERCEPT_EPILOG_NO_RETURN(argsSize) \
__asm \
{ \
__asm cmp stdcall, 0 \
__asm mov esp, ebp \
__asm pop ebp \
__asm jne stdcall_ret \
__asm ret 4 \
__asm stdcall_ret: \
__asm ret (4 + argsSize) \
}
将这两个宏写成64bit的asm可以编译的inline函数。