summaryrefslogtreecommitdiff
path: root/src/arch/x86/instruction.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2008-07-27 19:38:15 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2008-07-27 19:38:15 (GMT)
commit1bf9c5ebe8bb3326e10491974cd43b221e2a56a1 (patch)
tree01a745a798661478eb7a6e02c0a0831bb1b4950c /src/arch/x86/instruction.h
parentdbf4d1f93e54251568854bff0ebc9c84f60857f6 (diff)
Supported new x86 opcodes (nop and mov).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@7 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
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é */
+
+
};