80x86 架构的执行部件主要由寄存器组、标志寄存器、算逻部件、控制部件等组成,从学习汇编的角度来看,了解寄存器组的分工与标志寄存器的作用是很重要的。
数据寄存器组
数据寄存器组有 4 个 32 位通用寄存器 EAX、EBX、ECX、EDX
,是 16 位寄存器的扩展 (Extern)AX、BX、CX、DX
,主要用来保存操作数、运算结果或作指示器、变址寄存器等。它们既可以作为32位寄存器,又可以将低16位作为16位寄存器使用。还可以将 AX、BX、CX、DX
按高 8 位和低 8 位分为两个小组:H 组(AH、BH、CH、DH
)和 L 组(AL、BL、CL、DL
),作为 8 位寄存器使用。但是这些 16 位和 8 位寄存器不能作为指示器或变址寄存器。
指示器变址寄存器组
这组寄存器有 4 个 32 位寄存器 ESI、EDI、ESP、EBP
,一般用来存放操作数或变址寄存器。同样,这四个寄存器可将低 16 位作16位寄存器使用,但这些 16 位寄存器不能再分为 8 位寄存器使用。
ESP
称为堆栈指示器,存放当前堆栈段中栈顶的偏移地址,一般不作数据寄存器使用。EBP
为对堆栈操作的基址寄存器,存放的是该段中某一存储单元的偏移地址。也可以作为一般数据寄存器使用。ESI
和EDI
在串操作指令中,分别被规定为取源操作数的指示器和送目的操作数的指示器。也可作为一般数据寄存器使用。