6 use Test::More tests => 5;
9 my($dat_stream,@array);
13 ($array,$dat_stream) = <DATA>;
18 (@array) = split '\s+', $array;
22 my @order = split '\n', `echo "$dat_stream" | perl regs.pl order -`;
23 is_deeply \@order, \@array;
26 ah al ax bh bl bp bpl bx ch cl
27 cr0 cr1 cr10 cr11 cr12 cr13 cr14 cr15 cr2 cr3 cr4 cr5 cr6 cr7 cr8 cr9
29 dr0 dr1 dr10 dr11 dr12 dr13 dr14 dr15 dr2 dr3 dr4 dr5 dr6 dr7 dr8 dr9
31 eax ebp ebx ecx edi edx es esi esp
33 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
42 rax rbp rbx rcx rdi rdx rsi rsp
45 st0 st1 st2 st3 st4 st5 st6 st7
46 tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7
47 xmm0 xmm1 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9
48 ymm0 ymm1 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9
51 # List of registers and their classes; classes are defined in nasm.h
55 # register name, assembler class, disassembler class(es), x86 register number
57 # If the register name ends in two numbers separated by a dash, then it is
58 # repeated as many times as indicated, and the register number is
62 # General-purpose registers
63 al REG_AL reg8,reg8_rex 0
68 bl REG8NA reg8,reg8_rex 3
73 cl REG_CL reg8,reg8_rex 1
78 dl REG_DL reg8,reg8_rex 2
99 r8-15b REG8NA reg8_rex 8
100 r8-15w REG16NA reg16 8
101 r8-15d REG32NA reg32 8
102 r8-15 REG64NA reg64 8
111 segr6-7 REG_SEG67 sreg 6
114 cr0-15 REG_CREG creg 0
117 dr0-15 REG_DREG dreg 0
120 tr0-7 REG_TREG treg 0
122 # Floating-point registers
124 st1-7 FPUREG fpureg 1
127 mm0-7 MMXREG mmxreg 0
131 xmm1-15 XMMREG xmmreg 1
135 ymm1-15 YMMREG ymmreg 1