Program
This program tests the LI, LWI, SWI, LW, and SWI instructions
LI | R3 | 14 |
| r3 <= 9
|
---|
LI | R6 | 24 |
| sp <= 24
|
---|
SW | R3 | R6 | 0 | mem[sp] <= r3
|
---|
ADDI | R6 | R6 | -1 | sp <= sp - 1
|
---|
LWI | R3 | 30 |
| r3 <= mem[30] = 9
|
---|
SW | R3 | R6 | 0
| mem[sp] <= r3
|
---|
ADDI | R6 | R6 | -1 | sp <= sp - 1
|
---|
LW | R1 | R6 | 1 | r1 <= mem[sp+1]
|
---|
LW | R2 | R6 | 2 | r2 <= mem[sp+2]
|
---|
ADD | R3 | R1 | R2 | r3 <= r1+r2
|
---|
SWI | R3 | 31 |
| mem[31] <= r3
|
---|
LI | R4 | 20 |
| r4 <= 0x14
|
---|
LUI | R4 | 20 |
| r4 <= 0x1414
|
---|
SWI | R4 | 29 |
| mem[29] <= r4
|
---|
HALT |
| halt
|
---|
Simulation Results
# | pc | op | rd | qd | immed
|
---|
1 | 00 | LI | 3 | 000E | 000E
|
2 | 01 | LI | 6 | 0018 | 0018
|
3 | 02 | SW | 0 | 0018 | 00C0
|
4 | 03 | ADDI | 6 | 0017 | 00DF
|
5 | 04 | LWI | 3 | 0009 | 001E
|
6 | 05 | SW | 0 | 0017 | 00C0
|
7 | 06 | ADDI | 6 | 0016 | 00DF
|
8 | 07 | LW | 1 | 0009 | 00C1
|
9 | 08 | LW | 2 | 000E | 00C2
|
10 | 09 | ADD | 3 | 0017 | 0028
|
11 | 0A | SWI | 0 | 001F | 001F
|
12 | 0B | LI | 4 | 0014 | 0014
|
13 | 0C | LUI | 4 | 1414 | 0014
|
14 | 0D | SWI | 0 | 001D | 001D
|
Registers
format | r1 | r2 | r3 | r4 | r5 | r6 | r7
|
---|
hex | 0009 | 000E | 0017 | 1414 | 5555 | 0016 | 7777 |
---|
decimal | 9 | 14 | 23 | 5140 | 21845 | 22 | 30583
|
---|
Memory
addr | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
|
---|
0000 | 1B0E | 1E18 | 33C0 | 3EDF | 0B1E | 33C0 | 3EDF | 29C1
| 2AC2 | 4328 | 131F | 1C14 | 2414 | 141D | 0000 | 0000 |
0010 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0009
| 000E | 0000 | 0000 | 0000 | 0000 | 1414 | 0009 | 0017 |