構成 | |
| 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 行で定義されています。
1.7.1