private void btnExportAssembly_Click(object sender, EventArgs e) { string disassembly; if (!m_Disassembler.Disassemble(m_DisassemblyProject.DataStartAddress, m_DisassemblyProject.JumpedAtAddresses, m_DisassemblyProject.NamedLabels, false, out disassembly)) { 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 (m_Core.MainForm.m_Solution != null) { while (m_Core.MainForm.m_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(m_Core); document.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document; document.Core = m_Core; document.Text = System.IO.Path.GetFileName(newFilename); document.FillContent(disassembly); document.Show(m_Core.MainForm.panelMain); }
public void SetASMFileInfo(Types.ASM.FileInfo FileInfo, List <Types.AutoCompleteItemInfo> KnownTokenList, GR.Collections.MultiMap <string, SymbolInfo> KnownTokenInfo) { SourceASMEx asm = null; if ((BaseDoc != null) && (Type == ProjectElement.ElementType.ASM_SOURCE)) { asm = BaseDoc as SourceASMEx; } if (asm != null) { asm.DoNotFollowZoneSelectors = true; asm.SetLineInfos(FileInfo); } ASMFileInfo = FileInfo; KnownKeywords = KnownTokenList; KnownTokens = KnownTokenInfo; if (BaseDoc != null) { BaseDoc.Core.MainForm.AddTask(new Tasks.TaskUpdateKeywords(BaseDoc)); } if (Element != null) { // and to all it's deduced dependencies! foreach (var dependencyBuildState in DeducedDependency.Values) { foreach (var dependency in dependencyBuildState.BuildState.Keys) { ProjectElement element = Project.GetElementByFilename(dependency); if ((element != null) && (element.DocumentInfo.Type == ProjectElement.ElementType.ASM_SOURCE)) { element.DocumentInfo.SetASMFileInfo(FileInfo, KnownTokenList, KnownTokenInfo); } } } } if (asm != null) { asm.DoNotFollowZoneSelectors = false; } }