x86/x64的stack*****************************TBD
1.push parameter,
- %rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数。。。
2. push return address
3. push ebp,(current stack frame's base pointer)
jump to the caller.
4. push local variable.
5. sub esp to pre-allocate stack resource instead of push later.
其实stack frame上不止存放parameter->return address->ebp->local variable, compile还会根据便利挪作他用。
To be explain:他用。
http://www.searchtb.com/2013/03/x86-64_register_and_function_frame.html