Exemple #1
0
 static string dump_dir(OPERAND op)
 {
     switch ((OP_SIZE)op.size)
     {
     case OP_SIZE.OPERAND_SIZE_32:
     return op.value.far_addr.far_addr32.seg.ToString("X") + ":" + op.value.far_addr.far_addr32.offset.ToString("X");
     case OP_SIZE.OPERAND_SIZE_48:
     return op.value.far_addr.far_addr48.seg.ToString("X") + ":" + op.value.far_addr.far_addr48.offset.ToString("X");
     default:
     return "internal error";
     }
 }
Exemple #2
0
 static string dump_imm(OPERAND op)
 {
     return "0x"+op.value.imm.imm64.ToString("X");
 }
Exemple #3
0
 static string dump_addr(INSTRUCTION instr, OPERAND op)
 {
     string res = "[";
     if ((op.value.addr.mod & ADDR_MOD_BASE)!=0)
     {
     res += dump_reg_gen(op.value.addr.bas, instr.addrsize);
     }
     if ((op.value.addr.mod & ADDR_MOD_IDX)!=0)
     {
     if ((op.value.addr.mod & ADDR_MOD_BASE)!=0)
     {
     res += "+";
     }
     res += dump_reg_gen(op.value.addr.index, instr.addrsize);
     if (op.value.addr.scale != 0x1)
     {
     res += '*' + op.value.addr.scale.ToString("X");
     }
     }
     if ((op.value.addr.mod & ADDR_MOD_DISP)!=0)
     {
     if ((op.value.addr.mod & ~ADDR_MOD_DISP)!=0)
     {
        res += '+';
     }
     res += "0x"+instr.disp.value.d64.ToString("X");
     }
     res += ']';
     return res;
 }