Skip to content
Assembler for the Digital example processor
Java Assembly XSLT
Branch: master
Clone or download
Latest commit a88cbc6 Sep 3, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
distribution updated release notes Sep 3, 2018
src adds the von Neumann example code Aug 16, 2018
.gitattributes fixed some checkstyle issues Aug 6, 2017
.gitignore add copybin.sh to .gitignore Jun 19, 2016
.travis.yml updated oauth token Sep 3, 2018
README.md added some comments Aug 24, 2017
bitbucket-pipelines.yml
pom.xml fixed error in pom.xml Aug 6, 2017
screenshot.png added a screenshot to the description Feb 13, 2017
sun_checks_neemann.xml fixed some checkstyle issues Aug 6, 2017

README.md

Build Status

Download latest Release

The most recent changes are listed in the release notes.

ASM 3

screnshot

In this repo you can find an assembler for a simulated 16 bit microprocessor which is realized as a Digital simulation. You can find the processor itself as one of the examples in the Digital repository or in the distributed zip file. The processor is a 16 bit harvard single cycle cpu and it is inspired by the MIPS architecture. Only the handling of long constants is a bit of a hack to avoid a 32 bit instruction memory.
The assembler supports pseudo instructions like push, pop, enter, leave or call and ret [n]. So it is also possible to program more like for a x86 cisc processor.
The assembler has a simple GUI and is able to control the simulator by using its TCP/IP interface. So it is easy to debug an assembly program within the simulator.

Interfacing the Simulator

If you are interested in how to interface the simulator you can take a look at this class. These are just a few lines of simple code, and it should be easy to translate it into any other language you want to use.

How it works

A list of the supported ASM instructions is included in the distributed zip file (instructions.pdf). If you are interested in modifying how the instructions are encoded, look at the file Opcode.java. The instructions and the associated flags used for the control unit are listed there. Some instructions are available in two variants: The mnemonics with a lower case 's' attached, describes the instruction with a special encoding for a short constant, which can be included in the instruction itself.

Usage

  • In the folder src/main/asm are some sample programs in assembler. The assembler creates a hex file to be loaded to the instruction memory of the simulated processor.
  • You only need to start the simulator and load the example processor. Then you can control the simulator by the assembler GUI.
  • You can find the assembler in the folder src/main/java

Set up?

  • You can find the processor in the Digital repo or release ZIP as one of the examples.
  • The assembler is implemented in Java and is build with maven. So you can build it calling mvn install on the command line.
  • Most Java-IDE's are able to import the pom.xml file. Best maven support you can get using NetBeans.
You can’t perform that action at this time.