private void Disassemble()
            {
                while (true)
                {
                    var index = _current;
                    PushOperation(Directive.MarkLabel(GetOrAddLabel(index)));
                    if (index >= _stream.Length)
                    {
                        break;
                    }

                    var opcode = (short)_stream[index];
                    if (opcode >= OpCodeConst.Prefix7)
                    {
                        opcode    = (short)((_stream[index] << 8) + _stream[index + 1]);
                        _current += 2;
                    }
                    else
                    {
                        _current += 1;
                    }
                    DisassembleNextOpCode(index, opcode);
                }
            }