- Notifications
You must be signed in to change notification settings - Fork9
d-edge/fasmi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Fasmi is a F# to Jitted ASM / IL disassembler as a dotnet tool. Maintained by folks atD-EDGE.
Install fasmi as a global dotnet tool
dotnet tool install fasmi -g
or as a dotnet local tool
dotnet new tool-manifestdotnet tool install fasmi
Create a demo.fsx F# interactive script:
letinc x= x+1
run fasmi:
dotnet fasmi ./demo.fsx
and open at the generated demo.asm file:
Demo.inc(Int32)L0000:leaeax,[rcx+1]L0003:ret
run fasmi in watch mode:
dotnet fasmi ./demo.fsx -w
Open the demo.fsx and demo.asm files side by side in your favorite editor, make changes to demo.fsx and save. The demo.asm file is updated on the fly.
USAGE: dotnet fasmi [--help] [--console] [--output <string>] [--watch] [--platform <x86|x64>] [--language <asm|il>] <string>SOURCE: <string> the source fsx or dotnet assembly fileOPTIONS: --console, -c output to console --output, -o <string> specifiy the output file --watch, -w run in watch mode --platform, -p <x86|x64> specify the platform for disassembly --language, -l <asm|il> specify the output language (asm/il) --help display this list of options.
The input can be a fsx F# script file or any dotnet .dll assemlby file. F# scripts are compiled for net 5.0.
Using a dotnet assembly as an input, you can use fasmi on any dotnet language.
With the-c
flag, the result is output to console rather than in a file.
Use the-o
flag to specifie the target file path and name.
The-w
flag runs fasmi in watch mode. The file is recompiled and disassembled automatically when saved.
Use the-p
flag to force x64 or x86 platform for disassembly.
Specify the target language with the-l
flag:
- asm : disassemble the jit output as a x86/x86 .asm file
- il : disassemble the output as a MSIL .il file
This tool is based onAndrey Shchekin code forhttps://sharplab.io/.
Help and feedback is always welcome and pull requests get accepted.
- First open an issue to discuss your changes
- After your change has been formally approved please submit your PR against the develop branch
- Please follow the code convention by examining existing code
- Add/modify the README.md as required
- Add/modify unit tests as required
- Please document your changes in the upcoming release notes in RELEASE_NOTES.md
- PRs can only be approved and merged when all checks succeed (builds on Windows, MacOs and Linux)
About
F# -> ASM disassembler
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.