在ASM中调用windows函数(推/弹问题)

dev*_*ium 4 assembly

我想在ASM上调用Sleep函数.所以我写了以下内容:

push 5000
call Sleep
Run Code Online (Sandbox Code Playgroud)

虽然一切都很顺利,但我还是有这样的想法,每当我在堆栈上推送一个值时,我也应该弹出它(否则它会在程序的后期变得杂乱无章?).我应该弹出它吗?我该怎么办?

Gre*_*ill 5

实际上,所有Win32 API函数都使用__stdcall调用约定,其中被调用函数负责从堆栈中弹出参数.所以在这种情况下Sleep(),除了你所展示的内容之外,你不必做任何其他事情.