Let's consider a very simple processor, which has an addressable memory, an accumulator register, a program counter register, and the following instructions: store addr, load addr, add addr, sub addr, jmp addr, jeq addr.
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:
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:
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
p.reada←1 -- puts the PC onto the address bus
m.read←1 -- read the memory
i.write←1 -- store it in the instruction register
i.write←0 -- release the bus
p.incr←1 -- increment pc
m.read←0 -- release the bus
p.reada←0
p.incr←0
decode←1
store addr
decode←0
i.reada←1 -- puts the address on the address bus.
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.
r.read←0
i.reada←0
cycle←1
load addr
decode←0
i.reada←1 -- puts the address on the address bus.
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.
m.read←0
i.reada←0
cycle←1
add addr:
decode←0
i.reada←1 -- puts the address on the address bus.
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.
m.read←0
i.reada←0
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.
r.read←0
a.add←1 -- adds
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.add←0
a.read←0
cycle←1
sub addr: is similar to add addr, with a.sub instead of a.add.
decode←0
i.reada←1 -- puts the address on the address bus.
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.
m.read←0
i.reada←0
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.
r.read←0
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
a.read←0
cycle←1
jmp addr:
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
i.read←0
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
00001 a.read
00010 a.sub
00011 a.write1
00100 a.write2
00101 i.read
00110 i.reada
00111 i.write
01000 m.read
01001 m.write
01010 p.incr
01011 p.reada
01100 p.write
01101 r.read
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
store-addr:
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
--- ----- - -------
^ ^ ^ ^
| | | |
| | | +--- next microcode instruction address (mcaddr)
| | +-------- state
| +------------ signal
+------------------ address
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 ¬cycle ∧ ¬decode --> mcaddr
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
(load a)
(sub b)
(jeq end)
(jlt suba) ;; a<b
;; a>b a:=a-b
(store a)
(jmp start)
suba
;; a<b b:=b-a
(load b)
(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
(load a)
(sub b)
(jeq end)
(jlt suba) ;; a<b
;; a>b a:=a-b
(store a)
(jmp start)
suba
;; a<b b:=b-a
(load b)
(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
load:
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
add:
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>