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

43 points bogdannumaprind

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.