程序集 - 如何使用推送到堆栈中的变量



有点麻烦。我有一个函数,调用方式如下:

;  Calc(&average, &ErrorMargin) Equivalent:
push    ErrorMargin
push    average
call    Calc
;ErrorMargin and average are both declared with "dd"

我如何实际更改推送到堆栈上的这些变量的值?我会使用 esp 并浏览堆栈吗?我会把它们弹出到寄存器中吗?我到底如何访问这些变量?

谢谢!

我根据W. Chang的评论给出了见解。

误差幅度变量通过以下方式访问:

mov rdx, [rbp-8]

平均变量通过以下方式访问:

mov rdx, [rbp-16]

此方法仅适用于第一次函数调用,我意识到这是由于给定的模板更改了 rsp 的位置,所以我在以后的函数调用中用偏移量来解释它。

最新更新