consider the following process for generating binaries. a compiler is used to generate the object code for individual modules, and a linker is used to combine multiple object modules into a single program binary. how does the linker change the binding of instructions and data to memory addresses? what information needs to be passed from the compiler to the linker to facilitate the memory-binding tasks of the linker?