Website Summary Files Commits Branches @commit @diff @stats
path: root / vm / src / main.rs
diff options
context:
space:
mode:
Commit65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-02-13 18:39:05 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-02-13 18:39:05 +0200
Files5463364ddf75db445c36015444f11e682a1d4213 /vm/src/main.rs
tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.tar
tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.tar.gz
tonkobali-65a1e742f5fa853d2cdb9ba43eaa8bbf70f2a97d.zip
Parent0d95ea161912f9b081c4148bd5b58679cd005c37 (diff)
feat: Impelemnt VM
1 files changed, 39 insertions, 1 deletions
-rw-r--r--vm/src/main.rs40
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);