 Programmers develop microprograms, using basic software tools.A microassembler allows a programmer to define the table of bits symbolically.Because of its close relationship to the underlying architecture, "microcode has several properties that make it difficult to generate using a compiler."