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; } }
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); }