[英]ASM In c++ project …How this little asm code will be in c++
你好,我找到了一个 asm 代码......它集成在 c++ 项目中
template <class T>
T returned;
BYTE *tem = buffer;
__asm
{
mov eax, tem
call eax
mov returned, eax
}
所以我不知道 asm 很难理解这段代码的含义......任何人都可以在 c++ 中完全转换这个 ASM 代码并在此处发布:) Ttanks...
看起来它正在执行放置在缓冲区中的代码并返回 EAX 寄存器的内容。 你可以试试这个:
typedef T (*pfn)();
returned = ((pfn) buffer)();
汇编代码本质上是将 tem 视为 function 指针并调用它。 然后将退货放入退货中。
mov eax, tem;
tem
的内容被传输到处理器内部寄存器eax
call eax
eax
的内容用于进行 function 调用。 从eax
保存的地址开始的代码将被执行。 function调用返回后返回值会在寄存器eax
中
mov returned, eax
eax
中的返回值被转移到一个returned
的变量中
这基本上是代码所做的。 你应该看一下call
指令,以了解它是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.