LPRSemu is an interactive emulator and debugger for
LPRS1
ISA & CPU.
LPRSasm is an assembler for the reference VHDL imlpementation of the CPU.
Emulation example
Registers
| R0: 30 | R1: 5 | R2: 0 | R3: 0 |
| R4: 0 | R5: 0 | R6: 0 | R7: 0 |
Flags [ zero: true ] [ sign: false ] [ carry: false ]
Program counter: 7
Runtime counter: 22
Data memory
| 0 | 0
| 1 | 5
| 2 | 6
| ··· | 0
Program memory
| | main:
| 0 | inc R0, R0
| 1 | ld R1, R0
| 2 | inc R0, R0
| 3 | ld R2, R0
| 4 | sub R0, R0, R0
| | loop:
| 5 | add R0, R0, R1
| 6 | dec R2, R2
| 7 | jmpnz 5 (loop) <=
| 8 | st R0, R2
| | shift:
| 9 | shr R0, R0 (*)
| 10 | jmpnz 9 (shift)
| | divide:
| 11 | shl R1, R1
| 12 | jmpnz 11 (divide)
| ··· | nop
lprsemu >>
-
Download latest stabe binaries for your platform
-
Run the emulator with your assembly code file as the first argument
./lprsemu example.asm
-
Type
h
into the prompt to list all commands
Note: Empty command defaults tostep
. -
Test and debug your program
-
Optional: Assemble it into VHDL using LPRSasm
./lprsasm example.asm