Пример #1
0
        private void UpdateDisassembly()
        {
            int topLine = editDisassembly.VisibleRange.Start.iLine;

            string disassembly;
            var    settings = new DisassemblerSettings()
            {
                AddLineAddresses = true, AddAssembledBytes = true
            };

            if (m_Disassembler.Disassemble(m_DisassemblyProject.DataStartAddress, m_DisassemblyProject.JumpedAtAddresses, m_DisassemblyProject.NamedLabels, settings, out disassembly, out int dummy))
            {
                editDisassembly.Text = disassembly;

                int firstLine = editDisassembly.VisibleRange.Start.iLine;

                editDisassembly.VerticalScroll.Value += topLine - firstLine;
            }
            else
            {
                editDisassembly.Text = disassembly;
            }
        }
Пример #2
0
        private void btnExportAssembly_Click(object sender, EventArgs e)
        {
            string disassembly;

            var settings = new DisassemblerSettings();

            if (!m_Disassembler.Disassemble(m_DisassemblyProject.DataStartAddress, m_DisassemblyProject.JumpedAtAddresses, m_DisassemblyProject.NamedLabels, settings, out disassembly, out int dummy))
            {
                return;
            }

            string newFilename = "disassembly.asm";

            try
            {
                newFilename = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(m_OpenedFilename), System.IO.Path.GetFileNameWithoutExtension(m_OpenedFilename)) + ".asm";
            }
            catch (Exception)
            {
                newFilename = "disassembly.asm";
            }

            if (Core.Navigating.Solution != null)
            {
                while (Core.Navigating.Solution.FilenameUsed(newFilename))
                {
                    newFilename = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(m_OpenedFilename), System.IO.Path.GetFileNameWithoutExtension(m_OpenedFilename)) + "1.asm";
                }
            }
            SourceASMEx document = new SourceASMEx(Core);

            document.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
            document.Core     = Core;
            document.Text     = System.IO.Path.GetFileName(newFilename);
            document.FillContent(disassembly, false);
            document.Show(Core.MainForm.panelMain);
        }