def get_instructions_bytes(bytecode, opc, varnames=None, names=None, constants=None,<EOL>cells=None, linestarts=None, line_offset=<NUM_LIT:0>):
labels = opc.findlabels(bytecode, opc)<EOL>extended_arg = <NUM_LIT:0><EOL>python_36 = True if opc.python_version >= <NUM_LIT> else False<EOL>starts_line = None<EOL>n = len(bytecode)<EOL>i = <NUM_LIT:0><EOL>extended_arg_count  = <NUM_LIT:0><EOL>extended_arg = <NUM_LIT:0><EOL>extended_arg_size = op_size(opc.EXTENDED_ARG, opc)<EOL>while i < n:<EOL><INDENT>op = code2num(bytecode, i)<EOL>offset = i<EOL>if linestarts is not None:<EOL><INDENT>starts_line = linestarts.get(i, None)<EOL>if starts_line is not None:<EOL><INDENT>starts_line += line_offset<EOL><DEDENT><DEDENT>if i in labels:<EOL><INDENT>if False: <EOL><INDENT>is_jump_target = '<STR_LIT>'<EOL><DEDENT>else:<EOL><INDENT>is_jump_target = True<EOL><DEDENT><DEDENT>else:<EOL><INDENT>is_jump_target = False<EOL><DEDENT>i += <NUM_LIT:1><EOL>arg = None<EOL>argval = None<EOL>argrepr = '<STR_LIT>'<EOL>has_arg = op_has_argument(op, opc)<EOL>optype = None<EOL>if has_arg:<EOL><INDENT>if python_36:<EOL><INDENT>arg = code2num(bytecode, i) | extended_arg<EOL>extended_arg = (arg << <NUM_LIT:8>) if op == opc.EXTENDED_ARG else <NUM_LIT:0><EOL>i += <NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>arg = code2num(bytecode, i) + code2num(bytecode, i+<NUM_LIT:1>)*<NUM_LIT> + extended_arg<EOL>i += <NUM_LIT:2><EOL>extended_arg = arg*<NUM_LIT> if op == opc.EXTENDED_ARG else <NUM_LIT:0><EOL><DEDENT>argval = arg<EOL>if op in opc.CONST_OPS:<EOL><INDENT>argval, argrepr = _get_const_info(arg, constants)<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.NAME_OPS:<EOL><INDENT>argval, argrepr = _get_name_info(arg, names)<EOL>optype = '<STR_LIT:name>'<EOL><DEDENT>elif op in opc.JREL_OPS:<EOL><INDENT>argval = i + arg<EOL>argrepr = "<STR_LIT>" + repr(argval)<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.JABS_OPS:<EOL><INDENT>argval = arg<EOL>argrepr = "<STR_LIT>" + repr(argval)<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.LOCAL_OPS:<EOL><INDENT>argval, argrepr = _get_name_info(arg, varnames)<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.COMPARE_OPS:<EOL><INDENT>argval = opc.cmp_op[arg]<EOL>argrepr = argval<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.FREE_OPS:<EOL><INDENT>argval, argrepr = _get_name_info(arg, cells)<EOL>optype = '<STR_LIT>'<EOL><DEDENT>elif op in opc.NARGS_OPS:<EOL><INDENT>optype = '<STR_LIT>'<EOL>if not python_36:<EOL><INDENT>argrepr = ("<STR_LIT>" %<EOL>(code2num(bytecode, i-<NUM_LIT:2>), code2num(bytecode, i-<NUM_LIT:1>)))<EOL><DEDENT><DEDENT>elif op in opc.VARGS_OPS:<EOL><INDENT>optype = '<STR_LIT>'<EOL><DEDENT>if hasattr(opc, '<STR_LIT>') and opc.opname[op] in opc.opcode_arg_fmt:<EOL><INDENT>argrepr = opc.opcode_arg_fmt[opc.opname[op]](arg)<EOL><DEDENT><DEDENT>elif python_36:<EOL><INDENT>i += <NUM_LIT:1><EOL><DEDENT>opname = opc.opname[op]<EOL>inst_size = op_size(op, opc) + (extended_arg_count * extended_arg_size)<EOL>yield Instruction(opname, op, optype, inst_size, arg, argval, argrepr,<EOL>has_arg, offset, starts_line, is_jump_target,<EOL>extended_arg_count != <NUM_LIT:0>)<EOL>extended_arg_count = extended_arg_count + <NUM_LIT:1> if op == opc.EXTENDED_ARG else <NUM_LIT:0><EOL><DEDENT>
Iterate over the instructions in a bytecode string.

    Generates a sequence of Instruction namedtuples giving the details of each
    opcode.  Additional information about the code's runtime environment
    (e.g. variable names, constants) can be specified using optional
    arguments.