Hacker News new | past | comments | ask | show | jobs | submit login

    ; set the first syscall argument to 42
    push   0x2a
    pop    edi

    ; select syscall 60 (sys_exit)
    push   0x3c
    pop    eax

    ; sys_exit(42)
    syscall



LOL my asm is rusty, didn't even know about the syscall instruction (I'd have used int 0x80 here)


What's the point of `push`ing constants to the stack and `pop`ing them to registers instead of `mov`ing them directly?


I think they encode smaller?


That's cool - I wonder why exit code is not set to 42 in practice? binary still returns 0, must be a bug somewhere.


A successful run not exiting with EXIT_SUCCESS usually requires a good reason to justify it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: