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 |