Skip to content
Adam Mathlay edited this page Oct 2, 2024 · 8 revisions

VERY IMPORTANT

These docs have not been updated in a very long time. And there for everything has likely changed. Sorry!!!! Docs will be updated when the project it more stable. These docs take far to much time to make and this project is "very demanding". Sorry!!!

MVM (Micro Virtual Machine) Wiki

Welcome to the wiki for the MVM (Micro Virtual Machine) project! This wiki provides detailed information about the design, implementation, and usage of MVM.

Introduction

MVM is a simple, educational virtual machine written in Kotlin. It was created to explore the fundamentals of virtual machine architecture and to provide a platform for experimentation.

Key Features

  • Custom Assembly Language: MVM uses a straightforward assembly language with instructions for data movement, arithmetic, stack operations, control flow, memory access, and system calls.
  • Fixed Memory: MVM uses a fixed amount of memory, simplifying memory management.
  • Error Handling: The VM utilizes exceptions for robust error handling.

Architecture

  • Registers: MVM uses a set of registers, including general-purpose registers, system call registers, and return registers.
  • Memory: The VM has a fixed amount of memory that is universally accessible.
  • Instruction Decoder: The VM includes a component to decode bytecode instructions.
  • Execution Engine: The execution engine fetches, decodes, and executes instructions.
  • System Calls: MVM provides a limited set of system calls to interact with the underlying operating system.

Using MVM

  1. Writing Byte Code: Programs are written in the MVM assembly language.
  2. Bytecode Execution: The MVM loads and executes the bytecode, interacting with the memory, registers, and system calls.

Wiki Sections:

Look at the sidebar!!!!

Contributing

Contributions to the MVM project NOT are welcome! This is a personal project. But you may submit issues