A 2 pass assembler having an option to add user-defined subroutines and macros