【发布时间】:2013-02-03 21:36:47
【问题描述】:
在 C++ 中调用函数时 push rdi 和 pop rdi 的目的是什么? VS2010,x64,调试,无优化
C++
int calc()
{
return 8 + 7;
}
反汇编:
int calc()
{
000000013F0B1020 push rdi
return 8 + 7;
000000013F0B1022 mov eax,0Fh
}
000000013F0B1027 pop rdi
000000013F0B1028 ret
【问题讨论】:
-
会不会是某种“守卫”的东西?我想我在某处读到 MSVC always 在每个函数的顶部留有一些空间......
-
@KerrekSB,如果只是在函数代码的开头留一些“空格”,那么 NOOP 将是比无用的推送和弹出更明智的选择。
标签: c++ assembly 64-bit x86-64