llvm-mc
LLVM Machine Code Playground. It provides a set of tools for working with LLVM machine code. Part of LLVM. More information: https://llvm.org/docs/CommandGuide/llvm-mc.html.
- Assemble assembly code file into object file with machine code:
llvm-mc --filetype=obj -o path/to/output.o path/to/input.s
- Disassemble object file with machine code into assembly code file:
llvm-mc --disassemble -o path/to/output.s path/to/input.o
- Compile LLVM bit code file into assembly code:
llvm-mc -o path/to/output.s path/to/input.bc
- Assemble assembly code from standard input stream and show encoding to standard output stream:
echo "addl %eax, %ebx" | llvm-mc -show-encoding -show-inst
- Disassemble machine code from standard input stream for specified triple:
echo "0xCD 0x21" | llvm-mc --disassemble -triple=target_name