All Projects → cbdevnet → mima

cbdevnet / mima

Licence: BSD-2-Clause license
MIninmal MAchine Assembler and Simulator

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to mima

Mako
A simple virtual game console
Stars: ✭ 435 (+2189.47%)
Mutual labels:  toolchain, virtual-machine
faucon
NVIDIA Falcon Microprocessor Suite
Stars: ✭ 28 (+47.37%)
Mutual labels:  toolchain
SpiceSharp
Spice# is a cross-platform electronic circuit simulator based on Berkeley Spice - the mother of commercial industry-standard circuit simulators.
Stars: ✭ 146 (+668.42%)
Mutual labels:  simulator
rp2040js
A Raspberry Pi Pico Emulator in JavaScript
Stars: ✭ 178 (+836.84%)
Mutual labels:  simulator
butterfly
Butterfly connects Virtual Machines and control their traffic flow
Stars: ✭ 48 (+152.63%)
Mutual labels:  virtual-machine
wavm
Wait, another virtual machine ?
Stars: ✭ 61 (+221.05%)
Mutual labels:  virtual-machine
epidemic-simulator
A HTML/JavaScript simulator for an epidemc on a population
Stars: ✭ 23 (+21.05%)
Mutual labels:  simulator
Arduino-Shell
RPN Postscript/Forth Command Shell for Arduino
Stars: ✭ 19 (+0%)
Mutual labels:  virtual-machine
TWVM
A tiny, lightweight and efficient WebAssembly virtual machine.
Stars: ✭ 105 (+452.63%)
Mutual labels:  virtual-machine
smaug
SMAUG: Simulating Machine Learning Applications Using Gem5-Aladdin
Stars: ✭ 62 (+226.32%)
Mutual labels:  simulator
ShitVM
가벼운 가상머신
Stars: ✭ 14 (-26.32%)
Mutual labels:  virtual-machine
misp-packer
Build Automated Machine Images for MISP
Stars: ✭ 25 (+31.58%)
Mutual labels:  virtual-machine
cas
Cellular Automata Simulator
Stars: ✭ 22 (+15.79%)
Mutual labels:  simulator
NanoSim
Nanopore sequence read simulator
Stars: ✭ 156 (+721.05%)
Mutual labels:  simulator
thislang
A subset of javascript implemented in that subset of javascript. Yes, it can run itself.
Stars: ✭ 31 (+63.16%)
Mutual labels:  virtual-machine
vagrant-try-alerta
Vagrant Boxes of alerta with other popular monitoring tools eg. Nagios, Riemann, Zabbix, Sensu, Kibana
Stars: ✭ 16 (-15.79%)
Mutual labels:  virtual-machine
SeQUeNCe
Simulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications.
Stars: ✭ 44 (+131.58%)
Mutual labels:  simulator
Thunder-Lightning
An Open Source Futuristic Action Flight Simulator Game Inspired By Carrier Command
Stars: ✭ 29 (+52.63%)
Mutual labels:  simulator
minima
A fast, byte-code interpreted language
Stars: ✭ 43 (+126.32%)
Mutual labels:  virtual-machine
vm
The mm-ADT Virtual Machine
Stars: ✭ 29 (+52.63%)
Mutual labels:  virtual-machine

MIMA Toolchain

A set of tools for developing/testing MIMA assembler code, written in plain C.

mimasm

mimasm transforms assembly instructions into an intermediate representation (memory map). This memory map can then be viewed and experimented with, or it can be fed to mimasim for execution.

Features

  • Cross-platform, builds on Windows, Linux and BSD
  • Supports complete instruction set
  • Keeps labels in memory map for runtime resolving
  • Outputs intermediate format accepted by multiple interpreters

Download & Resources

CAVEAT: Label declarations must be followed by a colon (:), which is frequently omitted from worksheets but mentioned and used in advanced material as well as the non-authoritative MIMA-ASSEMBLER.txt supplied with mimasim.

mimasim

mimasim allows you to execute a memory map generated by mimasm (or written by yourself), either in a single run or interactively. It supports the full MIMA instruction set, as well as adding support for breakpoints, runtime label resolution and interactive memory inspection.

Features

  • Cross-platform, builds on Windows, Linux and BSD
  • Supports complete instruction set
  • Easy-to-understand and useful input file format (memory map)
  • Useful (optional) output file format
  • Interactive execution, including memory inspection
  • Breakpoint functionality for debugging complex programs
  • Run-time label resolution
  • Arbitrary program entry point
  • Arbitrary run-time step limit

Download & Resources

Building

The toolchain was successfully compiled on the following systems

  • Linux (Debian, Arch Linux, Ubuntu)
  • BSD (FreeBSD, OpenBSD)
  • Windows (XP, 7)

using the following compilers

  • tcc (Linux, Windows)
  • gcc (Linux, BSD)
  • clang (BSD)
  • dmc (Windows)

Running make in the respective subfolders on a system with at least one of these compilers (and some form of make) installed should result in a successful build.

About the MIMA

The MIMA is a greatly simplified example of a microcomputer (hence the name, MInimal MAchine), used for demonstration and educational purposes in lectures at the KIT. The original work in developing the MIMA and its instruction set has been done by Prof. T. Asfour (http://ti.ira.uka.de/).

Badges, etc

Coverity Scan Build Status

Bug Bounty

The first 10 people to report a critical (as in, crashes on execution or missing/erroneous/broken functionality), not yet submitted/known bug or fix a listed known bug in the latest releases of either mimasim or mimasm are eligible, upon disclosure of said bug/fix to [email protected], to receive a bottle of Club Mate (in Person, in Karlsruhe, at the KIT, in the FSMI) from me ;)

People yet eligible:

  • Sinan (claimed)
  • drone| (claimed)
  • Indidev (claimed)

License & Copying

mimasm and mimasim are distributed under the terms of the BSD 2-Clause license, see LICENSE.txt.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].