Microprocessor Microcode Simple Example

The program counter register contains the address of the next instruction in memory to be executed. At each cycle, the processor copies the instruction from the memory at the address indicated by the program counter register, increment the program counter register, and interprets the instruction:

• store addr takes the value stored in the accumulator register and copies it into the memory at the given address.
• load addr takes the value stored in the memory at the given address, and copies it into the accumulator register.
• add addr takes the value stored in the memory at the given address, and adds it to value copied from the accumulator register, and stores the result into the accumulator register. sub addr is similar but performs a subtraction.
• jmp addr stores the given address into the program counter registers, which makes in effect the processor execute next the instruction that is at this address
• jeq addr test the accumulator register: if it's zero, then it stores the given address into the program counter registers, which makes in effect the processor execute next the instruction that is at this address. If the accumulator register doesn't contain zero, then nothing is done (execution continues in sequence).

To represent these instructions in a binary memory we may structure them in a memory word as follow: each word has 3 bits for the operation code, and 5 bits for the address, for a total of 8 bits. We define the following operation codes:

• 000 = store
• 011 = sub
• 100 = jmp
• 101 = jeq
• 110 = jlt
• 111 = halt

Since we have 5-bit addresses, we can address a memory of 32 words (it's a small memory, but it'll be enough for this simple example).

The processor uses buses to copy data from one register to another (memory is an array of registers).

Here is a diagram of the processor components. The thick lines are buses (set of lines transmitting data or addresses), while the thin lines are control lines that allows commanding the various components.

The microcode memory contains a microprogram, which implements the instructions of the processors, by commanding the various components. The processor is therefore not implemented in a monolithic way with electronics, but as a microprogram interpreting those instructions, using the simplier operations. Instead of adding an accumulator with data from the memory, we have signals to command gates copying data from registers to buses or to buses to registers, or to activate the various components of the ALU (Arithmetic & Logic Unit).

The microprogram instructions need to contain only an number to select the a signal, a state indicating whether to set or reset that signal, and the address of the following micro-instruction.

An alternative representation is to have one bit per signal in the micro-instruction. This takes more memory for the micro-code, but it has the advantage of being able to drive components in parallel, for a faster processor. In this simple example, this would mean using 17 bit instead of 5+1 for the microcode, beside the next address.

```
cycle:
cycle←0     -- start of cycle
i.write←1   -- store it in the instruction register
i.write←0   -- release the bus
p.incr←1    -- increment pc
p.incr←0
decode←1

decode←0
r.read←1    -- puts the value from the accumulator on the data bus.
m.write←1   -- stores the value on the data bus into the memory at the address on the address bus.
m.write←0   -- release the buses.
cycle←1

decode←0
m.read←1    -- puts the value from the memory at the address on the address bus, onto the data bus.
r.write←1   -- stores the value on the data bus into the accumulator.
r.write←0   -- release the buses.
cycle←1

decode←0
m.read←1    -- puts the value from the memory at the address on the address bus, onto the data bus.
a.write2←1  -- stores the value on the data bus into the second argument of the ALU
a.write2←0  -- release the buses.
r.read←1    -- puts the value from the accumulator on the data bus
a.write1←1  -- stores the value on the data bus into the first argument of the ALU
a.write2←0  -- release the buses.
a.read←1    -- puts the result on the data bus
r.write←1   -- store the value on the data bus into the accumulator
r.write←0   -- release the buses
cycle←1

decode←0
m.read←1    -- puts the value from the memory at the address on the address bus, onto the data bus.
a.write2←1  -- stores the value on the data bus into the second argument of the ALU
a.write2←0  -- release the buses.
r.read←1    -- puts the value from the accumulator on the data bus
a.write1←1  -- stores the value on the data bus into the first argument of the ALU
a.write2←0  -- release the buses.
a.sub←1     -- subtracts
a.read←1    -- puts the result on the data bus
r.write←1   -- store the value on the data bus into the accumulator
r.write←0   -- release the buses
a.sub←0
cycle←1

decode←0
i.read←1    -- puts the address in the instruction onto the data bus
p.write←1   -- store the address in the pc register
p.write←0   -- release the buses
cycle←1
```

We see from the above that we have 68 microcode steps, so we'll use a 128-microcode step memory. Each microcode step must designate one amongst the seventeen following signals: a.add, a.read, a.sub, a.write1, a.write2, i.read, i.reada, i.write, m.read, m.write, p.incr, p.reada, p.write, r.read and r.write, plus the decode and the cycle signals, and one state (0 or 1) to set that signal. We will also store the microcode address of the next microcode instruction in each instruction, to avoid the need for a microcode program counter. So we need 5 bits for the signals, and one bit for the state, and 7 bits for the next microcode instruction address, 13 bits in total.

So if we use this encoding:

```        00000 a.add
00010 a.sub
00011 a.write1
00100 a.write2
00111 i.write
01001 m.write
01010 p.incr
01100 p.write
01110 r.write
01111 decode
10000 cycle
11111 s.halt
```

we can store the cycle microprogram as:

```        cycle:
0: 10000 0 0000001
1: 01011 1 0000010
2: 01000 1 0000011
3: 00111 1 0000100
4: 00111 0 0000101
5: 01010 1 0000110
6: 01000 0 0000111
7: 01011 0 0001000
8: 01010 0 0001001
9: 01111 1 0001010
10: 01111 0 0001011
11: 00110 1 0001100
12: 01101 1 0001101
13: 01001 1 0001110
14: 01001 0 0001111
15: 01101 0 0010000
16: 00110 0 0010001
17: 10000 1 0010010
---  ----- - -------
^     ^   ^    ^
|     |   |    |
|     |   +-------- state
|     +------------ signal
etc.
```

Now, each instruction microcode starts at a different address in the microcode program:

Also, notice that we don't have a microprogram for jeq-addr, since it is actually the same as jmp-addr, but on the condition that the accumulator be zero (this is detected directly by a and gate on all the bits of the accumulator).

The instruction decoder/sequencer circuitry will therefore map the opcode bits, the zero flag, the cycle and decode signals, and the mcaddr from the microcode to the next address in the microcode memory:

```  cycle                                                  --> 0000000 =  0
¬cycle ∧ decode ∧ ¬op2 ∧ ¬op1 ∧ ¬op0                   --> 0001010 = 10
¬cycle ∧ decode ∧ ¬op2 ∧ ¬op1 ∧  op0                   --> 0010010 = 18
¬cycle ∧ decode ∧ ¬op2 ∧  op1 ∧ ¬op0                   --> 0011010 = 26
¬cycle ∧ decode ∧ ¬op2 ∧  op1 ∧  op0                   --> 0101100 = 44
¬cycle ∧ decode ∧  op2 ∧ ¬op1 ∧ (¬op0 ∨ (op0 ∧ zero))  --> 0111110 = 62
```

When the processor is powered on, all the signals and registers are set to 0, and the cycle signal is set to 1 to start the processor.

Since cycle=1, the decoder/sequencer will output the address 0000000 to the microcode memory, which will send to the state to the given signal thru the signal demultiplexer, and the address of the next microcode instruction to the decoder/sequencer.

Since this first instruction is to set cycle to 0, now we have both cycle and decode reset to 0, so the decoder/sequencer sends back the mcaddr (which is now 1) to the microcode memory, which then outputs the second instruction.

This second instruction p.reada←1 makes the PC register copy the PC (0) to the address bus to fetch the first instruction. Etc.

This microcoded microprocessor can be implemented in electronic hardware easily enough (it could be build by hand with discrete components).

Since hardware cannot be transmitted thru the Internet yet, I've instead written an implementation as a virtual machine in Common Lisp. microcode.lisp Here is an example of running it to compute the gcd of 70 and 77:

```    microprocessor> (lap '(gcd ;; compute the gcd of a and b; result in a and in b
(jmp start)
a (data 70)
b (data 77)
start
(sub b)
(jeq end)
(jlt suba) ;; a<b
;; a>b a:=a-b
(store a)
(jmp start)
suba
;; a<b b:=b-a
(sub a)
(store b)
(jmp start)
end
(halt 0)))
(131 70 77 33 98 173 201 1 131 34 97 2 131 224)
((gcd . 0) (a . 1) (b . 2) (start . 3) (suba . 9) (end . 13))
14
microprocessor> (run (lap '(gcd ;; compute the gcd of a and b; result in a and in b
(jmp start)
a (data 70)
b (data 77)
start
(sub b)
(jeq end)
(jlt suba) ;; a<b
;; a>b a:=a-b
(store a)
(jmp start)
suba
;; a<b b:=b-a
(sub a)
(store b)
(jmp start)
end
(halt 0)))
:print-microprogram t
:trace t)
cycle:
0: 10000 0 0000001
1: 01011 1 0000010
2: 01000 1 0000011
3: 00111 1 0000100
4: 00111 0 0000101
5: 01010 1 0000110
6: 01000 0 0000111
7: 01011 0 0001000
8: 01010 0 0001001
9: 01111 1 0001010
store:
10: 01111 0 0001011
11: 00110 1 0001100
12: 01101 1 0001101
13: 01001 1 0001110
14: 01001 0 0001111
15: 01101 0 0010000
16: 00110 0 0010001
17: 10000 1 0010010
18: 01111 0 0010011
19: 00110 1 0010100
20: 01000 1 0010101
21: 01110 1 0010110
22: 01110 0 0010111
23: 01000 0 0011000
24: 00110 0 0011001
25: 10000 1 0011010
26: 01111 0 0011011
27: 00110 1 0011100
28: 01000 1 0011101
29: 00100 1 0011110
30: 00100 0 0011111
31: 01000 0 0100000
32: 00110 0 0100001
33: 01101 1 0100010
34: 00011 1 0100011
35: 00100 0 0100100
36: 01101 0 0100101
37: 00000 1 0100110
38: 00001 1 0100111
39: 01110 1 0101000
40: 01110 0 0101001
41: 00000 0 0101010
42: 00001 0 0101011
43: 10000 1 0101100
sub:
44: 01111 0 0101101
45: 00110 1 0101110
46: 01000 1 0101111
47: 00100 1 0110000
48: 00100 0 0110001
49: 01000 0 0110010
50: 00110 0 0110011
51: 01101 1 0110100
52: 00011 1 0110101
53: 00100 0 0110110
54: 01101 0 0110111
55: 00010 1 0111000
56: 00001 1 0111001
57: 01110 1 0111010
58: 01110 0 0111011
59: 00010 0 0111100
60: 00001 0 0111101
61: 10000 1 0111110
jmp:
62: 01111 0 0111111
63: 00101 1 1000000
64: 01100 1 1000001
65: 01100 0 1000010
66: 00101 0 1000011
67: 10000 1 1000100
halt:
68: 01111 0 1000101
69: 11111 1 1000110
70: 10000 1 1000111
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=1
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=70
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=249
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=10
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=77
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=11
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=7
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=12
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[2]<-7
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=13
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=70
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=63
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-63
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=63
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=56
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-56
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=56
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=49
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-49
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=49
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=42
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-42
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=42
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=35
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-35
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=35
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=28
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-28
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=28
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=21
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-21
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=21
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=14
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-14
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=14
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=7
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=7
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=8
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  10: decode   ← 0, next: 11
µ-code  11: i.reada  ← 1, next: 12
µ-code  12: r.read   ← 1, next: 13
µ-code  13: m.write  ← 1, next: 14
[1]<-7
µ-code  14: m.write  ← 0, next: 15
µ-code  15: r.read   ← 0, next: 16
µ-code  16: i.reada  ← 0, next: 17
µ-code  17: cycle    ← 1, next: 18
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=9
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=4
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  18: decode   ← 0, next: 19
µ-code  19: i.reada  ← 1, next: 20
µ-code  20: m.read   ← 1, next: 21
µ-code  21: r.write  ← 1, next: 22
AC=7
µ-code  22: r.write  ← 0, next: 23
µ-code  23: m.read   ← 0, next: 24
µ-code  24: i.reada  ← 0, next: 25
µ-code  25: cycle    ← 1, next: 26
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=5
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  44: decode   ← 0, next: 45
µ-code  45: i.reada  ← 1, next: 46
µ-code  46: m.read   ← 1, next: 47
µ-code  47: a.write2 ← 1, next: 48
µ-code  48: a.write2 ← 0, next: 49
µ-code  49: m.read   ← 0, next: 50
µ-code  50: i.reada  ← 0, next: 51
µ-code  51: r.read   ← 1, next: 52
µ-code  52: a.write1 ← 1, next: 53
µ-code  53: a.write2 ← 0, next: 54
µ-code  54: r.read   ← 0, next: 55
µ-code  55: a.sub    ← 1, next: 56
µ-code  56: a.read   ← 1, next: 57
µ-code  57: r.write  ← 1, next: 58
AC=0
µ-code  58: r.write  ← 0, next: 59
µ-code  59: a.sub    ← 0, next: 60
µ-code  60: a.read   ← 0, next: 61
µ-code  61: cycle    ← 1, next: 62
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=6
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  62: decode   ← 0, next: 63
µ-code  63: i.read   ← 1, next: 64
µ-code  64: p.write  ← 1, next: 65
µ-code  65: p.write  ← 0, next: 66
µ-code  66: i.read   ← 0, next: 67
µ-code  67: cycle    ← 1, next: 68
µ-code   0: cycle    ← 0, next: 1
µ-code   1: p.reada  ← 1, next: 2
µ-code   2: m.read   ← 1, next: 3
µ-code   3: i.write  ← 1, next: 4
µ-code   4: i.write  ← 0, next: 5
µ-code   5: p.incr   ← 1, next: 6
PC=14
µ-code   6: m.read   ← 0, next: 7
µ-code   7: p.reada  ← 0, next: 8
µ-code   8: p.incr   ← 0, next: 9
µ-code   9: decode   ← 1, next: 10
µ-code  68: decode   ← 0, next: 69
µ-code  69: s.halt   ← 1, next: 70
#(131 7 7 33 98 173 201 1 131 34 97 2 131 224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
microprocessor>
```