libdasm.h File Reference

#include <sys/types.h>
Include dependency graph for libdasm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _INST
struct  _OPERAND
struct  _INSTRUCTION

Defines

#define __LIBDASM_VERSION__   0x01040000
#define GET_VERSION_MAJOR   (__LIBDASM_VERSION__ & 0xff000000) >> 24
#define GET_VERSION_MINOR1   (__LIBDASM_VERSION__ & 0x00ff0000) >> 16
#define GET_VERSION_MINOR2   (__LIBDASM_VERSION__ & 0x0000ff00) >> 8
#define GET_VERSION_MINOR3   (__LIBDASM_VERSION__ & 0x000000ff)
#define __LITTLE_ENDIAN__
#define REGISTER_EAX   0
#define REGISTER_ECX   1
#define REGISTER_EDX   2
#define REGISTER_EBX   3
#define REGISTER_ESP   4
#define REGISTER_EBP   5
#define REGISTER_ESI   6
#define REGISTER_EDI   7
#define REGISTER_NOP   8
#define REG_EAX   REGISTER_EAX
#define REG_AX   REG_EAX
#define REG_AL   REG_EAX
#define REG_ES   REG_EAX
#define REG_ST0   REG_EAX
#define REG_ECX   REGISTER_ECX
#define REG_CX   REG_ECX
#define REG_CL   REG_ECX
#define REG_CS   REG_ECX
#define REG_ST1   REG_ECX
#define REG_EDX   REGISTER_EDX
#define REG_DX   REG_EDX
#define REG_DL   REG_EDX
#define REG_SS   REG_EDX
#define REG_ST2   REG_EDX
#define REG_EBX   REGISTER_EBX
#define REG_BX   REG_EBX
#define REG_BL   REG_EBX
#define REG_DS   REG_EBX
#define REG_ST3   REG_EBX
#define REG_ESP   REGISTER_ESP
#define REG_SP   REG_ESP
#define REG_AH   REG_ESP
#define REG_FS   REG_ESP
#define REG_ST4   REG_ESP
#define REG_EBP   REGISTER_EBP
#define REG_BP   REG_EBP
#define REG_CH   REG_EBP
#define REG_GS   REG_EBP
#define REG_ST5   REG_EBP
#define REG_ESI   REGISTER_ESI
#define REG_SI   REG_ESI
#define REG_DH   REG_ESI
#define REG_ST6   REG_ESI
#define REG_EDI   REGISTER_EDI
#define REG_DI   REG_EDI
#define REG_BH   REG_EDI
#define REG_ST7   REG_EDI
#define REG_NOP   REGISTER_NOP
#define REGISTER_TYPE_GEN   1
#define REGISTER_TYPE_SEGMENT   2
#define REGISTER_TYPE_DEBUG   3
#define REGISTER_TYPE_CONTROL   4
#define REGISTER_TYPE_TEST   5
#define REGISTER_TYPE_XMM   6
#define REGISTER_TYPE_MMX   7
#define REGISTER_TYPE_FPU   8
#define MASK_PREFIX_G1(x)   ((x) & 0xff000000) >> 24
#define PREFIX_LOCK   0x01000000
#define PREFIX_REPNE   0x02000000
#define PREFIX_REP   0x03000000
#define PREFIX_REPE   0x03000000
#define MASK_PREFIX_G2(x)   ((x) & 0x00ff0000) >> 16
#define PREFIX_ES_OVERRIDE   0x00010000
#define PREFIX_CS_OVERRIDE   0x00020000
#define PREFIX_SS_OVERRIDE   0x00030000
#define PREFIX_DS_OVERRIDE   0x00040000
#define PREFIX_FS_OVERRIDE   0x00050000
#define PREFIX_GS_OVERRIDE   0x00060000
#define MASK_PREFIX_G3(x)   ((x) & 0x0000ff00) >> 8
#define MASK_PREFIX_OPERAND(x)   ((x) & 0x00000f00) >> 8
#define MASK_PREFIX_ADDR(x)   ((x) & 0x0000f000) >> 12
#define PREFIX_OPERAND_SIZE_OVERRIDE   0x00000100
#define PREFIX_ADDR_SIZE_OVERRIDE   0x00001000
#define MASK_EXT(x)   ((x) & 0x000000ff)
#define EXT_G1_1   0x00000001
#define EXT_G1_2   0x00000002
#define EXT_G1_3   0x00000003
#define EXT_G2_1   0x00000004
#define EXT_G2_2   0x00000005
#define EXT_G2_3   0x00000006
#define EXT_G2_4   0x00000007
#define EXT_G2_5   0x00000008
#define EXT_G2_6   0x00000009
#define EXT_G3_1   0x0000000a
#define EXT_G3_2   0x0000000b
#define EXT_G4   0x0000000c
#define EXT_G5   0x0000000d
#define EXT_G6   0x0000000e
#define EXT_G7   0x0000000f
#define EXT_G8   0x00000010
#define EXT_G9   0x00000011
#define EXT_GA   0x00000012
#define EXT_GB   0x00000013
#define EXT_GC   0x00000014
#define EXT_GD   0x00000015
#define EXT_GE   0x00000016
#define EXT_GF   0x00000017
#define EXT_G0   0x00000018
#define EXT_T2   0x00000020
#define EXT_CP   0x00000030
#define TYPE_3   0x80000000
#define MASK_TYPE_FLAGS(x)   ((x) & 0xff000000)
#define MASK_TYPE_VALUE(x)   ((x) & 0x00ffffff)
#define FLAGS_NONE   0
#define MASK_AM(x)   ((x) & 0x00ff0000)
#define AM_A   0x00010000
#define AM_C   0x00020000
#define AM_D   0x00030000
#define AM_E   0x00040000
#define AM_G   0x00050000
#define AM_I   0x00060000
#define AM_J   0x00070000
#define AM_M   0x00080000
#define AM_O   0x00090000
#define AM_P   0x000a0000
#define AM_Q   0x000b0000
#define AM_R   0x000c0000
#define AM_S   0x000d0000
#define AM_T   0x000e0000
#define AM_V   0x000f0000
#define AM_W   0x00100000
#define AM_I1   0x00200000
#define AM_REG   0x00210000
#define AM_IND   0x00220000
#define MASK_OT(x)   ((x) & 0xff000000)
#define OT_a   0x01000000
#define OT_b   0x02000000
#define OT_c   0x03000000
#define OT_d   0x04000000
#define OT_q   0x05000000
#define OT_dq   0x06000000
#define OT_v   0x07000000
#define OT_w   0x08000000
#define OT_p   0x09000000
#define OT_pi   0x0a000000
#define OT_pd   0x0b000000
#define OT_ps   0x0c000000
#define OT_s   0x0d000000
#define OT_sd   0x0e000000
#define OT_ss   0x0f000000
#define OT_si   0x10000000
#define OT_t   0x11000000
#define MASK_PERMS(x)   ((x) & 0x0000f000)
#define P_r   0x00004000
#define P_w   0x00002000
#define P_x   0x00001000
#define MASK_FLAGS(x)   ((x) & 0x00000f00)
#define F_s   0x00000100
#define F_r   0x00000200
#define F_f   0x00000400
#define MASK_REG(x)   ((x) & 0x0000000f)
#define MASK_MODRM_MOD(x)   (((x) & 0xc0) >> 6)
#define MASK_MODRM_REG(x)   (((x) & 0x38) >> 3)
#define MASK_MODRM_RM(x)   ((x) & 0x7)
#define MASK_SIB_SCALE(x)   MASK_MODRM_MOD(x)
#define MASK_SIB_INDEX(x)   MASK_MODRM_REG(x)
#define MASK_SIB_BASE(x)   MASK_MODRM_RM(x)

Typedefs

typedef u_int8_t BYTE
typedef u_int16_t WORD
typedef u_int32_t DWORD
typedef u_int64_t QWORD
typedef int8_t SBYTE
typedef int16_t SWORD
typedef int32_t SDWORD
typedef int64_t SQWORD
typedef struct _INST INST
typedef struct _INSTPINST
typedef struct _OPERAND OPERAND
typedef struct _OPERANDPOPERAND
typedef struct _INSTRUCTION INSTRUCTION
typedef struct _INSTRUCTIONPINSTRUCTION

Enumerations

enum  Mode { MODE_32, MODE_16 }
enum  Format { FORMAT_ATT, FORMAT_INTEL }
enum  Instruction {
  INSTRUCTION_TYPE_ASC, INSTRUCTION_TYPE_DCL, INSTRUCTION_TYPE_MOV, INSTRUCTION_TYPE_MOVSR,
  INSTRUCTION_TYPE_ADD, INSTRUCTION_TYPE_XADD, INSTRUCTION_TYPE_ADC, INSTRUCTION_TYPE_SUB,
  INSTRUCTION_TYPE_SBB, INSTRUCTION_TYPE_INC, INSTRUCTION_TYPE_DEC, INSTRUCTION_TYPE_DIV,
  INSTRUCTION_TYPE_IDIV, INSTRUCTION_TYPE_NOT, INSTRUCTION_TYPE_NEG, INSTRUCTION_TYPE_STOS,
  INSTRUCTION_TYPE_LODS, INSTRUCTION_TYPE_SCAS, INSTRUCTION_TYPE_MOVS, INSTRUCTION_TYPE_MOVSX,
  INSTRUCTION_TYPE_MOVZX, INSTRUCTION_TYPE_CMPS, INSTRUCTION_TYPE_SHX, INSTRUCTION_TYPE_ROX,
  INSTRUCTION_TYPE_MUL, INSTRUCTION_TYPE_IMUL, INSTRUCTION_TYPE_EIMUL, INSTRUCTION_TYPE_XOR,
  INSTRUCTION_TYPE_LEA, INSTRUCTION_TYPE_XCHG, INSTRUCTION_TYPE_CMP, INSTRUCTION_TYPE_TEST,
  INSTRUCTION_TYPE_PUSH, INSTRUCTION_TYPE_AND, INSTRUCTION_TYPE_OR, INSTRUCTION_TYPE_POP,
  INSTRUCTION_TYPE_JMP, INSTRUCTION_TYPE_JMPC, INSTRUCTION_TYPE_SETC, INSTRUCTION_TYPE_MOVC,
  INSTRUCTION_TYPE_LOOP, INSTRUCTION_TYPE_CALL, INSTRUCTION_TYPE_RET, INSTRUCTION_TYPE_INT,
  INSTRUCTION_TYPE_BT, INSTRUCTION_TYPE_BTS, INSTRUCTION_TYPE_BTR, INSTRUCTION_TYPE_BTC,
  INSTRUCTION_TYPE_BSF, INSTRUCTION_TYPE_BSR, INSTRUCTION_TYPE_BSWAP, INSTRUCTION_TYPE_SGDT,
  INSTRUCTION_TYPE_SIDT, INSTRUCTION_TYPE_SLDT, INSTRUCTION_TYPE_LFP, INSTRUCTION_TYPE_FCMOVC,
  INSTRUCTION_TYPE_FADD, INSTRUCTION_TYPE_FADDP, INSTRUCTION_TYPE_FIADD, INSTRUCTION_TYPE_FSUB,
  INSTRUCTION_TYPE_FSUBP, INSTRUCTION_TYPE_FISUB, INSTRUCTION_TYPE_FSUBR, INSTRUCTION_TYPE_FSUBRP,
  INSTRUCTION_TYPE_FISUBR, INSTRUCTION_TYPE_FMUL, INSTRUCTION_TYPE_FMULP, INSTRUCTION_TYPE_FIMUL,
  INSTRUCTION_TYPE_FDIV, INSTRUCTION_TYPE_FDIVP, INSTRUCTION_TYPE_FDIVR, INSTRUCTION_TYPE_FDIVRP,
  INSTRUCTION_TYPE_FIDIV, INSTRUCTION_TYPE_FIDIVR, INSTRUCTION_TYPE_FCOM, INSTRUCTION_TYPE_FCOMP,
  INSTRUCTION_TYPE_FCOMPP, INSTRUCTION_TYPE_FCOMI, INSTRUCTION_TYPE_FCOMIP, INSTRUCTION_TYPE_FUCOM,
  INSTRUCTION_TYPE_FUCOMP, INSTRUCTION_TYPE_FUCOMPP, INSTRUCTION_TYPE_FUCOMI, INSTRUCTION_TYPE_FUCOMIP,
  INSTRUCTION_TYPE_FST, INSTRUCTION_TYPE_FSTP, INSTRUCTION_TYPE_FIST, INSTRUCTION_TYPE_FISTP,
  INSTRUCTION_TYPE_FISTTP, INSTRUCTION_TYPE_FLD, INSTRUCTION_TYPE_FILD, INSTRUCTION_TYPE_FICOM,
  INSTRUCTION_TYPE_FICOMP, INSTRUCTION_TYPE_FFREE, INSTRUCTION_TYPE_FFREEP, INSTRUCTION_TYPE_FXCH,
  INSTRUCTION_TYPE_FPU, INSTRUCTION_TYPE_MMX, INSTRUCTION_TYPE_SSE, INSTRUCTION_TYPE_OTHER,
  INSTRUCTION_TYPE_PRIV
}
enum  Operand { OPERAND_TYPE_NONE, OPERAND_TYPE_MEMORY, OPERAND_TYPE_REGISTER, OPERAND_TYPE_IMMEDIATE }

Functions

int get_instruction (INSTRUCTION *inst, BYTE *addr, enum Mode mode)
int get_instruction_string (INSTRUCTION *inst, enum Format format, DWORD offset, char *string, int length)
int get_mnemonic_string (INSTRUCTION *inst, enum Format format, char *string, int length)
int get_operand_string (INSTRUCTION *inst, POPERAND op, enum Format format, DWORD offset, char *string, int length)
int get_register_type (POPERAND op)
int get_operand_type (POPERAND op)
int get_operand_register (POPERAND op)
int get_operand_basereg (POPERAND op)
int get_operand_indexreg (POPERAND op)
int get_operand_scale (POPERAND op)
int get_operand_immediate (POPERAND op, DWORD *imm)
int get_operand_displacement (POPERAND op, DWORD *disp)
POPERAND get_source_operand (PINSTRUCTION inst)
POPERAND get_destination_operand (PINSTRUCTION inst)

Define Documentation

#define __LIBDASM_VERSION__   0x01040000
#define __LITTLE_ENDIAN__
#define AM_A   0x00010000

Referenced by get_operand(), and get_operand_string().

#define AM_C   0x00020000
#define AM_D   0x00030000
#define AM_E   0x00040000
#define AM_G   0x00050000
#define AM_I   0x00060000
#define AM_I1   0x00200000

Referenced by get_operand(), and get_operand_string().

#define AM_IND   0x00220000

Referenced by get_operand().

#define AM_J   0x00070000

Referenced by get_operand(), and get_operand_string().

#define AM_M   0x00080000

Referenced by get_operand().

#define AM_O   0x00090000

Referenced by get_operand().

#define AM_P   0x000a0000
#define AM_Q   0x000b0000
#define AM_R   0x000c0000
#define AM_REG   0x00210000
#define AM_S   0x000d0000
#define AM_T   0x000e0000
#define AM_V   0x000f0000
#define AM_W   0x00100000
#define EXT_CP   0x00000030
#define EXT_G0   0x00000018
#define EXT_G1_1   0x00000001

Referenced by get_real_instruction().

#define EXT_G1_2   0x00000002

Referenced by get_real_instruction().

#define EXT_G1_3   0x00000003

Referenced by get_real_instruction().

#define EXT_G2_1   0x00000004

Referenced by get_real_instruction().

#define EXT_G2_2   0x00000005

Referenced by get_real_instruction().

#define EXT_G2_3   0x00000006

Referenced by get_real_instruction().

#define EXT_G2_4   0x00000007

Referenced by get_real_instruction().

#define EXT_G2_5   0x00000008

Referenced by get_real_instruction().

#define EXT_G2_6   0x00000009

Referenced by get_real_instruction().

#define EXT_G3_1   0x0000000a

Referenced by get_real_instruction().

#define EXT_G3_2   0x0000000b

Referenced by get_real_instruction().

#define EXT_G4   0x0000000c

Referenced by get_real_instruction().

#define EXT_G5   0x0000000d

Referenced by get_real_instruction().

#define EXT_G6   0x0000000e

Referenced by get_real_instruction2().

#define EXT_G7   0x0000000f
#define EXT_G8   0x00000010

Referenced by get_real_instruction2().

#define EXT_G9   0x00000011

Referenced by get_real_instruction2().

#define EXT_GA   0x00000012
#define EXT_GB   0x00000013
#define EXT_GC   0x00000014
#define EXT_GD   0x00000015
#define EXT_GE   0x00000016
#define EXT_GF   0x00000017

Referenced by get_real_instruction2().

#define EXT_T2   0x00000020
#define F_f   0x00000400
#define F_r   0x00000200
#define F_s   0x00000100

Referenced by get_operand().

#define FLAGS_NONE   0

Referenced by get_operand().

#define GET_VERSION_MAJOR   (__LIBDASM_VERSION__ & 0xff000000) >> 24
#define GET_VERSION_MINOR1   (__LIBDASM_VERSION__ & 0x00ff0000) >> 16
#define GET_VERSION_MINOR2   (__LIBDASM_VERSION__ & 0x0000ff00) >> 8
#define GET_VERSION_MINOR3   (__LIBDASM_VERSION__ & 0x000000ff)
#define MASK_AM (  )     ((x) & 0x00ff0000)
#define MASK_EXT (  )     ((x) & 0x000000ff)
#define MASK_FLAGS (  )     ((x) & 0x00000f00)
#define MASK_MODRM_MOD (  )     (((x) & 0xc0) >> 6)
#define MASK_MODRM_REG (  )     (((x) & 0x38) >> 3)

Referenced by get_instruction(), and get_operand().

#define MASK_MODRM_RM (  )     ((x) & 0x7)

Referenced by get_instruction(), and get_operand().

#define MASK_OT (  )     ((x) & 0xff000000)
#define MASK_PERMS (  )     ((x) & 0x0000f000)

Referenced by get_operand_string().

#define MASK_PREFIX_ADDR (  )     ((x) & 0x0000f000) >> 12
#define MASK_PREFIX_G1 (  )     ((x) & 0xff000000) >> 24
#define MASK_PREFIX_G2 (  )     ((x) & 0x00ff0000) >> 16
#define MASK_PREFIX_G3 (  )     ((x) & 0x0000ff00) >> 8
#define MASK_PREFIX_OPERAND (  )     ((x) & 0x00000f00) >> 8
#define MASK_REG (  )     ((x) & 0x0000000f)

Referenced by get_operand().

#define MASK_SIB_BASE (  )     MASK_MODRM_RM(x)

Referenced by get_operand().

#define MASK_SIB_INDEX (  )     MASK_MODRM_REG(x)

Referenced by get_operand().

#define MASK_SIB_SCALE (  )     MASK_MODRM_MOD(x)

Referenced by get_operand().

#define MASK_TYPE_FLAGS (  )     ((x) & 0xff000000)

Referenced by get_instruction().

#define MASK_TYPE_VALUE (  )     ((x) & 0x00ffffff)

Referenced by get_instruction().

#define OT_a   0x01000000
#define OT_b   0x02000000
#define OT_c   0x03000000
#define OT_d   0x04000000
#define OT_dq   0x06000000
#define OT_p   0x09000000
#define OT_pd   0x0b000000
#define OT_pi   0x0a000000
#define OT_ps   0x0c000000
#define OT_q   0x05000000
#define OT_s   0x0d000000
#define OT_sd   0x0e000000
#define OT_si   0x10000000
#define OT_ss   0x0f000000
#define OT_t   0x11000000
#define OT_v   0x07000000
#define OT_w   0x08000000
#define P_r   0x00004000
#define P_w   0x00002000
#define P_x   0x00001000

Referenced by get_operand_string().

#define PREFIX_ADDR_SIZE_OVERRIDE   0x00001000

Referenced by get_real_instruction().

#define PREFIX_CS_OVERRIDE   0x00020000

Referenced by get_real_instruction().

#define PREFIX_DS_OVERRIDE   0x00040000

Referenced by get_real_instruction().

#define PREFIX_ES_OVERRIDE   0x00010000

Referenced by get_real_instruction().

#define PREFIX_FS_OVERRIDE   0x00050000

Referenced by get_real_instruction().

#define PREFIX_GS_OVERRIDE   0x00060000

Referenced by get_real_instruction().

#define PREFIX_LOCK   0x01000000
#define PREFIX_OPERAND_SIZE_OVERRIDE   0x00000100

Referenced by get_real_instruction().

#define PREFIX_REP   0x03000000

Referenced by get_real_instruction().

#define PREFIX_REPE   0x03000000
#define PREFIX_REPNE   0x02000000

Referenced by get_real_instruction().

#define PREFIX_SS_OVERRIDE   0x00030000

Referenced by get_real_instruction().

#define REG_AH   REG_ESP
#define REG_AL   REG_EAX
#define REG_AX   REG_EAX
#define REG_BH   REG_EDI
#define REG_BL   REG_EBX
#define REG_BP   REG_EBP
#define REG_BX   REG_EBX
#define REG_CH   REG_EBP
#define REG_CL   REG_ECX
#define REG_CS   REG_ECX
#define REG_CX   REG_ECX
#define REG_DH   REG_ESI
#define REG_DI   REG_EDI
#define REG_DL   REG_EDX
#define REG_DS   REG_EBX
#define REG_DX   REG_EDX
#define REG_EAX   REGISTER_EAX
#define REG_EBP   REGISTER_EBP

Referenced by get_operand().

#define REG_EBX   REGISTER_EBX

Referenced by get_operand().

#define REG_ECX   REGISTER_ECX
#define REG_EDI   REGISTER_EDI

Referenced by get_operand().

#define REG_EDX   REGISTER_EDX
#define REG_ES   REG_EAX
#define REG_ESI   REGISTER_ESI

Referenced by get_operand().

#define REG_ESP   REGISTER_ESP

Referenced by get_operand().

#define REG_FS   REG_ESP
#define REG_GS   REG_EBP
#define REG_NOP   REGISTER_NOP

Referenced by get_operand(), and get_operand_string().

#define REG_SI   REG_ESI
#define REG_SP   REG_ESP
#define REG_SS   REG_EDX
#define REG_ST0   REG_EAX
#define REG_ST1   REG_ECX
#define REG_ST2   REG_EDX
#define REG_ST3   REG_EBX
#define REG_ST4   REG_ESP
#define REG_ST5   REG_EBP
#define REG_ST6   REG_ESI
#define REG_ST7   REG_EDI
#define REGISTER_EAX   0
#define REGISTER_EBP   5
#define REGISTER_EBX   3
#define REGISTER_ECX   1
#define REGISTER_EDI   7
#define REGISTER_EDX   2
#define REGISTER_ESI   6
#define REGISTER_ESP   4
#define REGISTER_NOP   8
#define REGISTER_TYPE_CONTROL   4

Referenced by get_register_type().

#define REGISTER_TYPE_DEBUG   3

Referenced by get_register_type().

#define REGISTER_TYPE_FPU   8

Referenced by get_register_type().

#define REGISTER_TYPE_GEN   1

Referenced by get_register_type().

#define REGISTER_TYPE_MMX   7

Referenced by get_register_type().

#define REGISTER_TYPE_SEGMENT   2

Referenced by get_register_type().

#define REGISTER_TYPE_TEST   5

Referenced by get_register_type().

#define REGISTER_TYPE_XMM   6

Referenced by get_register_type().

#define TYPE_3   0x80000000

Referenced by get_instruction().


Typedef Documentation

typedef u_int8_t BYTE
typedef u_int32_t DWORD
typedef struct _INST INST
typedef struct _INSTRUCTION INSTRUCTION
typedef struct _OPERAND OPERAND
typedef struct _INST * PINST
typedef struct _INSTRUCTION * PINSTRUCTION
typedef struct _OPERAND * POPERAND
typedef u_int64_t QWORD
typedef int8_t SBYTE
typedef int32_t SDWORD
typedef int64_t SQWORD
typedef int16_t SWORD
typedef u_int16_t WORD

Enumeration Type Documentation

enum Format
Enumerator:
FORMAT_ATT 
FORMAT_INTEL 
Enumerator:
INSTRUCTION_TYPE_ASC 
INSTRUCTION_TYPE_DCL 
INSTRUCTION_TYPE_MOV 
INSTRUCTION_TYPE_MOVSR 
INSTRUCTION_TYPE_ADD 
INSTRUCTION_TYPE_XADD 
INSTRUCTION_TYPE_ADC 
INSTRUCTION_TYPE_SUB 
INSTRUCTION_TYPE_SBB 
INSTRUCTION_TYPE_INC 
INSTRUCTION_TYPE_DEC 
INSTRUCTION_TYPE_DIV 
INSTRUCTION_TYPE_IDIV 
INSTRUCTION_TYPE_NOT 
INSTRUCTION_TYPE_NEG 
INSTRUCTION_TYPE_STOS 
INSTRUCTION_TYPE_LODS 
INSTRUCTION_TYPE_SCAS 
INSTRUCTION_TYPE_MOVS 
INSTRUCTION_TYPE_MOVSX 
INSTRUCTION_TYPE_MOVZX 
INSTRUCTION_TYPE_CMPS 
INSTRUCTION_TYPE_SHX 
INSTRUCTION_TYPE_ROX 
INSTRUCTION_TYPE_MUL 
INSTRUCTION_TYPE_IMUL 
INSTRUCTION_TYPE_EIMUL 
INSTRUCTION_TYPE_XOR 
INSTRUCTION_TYPE_LEA 
INSTRUCTION_TYPE_XCHG 
INSTRUCTION_TYPE_CMP 
INSTRUCTION_TYPE_TEST 
INSTRUCTION_TYPE_PUSH 
INSTRUCTION_TYPE_AND 
INSTRUCTION_TYPE_OR 
INSTRUCTION_TYPE_POP 
INSTRUCTION_TYPE_JMP 
INSTRUCTION_TYPE_JMPC 
INSTRUCTION_TYPE_SETC 
INSTRUCTION_TYPE_MOVC 
INSTRUCTION_TYPE_LOOP 
INSTRUCTION_TYPE_CALL 
INSTRUCTION_TYPE_RET 
INSTRUCTION_TYPE_INT 
INSTRUCTION_TYPE_BT 
INSTRUCTION_TYPE_BTS 
INSTRUCTION_TYPE_BTR 
INSTRUCTION_TYPE_BTC 
INSTRUCTION_TYPE_BSF 
INSTRUCTION_TYPE_BSR 
INSTRUCTION_TYPE_BSWAP 
INSTRUCTION_TYPE_SGDT 
INSTRUCTION_TYPE_SIDT 
INSTRUCTION_TYPE_SLDT 
INSTRUCTION_TYPE_LFP 
INSTRUCTION_TYPE_FCMOVC 
INSTRUCTION_TYPE_FADD 
INSTRUCTION_TYPE_FADDP 
INSTRUCTION_TYPE_FIADD 
INSTRUCTION_TYPE_FSUB 
INSTRUCTION_TYPE_FSUBP 
INSTRUCTION_TYPE_FISUB 
INSTRUCTION_TYPE_FSUBR 
INSTRUCTION_TYPE_FSUBRP 
INSTRUCTION_TYPE_FISUBR 
INSTRUCTION_TYPE_FMUL 
INSTRUCTION_TYPE_FMULP 
INSTRUCTION_TYPE_FIMUL 
INSTRUCTION_TYPE_FDIV 
INSTRUCTION_TYPE_FDIVP 
INSTRUCTION_TYPE_FDIVR 
INSTRUCTION_TYPE_FDIVRP 
INSTRUCTION_TYPE_FIDIV 
INSTRUCTION_TYPE_FIDIVR 
INSTRUCTION_TYPE_FCOM 
INSTRUCTION_TYPE_FCOMP 
INSTRUCTION_TYPE_FCOMPP 
INSTRUCTION_TYPE_FCOMI 
INSTRUCTION_TYPE_FCOMIP 
INSTRUCTION_TYPE_FUCOM 
INSTRUCTION_TYPE_FUCOMP 
INSTRUCTION_TYPE_FUCOMPP 
INSTRUCTION_TYPE_FUCOMI 
INSTRUCTION_TYPE_FUCOMIP 
INSTRUCTION_TYPE_FST 
INSTRUCTION_TYPE_FSTP 
INSTRUCTION_TYPE_FIST 
INSTRUCTION_TYPE_FISTP 
INSTRUCTION_TYPE_FISTTP 
INSTRUCTION_TYPE_FLD 
INSTRUCTION_TYPE_FILD 
INSTRUCTION_TYPE_FICOM 
INSTRUCTION_TYPE_FICOMP 
INSTRUCTION_TYPE_FFREE 
INSTRUCTION_TYPE_FFREEP 
INSTRUCTION_TYPE_FXCH 
INSTRUCTION_TYPE_FPU 
INSTRUCTION_TYPE_MMX 
INSTRUCTION_TYPE_SSE 
INSTRUCTION_TYPE_OTHER 
INSTRUCTION_TYPE_PRIV 
enum Mode
Enumerator:
MODE_32 
MODE_16 
enum Operand
Enumerator:
OPERAND_TYPE_NONE 
OPERAND_TYPE_MEMORY 
OPERAND_TYPE_REGISTER 
OPERAND_TYPE_IMMEDIATE 

Function Documentation

POPERAND get_destination_operand ( PINSTRUCTION  inst  ) 
int get_instruction ( INSTRUCTION inst,
BYTE addr,
enum Mode  mode 
)
int get_instruction_string ( INSTRUCTION inst,
enum Format  format,
DWORD  offset,
char *  string,
int  length 
)

References get_mnemonic_string(), and get_operands_string().

Referenced by dasm_print_instruction().

Here is the call graph for this function:

int get_mnemonic_string ( INSTRUCTION inst,
enum Format  format,
char *  string,
int  length 
)
int get_operand_basereg ( POPERAND  op  ) 

References _OPERAND::basereg.

int get_operand_displacement ( POPERAND  op,
DWORD disp 
)
int get_operand_immediate ( POPERAND  op,
DWORD imm 
)
int get_operand_indexreg ( POPERAND  op  ) 

References _OPERAND::indexreg.

int get_operand_register ( POPERAND  op  ) 

References _OPERAND::reg.

int get_operand_scale ( POPERAND  op  ) 

References _OPERAND::scale.

int get_operand_string ( INSTRUCTION inst,
POPERAND  op,
enum Format  format,
DWORD  offset,
char *  string,
int  length 
)
int get_operand_type ( POPERAND  op  ) 

References _OPERAND::type.

int get_register_type ( POPERAND  op  ) 
POPERAND get_source_operand ( PINSTRUCTION  inst  ) 

Generated on Sun Jan 9 16:50:34 2011 for libemu by  doxygen 1.6.1