你好,我发现了一段汇编代码...它被集成在C++项目中。
template <class T>
T returned;
BYTE *tem = buffer;
__asm
{
mov eax, tem
call eax
mov returned, eax
}
由于我不懂汇编语言,因此很难理解这段代码的含义......有没有人能够将这段汇编代码完全转换成C++并在这里发布呢?谢谢。
看起来它正在执行放置在缓冲区中的代码并返回EAX寄存器的内容。您可以尝试以下操作:
typedef T (*pfn)();
returned = ((pfn) buffer)();
mov eax, tem;
tem
的内容被传输到处理器内部寄存器eax
中。
call eax
< p > < code > eax 的内容用于进行函数调用。从 < code > eax 所指向的地址开始的代码将被执行。函数调用返回后,返回值将存储在寄存器 < code > eax 中。
mov returned, eax
将eax
中的返回值传递给变量returned
这基本上是代码的作用。您应该查看call
指令以了解它如何工作。
typedef T (*pfn)()
吧? - Nemo