The Official Radare2 Book | страница 68



adAe _8_16 avr GPL AVR Atmel

adAe _16_32_64 bf LGPL3 Brainfuck

_dA_ _32 chip8 LGPL3 Chip8 disassembler

_dA_ _16 cr16 LGPL3 cr16 disassembly plugin

_dA_ _32 cris GPL3 Axis Communications 32-bit embedded processor

adA_ _32_64 dalvik LGPL3 AndroidVM Dalvik

ad__ _16 dcpu16 PD Mojang's DCPU-16

_dA_ _32_64 ebc LGPL3 EFI Bytecode

adAe _16 gb LGPL3 GameBoy(TM) (z80-like)

_dAe _16 h8300 LGPL3 H8/300 disassembly plugin

_dAe _32 hexagon LGPL3 Qualcomm Hexagon (QDSP6) V6

_d__ _32 hppa GPL3 HP PA-RISC

_dAe _0 i4004 LGPL3 Intel 4004 microprocessor

_dA_ _8 i8080 BSD Intel 8080 CPU

adA_ _32 java Apache Java bytecode

_d__ _32 lanai GPL3 LANAI

...

There are multiple options which can be used to configure the output of the disassembler. All these options are described in e? asm.

[0x00005310]> e? asm.

asm.anal: Analyze code and refs while disassembling (see anal.strings)

asm.arch: Set the arch to be used by asm

asm.assembler: Set the plugin name to use when assembling

asm.bbline: Show empty line after every basic block

asm.bits: Word size in bits at assembler

asm.bytes: Display the bytes of each instruction

asm.bytespace: Separate hexadecimal bytes with a whitespace

asm.calls: Show callee function related info as comments in disasm

asm.capitalize: Use camelcase at disassembly

asm.cmt.col: Column to align comments

asm.cmt.flgrefs: Show comment flags associated to branch reference

asm.cmt.fold: Fold comments, toggle with Vz

...

Currently there are 136 asm. configuration variables so we do not list them all.

The asm.syntax variable is used to change the flavor of the assembly syntax used by a disassembler engine. To switch between Intel and AT&T representations:

e asm.syntax = intel

e asm.syntax = att

You can also check asm.pseudo, which is an experimental pseudocode view, and asm.esil which outputs ESIL ('Evaluable Strings Intermediate Language'). ESIL's goal is to have a human-readable representation of every opcode semantics. Such representations can be evaluated (interpreted) to emulate effects of individual instructions.

Flags are conceptually similar to bookmarks. They associate a name with a given offset in a file. Flags can be grouped into 'flag spaces'. A flag space is a namespace for flags, grouping together flags of similar characteristics or type. Examples for flag spaces: sections, registers, symbols.