There is a one-to-one relationship between assembly code and machine-executable code. Therefore, compared with compiling high-level source code, assembling is a relatively simple translation process. Where comments have been used in assembly code programs, they get removed by the assembler. Symbolic references (e.g. labels) are replaced with actual addresses.