Thanks to Christopher
Tan for this link.
“Objective of this document is to describe some startup process
details and initial state of stack & registers of ELF binary
program, for Linux Kernel 2.2.x and 2.0.x.”
“Please note that in general case you can apply this information
only to plain assembly programs (gas/nasm); some things described
here (stack/registers state) are not true for anything
compiled/linked with gcc (C as well as assembly) — gcc inserts its
own startup code that is executed before control is passed to
main() function.”