Skip to content

Latest commit

 

History

History
119 lines (62 loc) · 2.43 KB

README.md

File metadata and controls

119 lines (62 loc) · 2.43 KB

Designed by ✒️

@eos175

@kjiron

MIPS Emulator in Assembly x86

The idea of this project is to do something similar to what MARS2 does, to be able to interpret MIPS type instructions and use the linux terminal as a graphical environment to have data output and input. All this is designed in asssembler for the x86 CPU architecture

Installing NASM

sudo apt-get install -y nasm

You need to install special fonts for better visualization! (optional)

To do this, you must first double click on

And then click install

Now you must change the font type of the terminal in preferences

Create a new profile for the new font

Change in Custom font to Square modern size 6

In compatibility change to IBM855 this is for extended ASCII characters ('▒')

And that would be it, you already have the terminal configured properly

How do I compile the Emulator?

make build

Change the Command Line Arguments

pong

./mips_emu.app ejemplos/pong.text.hex ejemplos/pong.data.hex

pong

snake

./mips_emu.app ejemplos/snake.text.hex ejemplos/snake.data.hex

snake

You can turn on debugging, so you can see in a file each decoded instruction only by changing DEBUG to 1

ToDo

  • use git
  • bin -> hex
  • do makefile
  • reed args
  • reed file
  • link the emulator
  • $gp -> pointer screen
  • pointer keyboard

References

All suggestions and criticism are welcome

Misto423 - Assembly-Snake

AndrewHamm - MIPS-Pong

Square.ttf

MIPS Converter

MIPS Instruction Reference

MIPS Instruction Formats

Netwide Assembler - Netwide Assembler

x86_64 Linux Assembly #1 - "Hello, World!"

x86_64 Linux Assembly #12 - Reading Files

Combine C & Assembly