.code32 .text # TODO: call .init and .fini, initialize c standard library .globl _start .type _start @function _start: movl %esp, %ebx # initial stack andl $0xfffffff0, %esp pushl $0 movl %esp, %ebp movl (%ebx), %eax # %eax = argc leal 8(%ebx, %eax, 4), %ecx # %ecx = envp pushl %ecx leal 4(%ebx), %ecx # %ecx = argv pushl %ecx pushl %eax call __init_gblibc movl (%ebx), %eax # %eax = argc movl %eax, (%esp) leal 4(%ebx), %eax movl %eax, 4(%esp) call main movl %eax, %ebx # code movl $0xfc, %eax # SYS_exit_group int $0x80 # syscall