From 467ec78e894c8184144bfac039dc7d780abbd050 Mon Sep 17 00:00:00 2001 From: krolxon Date: Thu, 8 Jan 2026 19:21:43 +0530 Subject: add SYS instruction --- src/assembler.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/assembler.rs') diff --git a/src/assembler.rs b/src/assembler.rs index 73dec00..784337b 100644 --- a/src/assembler.rs +++ b/src/assembler.rs @@ -26,6 +26,7 @@ fn is_reg(s: &str) -> bool { fn instr_size(tokens: &[String]) -> u16 { match tokens[0].as_str() { "mov" | "add" | "sub" | "jmp" | "jz" | "jnz" | "cmp" | "mul" | "div" | "call" => 3, + "sys" => 2, "hlt" | "ret" => 1, _ => panic!("Unknown instruction {}", tokens[0]), } @@ -190,6 +191,12 @@ pub fn assembler(source: &str) -> Vec { bytes.push(Instruction::HLT as u8); } + "sys" => { + let imm = tokens[1].parse().unwrap(); + bytes.push(Instruction::SYS as u8); + bytes.push(imm); + } + _ => panic!("Line {}: unknown instruction", line_no + 1), } } -- cgit v1.2.3