Expand description
RV32IMA disassembler — objdump-compatible output.
Converts a 32-bit instruction word into a human-readable string using
ABI register names and common pseudo-instructions. When a SymbolTable
is provided, branch and jump targets are annotated with symbol names.
§Output format
The format matches GNU objdump (-M no-aliases disabled, i.e. pseudos on):
80000014 510010ef jal ra, <main>
80001524 ff010113 addi sp, sp, -16
80001528 00112623 sw ra, 12(sp)§Pseudo-instructions
The following common pseudos are emitted when the encoding matches:
| Pseudo | Canonical form |
|---|---|
nop | addi zero, zero, 0 |
mv rd, rs | addi rd, rs, 0 |
li rd, imm | addi rd, zero, imm |
not rd, rs | xori rd, rs, -1 |
neg rd, rs | sub rd, zero, rs |
snez rd, rs | sltu rd, zero, rs |
ret | jalr zero, 0(ra) |
jr rs | jalr zero, 0(rs) |
j offset | jal zero, offset |
beqz/bnez/bltz/bgez | branch with zero as one operand |
§Static disassembly
disasm_elf disassembles an entire ELF image segment by segment, with
symbol labels printed before each function — equivalent to objdump -d.
Functions§
- disasm_
elf - Disassemble an entire ELF image, segment by segment, like
objdump -d. - disassemble
- Disassemble one RV32IMA instruction into an objdump-compatible string.