diff --git a/src/interpreter/interpreter.rs b/src/interpreter/interpreter.rs index 84907f1..348d9f8 100644 --- a/src/interpreter/interpreter.rs +++ b/src/interpreter/interpreter.rs @@ -612,6 +612,13 @@ impl Interpreter { self.set_ip(return_addr as usize); continue; } + Mnemonic::RET_Iw(w) => { + let return_addr = self.computer.pop_stack()?; + self.set_ip(return_addr as usize); + // release no longer needed values from stack + self.computer.regs.sp += w; + continue; + } /* * Load ES/DS Register