Welcome to the BeaEngine Sweet Home - x86 x86-64 disassembler library - (IA-32 & Intel64)

INSTRTYPE Structure

this structure gives informations on the analyzed instruction.

struct INSTRTYPE {
   long Category;
   long Opcode;
   char Mnemonic[16];
   long BranchType;
   EFLStruct Flags;
   long long AddrValue;
   long long Immediat;
   long ImplicitModifiedRegs;
};

Membres

Category

[out] Specify the family instruction . More precisely, (MyDisasm.Instruction.Category & 0xFFFF0000) is used to know if the instruction is a standard one or comes from one of the following technologies : MMX, FPU, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, VMX or SYSTEM. LOWORD(MyDisasm.Instruction.Category) is used to know if the instruction is an arithmetic instruction, a logical one, a data transfer one ... To see the complete list of constants used by BeaEngine, go HERE .

Opcode

[out] This field contains the opcode on 1, 2 or 3 bytes. If the instruction uses a mandatory prefix, this last one is not present here. For that, you have to use the structure MyDisasm.Prefix.

Mnemonic

[out] This field sends back the instruction mnemonic with an ASCII format. You must know that all mnemonics are followed by a space (0x20). For example , the instruction "add" is written "add ".

BranchType

[out] If the decoded instruction is a branch instruction, this field is set to indicate what kind of jump it is (call, ret, unconditional jump, conditional jump). To get a complete list of constants used by BeaEngine, go HERE

Flags

[out] Structure EFLStruct that specifies the used flags.

AddrValue

[out] If the decoded instruction is a branch instruction and if the destination address can be calculated, the result is stored in that field. A "jmp eax" or a "jmp [eax]" will set this field to 0 .

Immediat

[out] If the instruction uses a constant, this immediat value is stored here.

ImplicitModifiedRegs

[out] Some instructions modify registers implicitly. For example, "push 0" modifies the register ESP. In that case, MyDisasm.Instruction.ImplicitModifiedRegs == REGISTER_TYPE + GENERAL_REG + REG4.

Valid XHTML 1.0 Strict

Valid CSS!