assemble.c: correct special handing of ESP/RSP
[nasm.git] / regs.dat
blobd51592fb2d999569a20de6857d7f734278833b2e
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 r8-15b REG8 reg8_rex 8
52 r8-15w REG16 reg16 8
53 r8-15d REG32 reg32 8
54 r8-15 REG64 reg64 8
56 # Segment registers
57 cs REG_CS sreg 1
58 ds REG_DESS sreg 3
59 es REG_DESS sreg 0
60 ss REG_DESS sreg 2
61 fs REG_FSGS sreg 4
62 gs REG_FSGS sreg 5
63 segr6-7 REG_SEG67 sreg 6
65 # Control registers
66 cr0-15 REG_CREG creg 0
68 # Debug registers
69 dr0-15 REG_DREG dreg 0
71 # Test registers
72 tr0-7 REG_TREG treg 0
74 # Floating-point registers
75 st0 FPU0 fpureg 0
76 st1-7 FPUREG fpureg 1
78 # MMX registers
79 mm0-7 MMXREG mmxreg 0
81 # SSE registers
82 xmm0-15 XMMREG xmmreg 0