The mic025.txt data file. Contains a Mic-1 program that pushes onto the stack the result of right shifting the number found in main memory location 40 by the number of bits specified by the number found in memory location 41. The 40 and 41 are preloaded into registers a and b respectively. This solution is based on that done by Ryan Pistorius. 10 microinstructions: A C M O A M M E U N L S B A R W N C B A ADDR X D U H R R D R C 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Mac-1 instructions 2 data items for main memory: -13108 5 Register values: PC AC SP IR TIR 0 +1 -1 AMASK SMASK A B C D E F 0 0 69 0 0 0 1 -1 4095 255 40 41 0 0 0 0 The MAL form of the above microinstructions follows: 0: mar := a; rd; 1: rd; 2: c := mbr; mar := b; rd; 3: rd; 4: d := mbr; 5: d := d + (-1); if n then goto 7; 6: c := rshift(c); goto 5; 7: sp := sp + (-1); 8: mar := sp; mbr := c; wr; 9: wr; End of the mic025.txt data file.