I am a little confused about why Assembly Languages have syscalls. Here are some questions:
- Isn't Assembly Language the lowest level language (before machine code)? Why does it have to make a "syscall" to the Linux Kernel's C Code?
For example, to print to screen, we need to do a "syscall" (using MIPS):
Does the Linux Kernel's "syscall" C code eventually also become Assembly Language?
How do I print to the terminal using MIPS without using a syscall? Am just curious how the actual Assembly Language looks like, examples using other Assembly Languages besides MIPS would also be really helpful.
My guess is that the C programs I have converted to Assembly Language are still user-space programs that still need to use syscalls to execute kernel-space instructions?