1 /*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
4 for INTEL64(R), AMD64(R)
6 Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
8 Redistribution and use in source and binary forms, with or without
9 modification, are permitted provided that the following conditions are met:
11 1. Redistributions of source code must retain the above copyright notice,
12 this list of conditions and the following disclaimer.
13 2. Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
17 THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
18 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
21 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27 OF THE POSSIBILITY OF SUCH DAMAGE.
29 DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
31 /* File Info -----------------------------------------------------------
32 File: drd64_intel64_dbfile.h
33 Function: Intel64 DataBase Binary File Defines/Headers
35 ----------------------------------------------------------------------*/
38 #ifndef DRD64_HEADER_INTEL64DBFILE
39 #define DRD64_HEADER_INTEL64DBFILE
41 #include"drd64_intel64.h"
42 #include"drd64_intel64_db.h"
44 #define DRD64_INTEL64DB_HASH_MUL 137
45 #define DRD64_INTEL64DB_HASH_RADIX 69
58 char str_instruction[MAX_INSTRUCTION];
67 Byte b_duplicationflag;
73 } __attribute((packed)) Drd64_Intel64db_FileRecord;
76 #define DRD64_INTEL64DB_FILEHEADER_STR "DrDeamon64 BSD "
77 #define DRD64_INTEL64DB_FILEVERSION 0x10
78 #define DRD64_INTEL64DB_FILEID 0x8664
79 #define DRD64_INTEL64DB_INTEL64DBHEADER_STR "INTEL64 NIMONIC "
80 #define DRD64_INTEL64DB_INTEL64DB_VERSION 0x0010
83 char str_drd64file_header[16]; /* "DrDeamon64 BSD \0" */
84 Byte b_drd64file_version; /* 0x10 */
85 Word w_drd64file_id; /* */
87 char str_intel64db_header[16]; /* "INTEL64 NIMONIC \0" */
88 Word w_intel64db_version; /* 0x0010 */
91 } __attribute((packed)) Drd64_Intel64db_FileHeader;
94 /* C : [ModR/M:reg] Control Reg. */
95 #define OPTYPE_DATA_METHOD_C_STR "C"
96 /* D : [ModR/M:reg] Debug Reg. */
97 #define OPTYPE_DATA_METHOD_D_STR "D"
98 /* G : [ModR/M:reg] General Reg. */
99 #define OPTYPE_DATA_METHOD_G_STR "G"
100 /* P : [ModR/M:reg] Packed-QuadWord MMX Reg. */
101 #define OPTYPE_DATA_METHOD_P_STR "P"
102 /* S : [ModR/M:reg] Segment Reg. */
103 #define OPTYPE_DATA_METHOD_S_STR "S"
104 /* T : [ModR/M:reg] Test Reg. ( Reserved ) */
105 #define OPTYPE_DATA_METHOD_T_STR "T"
106 /* V : [ModR/M:reg] 128bit XMM Reg. */
107 #define OPTYPE_DATA_METHOD_V_STR "V"
108 /* N : [ModR/M:R/M] Packed-QuadWord MMX Reg. */
109 #define OPTYPE_DATA_METHOD_N_STR "N"
110 /* R : [ModR/M:R/M] refer to General Reg by R/M Field */
111 #define OPTYPE_DATA_METHOD_R_STR "R"
112 /* U : [ModR/M:R/M] 128bit XMM Reg. */
113 #define OPTYPE_DATA_METHOD_U_STR "U"
114 /* E : [ModR/M] Memory & Reg. */
115 #define OPTYPE_DATA_METHOD_E_STR "E"
116 /* W : [ModR/M] 128bit XMM Reg. or Memory Address
117 ( Memory Address calculated by Seg.Reg. BaseReg. IndexReg.
118 ScalingFactor, Displacement */
119 #define OPTYPE_DATA_METHOD_W_STR "W"
120 /* Q : [ModR/M] MMX reg. or Memory Address
121 ( Memory Address calced by Seg.Reg, BaseReg. IndexReg.
122 ScalingFactor, Displacement */
123 #define OPTYPE_DATA_METHOD_Q_STR "Q"
124 /* M : Memory Access (by ModR/M) (NO!!: Reg. Indicate by ModR/M) */
125 #define OPTYPE_DATA_METHOD_M_STR "M"
127 /* A : Direct Address (NO!!: ModR/M, BaseReg, IndexReg, ScalingFactor) */
128 #define OPTYPE_DATA_METHOD_A_STR "A"
129 /* I : Immediate Data (NO!!: ModR/M) */
130 #define OPTYPE_DATA_METHOD_I_STR "I"
131 /* J : IP relative Address (NO!!: ModR/M) */
132 #define OPTYPE_DATA_METHOD_J_STR "J"
133 /* O : Word of DWord Data (NO!!: ModR/M, BaseReg. IndexReg, ScalingFactor */
134 #define OPTYPE_DATA_METHOD_O_STR "O"
135 /* F : EFLAGS / RFLAGS Reg. (NO!!: ModR/M) */
136 #define OPTYPE_DATA_METHOD_F_STR "F"
137 /* X : DS:rSI (Memory Address) */
138 #define OPTYPE_DATA_METHOD_X_STR "X"
139 /* Y : ES:rDI (Memory Address) */
140 #define OPTYPE_DATA_METHOD_Y_STR "Y"
142 /* 1 : 0x01 Data (Immediate Data) */
143 #define OPTYPE_DATA_METHOD_1_STR "1"
144 /* - : Illegal Instruction by DrDeamon64 Assembler System */
145 #define OPTYPE_DATA_METHOD_ILLEGAL_STR "-"
147 /* b : Byte (Regardless Operand Size Attribute) */
148 #define OPSIZE_B_STR "b"
149 /* w : Word (Regardless Operand Size Attribute) */
150 #define OPSIZE_W_STR "w"
151 /* d : DWord (Regardless Operand Size Attribute) */
152 #define OPSIZE_D_STR "d"
153 /* q : QuadWord(64bit) (Regardless Operand Size Attribute) */
154 #define OPSIZE_Q_STR "q"
155 /* dq : Double QuadWord(128Bit) (Regardless Operand Size Attribute) */
156 #define OPSIZE_DQ_STR "dq"
157 /* h : Memory Pointer for 94/108bit */
158 #define OPSIZE_H_STR "h"
159 /* p : Memory Pointer for 32bit or 48bit (depend on Operand Size Attribute) */
160 #define OPSIZE_P_STR "p"
161 /* r : Memory Pointer for 14bit / 28bit */
162 #define OPSIZE_R_STR "r"
163 /* t : Memory Pointer for 80bit */
164 #define OPSIZE_T_STR "t"
165 /* pd : 128bit Packed double-float Data */
166 #define OPSIZE_PD_STR "pd"
167 /* ps : 128bit Packed float Data */
168 #define OPSIZE_PS_STR "ps"
169 /* sd : Scalar Element of 128bit Packed Double-float Data */
170 #define OPSIZE_SD_STR "sd"
171 /* ss : Scalar Element of 128bit Packed float Data */
172 #define OPSIZE_SS_STR "ss"
173 /* s : 6Byte or 10 Byte Pseudo Descriptor */
174 #define OPSIZE_S_STR "s"
175 /* v : Word, DWord, QuadWord(64bit-ModeOnly) (Depend On Operand Size Attribute)*/
176 #define OPSIZE_V_STR "v"
177 /* z : Word(16bit Operand Size) or DWord(32/64 Operand Size) */
178 #define OPSIZE_Z_STR "z"
179 /* a : 2 Word or 2 DWord in Memory ( for BOUND ) */
180 #define OPSIZE_A_STR "a"
182 #define OPSIZE_ILLEGAL_STR "-"
185 #endif /* DRD64_HEADER_INTEL64DBFILE */
187 /* EOF of drd64_intel64_dbfile.h --------------------------------------*/