LC-2200 Assembler/Emulator

Jacob Dilles - September 2011


The F2011 ECE 445 class studies a fictitious processor architecture called the LC-2200 designed for instructional use by Ramachandran & Leahy.

It uses a 32 bit instruction width, data width, and register width, and has a 4 bit opcode allowing for 16 instructions. While the authors specify only 8 instructions, a further 6 (or 7) have been added for use at George Mason. This means that the assembler provided by the authors will not work on code used in the ECE 445 course.

Rather than attempting to modify the existing C assembler I found it faster to implement an assembler from scratch in Java. Using an Object Oriented approach made it easy to expand on the original functionality and add an emulator with relative ease. The emulator has been expanded and now has support for macros and preprocessor directives (to pre-load memory and registers, for instance).

A zip with the latest version is available for download below. The zip includes the executable jar, usage hints, API notes, and a few sample programs.

I have not spent a lot of time testing and there are probably a lot of bugs. I can't fix them if I don't know about them! Drop me a note at my GMU address (hint to humans: username is in address bar).



Downloads:

  • 23 SEP 2011 - lcasm_v03.zip - Initial Release
  • 29 SEP 2011 - lcasm_v03a.zip - Includes a few macros and some emulator preprocessor directives.


This code is released under the MIT License:
Copyright (C) 2011 by Jacob Dilles

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.