我刚开始从编译器输出中学习一点汇编程序。
test(1);
这个简单的函数调用创建以下 asm 输出(使用 x64 编译)
000000013FFF2E76 mov ecx,1
000000013FFF2E7B call test (13FFF33C0h)
但为什么不是:
000000013FFF2E76 push 1
000000013FFF2E7B call test (13FFF33C0h)
我认为一个函数参数将是pushed
堆栈然后poped
在函数中。有人可以解释为什么 VS 更喜欢顶部的吗?