Just released v0.2.0 of bddisasm - a no_std x86/x86_64 instruction decoder which aims to provide as much information as possible about an instruction
First of all, I want to thank everyone who offered feedback when I announced the first version. This version incorporates a lot of what this community suggested, and it helped me in my Rust learning journey.
The Bitdefender disassembler is a C library that is able to decode and extract a wide range of information from all x86 and x86_64 instructions. The main goal is to provide an easy way of emulating and analyzing instructions.
The list available information includes:
- implicit and explicit operands
- access mode for each operand
- the type of each operand (register, memory, immediate, etc)
- CPU modes in which an instruction is valid
- CPUID flags that can be checked in order to see if an instruction is supported
- list of exceptions that can be triggered by an instructions
Rust functionality is split into two crates
- bddisasm-sys which holds the raw C bindings
- bddisasm which aims to offer some higher-level abstractions
As usual, I appreciate any kind of feedback. I'm new to Rust and I enjoy learning it.