diff --git a/assembly/src/assembler/instruction/mod.rs b/assembly/src/assembler/instruction/mod.rs
index 11e64c4f30..06875bc411 100644
--- a/assembly/src/assembler/instruction/mod.rs
+++ b/assembly/src/assembler/instruction/mod.rs
@@ -325,6 +325,8 @@ impl Assembler {
Instruction::CallMastRoot(root) => self.call_mast_root(root, ctx),
Instruction::CallImported(id) => self.call_imported(id, ctx),
Instruction::SysCall(id) => self.syscall(id, ctx),
+ Instruction::DynExec => self.dynexec(),
+ Instruction::DynCall => self.dyncall(),
// ----- debug decorators -------------------------------------------------------------
Instruction::Breakpoint => {
diff --git a/assembly/src/assembler/instruction/procedures.rs b/assembly/src/assembler/instruction/procedures.rs
index fcd3d8ce48..43bcee08b2 100644
--- a/assembly/src/assembler/instruction/procedures.rs
+++ b/assembly/src/assembler/instruction/procedures.rs
@@ -123,4 +123,14 @@ impl Assembler {
// create a new SYSCALL block for the procedure call and return
Ok(Some(CodeBlock::new_syscall(proc.mast_root())))
}
+
+ pub(super) fn dynexec(&self) -> Result