I made something similar [1], based on the Post Room Computer [2].
Basically it is a two address (operand) modification of the LMC. It was used to as a teaching tool for undergrad students at my local university.
It's a bit more fully featured - It supports absolute and register based address modes, macros, programs spanning multiple files. The computer is accessible via command line or using the in-built Java Swing UI.
If anyone is bored and wanted to run it, heres a sample program:
;; A simple multiplication program
INP :x: ; Input value and store at location :x:
INP :y: ; Input value and store at location :y:
MOV :result: :x: ; Copy the value at :x: into :result:
; Multiplication loop
:loop:
SUB :y: :one: ; Substract 1 from the the value at :y:
JMP EQZ :end: ; If result of subtraction was 0, stop looping
ADD :result: :x: ; Add the value at :x: to the result
; If the program reaches this stage multiplication is not complete
; So jump back to start of loop
JMP LWY :loop:
:end: ; Label to exit the loop
OUT :result: ; Output the result
HLT ; Stop execution
; Data Stores
:x: (0)
:y: (0)
:result: (0)
:one: (1)
[1] https://github.com/Richard-Walton/The-Post-Room-Computer