From 65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 13 Feb 2025 18:39:05 +0200 Subject: feat: Impelemnt VM --- vm/src/main.rs | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'vm/src/main.rs') diff --git a/vm/src/main.rs b/vm/src/main.rs index 7b0216d..bf3655c 100644 --- a/vm/src/main.rs +++ b/vm/src/main.rs @@ -7,7 +7,45 @@ mod vmm; use vmm::VirtualMachineMonitor; fn main() { - let vm = VirtualMachine::create(); + /* This is a simple program: calculate 331 + 95 in address 5 + * + * > ADD 331, 95 + * > JMP 0 + * + * > subleq 331, 0 + * > subleq 0, 95 + * > subleq 0, 0 + * > subleq 0, 0, 0 + * + * > subleq 3, 0 + * > subleq 0, 4 + * > subleq 0, 0 + * > subleq 0, 0, 0 + */ + let vm = VirtualMachine::create_with_memory(&vec![ + /* 0 */ 0, + /* 1 */ -1_i64 as u64, + /* 2 */ 5, + /* 3 */ 331, + /* 4 */ 95, + + + /* 5 */ 3, + /* 6 */ 0, + /* 7 */ 8, + + /* 8 */ 0, + /* 9 */ 4, + /* 10 */ 11, + + /* 11 */ 0, + /* 12 */ 0, + /* 13 */ 14, + + /* 14 */ 0, + /* 15 */ 0, + /* 16 */ 0, + ]); let _vm_handle = { let vm = Arc::clone(&vm); -- cgit v1.3.1-26-gb76a