{"id":13629529,"url":"https://github.com/HJLebbink/asm-dude","last_synced_at":"2025-04-17T09:34:39.530Z","repository":{"id":43730874,"uuid":"52097767","full_name":"HJLebbink/asm-dude","owner":"HJLebbink","description":"Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window","archived":false,"fork":false,"pushed_at":"2024-04-01T12:06:41.000Z","size":84120,"stargazers_count":4123,"open_issues_count":43,"forks_count":97,"subscribers_count":730,"default_branch":"master","last_synced_at":"2024-10-29T15:28:49.733Z","etag":null,"topics":["assembler","assembly","assembly-language-programming","avx2","avx512","code-completion","disassembly","masm","nasm","syntax-highlighting","visual-studio","visual-studio-extension","x86-64"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HJLebbink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-19T15:43:23.000Z","updated_at":"2024-10-27T04:07:36.000Z","dependencies_parsed_at":"2023-11-15T22:42:39.992Z","dependency_job_id":"dfbc9345-25d5-47f9-b369-f094d8f68db1","html_url":"https://github.com/HJLebbink/asm-dude","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HJLebbink%2Fasm-dude","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HJLebbink%2Fasm-dude/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HJLebbink%2Fasm-dude/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HJLebbink%2Fasm-dude/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HJLebbink","download_url":"https://codeload.github.com/HJLebbink/asm-dude/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223751207,"owners_count":17196588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembler","assembly","assembly-language-programming","avx2","avx512","code-completion","disassembly","masm","nasm","syntax-highlighting","visual-studio","visual-studio-extension","x86-64"],"created_at":"2024-08-01T22:01:12.962Z","updated_at":"2024-11-08T20:31:09.928Z","avatar_url":"https://github.com/HJLebbink.png","language":"C#","funding_links":[],"categories":["Tools","C#","C# #","杀毒免杀_逆向工程"],"sub_categories":["资源传输下载"],"readme":"# AsmDude2\nAsmDude2 represents a natural evolution from its predecessor, AsmDude. While AsmDude served as a \nsingle, all-encompassing plugin for VS2015/17/19, providing support for Assembly source code, \nAsmDude2 is built around a Language Server Protocol ([LSP](https://microsoft.github.io/language-server-protocol/))\nand a lightweight Visual Studio extension (for VS2022), drawing its functionality from this LSP. \nTransitioning from a Visual Studio 2019 extension to one compatible with Visual Studio 2022 wasn't \nstraightforward. Many of the features from the older AsmDude have yet to be ported, and some may \nnever be. See the list of known issues and things still todo.\n\nThis extension can be found in the [visual studio extensions gallery](https://marketplace.visualstudio.com/items?itemName=Henk-JanLebbink.AsmDude2)\nor download latest installer [AsmDude.vsix (v2.0.0.4)](https://github.com/HJLebbink/asm-dude/releases/download/v2.0.0.4/Asmdude2.v2-0-0-4.vsix). \n\n### Features\n\n#### Syntax highlighting and Code Folding\nAsmDude2 offers support for the following architectures: the instruction sets of x86 and x64, as well as \nSSE, AVX, AVX2, Xeon-Phi (Knights Corner), and AVX-512 instructions.\nMost of the commonly used Masm directives covered, along with a selection of Nasm directives.\n\n![label-analysis](https://github.com/HJLebbink/asm-dude/blob/master/Images/AsmDude2-syntax-highlighting.png?raw=true \"Syntax highlighting\")\n\n#### Code Descriptions\nWhen you hover over a mnemonic, you may receive a pop-up with descriptions. These descriptions \ncan be modified and added by updating the AsmDudeData.xml file, which will be located alongside\nthe installed plugin binaries (.vsix). Finding the directory where plugins are installed can be\na bit challenging; you might want to try a location like C:\\Users\u003cuser\u003e\\AppData\\Local\\Microsoft\\VisualStudio\\17.0\\Extensions\\AsmDude2\\2.0.0.1\\Server.\nI kindly encourage you to share any updates you make.\n\n![code-descriptions](https://github.com/HJLebbink/asm-dude/blob/master/Images/AsmDude2-descriptions.png?raw=true \"Code descriptions\")\n\nPlease note that the formatting of the pop-up does not display Markdown (see the known issues)\n\n#### Code Completion \nWhile typing text, the completion lists will be refined to display the relevant \nlanguage keywords. This applies to all keywords. However, please be aware that code suggestions \nmay not be flawless at this stage; only valid code completions should be proposed.\n\n![code-completion](https://github.com/HJLebbink/asm-dude/blob/master/Images/AsmDude2-code-completion.png?raw=true \"Code Completion\")\n\n#### Signature Help\nSignature Help, also referred to as Parameter Info, presents the method's signature in a tooltip when\na user enters the character marking the start of the parameter list (e.g., in C++, an opening parenthesis). \nAs the user types a parameter and a parameter separator (usually a comma), \nthe tooltip is refreshed to display the next parameter in bold.\n\n![label-analysis](https://github.com/HJLebbink/asm-dude/blob/master/Images/AsmDude2-signature-help.png?raw=true \"Signature Help\")\n\n## Disassembly Window in VS\nSyntax highlighting in the disassembly window. No QuickInfo tooltips yet (see known issues)\n\n## Where is the Source (Are you sure this is not a honeypot?!)\nIf you're reading this, you're probably an assembly programmer. However, if you're still interested \nin some C#, or you're just being cautious, you can run the extension from the source code. To do \nthat, you'll need to have the Visual Studio 2022 SDK installed. To run the extension, press F5 or \nselect the 'Debug \u003e Start Debugging' option from the menu. This will launch a new instance of Visual \nStudio under the experimental environment.\n\n### Things For a next release\n* Update instructions for Sapphire Rapids\n* Support AMX\n* Make the LSP gracefully handle large (+10K lines)\n* Restore hyperlinks in mnemonics (from AsmDude)\n* Restore Label Analysis (from AsmDude)\n* Restore AsmSim (from AsmDude)\n\n### Feature Requests: (desire something - let me know)\n* Support AMX\n* Label rename assistance.\n* Code formatting.\n* Track flag influence. Select an opcode that uses a flag (as input), find the opcodes that produce this flag (as output). E.g.  select opcode cmovc or setc , highlight all opcodes such as btr, sal, sar, shl, shr, etc.\n* Register rename assistance. Highly desirable but very challenging. E.g. rename GPR rdx to rbx, find which rdx, edx, dx, dl and dh will need to be renamed, check if renames will clash with existing occurances of rbx, ebx, bx, bl and bh.\n* Arm support.\n* Nasm macros syntax highlighting.\n* Add support for MASM keyword \"comment\".\n* Add syntax highlighting, statement completion and syntax checks for struct member fields.\n* Disassembly window: show memory content from selected address (see [here](https://github.com/HJLebbink/asm-dude/issues/72)).\n* Disassembly window: show memory content of the stack frame and stack pointer (see [here](https://github.com/HJLebbink/asm-dude/issues/72)).\n* Add comment/uncomment functionality (see [Issue](https://github.com/HJLebbink/asm-dude/issues/76)).\n\n### Updates:\n* 21 September 2022: AsmDude2\n\n### Known issues\n* LSP client extension [for Visual Studio 2022](https://www.nuget.org/packages/Microsoft.VisualStudio.LanguageServer.Protocol.Extensions) does not honor Markdown. Please help me and vote for (https://stackoverflow.com/questions/77015711/popup-hover-with-markdown-from-a-language-server-protocol-lsp)\n* Debug window does not trigger requests to the LSP. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHJLebbink%2Fasm-dude","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHJLebbink%2Fasm-dude","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHJLebbink%2Fasm-dude/lists"}