Phasm is a fast and flexible assembler written in Rust. It aims to support encoding and decoding assembly instructions for x86 and ARM, with ELF integration.
- Encoding & Decoding: Convert assembly code to machine code and vice versa.
- Multi-Architecture Support: Supports x86 and ARM architectures.
- ELF Integration: Work with ELF binaries.
- Modular Design: Enable only the features you need.
Add phasm
as a dependency in your Cargo.toml
:
[dependencies]
phasm = "0.1"
To use specific features:
[dependencies]
phasm = { version = "0.1", features = ["x86", "encode"] }
use phasm::arm::ArmAssembler;
let machine_code = ArmAssembler::encode("mov r0, r1").unwrap();
println!("{:x?}", machine_code);
use phasm::x86::X86Assembler;
let assembly = X86Assembler::decode(&[0x89, 0xD8]).unwrap();
println!("{:?}", assembly);
Feature | Description |
---|---|
encode |
Enables instruction encoding |
decode |
Enables instruction decoding |
x86 |
Adds support for x86 architecture |
arm |
Adds support for ARM architecture |
elf |
Enables ELF binary integration |