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
|