構成 | |
struct | ByteMnemonic |
struct | InstructionDesc |
class | InstructionTable |
class | DisassemblerIA32 |
class | NameConverter |
class | Disassembler |
型定義 | |
typedef unsigned char | byte |
列挙型 | |
enum | OperandOrder { UNSET_OP_ORDER = 0, REG_OPER_OP_ORDER, OPER_REG_OP_ORDER } |
enum | InstructionType { NO_INSTR, ZERO_OPERANDS_INSTR, TWO_OPERANDS_INSTR, JUMP_CONDITIONAL_SHORT_INSTR, REGISTER_INSTR, MOVE_REG_INSTR, CALL_JUMP_INSTR, SHORT_IMMEDIATE_INSTR } |
関数 | |
static const char * | F0Mnem (byte f0byte) |
変数 | |
static const char * | reg_names [16] |
static NameConverter | defaultConverter |
static ByteMnemonic | two_operands_instr [] |
static ByteMnemonic | zero_operands_instr [] |
static ByteMnemonic | call_jump_instr [] |
static ByteMnemonic | short_immediate_instr [] |
static const char * | jump_conditional_mnem [] |
static InstructionTable | instruction_table |
static const char * | cpu_regs [8] |
static const char * | xmm_regs [8] |
typedef unsigned char disasm::byte |
NO_INSTR | |
ZERO_OPERANDS_INSTR | |
TWO_OPERANDS_INSTR | |
JUMP_CONDITIONAL_SHORT_INSTR | |
REGISTER_INSTR | |
MOVE_REG_INSTR | |
CALL_JUMP_INSTR | |
SHORT_IMMEDIATE_INSTR |
disasm-ia32.cc の 118 行で定義されています。
enum disasm::OperandOrder |
disasm-ia32.cc の 37 行で定義されています。
static const char* disasm::F0Mnem | ( | byte | f0byte | ) | [static] |
ByteMnemonic disasm::call_jump_instr[] [static] |
{ {0xE8, "call", UNSET_OP_ORDER}, {0xE9, "jmp", UNSET_OP_ORDER}, {-1, "", UNSET_OP_ORDER} }
disasm-ia32.cc の 91 行で定義されています。
const char* disasm::cpu_regs[8] [static] |
{ "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi", }
disasm-ia32.cc の 1055 行で定義されています。
static NameConverter disasm::defaultConverter [static] |
disasm-arm.cc の 895 行で定義されています。
disasm-ia32.cc の 218 行で定義されています。
const char* disasm::jump_conditional_mnem[] [static] |
{ "jo", "jno", "jc", "jnc", "jz", "jnz", "jna", "ja", "js", "jns", "jpe", "jpo", "jl", "jnl", "jng", "jg" }
disasm-ia32.cc の 110 行で定義されています。
参照元 disasm::InstructionTable::AddJumpConditionalShort(), disasm::DisassemblerIA32::JumpConditional(), と disasm::DisassemblerIA32::JumpConditionalShort().
const char* disasm::reg_names[16] [static] |
{ "r0", "r1", "r2" , "r3" , "r4" , "r5" , "r6" , "r7" , "r8", "r9", "sl", "fp", "ip", "sp", "lr", "pc", }
disasm-arm.cc の 851 行で定義されています。
ByteMnemonic disasm::short_immediate_instr[] [static] |
{ {0x05, "add", UNSET_OP_ORDER}, {0x0D, "or", UNSET_OP_ORDER}, {0x15, "adc", UNSET_OP_ORDER}, {0x25, "and", UNSET_OP_ORDER}, {0x2D, "sub", UNSET_OP_ORDER}, {0x35, "xor", UNSET_OP_ORDER}, {0x3D, "cmp", UNSET_OP_ORDER}, {-1, "", UNSET_OP_ORDER} }
disasm-ia32.cc の 98 行で定義されています。
ByteMnemonic disasm::two_operands_instr[] [static] |
{ {0x03, "add", REG_OPER_OP_ORDER}, {0x21, "and", OPER_REG_OP_ORDER}, {0x23, "and", REG_OPER_OP_ORDER}, {0x3B, "cmp", REG_OPER_OP_ORDER}, {0x8D, "lea", REG_OPER_OP_ORDER}, {0x09, "or", OPER_REG_OP_ORDER}, {0x0B, "or", REG_OPER_OP_ORDER}, {0x1B, "sbb", REG_OPER_OP_ORDER}, {0x29, "sub", OPER_REG_OP_ORDER}, {0x2B, "sub", REG_OPER_OP_ORDER}, {0x85, "test", REG_OPER_OP_ORDER}, {0x31, "xor", OPER_REG_OP_ORDER}, {0x33, "xor", REG_OPER_OP_ORDER}, {0x8A, "mov_b", REG_OPER_OP_ORDER}, {0x8B, "mov", REG_OPER_OP_ORDER}, {-1, "", UNSET_OP_ORDER} }
disasm-ia32.cc の 54 行で定義されています。
const char* disasm::xmm_regs[8] [static] |
{ "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", }
disasm-ia32.cc の 1060 行で定義されています。
ByteMnemonic disasm::zero_operands_instr[] [static] |
{ {0xC3, "ret", UNSET_OP_ORDER}, {0xC9, "leave", UNSET_OP_ORDER}, {0x90, "nop", UNSET_OP_ORDER}, {0xF4, "hlt", UNSET_OP_ORDER}, {0xCC, "int3", UNSET_OP_ORDER}, {0x60, "pushad", UNSET_OP_ORDER}, {0x61, "popad", UNSET_OP_ORDER}, {0x9C, "pushfd", UNSET_OP_ORDER}, {0x9D, "popfd", UNSET_OP_ORDER}, {0x9E, "sahf", UNSET_OP_ORDER}, {0x99, "cdq", UNSET_OP_ORDER}, {0x9B, "fwait", UNSET_OP_ORDER}, {-1, "", UNSET_OP_ORDER} }
disasm-ia32.cc の 74 行で定義されています。