Program
Sum the numbers from 1 through 4 (answer is 1+2+3+4 = 10)
This tests the branch instruction and the ADD instruction
LI | R3 | 0 |
| r3 <= 0
|
---|
LI | R4 | 4 |
| r4 <= 4
|
---|
LI | R5 | 0 |
| r5 <= 0
|
---|
ADDI | R3 | R3 | 1 | r3 <= r3+1
|
---|
ADD | R5 | R5 | R3 | r5 <= r5 + r3
|
---|
BNE | R3 | R4 | -3 | if r3 != r4 branch nextpc-3
|
---|
SWI | R5 | 31 |
| mem[31] <= r5
|
---|
HALT |
|
---|
Simulation Results
# | pc | op | rd | qd | immed
|
---|
1 | 00 | LI | 3 | 0000 | 0000
|
2 | 01 | LI | 4 | 0004 | 0004
|
3 | 02 | LI | 5 | 0000 | 0000
|
4 | 03 | ADDI | 3 | 0001 | 0061
|
5 | 04 | ADD | 5 | 0001 | 00AC
|
6 | 05 | BNE | 0 | 0001 | 009D
|
7 | 03 | ADDI | 3 | 0002 | 0061
|
8 | 04 | ADD | 5 | 0003 | 00AC
|
9 | 05 | BNE | 0 | 0001 | 009D
|
10 | 03 | ADDI | 3 | 0003 | 0061
|
11 | 04 | ADD | 5 | 0006 | 00AC
|
12 | 05 | BNE | 0 | 0001 | 009D
|
13 | 03 | ADDI | 3 | 0004 | 0061
|
14 | 04 | ADD | 5 | 000A | 00AC
|
15 | 05 | BNE | 0 | 0000 | 009D
|
16 | 06 | SWI | 0 | 001F | 001F
|
Registers
format | r1 | r2 | r3 | r4 | r5 | r6 | r7
|
---|
hex | 1111 | 2222 | 0004 | 0004 | 000A | 6666 | 7777 |
---|
decimal | 4369 | 8738 | 4 | 4 | 10 | 26214 | 30583
|
---|
Memory
addr | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
|
---|
0000 | 1B00 | 1C04 | 1D00 | 3B61 | 45AC | 539D | 151F | 0000
| 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 |
0010 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000
| 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 000A |