summaryrefslogtreecommitdiff
path: root/src/arch/x86/instruction.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/instruction.h')
-rw-r--r--src/arch/x86/instruction.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/arch/x86/instruction.h b/src/arch/x86/instruction.h
index 47617ea..c3c417b 100644
--- a/src/arch/x86/instruction.h
+++ b/src/arch/x86/instruction.h
@@ -38,8 +38,27 @@ typedef struct _asm_x86_instr asm_x86_instr;
/* Enumération de tous les opcodes */
typedef enum _X86Opcodes
{
+ X86_OP_NOP, /* nop (0x90) */
+
+ X86_OP_MOV_AX, /* mov (0xb0) */
+ X86_OP_MOV_CX, /* mov (0xb1) */
+ X86_OP_MOV_DX, /* mov (0xb2) */
+ X86_OP_MOV_BX, /* mov (0xb3) */
+ X86_OP_MOV_SP, /* mov (0xb4) */
+ X86_OP_MOV_BP, /* mov (0xb5) */
+ X86_OP_MOV_SI, /* mov (0xb6) */
+ X86_OP_MOV_DI, /* mov (0xb7) */
+
X86_OP_INT, /* int (0xcd) */
+ X86_OP_MOV_EAX, /* mov (0x66 0xb0) */
+ X86_OP_MOV_ECX, /* mov (0x66 0xb1) */
+ X86_OP_MOV_EDX, /* mov (0x66 0xb2) */
+ X86_OP_MOV_EBX, /* mov (0x66 0xb3) */
+ X86_OP_MOV_ESP, /* mov (0x66 0xb4) */
+ X86_OP_MOV_EBP, /* mov (0x66 0xb5) */
+ X86_OP_MOV_ESI, /* mov (0x66 0xb6) */
+ X86_OP_MOV_EDI, /* mov (0x66 0xb7) */
X86_OP_COUNT
@@ -48,6 +67,19 @@ typedef enum _X86Opcodes
+/* Eventuel préfixe rencontré */
+typedef enum _X86Prefix
+{
+ X86_PRE_NONE = 0, /* Aucun préfixe */
+
+
+ X86_PRE_OPSIZE /* Basculement des opérandes */
+
+
+} X86Prefix;
+
+
+
/* Définition d'une instruction x86 */
struct _asm_x86_instr
{
@@ -55,6 +87,10 @@ struct _asm_x86_instr
X86Opcodes type;
+
+ X86Prefix prefix; /* Eventuel préfixe trouvé */
+
+
};