1 ## --------------------------------------------------------------------------
3 ## Copyright 1996-2009 The NASM Authors - All Rights Reserved
4 ## See the file AUTHORS included with the NASM distribution for
5 ## the specific copyright holders.
7 ## Redistribution and use in source and binary forms, with or without
8 ## modification, are permitted provided that the following
11 ## * Redistributions of source code must retain the above copyright
12 ## notice, this list of conditions and the following disclaimer.
13 ## * Redistributions in binary form must reproduce the above
14 ## copyright notice, this list of conditions and the following
15 ## disclaimer in the documentation and/or other materials provided
16 ## with the distribution.
18 ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 ## CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 ## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 ## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 ## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26 ## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 ## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 ## OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 ## EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 ## --------------------------------------------------------------------------
35 # List of registers and their classes; classes are defined in nasm.h
39 # register name, assembler class, disassembler class(es), x86 register number[, token flag]
41 # If the register name ends in two numbers separated by a dash, then it is
42 # repeated as many times as indicated, and the register number is
45 # If 'token flag' is present, this value will be assigned to tokflag field in
46 # 'struct tokendata tokendata[]' table. Token flag can be used for specifying
47 # special usage of corresponding register. E.g. opmask registers can be either
48 # enclosed by curly braces or standalone operand depending on the usage.
51 # General-purpose registers
52 al REG_AL reg8
,reg8_rex
0
57 bl REG8NA reg8
,reg8_rex
3
62 cl REG_CL reg8
,reg8_rex
1
67 dl REG_DL reg8
,reg8_rex
2
88 r8
-15b REG8NA reg8_rex
8
89 r8
-15w REG16NA reg16
8
90 r8
-15d REG32NA reg32
8
100 segr6
-7 REG_SEG67 sreg
6
103 cr0
-15 REG_CREG creg
0
106 dr0
-15 REG_DREG dreg
0
109 tr0
-7 REG_TREG treg
0
111 # Floating-point registers
113 st1
-7 FPUREG fpureg
1
116 mm0
-7 MMXREG mmxreg
0
120 xmm1
-31 XMMREG xmmreg
1
124 ymm1
-31 YMMREG ymmreg
1
128 zmm1
-31 ZMMREG zmmreg
1
131 k0 OPMASK0 opmaskreg
0
132 k1
-7 OPMASKREG opmaskreg
1 TFLAG_BRC_OPT
135 bnd0
-3 BNDREG bndreg
0