Register operands are always prefixed with %. The 80386 registers
consist of
%eax (the accumulator), %ebx,
%ecx, %edx, %edi, %esi, %ebp (the
frame pointer), and %esp (the stack pointer).
%ax, %bx, %cx,
%dx, %di, %si, %bp, and %sp.
%ah, %al, %bh,
%bl, %ch, %cl, %dh, and %dl (These
are the high-bytes and low-bytes of %ax, %bx,
%cx, and %dx)
%cs (code section), %ds
(data section), %ss (stack section), %es, %fs,
and %gs.
%cr0, %cr2, and
%cr3.
%db0, %db1, %db2,
%db3, %db6, and %db7.
%tr6 and %tr7.
%st or equivalently
%st(0), %st(1), %st(2), %st(3),
%st(4), %st(5), %st(6), and %st(7).
These registers are overloaded by 8 MMX registers %mm0,
%mm1, %mm2, %mm3, %mm4, %mm5,
%mm6 and %mm7.
%xmm0, %xmm1, %xmm2,
%xmm3, %xmm4, %xmm5, %xmm6 and %xmm7.
The AMD x86-64 architecture extends the register set by:
%rax (the
accumulator), %rbx, %rcx, %rdx, %rdi,
%rsi, %rbp (the frame pointer), %rsp (the stack
pointer)
%r8-%r15.
%r8d-%r15d
%r8w-%r15w
%r8b-%r15b
%sil, %dil, %bpl, %spl.
%db8-%db15.
%xmm8-%xmm15.