有点麻烦。我有一个函数,调用方式如下:
; 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 的位置,所以我在以后的函数调用中用偏移量来解释它。