A system call by a user process (executing in user mode) executes some operating system function on behalf of that user process.
To the programmer, calling a system function looks like calling any user written function: pass parameters, get a return value back.
But the code that is linked to the user program has to somehow bridge the gap between user mode to kernel mode at the call and back to user mode on return.
That's all the linked code does.
Note: There can't be a way for user code to change the mode to kernel and still be executing user code!
The actual kernel code that does the work of the system call is never linked into the user program.