All Data Structures Files Functions Variables Enumerations Enumerator Macros Groups
bytecode_disasm.h File Reference

Go to the source code of this file.

Data Structures

struct  DISASM_RESULT
 

Enumerations

enum  X86OPS { ,
  OP_AAA, OP_AAD, OP_AAM, OP_AAS,
  OP_ADD, OP_ADC, OP_AND, OP_ARPL,
  OP_BOUND, OP_BSF, OP_BSR, OP_BSWAP,
  OP_BT, OP_BTC, OP_BTR, OP_BTS,
  OP_CALL, OP_CDQ , OP_CWDE, OP_CBW,
  OP_CLC, OP_CLD, OP_CLI, OP_CLTS,
  OP_CMC, OP_CMOVO, OP_CMOVNO, OP_CMOVC,
  OP_CMOVNC, OP_CMOVZ, OP_CMOVNZ, OP_CMOVBE,
  OP_CMOVA, OP_CMOVS, OP_CMOVNS, OP_CMOVP,
  OP_CMOVNP, OP_CMOVL, OP_CMOVGE, OP_CMOVLE,
  OP_CMOVG, OP_CMP, OP_CMPSD, OP_CMPSW,
  OP_CMPSB, OP_CMPXCHG, OP_CMPXCHG8B, OP_CPUID,
  OP_DAA, OP_DAS, OP_DEC, OP_DIV,
  OP_ENTER, OP_FWAIT, OP_HLT, OP_IDIV,
  OP_IMUL, OP_INC, OP_IN, OP_INSD,
  OP_INSW, OP_INSB, OP_INT, OP_INT3,
  OP_INTO, OP_INVD, OP_INVLPG, OP_IRET,
  OP_JO, OP_JNO, OP_JC, OP_JNC,
  OP_JZ, OP_JNZ, OP_JBE, OP_JA,
  OP_JS, OP_JNS, OP_JP, OP_JNP,
  OP_JL, OP_JGE, OP_JLE, OP_JG,
  OP_JMP, OP_LAHF, OP_LAR, OP_LDS,
  OP_LES, OP_LFS, OP_LGS, OP_LEA,
  OP_LEAVE, OP_LGDT, OP_LIDT, OP_LLDT,
  OP_PREFIX_LOCK, OP_LODSD, OP_LODSW, OP_LODSB,
  OP_LOOP, OP_LOOPE, OP_LOOPNE, OP_JECXZ,
  OP_LSL, OP_LSS, OP_LTR, OP_MOV,
  OP_MOVSD, OP_MOVSW, OP_MOVSB, OP_MOVSX,
  OP_MOVZX, OP_MUL, OP_NEG, OP_NOP,
  OP_NOT, OP_OR, OP_OUT, OP_OUTSD,
  OP_OUTSW, OP_OUTSB, OP_PUSH, OP_PUSHAD ,
  OP_PUSHFD , OP_POP, OP_POPAD, OP_POPFD ,
  OP_RCL, OP_RCR, OP_RDMSR, OP_RDPMC,
  OP_RDTSC, OP_PREFIX_REPE, OP_PREFIX_REPNE, OP_RETF,
  OP_RETN, OP_ROL, OP_ROR, OP_RSM,
  OP_SAHF, OP_SAR, OP_SBB, OP_SCASD,
  OP_SCASW, OP_SCASB, OP_SETO, OP_SETNO,
  OP_SETC, OP_SETNC, OP_SETZ, OP_SETNZ,
  OP_SETBE, OP_SETA, OP_SETS, OP_SETNS,
  OP_SETP, OP_SETNP, OP_SETL, OP_SETGE,
  OP_SETLE, OP_SETG, OP_SGDT, OP_SIDT,
  OP_SHL, OP_SHLD, OP_SHR, OP_SHRD,
  OP_SLDT, OP_STOSD, OP_STOSW, OP_STOSB,
  OP_STR, OP_STC, OP_STD, OP_STI,
  OP_SUB, OP_SYSCALL, OP_SYSENTER, OP_SYSEXIT,
  OP_SYSRET, OP_TEST, OP_UD2, OP_VERR,
  OP_VERRW, OP_WBINVD, OP_WRMSR, OP_XADD,
  OP_XCHG, OP_XLAT, OP_XOR , OP_FPU,
  OP_F2XM1, OP_FABS, OP_FADD, OP_FADDP,
  OP_FBLD, OP_FBSTP, OP_FCHS, OP_FCLEX,
  OP_FCMOVB, OP_FCMOVBE, OP_FCMOVE, OP_FCMOVNB,
  OP_FCMOVNBE, OP_FCMOVNE, OP_FCMOVNU, OP_FCMOVU,
  OP_FCOM, OP_FCOMI, OP_FCOMIP, OP_FCOMP,
  OP_FCOMPP, OP_FCOS, OP_FDECSTP, OP_FDIV,
  OP_FDIVP, OP_FDIVR, OP_FDIVRP, OP_FFREE,
  OP_FIADD, OP_FICOM, OP_FICOMP, OP_FIDIV,
  OP_FIDIVR, OP_FILD, OP_FIMUL, OP_FINCSTP,
  OP_FINIT, OP_FIST, OP_FISTP, OP_FISTTP,
  OP_FISUB, OP_FISUBR, OP_FLD, OP_FLD1,
  OP_FLDCW, OP_FLDENV, OP_FLDL2E, OP_FLDL2T,
  OP_FLDLG2, OP_FLDLN2, OP_FLDPI, OP_FLDZ,
  OP_FMUL, OP_FMULP, OP_FNOP, OP_FPATAN,
  OP_FPREM, OP_FPREM1, OP_FPTAN, OP_FRNDINT,
  OP_FRSTOR, OP_FSCALE , OP_FSINCOS, OP_FSQRT,
  OP_FSAVE, OP_FST, OP_FSTCW, OP_FSTENV,
  OP_FSTP, OP_FSTSW, OP_FSUB, OP_FSUBP,
  OP_FSUBR, OP_FSUBRP, OP_FTST, OP_FUCOM,
  OP_FUCOMI, OP_FUCOMIP, OP_FUCOMP, OP_FUCOMPP,
  OP_FXAM, OP_FXCH, OP_FXTRACT, OP_FYL2X,
  OP_FYL2XP1
}
 
enum  DIS_ACCESS {
  ACCESS_NOARG, ACCESS_IMM, ACCESS_REL, ACCESS_REG,
  ACCESS_MEM
}
 
enum  DIS_SIZE {
  SIZEB, SIZEW, SIZED, SIZEF,
  SIZEQ, SIZET, SIZEPTR
}
 
enum  X86REGS
 

Enumeration Type Documentation

enum DIS_ACCESS

Access type

Enumerator
ACCESS_NOARG 

arg not present

ACCESS_IMM 

immediate

ACCESS_REL 

+/- immediate

ACCESS_REG 

register

ACCESS_MEM 

[memory]

enum DIS_SIZE

for mem access, immediate and relative

Enumerator
SIZEB 

Byte size access

SIZEW 

Word size access

SIZED 

Doubleword size access

SIZEF 

6-byte access (seg+reg pair)

SIZEQ 

Quadword access

SIZET 

10-byte access

SIZEPTR 

ptr

enum X86OPS

X86 opcode

Enumerator
OP_AAA 

Ascii Adjust after Addition

OP_AAD 

Ascii Adjust AX before Division

OP_AAM 

Ascii Adjust AX after Multiply

OP_AAS 

Ascii Adjust AL after Subtraction

OP_ADD 

Add

OP_ADC 

Add with Carry

OP_AND 

Logical And

OP_ARPL 

Adjust Requested Privilege Level

OP_BOUND 

Check Array Index Against Bounds

OP_BSF 

Bit Scan Forward

OP_BSR 

Bit Scan Reverse

OP_BSWAP 

Byte Swap

OP_BT 

Bit Test

OP_BTC 

Bit Test and Complement

OP_BTR 

Bit Test and Reset

OP_BTS 

Bit Test and Set

OP_CALL 

Call

OP_CDQ 

Convert DoubleWord to QuadWord

OP_CWDE 

Convert Word to DoubleWord

OP_CBW 

Convert Byte to Word

OP_CLC 

Clear Carry Flag

OP_CLD 

Clear Direction Flag

OP_CLI 

Clear Interrupt Flag

OP_CLTS 

Clear Task-Switched Flag in CR0

OP_CMC 

Complement Carry Flag

OP_CMOVO 

Conditional Move if Overflow

OP_CMOVNO 

Conditional Move if Not Overflow

OP_CMOVC 

Conditional Move if Carry

OP_CMOVNC 

Conditional Move if Not Carry

OP_CMOVZ 

Conditional Move if Zero

OP_CMOVNZ 

Conditional Move if Non-Zero

OP_CMOVBE 

Conditional Move if Below or Equal

OP_CMOVA 

Conditional Move if Above

OP_CMOVS 

Conditional Move if Sign

OP_CMOVNS 

Conditional Move if Not Sign

OP_CMOVP 

Conditional Move if Parity

OP_CMOVNP 

Conditional Move if Not Parity

OP_CMOVL 

Conditional Move if Less

OP_CMOVGE 

Conditional Move if Greater or Equal

OP_CMOVLE 

Conditional Move if Less than or Equal

OP_CMOVG 

Conditional Move if Greater

OP_CMP 

Compare

OP_CMPSD 

Compare String DoubleWord

OP_CMPSW 

Compare String Word

OP_CMPSB 

Compare String Byte

OP_CMPXCHG 

Compare and Exchange

OP_CMPXCHG8B 

Compare and Exchange Bytes

OP_CPUID 

CPU Identification

OP_DAA 

Decimal Adjust AL after Addition

OP_DAS 

Decimal Adjust AL after Subtraction

OP_DEC 

Decrement by 1

OP_DIV 

Unsigned Divide

OP_ENTER 

Make Stack Frame for Procedure Parameters

OP_FWAIT 

Wait

OP_HLT 

Halt

OP_IDIV 

Signed Divide

OP_IMUL 

Signed Multiply

OP_INC 

Increment by 1

OP_IN 

INput from port

OP_INSD 

INput from port to String Doubleword

OP_INSW 

INput from port to String Word

OP_INSB 

INput from port to String Byte

OP_INT 

INTerrupt

OP_INT3 

INTerrupt 3 (breakpoint)

OP_INTO 

INTerrupt 4 if Overflow

OP_INVD 

Invalidate Internal Caches

OP_INVLPG 

Invalidate TLB Entry

OP_IRET 

Interrupt Return

OP_JO 

Jump if Overflow

OP_JNO 

Jump if Not Overflow

OP_JC 

Jump if Carry

OP_JNC 

Jump if Not Carry

OP_JZ 

Jump if Zero

OP_JNZ 

Jump if Not Zero

OP_JBE 

Jump if Below or Equal

OP_JA 

Jump if Above

OP_JS 

Jump if Sign

OP_JNS 

Jump if Not Sign

OP_JP 

Jump if Parity

OP_JNP 

Jump if Not Parity

OP_JL 

Jump if Less

OP_JGE 

Jump if Greater or Equal

OP_JLE 

Jump if Less or Equal

OP_JG 

Jump if Greater

OP_JMP 

Jump (unconditional)

OP_LAHF 

Load Status Flags into AH Register

OP_LAR 

load Access Rights Byte

OP_LDS 

Load Far Pointer into DS

OP_LES 

Load Far Pointer into ES

OP_LFS 

Load Far Pointer into FS

OP_LGS 

Load Far Pointer into GS

OP_LEA 

Load Effective Address

OP_LEAVE 

High Level Procedure Exit

OP_LGDT 

Load Global Descript Table Register

OP_LIDT 

Load Interrupt Descriptor Table Register

OP_LLDT 

Load Local Descriptor Table Register

OP_PREFIX_LOCK 

Assert LOCK# Signal Prefix

OP_LODSD 

Load String Dword

OP_LODSW 

Load String Word

OP_LODSB 

Load String Byte

OP_LOOP 

Loop According to ECX Counter

OP_LOOPE 

Loop According to ECX Counter and ZF=1

OP_LOOPNE 

Looop According to ECX Counter and ZF=0

OP_JECXZ 

Jump if ECX is Zero

OP_LSL 

Load Segment Limit

OP_LSS 

Load Far Pointer into SS

OP_LTR 

Load Task Register

OP_MOV 

Move

OP_MOVSD 

Move Data from String to String Doubleword

OP_MOVSW 

Move Data from String to String Word

OP_MOVSB 

Move Data from String to String Byte

OP_MOVSX 

Move with Sign-Extension

OP_MOVZX 

Move with Zero-Extension

OP_MUL 

Unsigned Multiply

OP_NEG 

Two's Complement Negation

OP_NOP 

No Operation

OP_NOT 

One's Complement Negation

OP_OR 

Logical Inclusive OR

OP_OUT 

Output to Port

OP_OUTSD 

Output String to Port Doubleword

OP_OUTSW 

Output String to Port Word

OP_OUTSB 

Output String to Port Bytes

OP_PUSH 

Push Onto the Stack

OP_PUSHAD 

Push All Double General Purpose Registers

OP_PUSHFD 

Push EFLAGS Register onto the Stack

OP_POP 

Pop a Value from the Stack

OP_POPAD 

Pop All Double General Purpose Registers from the Stack

OP_POPFD 

Pop Stack into EFLAGS Register

OP_RCL 

Rotate Carry Left

OP_RCR 

Rotate Carry Right

OP_RDMSR 

Read from Model Specific Register

OP_RDPMC 

Read Performance Monitoring Counters

OP_RDTSC 

Read Time-Stamp Coutner

OP_PREFIX_REPE 

Repeat String Operation Prefix while Equal

OP_PREFIX_REPNE 

Repeat String Operation Prefix while Not Equal

OP_RETF 

Return from Far Procedure

OP_RETN 

Return from Near Procedure

OP_ROL 

Rotate Left

OP_ROR 

Rotate Right

OP_RSM 

Resumse from System Management Mode

OP_SAHF 

Store AH into Flags

OP_SAR 

Shift Arithmetic Right

OP_SBB 

Subtract with Borrow

OP_SCASD 

Scan String Doubleword

OP_SCASW 

Scan String Word

OP_SCASB 

Scan String Byte

OP_SETO 

Set Byte on Overflow

OP_SETNO 

Set Byte on Not Overflow

OP_SETC 

Set Byte on Carry

OP_SETNC 

Set Byte on Not Carry

OP_SETZ 

Set Byte on Zero

OP_SETNZ 

Set Byte on Not Zero

OP_SETBE 

Set Byte on Below or Equal

OP_SETA 

Set Byte on Above

OP_SETS 

Set Byte on Sign

OP_SETNS 

Set Byte on Not Sign

OP_SETP 

Set Byte on Parity

OP_SETNP 

Set Byte on Not Parity

OP_SETL 

Set Byte on Less

OP_SETGE 

Set Byte on Greater or Equal

OP_SETLE 

Set Byte on Less or Equal

OP_SETG 

Set Byte on Greater

OP_SGDT 

Store Global Descriptor Table Register

OP_SIDT 

Store Interrupt Descriptor Table Register

OP_SHL 

Shift Left

OP_SHLD 

Double Precision Shift Left

OP_SHR 

Shift Right

OP_SHRD 

Double Precision Shift Right

OP_SLDT 

Store Local Descriptor Table Register

OP_STOSD 

Store String Doubleword

OP_STOSW 

Store String Word

OP_STOSB 

Store String Byte

OP_STR 

Store Task Register

OP_STC 

Set Carry Flag

OP_STD 

Set Direction Flag

OP_STI 

Set Interrupt Flag

OP_SUB 

Subtract

OP_SYSCALL 

Fast System Call

OP_SYSENTER 

Fast System Call

OP_SYSEXIT 

Fast Return from Fast System Call

OP_SYSRET 

Return from Fast System Call

OP_TEST 

Logical Compare

OP_UD2 

Undefined Instruction

OP_VERR 

Verify a Segment for Reading

OP_VERRW 

Verify a Segment for Writing

OP_WBINVD 

Write Back and Invalidate Cache

OP_WRMSR 

Write to Model Specific Register

OP_XADD 

Exchange and Add

OP_XCHG 

Exchange Register/Memory with Register

OP_XLAT 

Table Look-up Translation

OP_XOR 

Logical Exclusive OR

OP_FPU 

FPU operation

OP_F2XM1 

Compute 2x-1

OP_FABS 

Absolute Value

OP_FADD 

Floating Point Add

OP_FADDP 

Floating Point Add, Pop

OP_FBLD 

Load Binary Coded Decimal

OP_FBSTP 

Store BCD Integer and Pop

OP_FCHS 

Change Sign

OP_FCLEX 

Clear Exceptions

OP_FCMOVB 

Floating Point Move on Below

OP_FCMOVBE 

Floating Point Move on Below or Equal

OP_FCMOVE 

Floating Point Move on Equal

OP_FCMOVNB 

Floating Point Move on Not Below

OP_FCMOVNBE 

Floating Point Move on Not Below or Equal

OP_FCMOVNE 

Floating Point Move on Not Equal

OP_FCMOVNU 

Floating Point Move on Not Unordered

OP_FCMOVU 

Floating Point Move on Unordered

OP_FCOM 

Compare Floating Pointer Values and Set FPU Flags

OP_FCOMI 

Compare Floating Pointer Values and Set EFLAGS

OP_FCOMIP 

Compare Floating Pointer Values and Set EFLAGS, Pop

OP_FCOMP 

Compare Floating Pointer Values and Set FPU Flags, Pop

OP_FCOMPP 

Compare Floating Pointer Values and Set FPU Flags, Pop Twice

OP_FCOS 

Cosine

OP_FDECSTP 

Decrement Stack Top Pointer

OP_FDIV 

Floating Point Divide

OP_FDIVP 

Floating Point Divide, Pop

OP_FDIVR 

Floating Point Reverse Divide

OP_FDIVRP 

Floating Point Reverse Divide, Pop

OP_FFREE 

Free Floating Point Register

OP_FIADD 

Floating Point Add

OP_FICOM 

Compare Integer

OP_FICOMP 

Compare Integer, Pop

OP_FIDIV 

Floating Point Divide by Integer

OP_FIDIVR 

Floating Point Reverse Divide by Integer

OP_FILD 

Load Integer

OP_FIMUL 

Floating Point Multiply with Integer

OP_FINCSTP 

Increment Stack-Top Pointer

OP_FINIT 

Initialize Floating-Point Unit

OP_FIST 

Store Integer

OP_FISTP 

Store Integer, Pop

OP_FISTTP 

Store Integer with Truncation

OP_FISUB 

Floating Point Integer Subtract

OP_FISUBR 

Floating Point Reverse Integer Subtract

OP_FLD 

Load Floating Point Value

OP_FLD1 

Load Constant 1

OP_FLDCW 

Load x87 FPU Control Word

OP_FLDENV 

Load x87 FPU Environment

OP_FLDL2E 

Load Constant log_2(e)

OP_FLDL2T 

Load Constant log_2(10)

OP_FLDLG2 

Load Constant log_10(2)

OP_FLDLN2 

Load Constant log_e(2)

OP_FLDPI 

Load Constant PI

OP_FLDZ 

Load Constant Zero

OP_FMUL 

Floating Point Multiply

OP_FMULP 

Floating Point Multiply, Pop

OP_FNOP 

No Operation

OP_FPATAN 

Partial Arctangent

OP_FPREM 

Partial Remainder

OP_FPREM1 

Partial Remainder

OP_FPTAN 

Partial Tangent

OP_FRNDINT 

Round to Integer

OP_FRSTOR 

Restore x86 FPU State

OP_FSCALE 

Scale

OP_FSINCOS 

Sine and Cosine

OP_FSQRT 

Square Root

OP_FSAVE 

Store x87 FPU State

OP_FST 

Store Floating Point Value

OP_FSTCW 

Store x87 FPU Control Word

OP_FSTENV 

Store x87 FPU Environment

OP_FSTP 

Store Floating Point Value, Pop

OP_FSTSW 

Store x87 FPU Status Word

OP_FSUB 

Floating Point Subtract

OP_FSUBP 

Floating Point Subtract, Pop

OP_FSUBR 

Floating Point Reverse Subtract

OP_FSUBRP 

Floating Point Reverse Subtract, Pop

OP_FTST 

Floating Point Test

OP_FUCOM 

Floating Point Unordered Compare

OP_FUCOMI 

Floating Point Unordered Compare with Integer

OP_FUCOMIP 

Floating Point Unorder Compare with Integer, Pop

OP_FUCOMP 

Floating Point Unorder Compare, Pop

OP_FUCOMPP 

Floating Point Unorder Compare, Pop Twice

OP_FXAM 

Examine ModR/M

OP_FXCH 

Exchange Register Contents

OP_FXTRACT 

Extract Exponent and Significand

OP_FYL2X 

Compute y*log2x

OP_FYL2XP1 

Compute y*log2(x+1)

enum X86REGS

X86 registers