2.6 linkers

This exercise is optional. Refer to the exercise policy for details.
Write a linker for MIC-1 assembly programs.
(When masm receives the -o argument then it produces "unresolved" object files where symbol references are left in the code and not turned into binary numbers. Lines with such references are prefixed with a U and postfixed with the symbol to replaced. The instruction is already encoded, except for the final twelve bits. The job of a linker is to take a set of such files and stitch them together into a single object file, while allowing symbols in one file to be referenced in another.)