Skip to content
Guillaume DERAMCHI edited this page Feb 22, 2024 · 7 revisions

Virtual processor Team 2 Wiki

Project introduction

Welcome to the virtual processor Team 2 wiki! This project aims to develop a virtual processor capable of interpreting and running our custom assembly language. The project is a blend of software engineering and computer architecture, bridging the gap between high-level programming and low-level machine operations.

Goal of the project

The primary goal is to create a virtual processor and an accompanying interpreter. This system will enable the execution of a custom assembly language(we chose "AT2" as a name), designed specifically for this processor. The project focuses on understanding and implementing core concepts of computer architecture and assembly language processing in a virtual environment.

Development specifications

  • Programming Language: The project is to be developed in plain, portable C, using only the C standard libraries.
  • Recommended Tools:
    • Compiler: gcc (GNU Compiler Collection)
    • Integrated Development Environment (IDE): Visual Studio Code
    • CMake

Assembly language requirements

  • Minimal assembly language: Invent a minimal assembly language for the processor.
  • Instruction set:
    • Storing an immediate value in a register.
    • Copying values between registers.
    • Memory read and write operations using registers.
    • Register content comparison.
    • Unconditional and conditional jumps to labels.
    • Subroutine call and return operations.
    • Basic arithmetic operations: addition, subtraction, multiplication, division.
    • Basic logical operations: OR, AND, XOR, NOT.

Interpreter development

  • C program: Develop a C program to read and execute programs written in the custom assembly language.
  • Error checking: Ensure the program checks for both semantic validity and syntactical errors in the assembly code.
  • Virtual system call: Implement a virtual system call for displaying text in a virtual terminal accessible from the assembly code.
  • Debugging features: Include functionalities to display register contents and integrate a built-in debugger.

Documentation

  • Functional specification: Detailed description of the assembly language.
  • Technical specification: Description of how the C program operates and interprets the assembly code.

Testing

  • Write small assembly programs, akin to unit tests, to validate the functionality and reliability of the virtual processor and its interpreter.

This Wiki serves as a comprehensive guide to understanding, developing, and contributing to the Virtual Processor Project. Explore the following pages for detailed information on the AT2, interpreter functionalities, development guidelines, and more.

Clone this wiki locally