The LMC Simulator - VB.NET version
This MS Windows version can be downloaded with no restrictions (requires Microsoft.NET Framework 4):
There is also an installation guide for a
lmc.exe version that might be more suitable for school
Uses the same instruction set as the atkinsn.yorku.ca
- Loads and saves assembly language programs as text files.
- Supports labels for both branching and data.
- Supports indentation making code easier to
- Does not remove the original code when assembly takes place.
- Features both a STEP and a RUN mode and the ability to switch
between them while a program is running.
- In STEP mode, the 'Little Man' explains the next instruction
before it is executed.
- Allows assembly language programs to be pasted directly into the program
- Allows programs to be copied from either text
window for use in reports.
- Run mode is faster than the atkinsn.yorku.ca version.
- Allows line annotation such as:
loop LDA value1 // Start of main
- Produces an assembly language version without
labels or annotation, makes it easier to understand the assembled code in RAM.
INPUT is via an 'input device' rather than
the keyboard, allowing integer values in the range -999 to 999.
- Multi-line output makes it easier to follow programs that
have more than a single output.
- 'Machine Code' instructions in RAM can be edited directly
U button will update any changes to the current
- version 3.3 - RESET button added making it possible to reset the
program counter without having to assemble the program again.
- version 3.2 - improved line annotation facility, any annotation
can be added to the end of a line.
- version 3.1 - implemented
negative DAT and INPUT values.
- version 3.0 - ASSEMBLE button altered to more
accurately reflect what it does.
- version 2.9 - set the overflow of numbers less than -999 to
match the atkinsn.yorku.ca
(if accumulator < -999 Then accumulator = accumulator + 1999).
Note, some LMC versions store negative numbers using the 10's
complement of the number and don't allow negative numbers to be
stored as such.
- version 2.8 - swapped the positions of the INPUT and the OUTPUT
to aid data entry.