-
编写一个函数,能够实现任意3个数(DWORD)的加法,参数采用堆栈的方式进行传递,并将结果存储在EAX中。
PUSH 3
PUSH 2
PUSH 1
CALL 41D287
ADD ESP, 0C
...
...
PUSH EBP
MOV EBP, ESP
SUB ESP, 10H
MOV EAX, DWORD PTR SS:[EBP+8]
ADD EAX, DWORD PTR SS:[EBP+C]
ADD EAX, DWORD PTR SS:[EBP+10]
MOV ESP, EBP
POP EBP
RETN
-
画出函数执行时堆栈的变化(从参数压栈开始画 一行指令对应一个堆栈图)。
堆栈.png