+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- +
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; -- -- -- -- -- ebp
+ old ebp +
+ +
+ + + + + + + & lt; -- -- -- -- -- the esp
+ +
+ +
+ + -- -- -- -- -- -- -- -- --
Move ebp esp
+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- + & lt; - the ebp + 8
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; - the ebp + 4
+ old ebp +
+ +
+ + + + + + + & lt; - the ebp=esp
+ +
+ +
+ + -- -- -- -- -- -- -- -- --
I understand it should be so, why always see some books like this?
+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- + & lt; -- -- -- -- -- is ebp + 4 parameter M
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; -- -- -- -- -- ebp point to the return address
+ old ebp +
+ +
+ + + + + + +
+ +
+ +
+ -- -- -- -- -- -- -- -- -- +
CodePudding user response:
Ebp points to the bottom of the stack, the esp is pointing to the top, sure didn't make a mistake? (Intel stack from high to low addresses growth)Push ebp
+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- +
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; -- -- -- -- -- ebp
+ old ebp +
+ +
+ + + + + + + & lt; -- -- -- -- -- the esp
+ +
+ +
+ + -- -- -- -- -- -- -- -- --
Move ebp esp
+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- + & lt; - the ebp + 8
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; - the ebp + 4
+ old ebp +
+ +
+ + + + + + + & lt; - the ebp=esp
+ +
+ +
+ + -- -- -- -- -- -- -- -- --
Push eax
+ + -- -- -- -- -- -- -- -- --
M + + parameters
+ -- -- -- -- -- -- -- -- + & lt; - the ebp + 8
+ return +
+ -- -- -- -- -- -- -- -- -- + & lt; - the ebp + 4
+ old ebp +
+ + + + + + + & lt; - the ebp
+ eax +
+ + + + + + + & lt; - esp
+ +
+ +
+ +
+ -- -- -- -- -- -- -- -- -- +
CodePudding user response:
Stack: - 4, and then copy the data to the esp to addressCopy the data stack: first, then + 4