const MEM_SIZE: usize = 2_usize.pow(24);
struct Memory {
mem: [u32; MEM_SIZE],
}
impl Default for Memory {
fn default() -> Self {
Self { mem: [0; MEM_SIZE] }
}
}
#[derive(Default)]
struct Registers {
r0: u32,
r1: u32,
r2: u32,
r3: u32,
r4: u32,
r5: u32,
r6: u32,
r7: u32,
r8: u32,
r9: u32,
r10: u32,
r11: u32,
r12: u32,
r13: u32,
r14: u32,
r15: u32,
rpc: u32,
rcnd: u32,
}
#[derive(Default)]
pub struct VirtualMachine {
mem: Memory,
reg: Registers,
}