I figured out that the g++ compiler generates an assembly code hardly without any push/pop instructions. It only uses those when getting in/out a function. Everytime it emplaces bytes in the stack, it makes 2 or 3 instruction, for example:
movl foo, %eax
subl $4, %esp
movl %eax, (%esp)`
Insted of just pushl foo
. Is there a reason for that? Is it faster or something?
Thank you.