/emu_8086

Primary LanguageRustMIT LicenseMIT

Contributors Forks Stargazers Issues rust-tests-shield docs-build-shield
MIT License LinkedIn

Quick Navigation:

Description

This project is an Intel 8086 emulator / vm that can run most of the 8086 instruction set and provides an interactive interpreter to run the program line by line. The repository contains the core library, which includes the preprocessor, data parser, and interpreter.

Features:

  • Emulates most of the 8086 instruction set
  • Provides an interactive interpreter to run the program line by line
  • Includes a preprocessor to expand macros and resolve labels
  • Includes a data parser to convert the preprocessed assembly language code into a data structure that can be understood by the interpreter
  • Includes an interpreter to execute the assembly language code one line at a time

Brief Overview: Using rust as the backend for driving the emulator and react as the frontend for the web app, the project is divided into two parts:

  • core: The core library that contains the preprocessor, data parser, and interpreter, this is the src-tauri folder.

  • ui: The web app that provides an interactive interface to run the emulator, this is the src folder.

How to run the project locally ?

  1. Clone the repository
git clone https://github.com/Sarath191181208/emu_8086
  1. Install the dependencies
cd emu_8086
npm i
  1. Run the project
npm run tauri dev

How it came to be ?

In collage we have a course called Computer Organization and Architecture. It was a course where you know how the computers came to be and how they work in different ways. How the processor works, how the memory, disk, etc work. We also have a project where to have to build a simple assembly program which is given as a problem statement by our professor. Intrigued by how the 8086 and how it works, I tried to make it from scratch. Altough I didn't have enough hardware, I sought to make it in software. I started with the preprocessor, then the data parser, and finally the interrupts.

Features different from other editors

  • The emulator is written in rust, which is a fast and safe language.
  • High focus on the editing experience.
  • Easy and redable syntax highlighting.
  • Easy to use and interactive interface.
  • Provides an interactive interpreter to run the program line by line.
  • Easy and intuitive way to debug the program.

Technologies used

Rust Tauri React Tailwind CSS Typescript

License

This project has been licensed under MIT License. Please see the LICENSE file for more details.

Author

Vangipuram Srinivasa Sarath Chandra