2002-06-06 10:41:20 +08:00
|
|
|
#
|
|
|
|
# List of registers and their classes; classes are defined in nasm.h
|
|
|
|
#
|
2007-04-16 07:12:17 +08:00
|
|
|
# The columns are:
|
|
|
|
#
|
2007-05-30 11:25:21 +08:00
|
|
|
# register name, assembler class, disassembler class(es), x86 register number
|
2007-04-16 07:12:17 +08:00
|
|
|
#
|
2007-05-30 11:25:21 +08:00
|
|
|
# If the register name ends in two numbers separated by a dash, then it is
|
|
|
|
# repeated as many times as indicated, and the register number is
|
|
|
|
# updated with it.
|
2007-04-16 07:12:17 +08:00
|
|
|
#
|
2007-04-12 10:40:54 +08:00
|
|
|
|
2002-06-06 10:41:20 +08:00
|
|
|
# General-purpose registers
|
2007-05-30 11:25:21 +08:00
|
|
|
al REG_AL reg8,reg8_rex 0
|
|
|
|
ah REG_HIGH reg8 4
|
|
|
|
ax REG_AX reg16 0
|
|
|
|
eax REG_EAX reg32 0
|
|
|
|
rax REG_RAX reg64 0
|
2007-11-13 12:18:05 +08:00
|
|
|
bl REG8NA reg8,reg8_rex 3
|
2007-05-30 11:25:21 +08:00
|
|
|
bh REG_HIGH reg8 7
|
2007-11-13 12:18:05 +08:00
|
|
|
bx REG16NA reg16 3
|
|
|
|
ebx REG32NA reg32 3
|
|
|
|
rbx REG64NA reg64 3
|
2007-05-30 11:25:21 +08:00
|
|
|
cl REG_CL reg8,reg8_rex 1
|
|
|
|
ch REG_HIGH reg8 5
|
|
|
|
cx REG_CX reg16 1
|
|
|
|
ecx REG_ECX reg32 1
|
|
|
|
rcx REG_RCX reg64 1
|
|
|
|
dl REG_DL reg8,reg8_rex 2
|
|
|
|
dh REG_HIGH reg8 6
|
|
|
|
dx REG_DX reg16 2
|
|
|
|
edx REG_EDX reg32 2
|
|
|
|
rdx REG_RDX reg64 2
|
2007-11-13 12:18:05 +08:00
|
|
|
spl REG8NA reg8_rex 4
|
|
|
|
sp REG16NA reg16 4
|
|
|
|
esp REG32NA reg32 4
|
|
|
|
rsp REG64NA reg64 4
|
|
|
|
bpl REG8NA reg8_rex 5
|
|
|
|
bp REG16NA reg16 5
|
|
|
|
ebp REG32NA reg32 5
|
|
|
|
rbp REG64NA reg64 5
|
|
|
|
sil REG8NA reg8_rex 6
|
|
|
|
si REG16NA reg16 6
|
|
|
|
esi REG32NA reg32 6
|
|
|
|
rsi REG64NA reg64 6
|
|
|
|
dil REG8NA reg8_rex 7
|
|
|
|
di REG16NA reg16 7
|
|
|
|
edi REG32NA reg32 7
|
|
|
|
rdi REG64NA reg64 7
|
|
|
|
r8-15b REG8NA reg8_rex 8
|
|
|
|
r8-15w REG16NA reg16 8
|
|
|
|
r8-15d REG32NA reg32 8
|
|
|
|
r8-15 REG64NA reg64 8
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# Segment registers
|
2007-05-30 11:25:21 +08:00
|
|
|
cs REG_CS sreg 1
|
|
|
|
ds REG_DESS sreg 3
|
|
|
|
es REG_DESS sreg 0
|
|
|
|
ss REG_DESS sreg 2
|
|
|
|
fs REG_FSGS sreg 4
|
|
|
|
gs REG_FSGS sreg 5
|
|
|
|
segr6-7 REG_SEG67 sreg 6
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# Control registers
|
2007-05-30 11:25:21 +08:00
|
|
|
cr0-15 REG_CREG creg 0
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# Debug registers
|
2007-05-30 11:25:21 +08:00
|
|
|
dr0-15 REG_DREG dreg 0
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# Test registers
|
2007-05-30 11:25:21 +08:00
|
|
|
tr0-7 REG_TREG treg 0
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# Floating-point registers
|
2007-05-30 11:25:21 +08:00
|
|
|
st0 FPU0 fpureg 0
|
|
|
|
st1-7 FPUREG fpureg 1
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# MMX registers
|
2007-05-30 11:25:21 +08:00
|
|
|
mm0-7 MMXREG mmxreg 0
|
2002-06-06 10:41:20 +08:00
|
|
|
|
|
|
|
# SSE registers
|
2007-09-13 12:58:51 +08:00
|
|
|
xmm0 XMM0 xmmreg 0
|
|
|
|
xmm1-15 XMMREG xmmreg 1
|
2008-04-22 10:44:55 +08:00
|
|
|
|
|
|
|
# AVX registers
|
2008-05-21 07:47:12 +08:00
|
|
|
ymm0 YMM0 ymmreg 0
|
2008-05-27 10:23:01 +08:00
|
|
|
ymm1-15 YMMREG ymmreg 1
|