summaryrefslogtreecommitdiff
path: root/regs.dat
blob: f508eb4c1ab72062945c4d2954a49f52a8f970fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# $Id$
#
# List of registers and their classes; classes are defined in nasm.h
#
# The columns are:
#
# register name, assembler class, disassembler class(es),
# NASM register number, x86 register number
#
# If the register name ends in +, then it is repeated 8 times
# with the following changes:
# - a numerical tail to register number is incremented
# - the NASM and x86 register numbers are incremented
#
# For 16-register register sets, two + lines are required.
#

# Legacy Registers
# 000-007 = 8-bit Registers
# 010-017 = 16-bit Registers
# 020-027 = 32-bit Registers

# System Registers
# 100-107 = Segment Registers
# 110-127 = Control Registers
# 130-147 = Debug Registers
# 150-167 = Test Registers

# Legacy Extended Registers
# 200-207 = FPU Registers
# 210-217 = MMX Registers
# 220-227 = XMM Registers (XMM0-XMM7)

# x64 Extended Registers
# 400-407 = 8-bit Extensions (SIL/DIL/BPL/SPL)
# 410-417 = 8-bit Registers (R8B-R15B)
# 420-427 = 16-bit Registers (R8W-R15W)
# 430-437 = 32-bit Registers (R8D-R15D)
# 440-457 = 64-bit Registers (RAX-RDI+R8-R15)
# 460-467 = XMM Extended Registers (XMM8-XMM15)

# Special Registers
# 0500 = RIP (for RIP-relative Addressing)


# General-purpose registers
al	REG_AL		reg8,reg8_rex	0000	0
ah	REG8		reg8		0004	4
ax	REG_AX		reg16		0010	0
eax	REG_EAX		reg32		0020	0
rax	REG_RAX		reg64		0440	0
bl	REG8		reg8,reg8_rex	0003	3
bh	REG8		reg8		0007	7
bx	REG16		reg16		0013	3
ebx	REG32		reg32		0023	3
rbx	REG64		reg64		0443	3
cl	REG_CL		reg8,reg8_rex	0001	1
ch	REG8		reg8		0005	5
cx	REG_CX		reg16		0011	1
ecx	REG_ECX		reg32		0021	1
rcx	REG_RCX		reg64		0441	1
dl	REG_DL		reg8,reg8_rex	0002	2
dh	REG8		reg8		0006	6
dx	REG_DX		reg16		0012	2
edx	REG_EDX		reg32		0022	2
rdx	REG_RDX		reg64		0442	2
spl	REG8		reg8_rex	0404	4
sp	REG16		reg16		0014	4
esp	REG32		reg32		0024	4
rsp	REG64		reg64		0444	4
bpl	REG8		reg8_rex	0405	5
bp	REG16		reg16		0015	5
ebp	REG32		reg32		0025	5
rbp	REG64		reg64		0445	5
sil	REG8		reg8_rex	0406	6
si	REG16		reg16		0016	6
esi	REG32		reg32		0026	6
rsi	REG64		reg64		0446	6
dil	REG8		reg8_rex	0407	7
di	REG16		reg16		0017	7
edi	REG32		reg32		0027	7
rdi	REG64		reg64		0447	7
r8b	REG8		reg8_rex	0410	8
r8w	REG16		reg16		0420	8
r8d	REG32		reg32		0430	8
r8	REG64		reg64		0450	8
r9b	REG8		reg8_rex	0411	9
r9w	REG16		reg16		0421	9
r9d	REG32		reg32		0431	9
r9	REG64		reg64		0451	9
r10b	REG8		reg8_rex	0412	10
r10w	REG16		reg16		0422	10
r10d	REG32		reg32		0432	10
r10	REG64		reg64		0452	10
r11b	REG8		reg8_rex	0413	11
r11w	REG16		reg16		0423	11
r11d	REG32		reg32		0433	11
r11	REG64		reg64		0453	11
r12b	REG8		reg8_rex	0414	12
r12w	REG16		reg16		0424	12
r12d	REG32		reg32		0434	12
r12	REG64		reg64		0454	12
r13b	REG8		reg8_rex	0415	13
r13w	REG16		reg16		0425	13
r13d	REG32		reg32		0435	13
r13	REG64		reg64		0455	13
r14b	REG8		reg8_rex	0416	14
r14w	REG16		reg16		0426	14
r14d	REG32		reg32		0436	14
r14	REG64		reg64		0456	14
r15b	REG8		reg8_rex	0417	15
r15w	REG16		reg16		0427	15
r15d	REG32		reg32		0437	15
r15	REG64		reg64		0457	15

# Segment registers
cs	REG_CS		sreg		0101	1
ds	REG_DESS	sreg		0103	3
es	REG_DESS	sreg		0100	0
ss	REG_DESS	sreg		0102	2
fs	REG_FSGS	sreg		0104	4
gs	REG_FSGS	sreg		0105	5
segr6	REG_SEG67	sreg		0106	6
segr7	REG_SEG67	sreg		0107	7

# Control registers
cr0+	REG_CREG	creg		0110	0
cr8+	REG_CREG	creg		0120	8

# Debug registers
dr0+	REG_DREG	dreg		0130	0
dr8+	REG_DREG	dreg		0140	8

# Test registers
tr0+	REG_TREG	treg		0150	0

# Floating-point registers
st0	FPU0		fpureg		0200	0
st1	FPUREG		fpureg		0201	1
st2	FPUREG		fpureg		0202	2
st3	FPUREG		fpureg		0203	3
st4	FPUREG		fpureg		0204	4
st5	FPUREG		fpureg		0205	5
st6	FPUREG		fpureg		0206	6
st7	FPUREG		fpureg		0207	7

# MMX registers
mm0+	MMXREG		mmxreg		0220	0

# SSE registers
xmm0+	XMMREG		xmmreg		0240	0
xmm8+	XMMREG		xmmreg		0460	8

# Special registers
rip	REG_RIP		ripreg		0500    0