The lrvm
crate contains the core of LRVM: the motherboard and components emulation, as well as the CPU and the MMU.
It is split across several main types:
board::MotherBoard
is the virtual motherboard typemem::Mem
is the virtual motherboard's mapped memoryboard::Bus
is a trait components must implement in order to be connected to the motherboardcpu::CPU
is the virtual CPUcpu::Regs
represent the registers of the virtual CPUmmu::MMU
is the virtual MMU (Memory Management Unit)
If you want to make use of this crate, you can take up the tutorial to see how to build a virtual machine, assemble a program and run it with debugging tools.
You can find a collection of useful auxiliary components in the lrvm_aux
crate.
There is also a set of tools to deal with the VM (including a complete assembler and a set of debugging tools) in the lrvm_tools
crate.
You can find more details about LRVM's architecture in the architecture document.