
Example 4
---------

Here is the previous example with a bunch of NOPs
inserted so that there are no data hazards to worry
about.  Therefore, the values that the ALU uses should
be those that came directly from the register file.

top:	lw	1, 0, data1	# $1= mem[data1]
	nop
	nop
	nop
	nop
	add	2, 1, 1
	nop
	nop
	nop
	nop
	bne	1, 1, top
	nop
	nop
	nop
	nop
	bne	0, 0, bad
	nop
	nop
	nop
	nop
	halt
	nop
	nop
	nop
	nop
bad:	bne	1, 2, top
	nop
	nop
	nop
	nop
data1:	.fill	12345

This assembles to the following machine-code:

a41e
0000
0000
0000
0000
0881
0000
0000
0000
0000
c4f5
0000
0000
0000
0000
c009
0000
0000
0000
0000
e071
0000
0000
0000
0000
c566
0000
0000
0000
0000
3039

When executed, we get the following output.  Note that
we read the operands directly from the register file.
To test your simulators, you might want to look at all
of the old test cases for Project 1 and add a bunch of
NOP instructions to get rid of data hazards.  Then once
you get simple pipelining to work you can add feedback
to solve the hazard problems (and remove the NOPs).

memory[0]=a41e
memory[1]=0
memory[2]=0
memory[3]=0
memory[4]=0
memory[5]=881
memory[6]=0
memory[7]=0
memory[8]=0
memory[9]=0
memory[10]=c4f5
memory[11]=0
memory[12]=0
memory[13]=0
memory[14]=0
memory[15]=c009
memory[16]=0
memory[17]=0
memory[18]=0
memory[19]=0
memory[20]=e071
memory[21]=0
memory[22]=0
memory[23]=0
memory[24]=0
memory[25]=c566
memory[26]=0
memory[27]=0
memory[28]=0
memory[29]=0
memory[30]=3039
31 memory words
	instruction memory:
		instrMem[ 0 ] = lw 1 0 30
		instrMem[ 1 ] = nop
		instrMem[ 2 ] = nop
		instrMem[ 3 ] = nop
		instrMem[ 4 ] = nop
		instrMem[ 5 ] = add 2 1 1
		instrMem[ 6 ] = nop
		instrMem[ 7 ] = nop
		instrMem[ 8 ] = nop
		instrMem[ 9 ] = nop
		instrMem[ 10 ] = bne 1 1 -11
		instrMem[ 11 ] = nop
		instrMem[ 12 ] = nop
		instrMem[ 13 ] = nop
		instrMem[ 14 ] = nop
		instrMem[ 15 ] = bne 0 0 9
		instrMem[ 16 ] = nop
		instrMem[ 17 ] = nop
		instrMem[ 18 ] = nop
		instrMem[ 19 ] = nop
		instrMem[ 20 ] = halt
		instrMem[ 21 ] = nop
		instrMem[ 22 ] = nop
		instrMem[ 23 ] = nop
		instrMem[ 24 ] = nop
		instrMem[ 25 ] = bne 1 2 -26
		instrMem[ 26 ] = nop
		instrMem[ 27 ] = nop
		instrMem[ 28 ] = nop
		instrMem[ 29 ] = nop
		instrMem[ 30 ] = addi 4 0 57
@@@
state before cycle 0 starts
	pc 0
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 0
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 0
	IDEX:
		instruction: nop
		pc 0
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 0
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 1 starts
	pc 1
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 0
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: lw 1 0 30
		pc 0
	IDEX:
		instruction: nop
		pc 0
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 0
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 2 starts
	pc 2
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 0
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 1
	IDEX:
		instruction: lw 1 0 30
		pc 0
		operand0 30
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 0
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 3 starts
	pc 3
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 0
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 2
	IDEX:
		instruction: nop
		pc 1
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: lw 1 0 30
		pc 0
		storeData 0
		aluResult 30
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 4 starts
	pc 4
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 0
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 3
	IDEX:
		instruction: nop
		pc 2
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 1
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: lw 1 0 30
		pc 0
		writeData 12345
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 5 starts
	pc 5
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 4
	IDEX:
		instruction: nop
		pc 3
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 2
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 1
		writeData 0
	WBEND:
		instruction: lw 1 0 30
		writeData 12345
@@@
state before cycle 6 starts
	pc 6
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: add 2 1 1
		pc 5
	IDEX:
		instruction: nop
		pc 4
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 3
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 2
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 7 starts
	pc 7
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 6
	IDEX:
		instruction: add 2 1 1
		pc 5
		operand0 1
		operand1 12345
		operand2 12345
	EXMEM:
		instruction: nop
		pc 4
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 3
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 8 starts
	pc 8
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 7
	IDEX:
		instruction: nop
		pc 6
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: add 2 1 1
		pc 5
		storeData 12345
		aluResult 24690
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 4
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 9 starts
	pc 9
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 0
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 8
	IDEX:
		instruction: nop
		pc 7
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 6
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: add 2 1 1
		pc 5
		writeData 24690
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 10 starts
	pc 10
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 9
	IDEX:
		instruction: nop
		pc 8
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 7
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 6
		writeData 0
	WBEND:
		instruction: add 2 1 1
		writeData 24690
@@@
state before cycle 11 starts
	pc 0
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: bne 1 1 -11
		pc 10
	IDEX:
		instruction: nop
		pc 9
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 8
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 7
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 12 starts
	pc 1
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: lw 1 0 30
		pc 0
	IDEX:
		instruction: bne 1 1 -11
		pc 10
		operand0 -11
		operand1 12345
		operand2 12345
	EXMEM:
		instruction: nop
		pc 9
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 8
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 13 starts
	pc 11
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 0
	IDEX:
		instruction: nop
		pc 0
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: bne 1 1 -11
		pc 10
		storeData 12345
		aluResult 1
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 9
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 14 starts
	pc 12
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 11
	IDEX:
		instruction: nop
		pc 0
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 0
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: bne 1 1 -11
		pc 10
		writeData 1
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 15 starts
	pc 13
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 12
	IDEX:
		instruction: nop
		pc 11
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 0
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: bne 1 1 -11
		writeData 1
@@@
state before cycle 16 starts
	pc 14
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 13
	IDEX:
		instruction: nop
		pc 12
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 11
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 0
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 17 starts
	pc 15
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 14
	IDEX:
		instruction: nop
		pc 13
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 12
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 11
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 18 starts
	pc 16
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: bne 0 0 9
		pc 15
	IDEX:
		instruction: nop
		pc 14
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 13
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 12
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 19 starts
	pc 17
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 16
	IDEX:
		instruction: bne 0 0 9
		pc 15
		operand0 9
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 14
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 13
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 20 starts
	pc 18
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 17
	IDEX:
		instruction: nop
		pc 16
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: bne 0 0 9
		pc 15
		storeData 0
		aluResult 1
		branchTarget 25
	MEMWB:
		instruction: nop
		pc 14
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 21 starts
	pc 19
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 18
	IDEX:
		instruction: nop
		pc 17
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 16
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: bne 0 0 9
		pc 15
		writeData 1
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 22 starts
	pc 20
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 19
	IDEX:
		instruction: nop
		pc 18
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 17
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 16
		writeData 0
	WBEND:
		instruction: bne 0 0 9
		writeData 1
@@@
state before cycle 23 starts
	pc 21
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: halt
		pc 20
	IDEX:
		instruction: nop
		pc 19
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 18
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 17
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 24 starts
	pc 22
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 21
	IDEX:
		instruction: halt
		pc 20
		operand0 -15
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 19
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 18
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 25 starts
	pc 23
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 22
	IDEX:
		instruction: nop
		pc 21
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: halt
		pc 20
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: nop
		pc 19
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
@@@
state before cycle 26 starts
	pc 24
	data memory:
		dataMem[ 0 ] -23522
		dataMem[ 1 ] 0
		dataMem[ 2 ] 0
		dataMem[ 3 ] 0
		dataMem[ 4 ] 0
		dataMem[ 5 ] 2177
		dataMem[ 6 ] 0
		dataMem[ 7 ] 0
		dataMem[ 8 ] 0
		dataMem[ 9 ] 0
		dataMem[ 10 ] -15115
		dataMem[ 11 ] 0
		dataMem[ 12 ] 0
		dataMem[ 13 ] 0
		dataMem[ 14 ] 0
		dataMem[ 15 ] -16375
		dataMem[ 16 ] 0
		dataMem[ 17 ] 0
		dataMem[ 18 ] 0
		dataMem[ 19 ] 0
		dataMem[ 20 ] -8079
		dataMem[ 21 ] 0
		dataMem[ 22 ] 0
		dataMem[ 23 ] 0
		dataMem[ 24 ] 0
		dataMem[ 25 ] -15002
		dataMem[ 26 ] 0
		dataMem[ 27 ] 0
		dataMem[ 28 ] 0
		dataMem[ 29 ] 0
		dataMem[ 30 ] 12345
	registers:
		reg[ 0 ] 0
		reg[ 1 ] 12345
		reg[ 2 ] 24690
		reg[ 3 ] 0
		reg[ 4 ] 0
		reg[ 5 ] 0
		reg[ 6 ] 0
		reg[ 7 ] 0
	IFID:
		instruction: nop
		pc 23
	IDEX:
		instruction: nop
		pc 22
		operand0 0
		operand1 0
		operand2 0
	EXMEM:
		instruction: nop
		pc 21
		storeData 0
		aluResult 0
		branchTarget 0
	MEMWB:
		instruction: halt
		pc 20
		writeData 0
	WBEND:
		instruction: nop
		writeData 0
machine halted
total of 26 cycles executed
