The goal of this project is to create a small-instruction-set programming language interpreter written in Java with a GUI interface for inspecting the current state of the environment. This simple interpreted language would be able to demonstrate the concepts of a lower level assembly language while still being easier to write. The instructions would be intuitive and simple compared to MIPS (e.g., no system calls or immediate limits) and act upon virtual registers akin to other assembly languages.
The user is able to either run a file containing instructions (a program) or enter instructions line by line. The results of these instructions would be resultant on the GUI would list the state of all of the registers, the past/current/upcoming instructions, and the program memory.
Java SDK 17 is required to run EzASM.
You can use a package manager to install Java.
$ sudo apt install openjdk-17-jdk
Once you have installed Java, you can either install EzASM or build it yourself to run it.
The latest release can be found at the EzASM releases repository to install it manually.
For MacOS/Linux, EzASM can also be downloaded via homebrew the EzASM tap:
$ brew tap ezasm-org/ezasm
$ brew install ezasm
Java SDK 17 and Maven are required to build EzASM.
You can use any one of the following Maven install commands for your OS/distribution:
$ sudo apt install maven
$ sudo dnf install maven
$ sudo yum install maven
$ brew install maven
$ sdk install maven
$ sudo port install maven3
Requires Chocolatey or Scoop
$ choco install maven
$ scoop install main/maven
You can confirm that maven has been installed using mvn -v
- Clone this repository locally:
$ git clone https://github.com/ezasm-org/EzASM.git - Navigate to your clone's root directory using the
cdcommand - Build the project using Maven:
$ mvn clean compile assembly:single - Run your build:
$ java -jar target/*full.jar
Navigate to and open the EzASM project root directory
Navigate to the project's Main.java file (\ezasm\src\main\java\com\ezasm\Main.java)
*Note: In VSCode, you will have to open an Ubuntu terminal
You will need to have built from the command line or IntelliJ to complete this
Navigate to the EzASM project root directory
Run $ mvn clean test
Navigate to the EzASM project root directory
Run $ mvn clean package will build a variety of native executables in the target directory
Options marked with an asterisk * will only be generated if you fulfill the requirements to install:
being on the required operating system and having the necessary optional dependencies.