I have a Linux x86-32 GAS assembly program terminating like this:
movl $1, %eax
movl $0, %ebx # argument for _exit
int $0x80
When I exit li
According to the man page for _exit(2)
Whether it flushes standard I/O buffers and removes temporary files created with tmpfile(3) is implementation-dependent. On the other hand, _exit() does close open file descriptors, and this may cause an unknown delay, waiting for pending output to finish. If the delay is undesired, it may be useful to call functions like tcflush(3) before calling _exit(). Whether any pending I/O is canceled, and which pending I/O may be canceled upon _exit(), is implementation-dependent.
So unless you've flushed stdout, it may get discarded.