14 Assemblers
The process of assembly (compilation of CPU instructions) requires the cooperation of two objects: one TAssembler and one TMaster_Assembler. The master assembler controls the assembly process, but the TAssembler does the actual translation of CPU instructions into machine code. The scope of responsibility for each component is thus: the master assembler is responsible for all file I/O, including source, listings, and binaries. It is also responsible for handling general directives and formatting of output. The TAssembler is responsible for handling any unique directives, translation of synonym directives, and compiling the actual CPU instructions. All source tokens are passed first to the TAssembler. Anything it doesn't handle must be passed back to the Master Assembler (via the Expand method of the latter). TAssemblers are provided by the CPU object for the CPU which the assembler assembles instructions.