In Linux, anything a user process wants to do to interact with the outside world is done through syscalls. I don't remember the exact details and I'm too lazy to look it up, but in the case of writing data to stdout, you basically just put the number of the syscall write(), the file descriptor number, a pointer to the data and the number of bytes in various registers (possible eax, ebx, ecx and edx?) and then do an int 0x80 to make the kernel execute it all for you.
Basically, the syscall has the exact same interface as write(2).
In Linux, anything a user process wants to do to interact with the outside world is done through syscalls. I don't remember the exact details and I'm too lazy to look it up, but in the case of writing data to stdout, you basically just put the number of the syscall write(), the file descriptor number, a pointer to the data and the number of bytes in various registers (possible eax, ebx, ecx and edx?) and then do an int 0x80 to make the kernel execute it all for you. Basically, the syscall has the exact same interface as write(2).