summaryrefslogtreecommitdiff
path: root/src/arch/x86/instruction.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2009-05-24 22:34:42 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2009-05-24 22:34:42 (GMT)
commit0b7d7f26c745ff0f52e9e483a0980351368ca824 (patch)
treea244c063bdfa69f2605be6b1a1e80d9a8551602c /src/arch/x86/instruction.h
parentf7e5d077e0d62f8b8717c79616852c3e1009cfa6 (diff)
Supported nine extra x86 opcodes.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@66 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/x86/instruction.h')
-rw-r--r--src/arch/x86/instruction.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/arch/x86/instruction.h b/src/arch/x86/instruction.h
index 1a65066..6186e96 100644
--- a/src/arch/x86/instruction.h
+++ b/src/arch/x86/instruction.h
@@ -28,6 +28,9 @@
#include "../instruction.h"
+/* Types de préfixes pour x86 */
+typedef enum _X86Prefix X86Prefix;
+
/* Enumération de tous les opcodes */
typedef enum _X86Opcodes
@@ -181,7 +184,17 @@ typedef enum _X86Opcodes
XOP_TEST_AL_IMM8, /* test (0xa8) */
XOP_TEST_E_AX_IMM1632, /* test ([0x66] 0xa9) */
+ XOP_SCAS_AL_M8, /* scas (0xae) */
+
+ XOP_MOV_AL_IMM8, /* mov (0xb0) */
+ XOP_MOV_CL_IMM8, /* mov (0xb1) */
+ XOP_MOV_DL_IMM8, /* mov (0xb2) */
+ XOP_MOV_BL_IMM8, /* mov (0xb3) */
+ XOP_MOV_AH_IMM8, /* mov (0xb4) */
+ XOP_MOV_CH_IMM8, /* mov (0xb5) */
+ XOP_MOV_DH_IMM8, /* mov (0xb6) */
+ XOP_MOV_BH_IMM8, /* mov (0xb7) */
XOP_MOV_E_AX_IMM1632, /* mov ([0x66] 0xb8) */
XOP_MOV_E_CX_IMM1632, /* mov ([0x66] 0xb9) */
XOP_MOV_E_DX_IMM1632, /* mov ([0x66] 0xba) */
@@ -253,19 +266,24 @@ GType g_x86_instruction_get_type(void);
/* Crée une instruction pour l'architecture x86. */
GArchInstruction *g_x86_instruction_new(X86Opcodes);
+/* Attache à une instructions ses préfixes associés. */
+void g_x86_instruction_set_prefixes(GX86Instruction *, X86Prefix);
+
/* --------------------- AIDE A LA MISE EN PLACE D'INSTRUCTIONS --------------------- */
/* Types de préfixes pour x86 */
-typedef enum _X86Prefix
+enum _X86Prefix
{
XPX_NONE = (0 << 0), /* Code d'instruction pur */
XPX_OPERAND_SIZE_OVERRIDE = (1 << 0), /* Taille des opérandes */
-} X86Prefix;
+ XPX_REPEAT_STRING_OPERATION = (1 << 2) /* Boucle pour les chaînes */
+
+};
/* Recherche l'identifiant de la prochaine instruction. */