Before the system can execute any one of these programs, it has fork the bash process, call exec to load the new binary in the process memory, load the standard library and map it to the adress space, open stdin / stdout, run the program, close stdin / stdout, wait for the process termination ...
Comparing to all this, a move instruction in userland won't really make a difference.
Edit: List on system calls required to execute trivial.c (on my Linux):
Comparing to all this, a move instruction in userland won't really make a difference.
Edit: List on system calls required to execute trivial.c (on my Linux):
execve, brk, access, mmap, access, open, open, open, open, open, stat, open, stat, open, stat, open, stat, open, fstat, mmap, close, access, open, read, fstat, mmap, mprotect, mmap, mmap, close, mmap, mmap, mmap, arch_prctl, mprotect, mprotect, munmap, exit_group