Zydis  v2.0.0-alpha1
Register.h
Go to the documentation of this file.
1 /***************************************************************************************************
2 
3  Zyan Disassembler Library (Zydis)
4 
5  Original Author : Florian Bernd
6 
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE.
24 
25 ***************************************************************************************************/
26 
27 #ifndef ZYDIS_REGISTER_H
28 #define ZYDIS_REGISTER_H
29 
30 #include <Zydis/Defines.h>
31 #include <Zydis/CommonTypes.h>
32 #include <Zydis/Status.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /* ============================================================================================== */
39 /* Enums and types */
40 /* ============================================================================================== */
41 
42 /* ---------------------------------------------------------------------------------------------- */
43 /* Registers */
44 /* ---------------------------------------------------------------------------------------------- */
45 
49 typedef uint8_t ZydisRegister;
50 
55 {
57  // General purpose registers 8-bit
63  // General purpose registers 16-bit
68  // General purpose registers 32-bit
73  // General purpose registers 64-bit
78  // Floating point legacy registers
81  // Floating point multimedia registers
84  // Floating point vector registers 512-bit
93  // Floating point vector registers 256-bit
102  // Floating point vector registers 128-bit
111  // Flags registers
113  // Instruction-pointer registers
115  // Special registers
117  // Segment registers
120  // Table registers
122  // Test registers
125  // Control registers
130  // Debug registers
135  // Mask registers
138  // Bound registers
141 };
142 
143 /* ---------------------------------------------------------------------------------------------- */
144 /* Register classes */
145 /* ---------------------------------------------------------------------------------------------- */
146 
150 typedef uint8_t ZydisRegisterClass;
151 
156 {
226 };
227 
228 /* ---------------------------------------------------------------------------------------------- */
229 /* Register width */
230 /* ---------------------------------------------------------------------------------------------- */
231 
235 typedef uint16_t ZydisRegisterWidth;
236 
237 /* ---------------------------------------------------------------------------------------------- */
238 
239 /* ============================================================================================== */
240 /* Exported functions */
241 /* ============================================================================================== */
242 
252 ZYDIS_EXPORT ZydisRegister ZydisRegisterEncode(ZydisRegisterClass registerClass, uint8_t id);
253 
261 ZYDIS_EXPORT int16_t ZydisRegisterGetId(ZydisRegister reg);
262 
271 
280 
289 
297 ZYDIS_EXPORT const char* ZydisRegisterGetString(ZydisRegister reg);
298 
299 /* ============================================================================================== */
300 
301 #ifdef __cplusplus
302 }
303 #endif
304 
305 #endif /* ZYDIS_REGISTER_H */
Includes and defines some default datatypes.
uint8_t ZydisRegisterClass
Defines the ZydisRegisterClass datatype.
Definition: Register.h:150
ZYDIS_EXPORT ZydisRegisterWidth ZydisRegisterGetWidth64(ZydisRegister reg)
Returns the width of the specified register in 64-bit mode.
ZYDIS_EXPORT const char * ZydisRegisterGetString(ZydisRegister reg)
Returns the specified register string.
ZydisRegisters
Values that represent zydis registers.
Definition: Register.h:55
@ ZYDIS_REGISTER_GDTR
Definition: Register.h:121
@ ZYDIS_REGISTER_DL
Definition: Register.h:58
@ ZYDIS_REGISTER_ZMM8
Definition: Register.h:87
@ ZYDIS_REGISTER_RDX
Definition: Register.h:74
@ ZYDIS_REGISTER_FLAGS
Definition: Register.h:112
@ ZYDIS_REGISTER_ZMM16
Definition: Register.h:89
@ ZYDIS_REGISTER_MM7
Definition: Register.h:83
@ ZYDIS_REGISTER_ZMM26
Definition: Register.h:91
@ ZYDIS_REGISTER_XMM1
Definition: Register.h:103
@ ZYDIS_REGISTER_RSI
Definition: Register.h:75
@ ZYDIS_REGISTER_IP
Definition: Register.h:114
@ ZYDIS_REGISTER_R13B
Definition: Register.h:62
@ ZYDIS_REGISTER_XMM20
Definition: Register.h:108
@ ZYDIS_REGISTER_DR8
Definition: Register.h:133
@ ZYDIS_REGISTER_FS
Definition: Register.h:119
@ ZYDIS_REGISTER_XMM2
Definition: Register.h:103
@ ZYDIS_REGISTER_R8W
Definition: Register.h:66
@ ZYDIS_REGISTER_CH
Definition: Register.h:59
@ ZYDIS_REGISTER_ZMM6
Definition: Register.h:86
@ ZYDIS_REGISTER_RDI
Definition: Register.h:75
@ ZYDIS_REGISTER_RFLAGS
Definition: Register.h:112
@ ZYDIS_REGISTER_CR6
Definition: Register.h:127
@ ZYDIS_REGISTER_YMM25
Definition: Register.h:100
@ ZYDIS_REGISTER_TR3
Definition: Register.h:123
@ ZYDIS_REGISTER_K1
Definition: Register.h:136
@ ZYDIS_REGISTER_CS
Definition: Register.h:118
@ ZYDIS_REGISTER_K0
Definition: Register.h:136
@ ZYDIS_REGISTER_TR
Definition: Register.h:121
@ ZYDIS_REGISTER_YMM1
Definition: Register.h:94
@ ZYDIS_REGISTER_XMM24
Definition: Register.h:109
@ ZYDIS_REGISTER_YMM29
Definition: Register.h:101
@ ZYDIS_REGISTER_MM3
Definition: Register.h:82
@ ZYDIS_REGISTER_MM5
Definition: Register.h:83
@ ZYDIS_REGISTER_XMM10
Definition: Register.h:105
@ ZYDIS_REGISTER_EAX
Definition: Register.h:69
@ ZYDIS_REGISTER_ES
Definition: Register.h:118
@ ZYDIS_REGISTER_R8B
Definition: Register.h:61
@ ZYDIS_REGISTER_R10B
Definition: Register.h:61
@ ZYDIS_REGISTER_XMM6
Definition: Register.h:104
@ ZYDIS_REGISTER_YMM31
Definition: Register.h:101
@ ZYDIS_REGISTER_ZMM11
Definition: Register.h:87
@ ZYDIS_REGISTER_DR3
Definition: Register.h:131
@ ZYDIS_REGISTER_XMM19
Definition: Register.h:107
@ ZYDIS_REGISTER_R10W
Definition: Register.h:66
@ ZYDIS_REGISTER_BP
Definition: Register.h:65
@ ZYDIS_REGISTER_EDI
Definition: Register.h:70
@ ZYDIS_REGISTER_BH
Definition: Register.h:59
@ ZYDIS_REGISTER_XMM13
Definition: Register.h:106
@ ZYDIS_REGISTER_IDTR
Definition: Register.h:121
@ ZYDIS_REGISTER_AX
Definition: Register.h:64
@ ZYDIS_REGISTER_YMM18
Definition: Register.h:98
@ ZYDIS_REGISTER_ESI
Definition: Register.h:70
@ ZYDIS_REGISTER_EDX
Definition: Register.h:69
@ ZYDIS_REGISTER_ZMM18
Definition: Register.h:89
@ ZYDIS_REGISTER_R14W
Definition: Register.h:67
@ ZYDIS_REGISTER_K6
Definition: Register.h:137
@ ZYDIS_REGISTER_DR13
Definition: Register.h:134
@ ZYDIS_REGISTER_DH
Definition: Register.h:59
@ ZYDIS_REGISTER_XMM15
Definition: Register.h:106
@ ZYDIS_REGISTER_RSP
Definition: Register.h:75
@ ZYDIS_REGISTER_LDTR
Definition: Register.h:121
@ ZYDIS_REGISTER_ZMM29
Definition: Register.h:92
@ ZYDIS_REGISTER_XMM29
Definition: Register.h:110
@ ZYDIS_REGISTER_TR6
Definition: Register.h:124
@ ZYDIS_REGISTER_DIL
Definition: Register.h:60
@ ZYDIS_REGISTER_R15
Definition: Register.h:77
@ ZYDIS_REGISTER_R9D
Definition: Register.h:71
@ ZYDIS_REGISTER_MM4
Definition: Register.h:83
@ ZYDIS_REGISTER_BPL
Definition: Register.h:60
@ ZYDIS_REGISTER_ZMM0
Definition: Register.h:85
@ ZYDIS_REGISTER_YMM16
Definition: Register.h:98
@ ZYDIS_REGISTER_XMM0
Definition: Register.h:103
@ ZYDIS_REGISTER_R12D
Definition: Register.h:72
@ ZYDIS_REGISTER_RIP
Definition: Register.h:114
@ ZYDIS_REGISTER_CR0
Definition: Register.h:126
@ ZYDIS_REGISTER_TR7
Definition: Register.h:124
@ ZYDIS_REGISTER_SI
Definition: Register.h:65
@ ZYDIS_REGISTER_ZMM21
Definition: Register.h:90
@ ZYDIS_REGISTER_ZMM25
Definition: Register.h:91
@ ZYDIS_REGISTER_BNDCFG
Definition: Register.h:140
@ ZYDIS_REGISTER_CR3
Definition: Register.h:126
@ ZYDIS_REGISTER_XMM25
Definition: Register.h:109
@ ZYDIS_REGISTER_R8D
Definition: Register.h:71
@ ZYDIS_REGISTER_R15W
Definition: Register.h:67
@ ZYDIS_REGISTER_R14D
Definition: Register.h:72
@ ZYDIS_REGISTER_ZMM3
Definition: Register.h:85
@ ZYDIS_REGISTER_CR1
Definition: Register.h:126
@ ZYDIS_REGISTER_XMM26
Definition: Register.h:109
@ ZYDIS_REGISTER_DR10
Definition: Register.h:133
@ ZYDIS_REGISTER_XMM18
Definition: Register.h:107
@ ZYDIS_REGISTER_ZMM27
Definition: Register.h:91
@ ZYDIS_REGISTER_ZMM22
Definition: Register.h:90
@ ZYDIS_REGISTER_ZMM5
Definition: Register.h:86
@ ZYDIS_REGISTER_TR4
Definition: Register.h:124
@ ZYDIS_REGISTER_K3
Definition: Register.h:136
@ ZYDIS_REGISTER_DR14
Definition: Register.h:134
@ ZYDIS_REGISTER_R10
Definition: Register.h:76
@ ZYDIS_REGISTER_DR6
Definition: Register.h:132
@ ZYDIS_REGISTER_ZMM28
Definition: Register.h:92
@ ZYDIS_REGISTER_GS
Definition: Register.h:119
@ ZYDIS_REGISTER_AH
Definition: Register.h:59
@ ZYDIS_REGISTER_R11W
Definition: Register.h:66
@ ZYDIS_REGISTER_R15D
Definition: Register.h:72
@ ZYDIS_REGISTER_XMM27
Definition: Register.h:109
@ ZYDIS_REGISTER_XMM12
Definition: Register.h:106
@ ZYDIS_REGISTER_DR15
Definition: Register.h:134
@ ZYDIS_REGISTER_K4
Definition: Register.h:137
@ ZYDIS_REGISTER_DR2
Definition: Register.h:131
@ ZYDIS_REGISTER_MM6
Definition: Register.h:83
@ ZYDIS_REGISTER_R11
Definition: Register.h:76
@ ZYDIS_REGISTER_CR8
Definition: Register.h:128
@ ZYDIS_REGISTER_EBX
Definition: Register.h:69
@ ZYDIS_REGISTER_XMM21
Definition: Register.h:108
@ ZYDIS_REGISTER_XMM4
Definition: Register.h:104
@ ZYDIS_REGISTER_XMM8
Definition: Register.h:105
@ ZYDIS_REGISTER_CR7
Definition: Register.h:127
@ ZYDIS_REGISTER_YMM2
Definition: Register.h:94
@ ZYDIS_REGISTER_BND2
Definition: Register.h:139
@ ZYDIS_REGISTER_YMM15
Definition: Register.h:97
@ ZYDIS_REGISTER_ZMM13
Definition: Register.h:88
@ ZYDIS_REGISTER_ZMM20
Definition: Register.h:90
@ ZYDIS_REGISTER_R12B
Definition: Register.h:62
@ ZYDIS_REGISTER_CR15
Definition: Register.h:129
@ ZYDIS_REGISTER_PKRU
Definition: Register.h:116
@ ZYDIS_REGISTER_ZMM17
Definition: Register.h:89
@ ZYDIS_REGISTER_ZMM4
Definition: Register.h:86
@ ZYDIS_REGISTER_RBX
Definition: Register.h:74
@ ZYDIS_REGISTER_YMM30
Definition: Register.h:101
@ ZYDIS_REGISTER_YMM28
Definition: Register.h:101
@ ZYDIS_REGISTER_XMM16
Definition: Register.h:107
@ ZYDIS_REGISTER_XMM22
Definition: Register.h:108
@ ZYDIS_REGISTER_R9W
Definition: Register.h:66
@ ZYDIS_REGISTER_RCX
Definition: Register.h:74
@ ZYDIS_REGISTER_DS
Definition: Register.h:118
@ ZYDIS_REGISTER_XMM5
Definition: Register.h:104
@ ZYDIS_REGISTER_CL
Definition: Register.h:58
@ ZYDIS_REGISTER_SPL
Definition: Register.h:60
@ ZYDIS_REGISTER_YMM8
Definition: Register.h:96
@ ZYDIS_REGISTER_CR11
Definition: Register.h:128
@ ZYDIS_REGISTER_ZMM12
Definition: Register.h:88
@ ZYDIS_REGISTER_DR7
Definition: Register.h:132
@ ZYDIS_REGISTER_ST4
Definition: Register.h:80
@ ZYDIS_REGISTER_ZMM10
Definition: Register.h:87
@ ZYDIS_REGISTER_ST2
Definition: Register.h:79
@ ZYDIS_REGISTER_ECX
Definition: Register.h:69
@ ZYDIS_REGISTER_YMM23
Definition: Register.h:99
@ ZYDIS_REGISTER_XMM28
Definition: Register.h:110
@ ZYDIS_REGISTER_TR2
Definition: Register.h:123
@ ZYDIS_REGISTER_YMM9
Definition: Register.h:96
@ ZYDIS_REGISTER_MM0
Definition: Register.h:82
@ ZYDIS_REGISTER_CR9
Definition: Register.h:128
@ ZYDIS_REGISTER_BND1
Definition: Register.h:139
@ ZYDIS_REGISTER_ZMM9
Definition: Register.h:87
@ ZYDIS_REGISTER_R13W
Definition: Register.h:67
@ ZYDIS_REGISTER_CR14
Definition: Register.h:129
@ ZYDIS_REGISTER_ZMM2
Definition: Register.h:85
@ ZYDIS_REGISTER_DR1
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM17
Definition: Register.h:98
@ ZYDIS_REGISTER_R12
Definition: Register.h:77
@ ZYDIS_REGISTER_NONE
Definition: Register.h:56
@ ZYDIS_REGISTER_ZMM15
Definition: Register.h:88
@ ZYDIS_REGISTER_BND3
Definition: Register.h:139
@ ZYDIS_REGISTER_RAX
Definition: Register.h:74
@ ZYDIS_REGISTER_SIL
Definition: Register.h:60
@ ZYDIS_REGISTER_R11B
Definition: Register.h:61
@ ZYDIS_REGISTER_MM1
Definition: Register.h:82
@ ZYDIS_REGISTER_XMM17
Definition: Register.h:107
@ ZYDIS_REGISTER_YMM27
Definition: Register.h:100
@ ZYDIS_REGISTER_R15B
Definition: Register.h:62
@ ZYDIS_REGISTER_EBP
Definition: Register.h:70
@ ZYDIS_REGISTER_RBP
Definition: Register.h:75
@ ZYDIS_REGISTER_ST6
Definition: Register.h:80
@ ZYDIS_REGISTER_DR9
Definition: Register.h:133
@ ZYDIS_REGISTER_ST3
Definition: Register.h:79
@ ZYDIS_REGISTER_MXCSR
Definition: Register.h:116
@ ZYDIS_REGISTER_R14
Definition: Register.h:77
@ ZYDIS_REGISTER_SP
Definition: Register.h:65
@ ZYDIS_REGISTER_AL
Definition: Register.h:58
@ ZYDIS_REGISTER_TR1
Definition: Register.h:123
@ ZYDIS_REGISTER_BND0
Definition: Register.h:139
@ ZYDIS_REGISTER_YMM0
Definition: Register.h:94
@ ZYDIS_REGISTER_YMM12
Definition: Register.h:97
@ ZYDIS_REGISTER_K7
Definition: Register.h:137
@ ZYDIS_REGISTER_YMM14
Definition: Register.h:97
@ ZYDIS_REGISTER_XMM30
Definition: Register.h:110
@ ZYDIS_REGISTER_YMM26
Definition: Register.h:100
@ ZYDIS_REGISTER_YMM21
Definition: Register.h:99
@ ZYDIS_REGISTER_R11D
Definition: Register.h:71
@ ZYDIS_REGISTER_ZMM24
Definition: Register.h:91
@ ZYDIS_REGISTER_ZMM23
Definition: Register.h:90
@ ZYDIS_REGISTER_BNDSTATUS
Definition: Register.h:140
@ ZYDIS_REGISTER_R8
Definition: Register.h:76
@ ZYDIS_REGISTER_ST0
Definition: Register.h:79
@ ZYDIS_REGISTER_R9
Definition: Register.h:76
@ ZYDIS_REGISTER_K5
Definition: Register.h:137
@ ZYDIS_REGISTER_YMM24
Definition: Register.h:100
@ ZYDIS_REGISTER_XMM14
Definition: Register.h:106
@ ZYDIS_REGISTER_ZMM1
Definition: Register.h:85
@ ZYDIS_REGISTER_CR5
Definition: Register.h:127
@ ZYDIS_REGISTER_YMM11
Definition: Register.h:96
@ ZYDIS_REGISTER_DR12
Definition: Register.h:134
@ ZYDIS_REGISTER_YMM10
Definition: Register.h:96
@ ZYDIS_REGISTER_MM2
Definition: Register.h:82
@ ZYDIS_REGISTER_DX
Definition: Register.h:64
@ ZYDIS_REGISTER_BX
Definition: Register.h:64
@ ZYDIS_REGISTER_TR0
Definition: Register.h:123
@ ZYDIS_REGISTER_R13
Definition: Register.h:77
@ ZYDIS_REGISTER_ST7
Definition: Register.h:80
@ ZYDIS_REGISTER_XMM23
Definition: Register.h:108
@ ZYDIS_REGISTER_YMM3
Definition: Register.h:94
@ ZYDIS_REGISTER_ST5
Definition: Register.h:80
@ ZYDIS_REGISTER_XMM3
Definition: Register.h:103
@ ZYDIS_REGISTER_R10D
Definition: Register.h:71
@ ZYDIS_REGISTER_K2
Definition: Register.h:136
@ ZYDIS_REGISTER_TR5
Definition: Register.h:124
@ ZYDIS_REGISTER_R14B
Definition: Register.h:62
@ ZYDIS_REGISTER_ZMM7
Definition: Register.h:86
@ ZYDIS_REGISTER_YMM5
Definition: Register.h:95
@ ZYDIS_REGISTER_ZMM31
Definition: Register.h:92
@ ZYDIS_REGISTER_EIP
Definition: Register.h:114
@ ZYDIS_REGISTER_ZMM30
Definition: Register.h:92
@ ZYDIS_REGISTER_XMM11
Definition: Register.h:105
@ ZYDIS_REGISTER_DI
Definition: Register.h:65
@ ZYDIS_REGISTER_R9B
Definition: Register.h:61
@ ZYDIS_REGISTER_XMM7
Definition: Register.h:104
@ ZYDIS_REGISTER_DR0
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM7
Definition: Register.h:95
@ ZYDIS_REGISTER_YMM6
Definition: Register.h:95
@ ZYDIS_REGISTER_CR10
Definition: Register.h:128
@ ZYDIS_REGISTER_R12W
Definition: Register.h:67
@ ZYDIS_REGISTER_XCR0
Definition: Register.h:116
@ ZYDIS_REGISTER_CR4
Definition: Register.h:127
@ ZYDIS_REGISTER_DR4
Definition: Register.h:132
@ ZYDIS_REGISTER_XMM31
Definition: Register.h:110
@ ZYDIS_REGISTER_CR2
Definition: Register.h:126
@ ZYDIS_REGISTER_YMM20
Definition: Register.h:99
@ ZYDIS_REGISTER_CX
Definition: Register.h:64
@ ZYDIS_REGISTER_YMM13
Definition: Register.h:97
@ ZYDIS_REGISTER_CR13
Definition: Register.h:129
@ ZYDIS_REGISTER_ZMM19
Definition: Register.h:89
@ ZYDIS_REGISTER_CR12
Definition: Register.h:129
@ ZYDIS_REGISTER_BL
Definition: Register.h:58
@ ZYDIS_REGISTER_R13D
Definition: Register.h:72
@ ZYDIS_REGISTER_ST1
Definition: Register.h:79
@ ZYDIS_REGISTER_YMM22
Definition: Register.h:99
@ ZYDIS_REGISTER_ESP
Definition: Register.h:70
@ ZYDIS_REGISTER_YMM4
Definition: Register.h:95
@ ZYDIS_REGISTER_YMM19
Definition: Register.h:98
@ ZYDIS_REGISTER_DR5
Definition: Register.h:132
@ ZYDIS_REGISTER_SS
Definition: Register.h:118
@ ZYDIS_REGISTER_ZMM14
Definition: Register.h:88
@ ZYDIS_REGISTER_XMM9
Definition: Register.h:105
@ ZYDIS_REGISTER_DR11
Definition: Register.h:133
@ ZYDIS_REGISTER_EFLAGS
Definition: Register.h:112
ZydisRegisterClasses
Values that represent zydis register-classes.
Definition: Register.h:156
@ ZYDIS_REGCLASS_MMX
Floating point multimedia registers.
Definition: Register.h:181
@ ZYDIS_REGCLASS_IP
Instruction-pointer registers.
Definition: Register.h:201
@ ZYDIS_REGCLASS_CONTROL
Control registers.
Definition: Register.h:213
@ ZYDIS_REGCLASS_GPR8
8-bit general-purpose registers.
Definition: Register.h:161
@ ZYDIS_REGCLASS_SEGMENT
Segment registers.
Definition: Register.h:205
@ ZYDIS_REGCLASS_TEST
Test registers.
Definition: Register.h:209
@ ZYDIS_REGCLASS_X87
Floating point legacy registers.
Definition: Register.h:177
@ ZYDIS_REGCLASS_YMM
256-bit vector registers.
Definition: Register.h:189
@ ZYDIS_REGCLASS_GPR64
64-bit general-purpose registers.
Definition: Register.h:173
@ ZYDIS_REGCLASS_BOUND
Bound registers.
Definition: Register.h:225
@ ZYDIS_REGCLASS_GPR32
32-bit general-purpose registers.
Definition: Register.h:169
@ ZYDIS_REGCLASS_INVALID
Definition: Register.h:157
@ ZYDIS_REGCLASS_DEBUG
Debug registers.
Definition: Register.h:217
@ ZYDIS_REGCLASS_FLAGS
Flags registers.
Definition: Register.h:197
@ ZYDIS_REGCLASS_ZMM
512-bit vector registers.
Definition: Register.h:193
@ ZYDIS_REGCLASS_MASK
Mask registers.
Definition: Register.h:221
@ ZYDIS_REGCLASS_GPR16
16-bit general-purpose registers.
Definition: Register.h:165
@ ZYDIS_REGCLASS_XMM
128-bit vector registers.
Definition: Register.h:185
ZYDIS_EXPORT ZydisRegisterWidth ZydisRegisterGetWidth(ZydisRegister reg)
Returns the width of the specified register.
uint16_t ZydisRegisterWidth
Defines the ZydisRegisterWidth datatype.
Definition: Register.h:235
uint8_t ZydisRegister
Defines the ZydisRegister datatype.
Definition: Register.h:49
ZYDIS_EXPORT ZydisRegister ZydisRegisterEncode(ZydisRegisterClass registerClass, uint8_t id)
Returns the register specified by the registerClass and the id.
ZYDIS_EXPORT ZydisRegisterClass ZydisRegisterGetClass(ZydisRegister reg)
Returns the register-class of the specified register.
ZYDIS_EXPORT int16_t ZydisRegisterGetId(ZydisRegister reg)
Returns the id of the specified register.