Get rid of magic open-coded "register numbers"
[nasm.git] / regs.dat
blob14cdd50fb4d686d2b4d55d86475a390a184ac1d0
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), x86 register number
9 # If the register name ends in two numbers separated by a dash, then it is
10 # repeated as many times as indicated, and the register number is
11 # updated with it.
14 # General-purpose registers
15 al REG_AL reg8,reg8_rex 0
16 ah REG_HIGH reg8 4
17 ax REG_AX reg16 0
18 eax REG_EAX reg32 0
19 rax REG_RAX reg64 0
20 bl REG8 reg8,reg8_rex 3
21 bh REG_HIGH reg8 7
22 bx REG16 reg16 3
23 ebx REG32 reg32 3
24 rbx REG64 reg64 3
25 cl REG_CL reg8,reg8_rex 1
26 ch REG_HIGH reg8 5
27 cx REG_CX reg16 1
28 ecx REG_ECX reg32 1
29 rcx REG_RCX reg64 1
30 dl REG_DL reg8,reg8_rex 2
31 dh REG_HIGH reg8 6
32 dx REG_DX reg16 2
33 edx REG_EDX reg32 2
34 rdx REG_RDX reg64 2
35 spl REG8 reg8_rex 4
36 sp REG16 reg16 4
37 esp REG32 reg32 4
38 rsp REG64 reg64 4
39 bpl REG8 reg8_rex 5
40 bp REG16 reg16 5
41 ebp REG32 reg32 5
42 rbp REG64 reg64 5
43 sil REG8 reg8_rex 6
44 si REG16 reg16 6
45 esi REG32 reg32 6
46 rsi REG64 reg64 6
47 dil REG8 reg8_rex 7
48 di REG16 reg16 7
49 edi REG32 reg32 7
50 rdi REG64 reg64 7
51 r8b REG8 reg8_rex 8
52 r8w REG16 reg16 8
53 r8d REG32 reg32 8
54 r8 REG64 reg64 8
55 r9b REG8 reg8_rex 9
56 r9w REG16 reg16 9
57 r9d REG32 reg32 9
58 r9 REG64 reg64 9
59 r10b REG8 reg8_rex 10
60 r10w REG16 reg16 10
61 r10d REG32 reg32 10
62 r10 REG64 reg64 10
63 r11b REG8 reg8_rex 11
64 r11w REG16 reg16 11
65 r11d REG32 reg32 11
66 r11 REG64 reg64 11
67 r12b REG8 reg8_rex 12
68 r12w REG16 reg16 12
69 r12d REG32 reg32 12
70 r12 REG64 reg64 12
71 r13b REG8 reg8_rex 13
72 r13w REG16 reg16 13
73 r13d REG32 reg32 13
74 r13 REG64 reg64 13
75 r14b REG8 reg8_rex 14
76 r14w REG16 reg16 14
77 r14d REG32 reg32 14
78 r14 REG64 reg64 14
79 r15b REG8 reg8_rex 15
80 r15w REG16 reg16 15
81 r15d REG32 reg32 15
82 r15 REG64 reg64 15
84 # Segment registers
85 cs REG_CS sreg 1
86 ds REG_DESS sreg 3
87 es REG_DESS sreg 0
88 ss REG_DESS sreg 2
89 fs REG_FSGS sreg 4
90 gs REG_FSGS sreg 5
91 segr6-7 REG_SEG67 sreg 6
93 # Control registers
94 cr0-15 REG_CREG creg 0
96 # Debug registers
97 dr0-15 REG_DREG dreg 0
99 # Test registers
100 tr0-7 REG_TREG treg 0
102 # Floating-point registers
103 st0 FPU0 fpureg 0
104 st1-7 FPUREG fpureg 1
106 # MMX registers
107 mm0-7 MMXREG mmxreg 0
109 # SSE registers
110 xmm0-15 XMMREG xmmreg 0
112 # Special registers
113 eip REG_EIP eipreg 0
114 rip REG_RIP ripreg 0