diff --git a/lib/cli.py b/lib/cli.py
index 28d71a24eadd8d116f226290530db8a7dba3fcfb..d374a36b2c8c33a08193d4c4bee1ffa07cf350b2 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -336,7 +336,7 @@ def AskUser(text, choices=None):
   return answer
 
 
-def SubmitOpCode(op):
+def SubmitOpCode(op, proc=None, feedback_fn=None):
   """Function to submit an opcode.
 
   This is just a simple wrapper over the construction of the processor
@@ -344,8 +344,11 @@ def SubmitOpCode(op):
   interaction functions.
 
   """
-  proc = mcpu.Processor()
-  return proc.ExecOpCode(op, logger.ToStdout)
+  if proc is None:
+    proc = mcpu.Processor()
+  if feedback_fn is None:
+    feedback_fn = logger.ToStdout
+  return proc.ExecOpCode(op, feedback_fn)
 
 
 def GenericMain(commands, override=None):