Git Product home page Git Product logo

mini_mips's Introduction

Mini_MIPS

Usage

The project is made to be compiled with GNU make, as follows:

make

This will generate the executable in the ./bin folder. You can also remove the object files and the executable with

make clean

You can use Mini_MIPS as an Instruction Simulator but it can also encode asm into hex files or decode hex to asm. The following commands are the most useful but you can see all the uses of Mini_MIPS with the --help command

./bin/Mini_MIPS [options] <input folders>

with for example:

./bin/Mini_MIPS --run    test_file.hex   #launches the simulation of the .hex file
./bin/Mini_MIPS --encode test_file.asm   #launches asm file encoding
./bin/Mini_MIPS --decode test_file.hex   #launches asm file decoding
./bin/Mini_MIPS --step 				           #triggers step mode   ***
./bin/Mini_MIPS --load   test_file.data  #loads data in memory ***

Commands marked with *** are not fully functional

The file ./tests/encode_test_results/test_syracuse_result.hex is the go-to test file

You can use the following command to test the vm:

./bin/Mini_MIPS -r ./tests/encode_test_results/test_syracuse_result.hex

Note that the step mode is enabled by default and should be changed manually by modifying the step value to 0 in src/main.c as the command does not currently work.

Functionalities

Assembler

  • ASM file conversion with solid blank trimming
  • 18 ISS instructions understood
  • Label detection and encoding

Virtual Machine

  • Pile creation with hexadecimal instructions
  • ISS instructions execution
  • Solid command line handling
  • Step by step execution with terminal-based GUI (Should be triggered manually by giving step in src/main.c the value 1)

GUI

  • Step mode with colors for the last used registory (for binary commands)
  • Last processed instruction

Cache

  • Basic implementation of an 8-lines cache based on a 36-bytes memory
  • Writethrough
  • Encoding and decoding of adresses and cache lines

To-do

  • CACHE: Functional cache
  • VM: More complete performance tests
  • VM: Negative numbers handling
  • GUI: Instructions and data should be visible as well

mini_mips's People

Contributors

qducasse avatar

Stargazers

Jean-Christophe Le Lann avatar

Watchers

James Cloos avatar Jean-Christophe Le Lann avatar

mini_mips's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.