Microprogram Simulation Using a Structured Microcode Model