New answers tagged


The stack layout at the entry point for 32-bit Linux executables is described in the System V Intel386 Architecture ABI Supplement. It looks like following: So pop edi copies the argc value into edi and the following code probably builds the argv array for the main function.


In the _start function, argc, argv and envp are contained on the stack. A good read on this is the Linux x86 Program Start Up or - How the heck do we get to main()? When you run a program, the shell or gui calls execve() which executes the linux system call execve(). If you want more information about execve() then you can simply type man execve from your ...

Top 50 recent answers are included