The shifting of a program from one of the memory addresses to another is?
The shifting of a program from one of the memory addresses to another is Relocation.
Relocation is the process of assigning load addresses to position-dependent, but locatable code of a program and adjusting the code and data in the program to reflect the assigned addresses.. Prior to the advent of multiprocess systems, and still in many embeded systems the addresses for objects were absolute starting at zero. Since multiprocessing systems dynamically link and switch between programs it became necessary to be able to relocate objects using position independant code. A linker usually performs relocation in conjunction with symbol resolution, the process of searching files and libraries to replace symbolic references or names of libraries with actual usable addresses in memory before running a program.