80386寄存器
①8个32-bit寄存器:
%eax 一般用作累加器;
%ebx 一般用作基址寄存器(Base);
%ecx 一般用来计数(Count);
%edx 一般用来存放数据(Data);
%esp 一般用作堆栈指针(Stack Pointer);
%ebp 一般用作基址指针(Base Pointer);
%esi 一般用作源变址(Source Index);
%edi 一般用作目标变址(Destinatin Index);
②8个16-bit寄存器:
它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp;
③8个8-bit寄存器:
它们事实上是寄存器%ax,%bx,%cx,%dx的高8位和低8位:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl;
④6个段寄存器:
%cs 代码段寄存器;
%ds 数据段寄存器;
%ss 堆栈段寄存器;
%es 附加数据段寄存器;
%fs 附加数据段寄存器;
%gs 附加数据段寄存器;
⑤4个控制寄存器:%cr0,%cr2,%cr3(其中%cr1保留未使用);
⑥一个标志寄存器:EFLAGS
⑦8个浮点寄存器栈:%st(0),%st(1),%st(2),%st(3),%st(4),%st(5),%st(6),%st(7);
⑧2个测试寄存器:%tr6,%tr7;
⑨6个debug寄存器:%db0,%db1,%db2,%db3,%db6,%db7。