FundurASM - A Assembly-like language interpreter

Overview

FundurASM - A Assembly-like language interpreter

This interpreter was written by LordBurtz

Licensed under GPLv2, all rights reserved

Running it

Download the latest version from the [Release] tab.
Interpret a certain file (e.g. test.fasm) by running:

java -jar asm.jar test.fasm
Errors
  • UnsupportedClassVersionError - update to a recent java version (e.g. java-17)
  • Please specify a file - specify your file path as an argument and append it to the command
  • General Errors on Runtime - those specify what went wrong and how it can be fixed
  • Uncaught Exceptions - Errors not intended to happen, please report them at once

Changes made

All interpreter settings such as alloc have to have # prepended, otherwise the compiler won't read them

Instruction change
Alloc Brand new command, it allocates i spaces in the register. You now have to allocate space in your registry. The interpreter checks whether you are out of bounds or not.
Import The library lib gets loaded and its methods registered. After loading math you can call math.mod now.
End New syntax: END x where x is a number referring to a cell in your registry. The content of that cell is the return code of the dispatched process.

Changes

Version changes
Alpha-0-1 Initial version with some bugs (eg. jumps sometimes failing). All the standard instructions added
Alpha-0-2 Rewrite of the instruction loading system allowing for more flexibility. Jumps work properly. Custom instructions can be registered now
Alpha-0-3 Utilizing the flexibility introduced in the last update, now custom libraries can be added and loaded. Considering switching into beta
Beta-1-0 Hex und Binary Numbers supported! Switched to Beta, Refactoring and language updates.. added an argument parser to support multiple number formats.
Beta 1-1 Arg parser put to use, now Hex and Binary can actually be used, Parser can now be instantiated!
Beta 1-3 First Pre-release, maven introduced. No language syntax changes.
Beta 1-5 Moving from various Object[] to classes

The intention

This interpreter is written to help students in germany who use assembly-like code to get that code interpreted.

Contributing

Feel free to contribute!

This project is intended to be easily extendable, therefore contribute your own libraries, tests, etc. It is in no way finished and still in beta, changes will be made, but you can be part of them! If you find something you'd like to work on, just fork this repo and open a pull request when you are done. It'll be reviewed (and hopefully merged) in no time.
Even if coding isn't your thing, you can help out by making this README better and/or by opening an issue about what still needs some work!

Any% glitch-less speedrun, interpreter & parser finished @2.29h
You might also like...

Jssembly is a library that allows you to execute native assembly from Java.

jssembly Jssembly is a library that allows you to execute native assembly from Java via a JNI bridge. The goal is to provide wrappers and parsers for

Jun 3, 2022

Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

JITWatch Log analyser and visualiser for the HotSpot JIT compiler. Video introduction to JITWatch video Slides from my LJC lightning talk on JITWatch

Jan 3, 2023

A short assembly macro-processor script to simulate the process and show the different stages

A short assembly macro-processor script to simulate the process and show the different stages

Mar 9, 2022

The LiteScipt Interpreter

The liteScipt Interpreter 1.部署开发环境 第一步 Windows: 下载LiteSciptInstallation.exe 双击运行,填写安装目录,确定安装,等待完成 Linux: 下载LiteSciptInstallation.jar 输入java -jar LiteS

Dec 30, 2021

Slime is an interpreter made in Java :)

Slime Slime is a node-based interpreter // Create a space to store things final Space space = new Space(); // Define the slime interpreter final Slim

Sep 28, 2022

A shitty brainfuck interpreter that does not support comments !

Welcome to BrainfuckInterpreter 👋 A shitty brainfuck interpreter that does not support comments ! Use it only if you are determined :D Author 👤 Reds

Jul 15, 2022

A diagnostic library for parser / interpreter usages.

A diagnostic library for parser / interpreter usages.

Nenggao Makes diagnostic easier! A diagnostic library for parser / interpreter usages. About Nenggao is a diagnostic library mainly designed for Yakou

Nov 4, 2022

This application can recognize the sign language alphabets and help people who do not understand sign language to communicate with the speech and hearing impaired.

This application can recognize the sign language alphabets and help people who do not understand sign language to communicate with the speech and hearing impaired.

Sign Language Recognition App This application can recognize the sign language alphabets and help people who do not understand sign language to commun

Oct 7, 2021

Kotlin-decompiled - (Almost) every single language construct of the Kotlin programming language compiled to JVM bytecode and then decompiled to Java again for better readability

Kotlin: Decompiled (Almost) every single language construct of the Kotlin programming language compiled to JVM bytecode and then decompiled to Java ag

Dec 14, 2022

Jamal is a macro language (JAmal MAcro Language)

Jamal is a macro language (JAmal MAcro Language)

Jamal Macro Language Jamal is a complex text processor with a wide variety of possible use. The first version of Jamal was developed 20 years ago in P

Dec 20, 2022

A Java library to query pictures with SQL-like language

A Java library to query pictures with SQL-like language

PicSQL A Java library to query pictures with SQL-like language. Features : Select and manipulate pixels of pictures in your disk with SQL-like dialect

Dec 25, 2022

A Java library to query pictures with SQL-like language.

A Java library to query pictures with SQL-like language.

PicSQL A Java library to query pictures with SQL-like language. Features : Select and manipulate pixels of pictures in your disk with SQL-like dialect

Dec 25, 2022

For Jack language. Most of codes were commented with their usage, which can be useful for beginner to realize the running principle of a compiler for object-oriented programming language.

Instructions: Download the Java source codes Store these codes into a local folder and open this folder Click the right key of mouse and click ‘Open i

Jan 5, 2023

Java port of Brainxyz's Artificial Life, a simple program to simulate primitive Artificial Life using simple rules of attraction or repulsion among atom-like particles, producing complex self-organzing life-like patterns.

Java port of Brainxyz's Artificial Life, a simple program to simulate primitive Artificial Life using simple rules of attraction or repulsion among atom-like particles, producing complex self-organzing life-like patterns.

ParticleSimulation simple Java port of Brainxyz's Artificial Life A simple program to simulate primitive Artificial Life using simple rules of attract

Oct 5, 2022

a fast, scalable, multi-language and extensible build system

Bazel {Fast, Correct} - Choose two Build and test software of any size, quickly and reliably. Speed up your builds and tests: Bazel rebuilds only what

Jan 4, 2023

Java annotation-based framework for parsing Git like command line structures

Airline Airline is a Java annotation-based framework for parsing Git like command line structures. Latest release is 0.8, available from Maven Central

Nov 26, 2022

Annotation processor to create immutable objects and builders. Feels like Guava's immutable collections but for regular value objects. JSON, Jackson, Gson, JAX-RS integrations included

Read full documentation at http://immutables.org // Define abstract value type using interface, abstract class or annotation @Value.Immutable public i

Dec 31, 2022

Very spicy additions to the Java programming language.

Project Lombok Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another g

Jan 1, 2023
Comments
  • Merging changes von Alpha-0-2 into Master

    Merging changes von Alpha-0-2 into Master

    • Readme.md updates to accomodate changes
    • rewrite of the instruction init system. now it can be extended on the fly and without changing sourceode.. all the init stuff is done via adding instructions to a hashtable and reading them from there allow for unlimited* extensibility
    • Language changes:
      • Compiler flags now have to have # prepended

    all the fancy stuff coming together

    opened by LordBurtz 0
Releases(Pre-Release)
Owner
some random pupil who's bored enough to code and contribute
null
A short assembly macro-processor script to simulate the process and show the different stages

A short assembly macro-processor script to simulate the process and show the different stages

Neopentene 2 Mar 9, 2022
Ultra-fast SQL-like queries on Java collections

CQEngine - Collection Query Engine CQEngine – Collection Query Engine – is a high-performance Java collection which can be searched with SQL-like quer

Niall Gallagher 1.6k Dec 30, 2022
An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch!

OpenBlocks An open source, modular alternative of sketchware. Create your own app in android using block programming like scratch! What is OpenBlocks?

OpenBlocks 30 Dec 16, 2022
JPassport works like Java Native Access (JNA) but uses the Foreign Linker API instead of JNI. Similar to JNA, you declare a Java interface that is bound to the external C library using method names.

JPassport works like Java Native Access (JNA) but uses the Foreign Linker API instead of JNI. Similar to JNA, you declare a Java interface t

null 28 Dec 30, 2022
Trino connectors for managing cloud resources, like AWS EC2 instances or S3 buckets.

Trino connectors for managing cloud resources, like AWS EC2 instances or S3 buckets. Please keep in mind that this is not production ready and it was created for tests.

Jan Waś 11 Nov 4, 2022
Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text

Welcome to Apache OpenNLP! The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text. This toolkit is

The Apache Software Foundation 1.2k Dec 29, 2022
Spine - a language created for the purpose of writing HTML with C styled syntax

Spine is a language created for the purpose of writing HTML with C styled syntax. Although this is a pretty useless projec, it will still be very fun to make and maybe, just maybe remove the backpain from normal HTML.

Spine 3 Mar 19, 2022
Gleam is a simple Scheme language interpreter written in Java.

Gleam Scheme Interpreter (c) 2001-2020 Guglielmo Nigri (guglielmonigri at yahoo.it, googlielmo at gmail.com) Gleam comes with ABSOLUTELY NO WARRANTY.

Guglielmo Nigri 2 Jun 6, 2022
lazy-language-loader improves loading times when changing your language by only reloading the language instead of all the game resources!

lazy-language-loader lazy-language-loader improves loading times when changing your language by only reloading the language instead of all the game re

Shalom Ademuwagun 7 Sep 7, 2022
Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

JITWatch Log analyser and visualiser for the HotSpot JIT compiler. Video introduction to JITWatch video Slides from my LJC lightning talk on JITWatch

AdoptOpenJDK 2.8k Jan 3, 2023