Home > OS >  Consulting, ebp points at the top, so intuitive look is point to the above, or below?
Consulting, ebp points at the top, so intuitive look is point to the above, or below?

Time:10-03

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
+ +
+ +
+ + -- -- -- -- -- -- -- -- --

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 address
Copy the data stack: first, then + 4