code: def execute(self, asm_instr):
          
          # Update the instruction pointer.
          self.ir_emulator.registers[self.ip] = asm_instr.address + asm_instr.size
  
          # Process syscall.
          if self.arch_info.instr_is_syscall(asm_instr):
              raise Syscall()
  
          # Process instruction and return next address instruction to execute.
          return self.__execute(asm_instr)
docs: Execute an assembler instruction.
  
          Args:
              asm_instr (X86Instruction): A instruction to execute.
  
          Returns:
              A int. The address of the next instruction to execute.