update version number to 0.99.01
[nasm.git] / regs.dat
blob2d79d338143c6fab342839acee293e7ec3876a49
1 # $Id$
3 # List of registers and their classes; classes are defined in nasm.h
5 # The columns are:
7 # register name, assembler class, disassembler class(es),
8 # NASM register number, x86 register number
10 # If the register name ends in +, then it is repeated 8 times
11 # with the following changes:
12 # - a numerical tail to register number is incremented
13 # - the NASM and x86 register numbers are incremented
15 # For 16-register register sets, two + lines are required.
18 # Legacy Registers
19 # 000-007 = 8-bit Registers
20 # 010-017 = 16-bit Registers
21 # 020-027 = 32-bit Registers
23 # System Registers
24 # 100-107 = Segment Registers
25 # 110-127 = Control Registers
26 # 130-147 = Debug Registers
27 # 150-167 = Test Registers
29 # Legacy Extended Registers
30 # 200-207 = FPU Registers
31 # 210-217 = MMX Registers
32 # 220-227 = XMM Registers (XMM0-XMM7)
34 # x64 Extended Registers
35 # 404-407 = 8-bit Extensions (SIL/DIL/BPL/SPL)
36 # 410-417 = 8-bit Registers (R8B-R15B)
37 # 420-427 = 16-bit Registers (R8W-R15W)
38 # 430-437 = 32-bit Registers (R8D-R15D)
39 # 440-457 = 64-bit Registers (RAX-RDI+R8-R15)
40 # 460-467 = XMM Extended Registers (XMM8-XMM15)
42 # Special Registers
43 # 0500 = RIP (for RIP-relative Addressing)
46 # General-purpose registers
47 al REG_AL reg8,reg8_rex 0000 0
48 ah REG8 reg8 0004 4
49 ax REG_AX reg16 0010 0
50 eax REG_EAX reg32 0020 0
51 rax REG_RAX reg64 0440 0
52 bl REG8 reg8,reg8_rex 0003 3
53 bh REG8 reg8 0007 7
54 bx REG16 reg16 0013 3
55 ebx REG32 reg32 0023 3
56 rbx REG64 reg64 0443 3
57 cl REG_CL reg8,reg8_rex 0001 1
58 ch REG8 reg8 0005 5
59 cx REG_CX reg16 0011 1
60 ecx REG_ECX reg32 0021 1
61 rcx REG_RCX reg64 0441 1
62 dl REG_DL reg8,reg8_rex 0002 2
63 dh REG8 reg8 0006 6
64 dx REG_DX reg16 0012 2
65 edx REG_EDX reg32 0022 2
66 rdx REG_RDX reg64 0442 2
67 spl REG8 reg8_rex 0404 4
68 sp REG16 reg16 0014 4
69 esp REG32 reg32 0024 4
70 rsp REG64 reg64 0444 4
71 bpl REG8 reg8_rex 0405 5
72 bp REG16 reg16 0015 5
73 ebp REG32 reg32 0025 5
74 rbp REG64 reg64 0445 5
75 sil REG8 reg8_rex 0406 6
76 si REG16 reg16 0016 6
77 esi REG32 reg32 0026 6
78 rsi REG64 reg64 0446 6
79 dil REG8 reg8_rex 0407 7
80 di REG16 reg16 0017 7
81 edi REG32 reg32 0027 7
82 rdi REG64 reg64 0447 7
83 r8b REG8 reg8_rex 0410 8
84 r8w REG16 reg16 0420 8
85 r8d REG32 reg32 0430 8
86 r8 REG64 reg64 0450 8
87 r9b REG8 reg8_rex 0411 9
88 r9w REG16 reg16 0421 9
89 r9d REG32 reg32 0431 9
90 r9 REG64 reg64 0451 9
91 r10b REG8 reg8_rex 0412 10
92 r10w REG16 reg16 0422 10
93 r10d REG32 reg32 0432 10
94 r10 REG64 reg64 0452 10
95 r11b REG8 reg8_rex 0413 11
96 r11w REG16 reg16 0423 11
97 r11d REG32 reg32 0433 11
98 r11 REG64 reg64 0453 11
99 r12b REG8 reg8_rex 0414 12
100 r12w REG16 reg16 0424 12
101 r12d REG32 reg32 0434 12
102 r12 REG64 reg64 0454 12
103 r13b REG8 reg8_rex 0415 13
104 r13w REG16 reg16 0425 13
105 r13d REG32 reg32 0435 13
106 r13 REG64 reg64 0455 13
107 r14b REG8 reg8_rex 0416 14
108 r14w REG16 reg16 0426 14
109 r14d REG32 reg32 0436 14
110 r14 REG64 reg64 0456 14
111 r15b REG8 reg8_rex 0417 15
112 r15w REG16 reg16 0427 15
113 r15d REG32 reg32 0437 15
114 r15 REG64 reg64 0457 15
116 # Segment registers
117 cs REG_CS sreg 0101 1
118 ds REG_DESS sreg 0103 3
119 es REG_DESS sreg 0100 0
120 ss REG_DESS sreg 0102 2
121 fs REG_FSGS sreg 0104 4
122 gs REG_FSGS sreg 0105 5
123 segr6 REG_SEG67 sreg 0106 6
124 segr7 REG_SEG67 sreg 0107 7
126 # Control registers
127 cr0+ REG_CREG creg 0110 0
128 cr8+ REG_CREG creg 0120 8
130 # Debug registers
131 dr0+ REG_DREG dreg 0130 0
132 dr8+ REG_DREG dreg 0140 8
134 # Test registers
135 tr0+ REG_TREG treg 0150 0
137 # Floating-point registers
138 st0 FPU0 fpureg 0200 0
139 st1 FPUREG fpureg 0201 1
140 st2 FPUREG fpureg 0202 2
141 st3 FPUREG fpureg 0203 3
142 st4 FPUREG fpureg 0204 4
143 st5 FPUREG fpureg 0205 5
144 st6 FPUREG fpureg 0206 6
145 st7 FPUREG fpureg 0207 7
147 # MMX registers
148 mm0+ MMXREG mmxreg 0220 0
150 # SSE registers
151 xmm0+ XMMREG xmmreg 0240 0
152 xmm8+ XMMREG xmmreg 0460 8
154 # Special registers
155 rip REG_RIP ripreg 0500 0