我试图通过一本名为“Reverse Engineering for Beginners”[LINK]的书来了解汇编代码。有一段代码win-32汇编代码我不太明白。在功能序言中,“PUSH 0xFFFFFFFF”是什么意思?
main:
push 0xFFFFFFFF
call MessageBeep
xor eax,eax
retn
第一个PUSH
指令做什么?为什么它会将0xFFFFFFFF推向堆栈,但不会再弹回它? 0xFFFFFFFF有什么意义?
在此先感谢。
在这种情况下使用的调用约定有可能使被调用者清理堆栈。 – EOF
[MessageBeep的文档](https://msdn.microsoft.com/en-us/library/windows/desktop/ms680356(v = vs.85).aspx)会告诉你推送的值是什么。可能值得努力阅读它。 – WhozCraig
http://stackoverflow.com/documentation/x86/3261/calling-conventions#t=201608201329248988454 –