内联asm:推送功能参数

时间:2012-07-08 20:29:36

标签: c++ assembly parameters inline-assembly

我在内联汇编中调用C ++函数时遇到问题。我需要在堆栈上推送所需的参数,但是出了点问题。例如,如果我按3,那么一切正常,但如果我尝试推送变量(来自函数)或[ebp+8](同样的事情)的值,则会错误地将其作为{ {1}}被调用的函数,无论实际值如何。

1

1 个答案:

答案 0 :(得分:0)

您是否尝试在调试器下单步执行代码,以便可视化并了解其执行情况?从长远来看,你可能会发现它非常有用。

更具体地说,您的_tmain函数将值3传递给asmfunc 按值,而不是按引用传递。换句话说,调用函数将看不到asmfunc对其整数的本地“副本”所做的任何更新。

您可以考虑让asmfunc尝试返回更新后的值,然后在_tmain中显示该值。