diff options
| Commit | 65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d (patch) | |
|---|---|---|
| Author | 2025-02-13 18:39:05 +0200 | |
| Committer | 2025-02-13 18:39:05 +0200 | |
| Files | 5463364ddf75db445c36015444f11e682a1d4213 /vm/src/main.rs | |
| tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.tar tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.tar.gz tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.zip | ||
| Parent | 0d95ea161912f9b081c4148bd5b58679cd005c37 (diff) | |
feat: Impelemnt VM
1 files changed, 39 insertions, 1 deletions
| -rw-r--r-- | vm/src/main.rs | 40 |
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); |
